@alfresco/adf-content-services 8.1.0-15865093855 → 8.1.0-15928551305
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/aspect-list/aspect-list-dialog.component.mjs +5 -6
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +5 -6
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +6 -7
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -5
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +10 -11
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -5
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +6 -7
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -5
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +8 -9
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +6 -7
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +11 -12
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +7 -8
- package/esm2022/lib/content.module.mjs +2 -2
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +5 -6
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +7 -8
- package/esm2022/lib/dialogs/library/library.dialog.mjs +8 -9
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +9 -10
- package/esm2022/lib/directives/content-directive.module.mjs +2 -2
- package/esm2022/lib/directives/node-counter.directive.mjs +4 -5
- package/esm2022/lib/document-list/components/document-list.component.mjs +6 -7
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +7 -8
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/document-list.module.mjs +1 -5
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +7 -8
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -5
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +6 -7
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -5
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +6 -7
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +8 -9
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +5 -6
- package/esm2022/lib/search/components/search-control.component.mjs +4 -5
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +8 -9
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -5
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -5
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +6 -7
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -5
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +5 -6
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +5 -6
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +6 -7
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -5
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +8 -9
- package/esm2022/lib/search/components/search.component.mjs +4 -5
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +6 -7
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +6 -7
- package/esm2022/lib/tree/components/tree.component.mjs +10 -11
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -5
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +6 -7
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-button.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-list.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-manager.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-upload.component.mjs +7 -8
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +6 -7
- package/fesm2022/adf-content-services.mjs +188 -192
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -24,7 +24,7 @@ import { NodeAction } from '../document-list/models/node-action.enum';
|
|
|
24
24
|
import { OverlayContainer } from '@angular/cdk/overlay';
|
|
25
25
|
import { CommonModule } from '@angular/common';
|
|
26
26
|
import { MatTabsModule } from '@angular/material/tabs';
|
|
27
|
-
import {
|
|
27
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
28
28
|
import { DropdownBreadcrumbComponent } from '../breadcrumb/dropdown-breadcrumb.component';
|
|
29
29
|
import { NodeCounterDirective } from '../directives/node-counter.directive';
|
|
30
30
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -42,9 +42,8 @@ import * as i4 from "@angular/material/dialog";
|
|
|
42
42
|
import * as i5 from "@angular/cdk/overlay";
|
|
43
43
|
import * as i6 from "@angular/common";
|
|
44
44
|
import * as i7 from "@angular/material/tabs";
|
|
45
|
-
import * as i8 from "@
|
|
46
|
-
import * as i9 from "@angular/material/
|
|
47
|
-
import * as i10 from "@angular/material/button";
|
|
45
|
+
import * as i8 from "@angular/material/icon";
|
|
46
|
+
import * as i9 from "@angular/material/button";
|
|
48
47
|
export class ContentNodeSelectorComponent {
|
|
49
48
|
constructor(translation, contentService, notificationService, uploadService, dialog, overlayContainer, data) {
|
|
50
49
|
this.translation = translation;
|
|
@@ -178,7 +177,7 @@ export class ContentNodeSelectorComponent {
|
|
|
178
177
|
return this.showingSearch || this.hasNoPermissionToUpload();
|
|
179
178
|
}
|
|
180
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentNodeSelectorComponent, deps: [{ token: i1.TranslationService }, { token: i2.ContentService }, { token: i1.NotificationService }, { token: i3.UploadService }, { token: i4.MatDialogRef }, { token: i5.OverlayContainer }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
181
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContentNodeSelectorComponent, isStandalone: true, selector: "adf-content-node-selector", ngImport: i0, template: "<h1 mat-dialog-title class=\"adf-content-node-selector-dialog-title\" data-automation-id=\"content-node-selector-title\">{{title}}</h1>\n<ng-container *ngIf=\"canPerformLocalUpload(); else contentNodePanel\">\n <mat-tab-group class=\"adf-content-node-selector-dialog-content\"\n mat-align-tabs=\"start\"\n (selectedIndexChange)=\"onTabSelectionChange($event)\">\n <mat-tab label=\"{{ 'NODE_SELECTOR.REPOSITORY' | translate }}\">\n <ng-container *ngTemplateOutlet='contentNodePanel' />\n </mat-tab>\n <mat-tab [disabled]=\"isNotAllowedToUpload()\">\n <div class=\"adf-content-node-selector-local-upload-container\">\n <div class=\"adf-content-node-selector-local-upload-header\">\n <adf-toolbar>\n <adf-toolbar-title>\n <adf-dropdown-breadcrumb\n class=\"adf-content-node-selector-content-breadcrumb\"\n [folderNode]=\"breadcrumbFolderNode\"\n [rootId]=\"data?.currentFolderId\"\n [readOnly]=\"true\"\n data-automation-id=\"content-node-selector-upload-breadcrumb\"\n />\n <ng-container *ngIf=\"isCounterVisible()\" [adf-node-counter]=\"getSelectedCount()\" />\n </adf-toolbar-title>\n </adf-toolbar>\n <ng-template mat-tab-label>\n {{ 'NODE_SELECTOR.UPLOAD_FROM_DEVICE' | translate }}\n <mat-icon *ngIf=\"hasUploadError()\"\n data-automation-id=\"adf-content-node-selector-disabled-tab-info-icon\"\n title=\"{{ getWarningMessage() | translate }}\">info\n </mat-icon>\n </ng-template>\n </div>\n <div class=\"adf-content-node-selector-local-upload-content\">\n <adf-upload-drag-area [rootFolderId]=\"currentDirectoryId\">\n <div [class.adf-upload-dialog-container]=\"uploadStarted\">\n <adf-file-uploading-dialog [alwaysVisible]=\"true\" />\n </div>\n <adf-empty-list data-automation-id=\"adf-empty-list\" *ngIf=\"!uploadStarted\">\n <div class=\"adf-empty-list_template adf-empty-folder\">\n <div class=\"adf-empty-folder-drag-drop\">{{ 'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.TITLE' | translate }}</div>\n <div class=\"adf-empty-folder-any-files-here-to-add\">{{ 'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.SUBTITLE' | translate }}</div>\n <img [alt]=\"'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.TITLE' | translate\" class=\"adf-empty-folder-image\"\n [src]=\"emptyFolderImageUrl\">\n </div>\n </adf-empty-list>\n </adf-upload-drag-area>\n </div>\n </div>\n </mat-tab>\n </mat-tab-group>\n</ng-container>\n\n<ng-template #contentNodePanel>\n <adf-content-node-selector-panel\n [currentFolderId]=\"data?.currentFolderId\"\n [restrictRootToCurrentFolderId]=\"data?.restrictRootToCurrentFolderId\"\n [dropdownHideMyFiles]=\"data?.dropdownHideMyFiles\"\n [dropdownSiteList]=\"data?.dropdownSiteList\"\n [rowFilter]=\"data?.rowFilter\"\n [imageResolver]=\"data?.imageResolver\"\n [isSelectionValid]=\"data?.isSelectionValid\"\n [breadcrumbTransform]=\"data?.breadcrumbTransform\"\n [excludeSiteContent]=\"data?.excludeSiteContent\"\n [selectionMode]=\"data?.selectionMode\"\n [where]=\"data?.where\"\n [showSearch]=\"data?.showSearch\"\n [showDropdownSiteList]=\"data?.showDropdownSiteList\"\n [showFilesInResult]=\"data?.showFilesInResult\"\n [showNodeCounter]=\"isCounterVisible()\"\n (currentFolder)=\"onCurrentFolder($event)\"\n (folderLoaded)=\"onFolderLoaded()\"\n (select)=\"onSelect($event)\"\n (showingSearch)=\"onShowingSearch($event)\"\n (siteChange)=\"onSiteChange($event)\"\n (navigationChange)=\"onNavigationChange($event)\" />\n</ng-template>\n\n\n<mat-dialog-actions class=\"adf-content-node-selector-dialog-actions\">\n <div>\n <ng-container *ngIf=\"isUploadEnabled()\">\n <adf-upload-button\n [staticTitle]=\"'FORM.FIELD.UPLOAD' | translate \"\n [multipleFiles]=\"isMultipleSelection()\"\n [rootFolderId]=\"currentDirectoryId\"\n [disabled]=\"isNotAllowedToUpload()\"\n (error)=\"onError($event)\" />\n </ng-container>\n </div>\n <div>\n <button\n mat-button\n (click)=\"close()\"\n data-automation-id=\"content-node-selector-actions-cancel\">{{ 'NODE_SELECTOR.CANCEL' | translate }}\n </button>\n\n <button mat-button\n [disabled]=\"isChooseButtonDisabled()\"\n class=\"adf-choose-action\"\n (click)=\"onClick()\"\n data-automation-id=\"content-node-selector-actions-choose\">{{ buttonActionName | translate }}\n </button>\n </div>\n</mat-dialog-actions>\n", styles: ["adf-content-node-selector .adf-upload-dialog{box-shadow:none;height:100%;width:100%;position:unset;bottom:unset}adf-content-node-selector .adf-upload-dialog__content{max-height:64%}adf-content-node-selector .adf-upload-dialog-container{height:380px}adf-content-node-selector .adf-toolbar-title{place-items:center}adf-content-node-selector .adf-content-node-selector-local-upload-content{height:50vh}adf-content-node-selector .adf-content-node-selector-local-upload-content adf-upload-drag-area adf-empty-list .adf-empty-folder-drag-drop{min-height:46px;font-size:40px}adf-content-node-selector .adf-content-node-selector-local-upload-content adf-upload-drag-area adf-empty-list .adf-empty-folder-image{height:100px;width:460px}.adf-content-node-selector-dialog .mat-mdc-form-field{width:100%}.adf-content-node-selector-dialog .adf-dropdown-breadcrumb-icon{color:var(--adf-theme-foreground-base-color-045)}.adf-content-node-selector-dialog .mdc-dialog__title{margin-bottom:0;padding:0}.adf-content-node-selector-dialog .mdc-dialog__title:before{display:none}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-title{font-size:var(--theme-title-font-size);font-weight:600;font-style:normal;font-stretch:normal;line-height:1.6;letter-spacing:-.5px;color:var(--adf-theme-foreground-text-color-087);margin-bottom:20px}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-title h2{margin:unset;font-size:unset}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions{padding:8px;height:77px;background-color:var(--theme-background-color);display:flex;flex-direction:row;justify-content:space-between;color:var(--adf-theme-foreground-text-color)}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions label{text-transform:uppercase;font-weight:400}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions .adf-choose-action[disabled]{color:var(--adf-theme-foreground-secondary-text-color)}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions .adf-choose-action:enabled{color:var(--theme-primary-color)}@media screen and (width <= 768px){.adf-content-node-selector-dialog{height:100vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i7.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i7.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i7.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "component", type: ToolbarTitleComponent, selector: "adf-toolbar-title" }, { kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title", "color"] }, { kind: "component", type: DropdownBreadcrumbComponent, selector: "adf-dropdown-breadcrumb" }, { kind: "directive", type: NodeCounterDirective, selector: "[adf-node-counter]", inputs: ["adf-node-counter"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: UploadDragAreaComponent, selector: "adf-upload-drag-area" }, { kind: "component", type: FileUploadingDialogComponent, selector: "adf-file-uploading-dialog", inputs: ["position", "alwaysVisible"], outputs: ["error"] }, { kind: "component", type: EmptyListComponent, selector: "adf-empty-list" }, { kind: "component", type: ContentNodeSelectorPanelComponent, selector: "adf-content-node-selector-panel", inputs: ["restrictRootToCurrentFolderId", "currentFolderId", "dropdownHideMyFiles", "dropdownSiteList", "where", "rowFilter", "excludeSiteContent", "imageResolver", "pageSize", "selectionMode", "isSelectionValid", "breadcrumbTransform", "showSearch", "showDropdownSiteList", "showFilesInResult", "showNodeCounter"], outputs: ["select", "navigationChange", "siteChange", "showingSearch", "currentFolder", "folderLoaded"] }, { kind: "component", type: UploadButtonComponent, selector: "adf-upload-button", inputs: ["uploadFolders", "multipleFiles", "staticTitle", "tooltip", "file"], outputs: ["permissionEvent"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ContentNodeSelectorComponent, isStandalone: true, selector: "adf-content-node-selector", ngImport: i0, template: "<h1 mat-dialog-title class=\"adf-content-node-selector-dialog-title\" data-automation-id=\"content-node-selector-title\">{{title}}</h1>\n<ng-container *ngIf=\"canPerformLocalUpload(); else contentNodePanel\">\n <mat-tab-group class=\"adf-content-node-selector-dialog-content\"\n mat-align-tabs=\"start\"\n (selectedIndexChange)=\"onTabSelectionChange($event)\">\n <mat-tab label=\"{{ 'NODE_SELECTOR.REPOSITORY' | translate }}\">\n <ng-container *ngTemplateOutlet='contentNodePanel' />\n </mat-tab>\n <mat-tab [disabled]=\"isNotAllowedToUpload()\">\n <div class=\"adf-content-node-selector-local-upload-container\">\n <div class=\"adf-content-node-selector-local-upload-header\">\n <adf-toolbar>\n <adf-toolbar-title>\n <adf-dropdown-breadcrumb\n class=\"adf-content-node-selector-content-breadcrumb\"\n [folderNode]=\"breadcrumbFolderNode\"\n [rootId]=\"data?.currentFolderId\"\n [readOnly]=\"true\"\n data-automation-id=\"content-node-selector-upload-breadcrumb\"\n />\n <ng-container *ngIf=\"isCounterVisible()\" [adf-node-counter]=\"getSelectedCount()\" />\n </adf-toolbar-title>\n </adf-toolbar>\n <ng-template mat-tab-label>\n {{ 'NODE_SELECTOR.UPLOAD_FROM_DEVICE' | translate }}\n <mat-icon *ngIf=\"hasUploadError()\"\n data-automation-id=\"adf-content-node-selector-disabled-tab-info-icon\"\n title=\"{{ getWarningMessage() | translate }}\">info\n </mat-icon>\n </ng-template>\n </div>\n <div class=\"adf-content-node-selector-local-upload-content\">\n <adf-upload-drag-area [rootFolderId]=\"currentDirectoryId\">\n <div [class.adf-upload-dialog-container]=\"uploadStarted\">\n <adf-file-uploading-dialog [alwaysVisible]=\"true\" />\n </div>\n <adf-empty-list data-automation-id=\"adf-empty-list\" *ngIf=\"!uploadStarted\">\n <div class=\"adf-empty-list_template adf-empty-folder\">\n <div class=\"adf-empty-folder-drag-drop\">{{ 'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.TITLE' | translate }}</div>\n <div class=\"adf-empty-folder-any-files-here-to-add\">{{ 'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.SUBTITLE' | translate }}</div>\n <img [alt]=\"'ADF-DATATABLE.EMPTY.DRAG-AND-DROP.TITLE' | translate\" class=\"adf-empty-folder-image\"\n [src]=\"emptyFolderImageUrl\">\n </div>\n </adf-empty-list>\n </adf-upload-drag-area>\n </div>\n </div>\n </mat-tab>\n </mat-tab-group>\n</ng-container>\n\n<ng-template #contentNodePanel>\n <adf-content-node-selector-panel\n [currentFolderId]=\"data?.currentFolderId\"\n [restrictRootToCurrentFolderId]=\"data?.restrictRootToCurrentFolderId\"\n [dropdownHideMyFiles]=\"data?.dropdownHideMyFiles\"\n [dropdownSiteList]=\"data?.dropdownSiteList\"\n [rowFilter]=\"data?.rowFilter\"\n [imageResolver]=\"data?.imageResolver\"\n [isSelectionValid]=\"data?.isSelectionValid\"\n [breadcrumbTransform]=\"data?.breadcrumbTransform\"\n [excludeSiteContent]=\"data?.excludeSiteContent\"\n [selectionMode]=\"data?.selectionMode\"\n [where]=\"data?.where\"\n [showSearch]=\"data?.showSearch\"\n [showDropdownSiteList]=\"data?.showDropdownSiteList\"\n [showFilesInResult]=\"data?.showFilesInResult\"\n [showNodeCounter]=\"isCounterVisible()\"\n (currentFolder)=\"onCurrentFolder($event)\"\n (folderLoaded)=\"onFolderLoaded()\"\n (select)=\"onSelect($event)\"\n (showingSearch)=\"onShowingSearch($event)\"\n (siteChange)=\"onSiteChange($event)\"\n (navigationChange)=\"onNavigationChange($event)\" />\n</ng-template>\n\n\n<mat-dialog-actions class=\"adf-content-node-selector-dialog-actions\">\n <div>\n <ng-container *ngIf=\"isUploadEnabled()\">\n <adf-upload-button\n [staticTitle]=\"'FORM.FIELD.UPLOAD' | translate \"\n [multipleFiles]=\"isMultipleSelection()\"\n [rootFolderId]=\"currentDirectoryId\"\n [disabled]=\"isNotAllowedToUpload()\"\n (error)=\"onError($event)\" />\n </ng-container>\n </div>\n <div>\n <button\n mat-button\n (click)=\"close()\"\n data-automation-id=\"content-node-selector-actions-cancel\">{{ 'NODE_SELECTOR.CANCEL' | translate }}\n </button>\n\n <button mat-button\n [disabled]=\"isChooseButtonDisabled()\"\n class=\"adf-choose-action\"\n (click)=\"onClick()\"\n data-automation-id=\"content-node-selector-actions-choose\">{{ buttonActionName | translate }}\n </button>\n </div>\n</mat-dialog-actions>\n", styles: ["adf-content-node-selector .adf-upload-dialog{box-shadow:none;height:100%;width:100%;position:unset;bottom:unset}adf-content-node-selector .adf-upload-dialog__content{max-height:64%}adf-content-node-selector .adf-upload-dialog-container{height:380px}adf-content-node-selector .adf-toolbar-title{place-items:center}adf-content-node-selector .adf-content-node-selector-local-upload-content{height:50vh}adf-content-node-selector .adf-content-node-selector-local-upload-content adf-upload-drag-area adf-empty-list .adf-empty-folder-drag-drop{min-height:46px;font-size:40px}adf-content-node-selector .adf-content-node-selector-local-upload-content adf-upload-drag-area adf-empty-list .adf-empty-folder-image{height:100px;width:460px}.adf-content-node-selector-dialog .mat-mdc-form-field{width:100%}.adf-content-node-selector-dialog .adf-dropdown-breadcrumb-icon{color:var(--adf-theme-foreground-base-color-045)}.adf-content-node-selector-dialog .mdc-dialog__title{margin-bottom:0;padding:0}.adf-content-node-selector-dialog .mdc-dialog__title:before{display:none}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-title{font-size:var(--theme-title-font-size);font-weight:600;font-style:normal;font-stretch:normal;line-height:1.6;letter-spacing:-.5px;color:var(--adf-theme-foreground-text-color-087);margin-bottom:20px}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-title h2{margin:unset;font-size:unset}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions{padding:8px;height:77px;background-color:var(--theme-background-color);display:flex;flex-direction:row;justify-content:space-between;color:var(--adf-theme-foreground-text-color)}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions label{text-transform:uppercase;font-weight:400}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions .adf-choose-action[disabled]{color:var(--adf-theme-foreground-secondary-text-color)}.adf-content-node-selector-dialog .adf-content-node-selector-dialog-actions .adf-choose-action:enabled{color:var(--theme-primary-color)}@media screen and (width <= 768px){.adf-content-node-selector-dialog{height:100vh}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatTabsModule }, { kind: "directive", type: i7.MatTabLabel, selector: "[mat-tab-label], [matTabLabel]" }, { kind: "component", type: i7.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i7.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ToolbarTitleComponent, selector: "adf-toolbar-title" }, { kind: "component", type: ToolbarComponent, selector: "adf-toolbar", inputs: ["title", "color"] }, { kind: "component", type: DropdownBreadcrumbComponent, selector: "adf-dropdown-breadcrumb" }, { kind: "directive", type: NodeCounterDirective, selector: "[adf-node-counter]", inputs: ["adf-node-counter"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: UploadDragAreaComponent, selector: "adf-upload-drag-area" }, { kind: "component", type: FileUploadingDialogComponent, selector: "adf-file-uploading-dialog", inputs: ["position", "alwaysVisible"], outputs: ["error"] }, { kind: "component", type: EmptyListComponent, selector: "adf-empty-list" }, { kind: "component", type: ContentNodeSelectorPanelComponent, selector: "adf-content-node-selector-panel", inputs: ["restrictRootToCurrentFolderId", "currentFolderId", "dropdownHideMyFiles", "dropdownSiteList", "where", "rowFilter", "excludeSiteContent", "imageResolver", "pageSize", "selectionMode", "isSelectionValid", "breadcrumbTransform", "showSearch", "showDropdownSiteList", "showFilesInResult", "showNodeCounter"], outputs: ["select", "navigationChange", "siteChange", "showingSearch", "currentFolder", "folderLoaded"] }, { kind: "component", type: UploadButtonComponent, selector: "adf-upload-button", inputs: ["uploadFolders", "multipleFiles", "staticTitle", "tooltip", "file"], outputs: ["permissionEvent"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
182
181
|
}
|
|
183
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ContentNodeSelectorComponent, decorators: [{
|
|
184
183
|
type: Component,
|
|
@@ -186,7 +185,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
186
185
|
CommonModule,
|
|
187
186
|
MatDialogModule,
|
|
188
187
|
MatTabsModule,
|
|
189
|
-
|
|
188
|
+
TranslatePipe,
|
|
190
189
|
ToolbarTitleComponent,
|
|
191
190
|
ToolbarComponent,
|
|
192
191
|
DropdownBreadcrumbComponent,
|
|
@@ -203,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
203
202
|
type: Inject,
|
|
204
203
|
args: [MAT_DIALOG_DATA]
|
|
205
204
|
}] }] });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1ub2RlLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29udGVudC1ub2RlLXNlbGVjdG9yL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9jb250ZW50LW5vZGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGtCQUFrQixFQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHbEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQs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QUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDaEUsQ0FBQzsrR0ExS1EsNEJBQTRCLDhNQXlCekIsZUFBZTttR0F6QmxCLDRCQUE0QixxRkN2RXpDLHMyS0F1R0EsMHNFRHBEUSxZQUFZLHlTQUNaLGVBQWUsNlRBQ2YsYUFBYSxxdUJBQ2IsZUFBZSw0RkFDZixxQkFBcUIsOERBQ3JCLGdCQUFnQixvRkFDaEIsMkJBQTJCLG9FQUMzQixvQkFBb0IsNEZBQ3BCLGFBQWEsb0xBQ2IsdUJBQXVCLGlFQUN2Qiw0QkFBNEIsaUlBQzVCLGtCQUFrQiwyREFDbEIsaUNBQWlDLGlmQUNqQyxxQkFBcUIseUtBQ3JCLGVBQWU7OzRGQU1WLDRCQUE0QjtrQkF4QnhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixpQ0FBaUM7d0JBQ2pDLHFCQUFxQjt3QkFDckIsZUFBZTtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBMkJoQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBFbXB0eUxpc3RDb21wb25lbnQsXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICBUb29sYmFyQ29tcG9uZW50LFxuICAgIFRvb2xiYXJUaXRsZUNvbXBvbmVudCxcbiAgICBUcmFuc2xhdGlvblNlcnZpY2Vcbn0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IE5vZGUgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtIH0gZnJvbSAnLi4vY29tbW9uL21vZGVscy9hbGxvd2FibGUtb3BlcmF0aW9ucy5lbnVtJztcbmltcG9ydCB7IENvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL2NvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3NlcnZpY2VzL3VwbG9hZC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnREYXRhIH0gZnJvbSAnLi9jb250ZW50LW5vZGUtc2VsZWN0b3IuY29tcG9uZW50LWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IE5vZGVFbnRyeUV2ZW50IH0gZnJvbSAnLi4vZG9jdW1lbnQtbGlzdC9jb21wb25lbnRzL25vZGUuZXZlbnQnO1xuaW1wb3J0IHsgTm9kZUFjdGlvbiB9IGZyb20gJy4uL2RvY3VtZW50LWxpc3QvbW9kZWxzL25vZGUtYWN0aW9uLmVudW0nO1xuaW1wb3J0IHsgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERyb3Bkb3duQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4uL2JyZWFkY3J1bWIvZHJvcGRvd24tYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZUNvdW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL25vZGUtY291bnRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVXBsb2FkRHJhZ0FyZWFDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWQvY29tcG9uZW50cy91cGxvYWQtZHJhZy1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkaW5nRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkL2NvbXBvbmVudHMvZmlsZS11cGxvYWRpbmctZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZVNlbGVjdG9yUGFuZWxDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbC9jb250ZW50LW5vZGUtc2VsZWN0b3ItcGFuZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFVwbG9hZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3RvcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFRvb2xiYXJUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25CcmVhZGNydW1iQ29tcG9uZW50LFxuICAgICAgICBOb2RlQ291bnRlckRpcmVjdGl2ZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgVXBsb2FkRHJhZ0FyZWFDb21wb25lbnQsXG4gICAgICAgIEZpbGVVcGxvYWRpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEVtcHR5TGlzdENvbXBvbmVudCxcbiAgICAgICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsQ29tcG9uZW50LFxuICAgICAgICBVcGxvYWRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1ub2RlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgYWN0aW9uOiBOb2RlQWN0aW9uO1xuICAgIGJ1dHRvbkFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBjaG9zZW5Ob2RlOiBOb2RlW107XG4gICAgY3VycmVudERpcmVjdG9yeUlkOiBzdHJpbmc7XG4gICAgc2hvd2luZ1NlYXJjaCA9IGZhbHNlO1xuICAgIGhhc0FsbG93YWJsZU9wZXJhdGlvbnMgPSBmYWxzZTtcbiAgICBpc0xvYWRpbmcgPSB0cnVlO1xuICAgIHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlciA9IDA7XG4gICAgdXBsb2FkU3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgZW1wdHlGb2xkZXJJbWFnZVVybDogc3RyaW5nID0gJy4vYXNzZXRzL2ltYWdlcy9lbXB0eV9kb2NfbGliLnN2Zyc7XG4gICAgYnJlYWRjcnVtYkZvbGRlck5vZGU6IE5vZGU7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbnRlbnRTZXJ2aWNlOiBDb250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dSZWY8Q29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheUNvbnRhaW5lcjogT3ZlcmxheUNvbnRhaW5lcixcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YVxuICAgICkge1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGRhdGEuYWN0aW9uTmFtZSA/PyBOb2RlQWN0aW9uLkNIT09TRTtcbiAgICAgICAgdGhpcy5idXR0b25BY3Rpb25OYW1lID0gYE5PREVfU0VMRUNUT1IuJHt0aGlzLmFjdGlvbn1gO1xuICAgICAgICB0aGlzLnRpdGxlID0gZGF0YS50aXRsZTtcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0b3J5SWQgPSBkYXRhLmN1cnJlbnRGb2xkZXJJZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dcbiAgICAgICAgICAgIC5rZXlkb3duRXZlbnRzKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQ/LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmRpYWxvZ1xuICAgICAgICAgICAgLmFmdGVyT3BlbmVkKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAnbWFpbicpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy51cGxvYWRTZXJ2aWNlLmZpbGVVcGxvYWRTdGFydGluZy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRTdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNsb3NlKCkge1xuICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZSgpO1xuICAgICAgICB0aGlzLm92ZXJsYXlDb250YWluZXIuZ2V0Q29udGFpbmVyRWxlbWVudCgpLnNldEF0dHJpYnV0ZSgncm9sZScsICdyZWdpb24nKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChub2RlTGlzdDogTm9kZVtdKSB7XG4gICAgICAgIHRoaXMuY2hvc2VuTm9kZSA9IG5vZGVMaXN0O1xuICAgIH1cblxuICAgIG9uU2l0ZUNoYW5nZShzaXRlVGl0bGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKHNpdGVUaXRsZSk7XG4gICAgfVxuXG4gICAgb25OYXZpZ2F0aW9uQ2hhbmdlKHBhdGhFbGVtZW50OiBOb2RlRW50cnlFdmVudCkge1xuICAgICAgICB0aGlzLmN1cnJlbnREaXJlY3RvcnlJZCA9IHBhdGhFbGVtZW50LnZhbHVlLmlkO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgfVxuXG4gICAgb25DbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhLnNlbGVjdC5uZXh0KHRoaXMuY2hvc2VuTm9kZSk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUaXRsZShzaXRlVGl0bGU6IHN0cmluZykge1xuICAgICAgICBpZiAodGhpcy5hY3Rpb24gPT09IE5vZGVBY3Rpb24uQ0hPT1NFICYmIHNpdGVUaXRsZSkge1xuICAgICAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuZ2V0VGl0bGVUcmFuc2xhdGlvbih0aGlzLmFjdGlvbiwgc2l0ZVRpdGxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFRpdGxlVHJhbnNsYXRpb24oYWN0aW9uOiBOb2RlQWN0aW9uLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KGBOT0RFX1NFTEVDVE9SLiR7YWN0aW9ufV9JVEVNYCwgeyBuYW1lOiB0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQobmFtZSkgfSk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jaG9zZW5Ob2RlPy5sZW5ndGggfHwgMDtcbiAgICB9XG5cbiAgICBpc0NvdW50ZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb24gPT09IE5vZGVBY3Rpb24uQVRUQUNIIHx8IHRoaXMuYWN0aW9uID09PSBOb2RlQWN0aW9uLkNIT09TRTtcbiAgICB9XG5cbiAgICBpc011bHRpcGxlU2VsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZSc7XG4gICAgfVxuXG4gICAgb25FcnJvcihlcnJvcikge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0Vycm9yKGVycm9yKTtcbiAgICB9XG5cbiAgICBpc0Nob29zZUJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWRTZXJ2aWNlLmlzVXBsb2FkaW5nKCkgfHwgIXRoaXMuaGFzTm9kZVNlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgaGFzTm9kZVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaG9zZW5Ob2RlPy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIG9uU2hvd2luZ1NlYXJjaCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNob3dpbmdTZWFyY2ggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBvbkN1cnJlbnRGb2xkZXIoY3VycmVudEZvbGRlcjogTm9kZSkge1xuICAgICAgICB0aGlzLmhhc0FsbG93YWJsZU9wZXJhdGlvbnMgPSB0aGlzLmNvbnRlbnRTZXJ2aWNlLmhhc0FsbG93YWJsZU9wZXJhdGlvbnMoY3VycmVudEZvbGRlciwgQWxsb3dhYmxlT3BlcmF0aW9uc0VudW0uQ1JFQVRFKTtcbiAgICAgICAgdGhpcy5icmVhZGNydW1iRm9sZGVyTm9kZSA9IGN1cnJlbnRGb2xkZXI7XG4gICAgfVxuXG4gICAgaXNOb3RBbGxvd2VkVG9VcGxvYWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3dpbmdTZWFyY2ggfHwgIXRoaXMuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucztcbiAgICB9XG5cbiAgICBvbkZvbGRlckxvYWRlZCgpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBvblRhYlNlbGVjdGlvbkNoYW5nZSh0YWJJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IHRhYkluZGV4O1xuICAgIH1cblxuICAgIGlzRmlsZVNlcnZlclRhYlNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFRhYkluZGV4ID09PSAwO1xuICAgIH1cblxuICAgIGlzTG9jYWxVcGxvYWRUYWJTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9PT0gMTtcbiAgICB9XG5cbiAgICBpc1VwbG9hZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhblBlcmZvcm1Mb2NhbFVwbG9hZCgpICYmIHRoaXMuaXNMb2NhbFVwbG9hZFRhYlNlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgY2FuUGVyZm9ybUxvY2FsVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kYXRhPy5zaG93TG9jYWxVcGxvYWRCdXR0b247XG4gICAgfVxuXG4gICAgZ2V0V2FybmluZ01lc3NhZ2UoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd2luZ1NlYXJjaCkge1xuICAgICAgICAgICAgcmV0dXJuICdOT0RFX1NFTEVDVE9SLlVQTE9BRF9CVVRUT05fU0VBUkNIX1dBUk5JTkdfTUVTU0FHRSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzTm9QZXJtaXNzaW9uVG9VcGxvYWQoKSA/ICdOT0RFX1NFTEVDVE9SLlVQTE9BRF9CVVRUT05fUEVSTUlTU0lPTl9XQVJOSU5HX01FU1NBR0UnIDogJyc7XG4gICAgfVxuXG4gICAgaGFzTm9QZXJtaXNzaW9uVG9VcGxvYWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNBbGxvd2FibGVPcGVyYXRpb25zICYmICF0aGlzLnNob3dpbmdTZWFyY2ggJiYgIXRoaXMuaXNMb2FkaW5nO1xuICAgIH1cblxuICAgIGhhc1VwbG9hZEVycm9yKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93aW5nU2VhcmNoIHx8IHRoaXMuaGFzTm9QZXJtaXNzaW9uVG9VcGxvYWQoKTtcbiAgICB9XG59XG4iLCI8aDEgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cImFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItZGlhbG9nLXRpdGxlXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29udGVudC1ub2RlLXNlbGVjdG9yLXRpdGxlXCI+e3t0aXRsZX19PC9oMT5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5QZXJmb3JtTG9jYWxVcGxvYWQoKTsgZWxzZSBjb250ZW50Tm9kZVBhbmVsXCI+XG4gICAgPG1hdC10YWItZ3JvdXAgY2xhc3M9XCJhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZy1jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICBtYXQtYWxpZ24tdGFicz1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJvblRhYlNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtdGFiIGxhYmVsPVwie3sgJ05PREVfU0VMRUNUT1IuUkVQT1NJVE9SWScgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9J2NvbnRlbnROb2RlUGFuZWwnIC8+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPG1hdC10YWIgW2Rpc2FibGVkXT1cImlzTm90QWxsb3dlZFRvVXBsb2FkKClcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWxvY2FsLXVwbG9hZC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1sb2NhbC11cGxvYWQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtdG9vbGJhci10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWRyb3Bkb3duLWJyZWFkY3J1bWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1jb250ZW50LWJyZWFkY3J1bWJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZvbGRlck5vZGVdPVwiYnJlYWRjcnVtYkZvbGRlck5vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3RJZF09XCJkYXRhPy5jdXJyZW50Rm9sZGVySWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRPbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29udGVudC1ub2RlLXNlbGVjdG9yLXVwbG9hZC1icmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0NvdW50ZXJWaXNpYmxlKClcIiBbYWRmLW5vZGUtY291bnRlcl09XCJnZXRTZWxlY3RlZENvdW50KClcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hZGYtdG9vbGJhci10aXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPC9hZGYtdG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnTk9ERV9TRUxFQ1RPUi5VUExPQURfRlJPTV9ERVZJQ0UnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJoYXNVcGxvYWRFcnJvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpc2FibGVkLXRhYi1pbmZvLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgZ2V0V2FybmluZ01lc3NhZ2UoKSB8IHRyYW5zbGF0ZSB9fVwiPmluZm9cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItbG9jYWwtdXBsb2FkLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi11cGxvYWQtZHJhZy1hcmVhIFtyb290Rm9sZGVySWRdPVwiY3VycmVudERpcmVjdG9yeUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtjbGFzcy5hZGYtdXBsb2FkLWRpYWxvZy1jb250YWluZXJdPVwidXBsb2FkU3RhcnRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtZmlsZS11cGxvYWRpbmctZGlhbG9nIFthbHdheXNWaXNpYmxlXT1cInRydWVcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWVtcHR5LWxpc3QgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWVtcHR5LWxpc3RcIiAqbmdJZj1cIiF1cGxvYWRTdGFydGVkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lbXB0eS1saXN0X3RlbXBsYXRlIGFkZi1lbXB0eS1mb2xkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lbXB0eS1mb2xkZXItZHJhZy1kcm9wXCI+e3sgJ0FERi1EQVRBVEFCTEUuRU1QVFkuRFJBRy1BTkQtRFJPUC5USVRMRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lbXB0eS1mb2xkZXItYW55LWZpbGVzLWhlcmUtdG8tYWRkXCI+e3sgJ0FERi1EQVRBVEFCTEUuRU1QVFkuRFJBRy1BTkQtRFJPUC5TVUJUSVRMRScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbYWx0XT1cIidBREYtREFUQVRBQkxFLkVNUFRZLkRSQUctQU5ELURST1AuVElUTEUnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJhZGYtZW1wdHktZm9sZGVyLWltYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImVtcHR5Rm9sZGVySW1hZ2VVcmxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRmLWVtcHR5LWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvYWRmLXVwbG9hZC1kcmFnLWFyZWE+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9tYXQtdGFiPlxuICAgIDwvbWF0LXRhYi1ncm91cD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnROb2RlUGFuZWw+XG4gICAgPGFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItcGFuZWxcbiAgICAgIFtjdXJyZW50Rm9sZGVySWRdPVwiZGF0YT8uY3VycmVudEZvbGRlcklkXCJcbiAgICAgIFtyZXN0cmljdFJvb3RUb0N1cnJlbnRGb2xkZXJJZF09XCJkYXRhPy5yZXN0cmljdFJvb3RUb0N1cnJlbnRGb2xkZXJJZFwiXG4gICAgICBbZHJvcGRvd25IaWRlTXlGaWxlc109XCJkYXRhPy5kcm9wZG93bkhpZGVNeUZpbGVzXCJcbiAgICAgIFtkcm9wZG93blNpdGVMaXN0XT1cImRhdGE/LmRyb3Bkb3duU2l0ZUxpc3RcIlxuICAgICAgW3Jvd0ZpbHRlcl09XCJkYXRhPy5yb3dGaWx0ZXJcIlxuICAgICAgW2ltYWdlUmVzb2x2ZXJdPVwiZGF0YT8uaW1hZ2VSZXNvbHZlclwiXG4gICAgICBbaXNTZWxlY3Rpb25WYWxpZF09XCJkYXRhPy5pc1NlbGVjdGlvblZhbGlkXCJcbiAgICAgIFticmVhZGNydW1iVHJhbnNmb3JtXT1cImRhdGE/LmJyZWFkY3J1bWJUcmFuc2Zvcm1cIlxuICAgICAgW2V4Y2x1ZGVTaXRlQ29udGVudF09XCJkYXRhPy5leGNsdWRlU2l0ZUNvbnRlbnRcIlxuICAgICAgW3NlbGVjdGlvbk1vZGVdPVwiZGF0YT8uc2VsZWN0aW9uTW9kZVwiXG4gICAgICBbd2hlcmVdPVwiZGF0YT8ud2hlcmVcIlxuICAgICAgW3Nob3dTZWFyY2hdPVwiZGF0YT8uc2hvd1NlYXJjaFwiXG4gICAgICBbc2hvd0Ryb3Bkb3duU2l0ZUxpc3RdPVwiZGF0YT8uc2hvd0Ryb3Bkb3duU2l0ZUxpc3RcIlxuICAgICAgW3Nob3dGaWxlc0luUmVzdWx0XT1cImRhdGE/LnNob3dGaWxlc0luUmVzdWx0XCJcbiAgICAgIFtzaG93Tm9kZUNvdW50ZXJdPVwiaXNDb3VudGVyVmlzaWJsZSgpXCJcbiAgICAgIChjdXJyZW50Rm9sZGVyKT1cIm9uQ3VycmVudEZvbGRlcigkZXZlbnQpXCJcbiAgICAgIChmb2xkZXJMb2FkZWQpPVwib25Gb2xkZXJMb2FkZWQoKVwiXG4gICAgICAoc2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxuICAgICAgKHNob3dpbmdTZWFyY2gpPVwib25TaG93aW5nU2VhcmNoKCRldmVudClcIlxuICAgICAgKHNpdGVDaGFuZ2UpPVwib25TaXRlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKG5hdmlnYXRpb25DaGFuZ2UpPVwib25OYXZpZ2F0aW9uQ2hhbmdlKCRldmVudClcIiAvPlxuPC9uZy10ZW1wbGF0ZT5cblxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaWFsb2ctYWN0aW9uc1wiPlxuICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1VwbG9hZEVuYWJsZWQoKVwiPlxuICAgICAgICAgICAgPGFkZi11cGxvYWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3N0YXRpY1RpdGxlXT1cIidGT1JNLkZJRUxELlVQTE9BRCcgfCB0cmFuc2xhdGUgXCJcbiAgICAgICAgICAgICAgICBbbXVsdGlwbGVGaWxlc109XCJpc011bHRpcGxlU2VsZWN0aW9uKClcIlxuICAgICAgICAgICAgICAgIFtyb290Rm9sZGVySWRdPVwiY3VycmVudERpcmVjdG9yeUlkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOb3RBbGxvd2VkVG9VcGxvYWQoKVwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbnRlbnQtbm9kZS1zZWxlY3Rvci1hY3Rpb25zLWNhbmNlbFwiPnt7ICdOT0RFX1NFTEVDVE9SLkNBTkNFTCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzQ2hvb3NlQnV0dG9uRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtY2hvb3NlLWFjdGlvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiY29udGVudC1ub2RlLXNlbGVjdG9yLWFjdGlvbnMtY2hvb3NlXCI+e3sgYnV0dG9uQWN0aW9uTmFtZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1ub2RlLXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29udGVudC1ub2RlLXNlbGVjdG9yL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9jb250ZW50LW5vZGUtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxSSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8s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QUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7SUFDaEUsQ0FBQzsrR0F6S1EsNEJBQTRCLDhNQXdCekIsZUFBZTttR0F4QmxCLDRCQUE0QixxRkNqRXpDLHMyS0F1R0EsMHNFRDFEUSxZQUFZLHlTQUNaLGVBQWUsNlRBQ2YsYUFBYSxpdUJBQ2IsYUFBYSxrREFDYixxQkFBcUIsOERBQ3JCLGdCQUFnQixvRkFDaEIsMkJBQTJCLG9FQUMzQixvQkFBb0IsNEZBQ3BCLGFBQWEsb0xBQ2IsdUJBQXVCLGlFQUN2Qiw0QkFBNEIsaUlBQzVCLGtCQUFrQiwyREFDbEIsaUNBQWlDLGlmQUNqQyxxQkFBcUIseUtBQ3JCLGVBQWU7OzRGQU1WLDRCQUE0QjtrQkF4QnhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixhQUFhO3dCQUNiLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQiwyQkFBMkI7d0JBQzNCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYix1QkFBdUI7d0JBQ3ZCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixpQ0FBaUM7d0JBQ2pDLHFCQUFxQjt3QkFDckIsZUFBZTtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTs7MEJBMEJoQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3QsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgRW1wdHlMaXN0Q29tcG9uZW50LCBOb3RpZmljYXRpb25TZXJ2aWNlLCBUb29sYmFyQ29tcG9uZW50LCBUb29sYmFyVGl0bGVDb21wb25lbnQsIFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBBbGxvd2FibGVPcGVyYXRpb25zRW51bSB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbHMvYWxsb3dhYmxlLW9wZXJhdGlvbnMuZW51bSc7XG5pbXBvcnQgeyBDb250ZW50U2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy9jb250ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9zZXJ2aWNlcy91cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50RGF0YSB9IGZyb20gJy4vY29udGVudC1ub2RlLXNlbGVjdG9yLmNvbXBvbmVudC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBOb2RlRW50cnlFdmVudCB9IGZyb20gJy4uL2RvY3VtZW50LWxpc3QvY29tcG9uZW50cy9ub2RlLmV2ZW50JztcbmltcG9ydCB7IE5vZGVBY3Rpb24gfSBmcm9tICcuLi9kb2N1bWVudC1saXN0L21vZGVscy9ub2RlLWFjdGlvbi5lbnVtJztcbmltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRHJvcGRvd25CcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi9kcm9wZG93bi1icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlQ291bnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvbm9kZS1jb3VudGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBVcGxvYWREcmFnQXJlYUNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZC9jb21wb25lbnRzL3VwbG9hZC1kcmFnLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVVcGxvYWRpbmdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi91cGxvYWQvY29tcG9uZW50cy9maWxlLXVwbG9hZGluZy1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRlbnROb2RlU2VsZWN0b3JQYW5lbENvbXBvbmVudCB9IGZyb20gJy4vY29udGVudC1ub2RlLXNlbGVjdG9yLXBhbmVsL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci1wYW5lbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkL2NvbXBvbmVudHMvdXBsb2FkLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIFRvb2xiYXJUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgVG9vbGJhckNvbXBvbmVudCxcbiAgICAgICAgRHJvcGRvd25CcmVhZGNydW1iQ29tcG9uZW50LFxuICAgICAgICBOb2RlQ291bnRlckRpcmVjdGl2ZSxcbiAgICAgICAgTWF0SWNvbk1vZHVsZSxcbiAgICAgICAgVXBsb2FkRHJhZ0FyZWFDb21wb25lbnQsXG4gICAgICAgIEZpbGVVcGxvYWRpbmdEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEVtcHR5TGlzdENvbXBvbmVudCxcbiAgICAgICAgQ29udGVudE5vZGVTZWxlY3RvclBhbmVsQ29tcG9uZW50LFxuICAgICAgICBVcGxvYWRCdXR0b25Db21wb25lbnQsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZVxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29udGVudC1ub2RlLXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBDb250ZW50Tm9kZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGFjdGlvbjogTm9kZUFjdGlvbjtcbiAgICBidXR0b25BY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgY2hvc2VuTm9kZTogTm9kZVtdO1xuICAgIGN1cnJlbnREaXJlY3RvcnlJZDogc3RyaW5nO1xuICAgIHNob3dpbmdTZWFyY2ggPSBmYWxzZTtcbiAgICBoYXNBbGxvd2FibGVPcGVyYXRpb25zID0gZmFsc2U7XG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICBzZWxlY3RlZFRhYkluZGV4OiBudW1iZXIgPSAwO1xuICAgIHVwbG9hZFN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGVtcHR5Rm9sZGVySW1hZ2VVcmw6IHN0cmluZyA9ICcuL2Fzc2V0cy9pbWFnZXMvZW1wdHlfZG9jX2xpYi5zdmcnO1xuICAgIGJyZWFkY3J1bWJGb2xkZXJOb2RlOiBOb2RlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb250ZW50U2VydmljZTogQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB1cGxvYWRTZXJ2aWNlOiBVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nUmVmPENvbnRlbnROb2RlU2VsZWN0b3JDb21wb25lbnQ+LFxuICAgICAgICBwcml2YXRlIG92ZXJsYXlDb250YWluZXI6IE92ZXJsYXlDb250YWluZXIsXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29udGVudE5vZGVTZWxlY3RvckNvbXBvbmVudERhdGFcbiAgICApIHtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSBkYXRhLmFjdGlvbk5hbWUgPz8gTm9kZUFjdGlvbi5DSE9PU0U7XG4gICAgICAgIHRoaXMuYnV0dG9uQWN0aW9uTmFtZSA9IGBOT0RFX1NFTEVDVE9SLiR7dGhpcy5hY3Rpb259YDtcbiAgICAgICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XG4gICAgICAgIHRoaXMuY3VycmVudERpcmVjdG9yeUlkID0gZGF0YS5jdXJyZW50Rm9sZGVySWQ7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nXG4gICAgICAgICAgICAua2V5ZG93bkV2ZW50cygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50Py5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kaWFsb2dcbiAgICAgICAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kaWFsb2dcbiAgICAgICAgICAgIC5hZnRlck9wZW5lZCgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheUNvbnRhaW5lci5nZXRDb250YWluZXJFbGVtZW50KCkuc2V0QXR0cmlidXRlKCdyb2xlJywgJ21haW4nKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMudXBsb2FkU2VydmljZS5maWxlVXBsb2FkU3RhcnRpbmcucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjbG9zZSgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5vdmVybGF5Q29udGFpbmVyLmdldENvbnRhaW5lckVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ3JvbGUnLCAncmVnaW9uJyk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Qobm9kZUxpc3Q6IE5vZGVbXSkge1xuICAgICAgICB0aGlzLmNob3Nlbk5vZGUgPSBub2RlTGlzdDtcbiAgICB9XG5cbiAgICBvblNpdGVDaGFuZ2Uoc2l0ZVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZShzaXRlVGl0bGUpO1xuICAgIH1cblxuICAgIG9uTmF2aWdhdGlvbkNoYW5nZShwYXRoRWxlbWVudDogTm9kZUVudHJ5RXZlbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50RGlyZWN0b3J5SWQgPSBwYXRoRWxlbWVudC52YWx1ZS5pZDtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGF0YS5zZWxlY3QubmV4dCh0aGlzLmNob3Nlbk5vZGUpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVGl0bGUoc2l0ZVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuYWN0aW9uID09PSBOb2RlQWN0aW9uLkNIT09TRSAmJiBzaXRlVGl0bGUpIHtcbiAgICAgICAgICAgIHRoaXMudGl0bGUgPSB0aGlzLmdldFRpdGxlVHJhbnNsYXRpb24odGhpcy5hY3Rpb24sIHNpdGVUaXRsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUaXRsZVRyYW5zbGF0aW9uKGFjdGlvbjogTm9kZUFjdGlvbiwgbmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRpb24uaW5zdGFudChgTk9ERV9TRUxFQ1RPUi4ke2FjdGlvbn1fSVRFTWAsIHsgbmFtZTogdGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KG5hbWUpIH0pO1xuICAgIH1cblxuICAgIGdldFNlbGVjdGVkQ291bnQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hvc2VuTm9kZT8ubGVuZ3RoIHx8IDA7XG4gICAgfVxuXG4gICAgaXNDb3VudGVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9uID09PSBOb2RlQWN0aW9uLkFUVEFDSCB8fCB0aGlzLmFjdGlvbiA9PT0gTm9kZUFjdGlvbi5DSE9PU0U7XG4gICAgfVxuXG4gICAgaXNNdWx0aXBsZVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnO1xuICAgIH1cblxuICAgIG9uRXJyb3IoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihlcnJvcik7XG4gICAgfVxuXG4gICAgaXNDaG9vc2VCdXR0b25EaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkU2VydmljZS5pc1VwbG9hZGluZygpIHx8ICF0aGlzLmhhc05vZGVTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIGhhc05vZGVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hvc2VuTm9kZT8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBvblNob3dpbmdTZWFyY2godmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zaG93aW5nU2VhcmNoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25DdXJyZW50Rm9sZGVyKGN1cnJlbnRGb2xkZXI6IE5vZGUpIHtcbiAgICAgICAgdGhpcy5oYXNBbGxvd2FibGVPcGVyYXRpb25zID0gdGhpcy5jb250ZW50U2VydmljZS5oYXNBbGxvd2FibGVPcGVyYXRpb25zKGN1cnJlbnRGb2xkZXIsIEFsbG93YWJsZU9wZXJhdGlvbnNFbnVtLkNSRUFURSk7XG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYkZvbGRlck5vZGUgPSBjdXJyZW50Rm9sZGVyO1xuICAgIH1cblxuICAgIGlzTm90QWxsb3dlZFRvVXBsb2FkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93aW5nU2VhcmNoIHx8ICF0aGlzLmhhc0FsbG93YWJsZU9wZXJhdGlvbnM7XG4gICAgfVxuXG4gICAgb25Gb2xkZXJMb2FkZWQoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25UYWJTZWxlY3Rpb25DaGFuZ2UodGFiSW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICB9XG5cbiAgICBpc0ZpbGVTZXJ2ZXJUYWJTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9PT0gMDtcbiAgICB9XG5cbiAgICBpc0xvY2FsVXBsb2FkVGFiU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPT09IDE7XG4gICAgfVxuXG4gICAgaXNVcGxvYWRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jYW5QZXJmb3JtTG9jYWxVcGxvYWQoKSAmJiB0aGlzLmlzTG9jYWxVcGxvYWRUYWJTZWxlY3RlZCgpO1xuICAgIH1cblxuICAgIGNhblBlcmZvcm1Mb2NhbFVwbG9hZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YT8uc2hvd0xvY2FsVXBsb2FkQnV0dG9uO1xuICAgIH1cblxuICAgIGdldFdhcm5pbmdNZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLnNob3dpbmdTZWFyY2gpIHtcbiAgICAgICAgICAgIHJldHVybiAnTk9ERV9TRUxFQ1RPUi5VUExPQURfQlVUVE9OX1NFQVJDSF9XQVJOSU5HX01FU1NBR0UnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmhhc05vUGVybWlzc2lvblRvVXBsb2FkKCkgPyAnTk9ERV9TRUxFQ1RPUi5VUExPQURfQlVUVE9OX1BFUk1JU1NJT05fV0FSTklOR19NRVNTQUdFJyA6ICcnO1xuICAgIH1cblxuICAgIGhhc05vUGVybWlzc2lvblRvVXBsb2FkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGFzQWxsb3dhYmxlT3BlcmF0aW9ucyAmJiAhdGhpcy5zaG93aW5nU2VhcmNoICYmICF0aGlzLmlzTG9hZGluZztcbiAgICB9XG5cbiAgICBoYXNVcGxvYWRFcnJvcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd2luZ1NlYXJjaCB8fCB0aGlzLmhhc05vUGVybWlzc2lvblRvVXBsb2FkKCk7XG4gICAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWRpYWxvZy10aXRsZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbnRlbnQtbm9kZS1zZWxlY3Rvci10aXRsZVwiPnt7dGl0bGV9fTwvaDE+XG48bmctY29udGFpbmVyICpuZ0lmPVwiY2FuUGVyZm9ybUxvY2FsVXBsb2FkKCk7IGVsc2UgY29udGVudE5vZGVQYW5lbFwiPlxuICAgIDxtYXQtdGFiLWdyb3VwIGNsYXNzPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaWFsb2ctY29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgbWF0LWFsaWduLXRhYnM9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkSW5kZXhDaGFuZ2UpPVwib25UYWJTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgICA8bWF0LXRhYiBsYWJlbD1cInt7ICdOT0RFX1NFTEVDVE9SLlJFUE9TSVRPUlknIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PSdjb250ZW50Tm9kZVBhbmVsJyAvPlxuICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIDxtYXQtdGFiIFtkaXNhYmxlZF09XCJpc05vdEFsbG93ZWRUb1VwbG9hZCgpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1sb2NhbC11cGxvYWQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItbG9jYWwtdXBsb2FkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWRmLXRvb2xiYXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1kcm9wZG93bi1icmVhZGNydW1iXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItY29udGVudC1icmVhZGNydW1iXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb2xkZXJOb2RlXT1cImJyZWFkY3J1bWJGb2xkZXJOb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyb290SWRdPVwiZGF0YT8uY3VycmVudEZvbGRlcklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbnRlbnQtbm9kZS1zZWxlY3Rvci11cGxvYWQtYnJlYWRjcnVtYlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNDb3VudGVyVmlzaWJsZSgpXCIgW2FkZi1ub2RlLWNvdW50ZXJdPVwiZ2V0U2VsZWN0ZWRDb3VudCgpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYWRmLXRvb2xiYXItdGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDwvYWRmLXRvb2xiYXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXQtdGFiLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ05PREVfU0VMRUNUT1IuVVBMT0FEX0ZST01fREVWSUNFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaGFzVXBsb2FkRXJyb3IoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWNvbnRlbnQtbm9kZS1zZWxlY3Rvci1kaXNhYmxlZC10YWItaW5mby1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGdldFdhcm5pbmdNZXNzYWdlKCkgfCB0cmFuc2xhdGUgfX1cIj5pbmZvXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLWxvY2FsLXVwbG9hZC1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdXBsb2FkLWRyYWctYXJlYSBbcm9vdEZvbGRlcklkXT1cImN1cnJlbnREaXJlY3RvcnlJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbY2xhc3MuYWRmLXVwbG9hZC1kaWFsb2ctY29udGFpbmVyXT1cInVwbG9hZFN0YXJ0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YWRmLWZpbGUtdXBsb2FkaW5nLWRpYWxvZyBbYWx3YXlzVmlzaWJsZV09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFkZi1lbXB0eS1saXN0IGRhdGEtYXV0b21hdGlvbi1pZD1cImFkZi1lbXB0eS1saXN0XCIgKm5nSWY9XCIhdXBsb2FkU3RhcnRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZW1wdHktbGlzdF90ZW1wbGF0ZSBhZGYtZW1wdHktZm9sZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZW1wdHktZm9sZGVyLWRyYWctZHJvcFwiPnt7ICdBREYtREFUQVRBQkxFLkVNUFRZLkRSQUctQU5ELURST1AuVElUTEUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtZW1wdHktZm9sZGVyLWFueS1maWxlcy1oZXJlLXRvLWFkZFwiPnt7ICdBREYtREFUQVRBQkxFLkVNUFRZLkRSQUctQU5ELURST1AuU1VCVElUTEUnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW2FsdF09XCInQURGLURBVEFUQUJMRS5FTVBUWS5EUkFHLUFORC1EUk9QLlRJVExFJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwiYWRmLWVtcHR5LWZvbGRlci1pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJlbXB0eUZvbGRlckltYWdlVXJsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FkZi1lbXB0eS1saXN0PlxuICAgICAgICAgICAgICAgICAgICA8L2FkZi11cGxvYWQtZHJhZy1hcmVhPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbWF0LXRhYj5cbiAgICA8L21hdC10YWItZ3JvdXA+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50Tm9kZVBhbmVsPlxuICAgIDxhZGYtY29udGVudC1ub2RlLXNlbGVjdG9yLXBhbmVsXG4gICAgICBbY3VycmVudEZvbGRlcklkXT1cImRhdGE/LmN1cnJlbnRGb2xkZXJJZFwiXG4gICAgICBbcmVzdHJpY3RSb290VG9DdXJyZW50Rm9sZGVySWRdPVwiZGF0YT8ucmVzdHJpY3RSb290VG9DdXJyZW50Rm9sZGVySWRcIlxuICAgICAgW2Ryb3Bkb3duSGlkZU15RmlsZXNdPVwiZGF0YT8uZHJvcGRvd25IaWRlTXlGaWxlc1wiXG4gICAgICBbZHJvcGRvd25TaXRlTGlzdF09XCJkYXRhPy5kcm9wZG93blNpdGVMaXN0XCJcbiAgICAgIFtyb3dGaWx0ZXJdPVwiZGF0YT8ucm93RmlsdGVyXCJcbiAgICAgIFtpbWFnZVJlc29sdmVyXT1cImRhdGE/LmltYWdlUmVzb2x2ZXJcIlxuICAgICAgW2lzU2VsZWN0aW9uVmFsaWRdPVwiZGF0YT8uaXNTZWxlY3Rpb25WYWxpZFwiXG4gICAgICBbYnJlYWRjcnVtYlRyYW5zZm9ybV09XCJkYXRhPy5icmVhZGNydW1iVHJhbnNmb3JtXCJcbiAgICAgIFtleGNsdWRlU2l0ZUNvbnRlbnRdPVwiZGF0YT8uZXhjbHVkZVNpdGVDb250ZW50XCJcbiAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cImRhdGE/LnNlbGVjdGlvbk1vZGVcIlxuICAgICAgW3doZXJlXT1cImRhdGE/LndoZXJlXCJcbiAgICAgIFtzaG93U2VhcmNoXT1cImRhdGE/LnNob3dTZWFyY2hcIlxuICAgICAgW3Nob3dEcm9wZG93blNpdGVMaXN0XT1cImRhdGE/LnNob3dEcm9wZG93blNpdGVMaXN0XCJcbiAgICAgIFtzaG93RmlsZXNJblJlc3VsdF09XCJkYXRhPy5zaG93RmlsZXNJblJlc3VsdFwiXG4gICAgICBbc2hvd05vZGVDb3VudGVyXT1cImlzQ291bnRlclZpc2libGUoKVwiXG4gICAgICAoY3VycmVudEZvbGRlcik9XCJvbkN1cnJlbnRGb2xkZXIoJGV2ZW50KVwiXG4gICAgICAoZm9sZGVyTG9hZGVkKT1cIm9uRm9sZGVyTG9hZGVkKClcIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChzaG93aW5nU2VhcmNoKT1cIm9uU2hvd2luZ1NlYXJjaCgkZXZlbnQpXCJcbiAgICAgIChzaXRlQ2hhbmdlKT1cIm9uU2l0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChuYXZpZ2F0aW9uQ2hhbmdlKT1cIm9uTmF2aWdhdGlvbkNoYW5nZSgkZXZlbnQpXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFkZi1jb250ZW50LW5vZGUtc2VsZWN0b3ItZGlhbG9nLWFjdGlvbnNcIj5cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNVcGxvYWRFbmFibGVkKClcIj5cbiAgICAgICAgICAgIDxhZGYtdXBsb2FkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtzdGF0aWNUaXRsZV09XCInRk9STS5GSUVMRC5VUExPQUQnIHwgdHJhbnNsYXRlIFwiXG4gICAgICAgICAgICAgICAgW211bHRpcGxlRmlsZXNdPVwiaXNNdWx0aXBsZVNlbGVjdGlvbigpXCJcbiAgICAgICAgICAgICAgICBbcm9vdEZvbGRlcklkXT1cImN1cnJlbnREaXJlY3RvcnlJZFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QWxsb3dlZFRvVXBsb2FkKClcIlxuICAgICAgICAgICAgICAgIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjb250ZW50LW5vZGUtc2VsZWN0b3ItYWN0aW9ucy1jYW5jZWxcIj57eyAnTk9ERV9TRUxFQ1RPUi5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b24gbWF0LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Nob29zZUJ1dHRvbkRpc2FibGVkKClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWNob29zZS1hY3Rpb25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImNvbnRlbnQtbm9kZS1zZWxlY3Rvci1hY3Rpb25zLWNob29zZVwiPnt7IGJ1dHRvbkFjdGlvbk5hbWUgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
@@ -19,7 +19,7 @@ import { InfiniteSelectScrollDirective, AuthenticationService } from '@alfresco/
|
|
|
19
19
|
import { SitePaging, SiteEntry, Site } from '@alfresco/js-api';
|
|
20
20
|
import { MatSelectModule } from '@angular/material/select';
|
|
21
21
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
22
|
-
import {
|
|
22
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
23
23
|
import { SitesService } from '../../common/services/sites.service';
|
|
24
24
|
import { CommonModule } from '@angular/common';
|
|
25
25
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
@@ -145,11 +145,11 @@ export class DropdownSitesComponent {
|
|
|
145
145
|
!!site.relations.members.list.entries.find((member) => member.entry.id.toLowerCase() === loggedUserName.toLowerCase()));
|
|
146
146
|
}
|
|
147
147
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, deps: [{ token: i1.AuthenticationService }, { token: i2.SitesService }, { token: i3.LiveAnnouncer }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
148
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownSitesComponent, isStandalone: true, selector: "adf-sites-dropdown", inputs: { hideMyFiles: "hideMyFiles", siteList: "siteList", value: "value", placeholder: "placeholder", relations: "relations" }, outputs: { change: "change", error: "error" }, host: { classAttribute: "adf-sites-dropdown" }, ngImport: i0, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
148
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DropdownSitesComponent, isStandalone: true, selector: "adf-sites-dropdown", inputs: { hideMyFiles: "hideMyFiles", siteList: "siteList", value: "value", placeholder: "placeholder", relations: "relations" }, outputs: { change: "change", error: "error" }, host: { classAttribute: "adf-sites-dropdown" }, ngImport: i0, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: InfiniteSelectScrollDirective, selector: "[adf-infinite-select-scroll]", outputs: ["scrollEnd"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
149
149
|
}
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DropdownSitesComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
152
|
-
args: [{ selector: 'adf-sites-dropdown', standalone: true, imports: [CommonModule,
|
|
152
|
+
args: [{ selector: 'adf-sites-dropdown', standalone: true, imports: [CommonModule, TranslatePipe, MatFormFieldModule, MatSelectModule, InfiniteSelectScrollDirective], encapsulation: ViewEncapsulation.None, host: { class: 'adf-sites-dropdown' }, template: "<div id=\"site-dropdown-container\" class=\"adf-site-dropdown-container\">\n <mat-form-field class=\"adf-sites-dropdown-form-field\" appearance=\"fill\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'NODE_SELECTOR.LOCATION' | translate }}</mat-label>\n <mat-select\n adf-infinite-select-scroll\n (scrollEnd)=\"loadAllOnScroll()\"\n #siteSelect\n data-automation-id=\"site-my-files-option\"\n class=\"adf-site-dropdown-list-element\"\n id=\"site-dropdown\"\n placeholder=\"{{placeholder | translate}}\"\n [(value)]=\"selected\"\n placeholder=\"{{placeholder | translate}}\"\n (selectionChange)=\"selectedSite($event)\">\n <mat-select-trigger class=\"adf-sites-dropdown-select-trigger\">\n {{ selected?.entry.title | translate}}\n </mat-select-trigger>\n <mat-option *ngFor=\"let site of siteList?.list.entries;\" [value]=\"site\">\n {{ site.entry.title | translate}}\n </mat-option>\n <mat-option *ngIf=\"showLoading()\" disabled=\"true\" data-automation-id=\"site-loading\">\n {{ 'ADF_DROPDOWN.LOADING' | translate}}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</div>\n" }]
|
|
153
153
|
}], ctorParameters: () => [{ type: i1.AuthenticationService }, { type: i2.SitesService }, { type: i3.LiveAnnouncer }, { type: i4.TranslateService }], propDecorators: { hideMyFiles: [{
|
|
154
154
|
type: Input
|
|
155
155
|
}], siteList: [{
|
|
@@ -165,4 +165,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
165
165
|
}], error: [{
|
|
166
166
|
type: Output
|
|
167
167
|
}] } });
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW5vZGUtc2VsZWN0b3Ivc2l0ZS1kcm9wZG93bi9zaXRlcy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9zaXRlLWRyb3Bkb3duL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsOEJBQThCO0FBQzlCLHlEQUF5RDtBQUV6RCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQs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T0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pILENBQUM7SUFDTixDQUFDOytHQXZKUSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrU0MzQ25DLCt5Q0EwQkEsMkNEWWMsWUFBWSwrUEFBRSxlQUFlLDJGQUFFLGtCQUFrQiwwU0FBRSxlQUFlLHN3QkFBRSw2QkFBNkI7OzRGQUtsRyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixDQUFDLGlCQUU3RixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2dMQUtyQyxXQUFXO3NCQURWLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sU0FBUztzQkFEUixLQUFLO2dCQVFOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNpdGVQYWdpbmcsIFNpdGVFbnRyeSwgU2l0ZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU2l0ZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3NpdGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1zaGFkb3cgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuXG5leHBvcnQgZW51bSBSZWxhdGlvbnMge1xuICAgIE1lbWJlcnMgPSAnbWVtYmVycycsXG4gICAgQ29udGFpbmVycyA9ICdjb250YWluZXJzJ1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zaXRlcy1kcm9wZG93bicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdEZvcm1GaWVsZE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZV0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtc2l0ZXMtZHJvcGRvd24nIH1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25TaXRlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIEhpZGUgdGhlIFwiTXkgRmlsZXNcIiBvcHRpb24uICovXG4gICAgQElucHV0KClcbiAgICBoaWRlTXlGaWxlczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQSBjdXN0b20gbGlzdCBvZiBzaXRlcyB0byBiZSBkaXNwbGF5ZWQgYnkgdGhlIGRyb3Bkb3duLiBJZiBubyB2YWx1ZVxuICAgICAqIGlzIGdpdmVuLCB0aGUgc2l0ZXMgb2YgdGhlIGN1cnJlbnQgdXNlciBhcmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQuIEFcbiAgICAgKiBsaXN0IG9mIG9iamVjdHMgb25seSB3aXRoIHByb3BlcnRpZXMgJ3RpdGxlJyBhbmQgJ2d1aWQnIGlzIGVub3VnaCB0b1xuICAgICAqIGJlIGFibGUgdG8gZGlzcGxheSB0aGUgZHJvcGRvd24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaXRlTGlzdDogU2l0ZVBhZ2luZyA9IG51bGw7XG5cbiAgICAvKiogSWQgb2YgdGhlIHNlbGVjdGVkIHNpdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHZhbHVlOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBvciBhIHRyYW5zbGF0aW9uIGtleSB0byBhY3QgYXMgYSBwbGFjZWhvbGRlci4gRGVmYXVsdCB2YWx1ZSBpcyB0aGVcbiAgICAgKiBrZXkgXCJEUk9QRE9XTi5QTEFDRUhPTERFUl9MQUJFTFwiLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdEUk9QRE9XTi5QTEFDRUhPTERFUl9MQUJFTCc7XG5cbiAgICAvKipcbiAgICAgKiBGaWx0ZXIgZm9yIHRoZSByZXN1bHRzIG9mIHRoZSBzaXRlcyBxdWVyeS4gUG9zc2libGUgdmFsdWVzIGFyZVxuICAgICAqIFwibWVtYmVyc1wiIGFuZCBcImNvbnRhaW5lcnNcIi4gV2hlbiBcIm1lbWJlcnNcIiBpcyB1c2VkLCB0aGUgc2l0ZSBsaXN0XG4gICAgICogd2lsbCBiZSByZXN0cmljdGVkIHRvIHRoZSBzaXRlcyB0aGF0IHRoZSB1c2VyIGlzIGEgbWVtYmVyIG9mLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVsYXRpb25zOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhIHNpdGUuIFdoZW4gdGhlIGRlZmF1bHQgb3B0aW9uIGlzIHNlbGVjdGVkLFxuICAgICAqIGFuIGVtcHR5IG1vZGVsIGlzIGVtaXR0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTaXRlRW50cnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nID0gdHJ1ZTtcbiAgICBwcml2YXRlIHNraXBDb3VudCA9IDA7XG5cbiAgICBzZWxlY3RlZDogU2l0ZUVudHJ5ID0gbnVsbDtcbiAgICBNWV9GSUxFU19WQUxVRSA9ICctbXktJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGl2ZUFubm91bmNlcjogTGl2ZUFubm91bmNlcixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5zaXRlTGlzdCkge1xuICAgICAgICAgICAgdGhpcy5sb2FkU2l0ZUxpc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGxvYWRBbGxPblNjcm9sbCgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNJbmZpbml0ZVNjcm9sbGluZ0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubG9hZFNpdGVMaXN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZFNpdGUoZXZlbnQ6IE1hdFNlbGVjdENoYW5nZSkge1xuICAgICAgICB0aGlzLmxpdmVBbm5vdW5jZXIuYW5ub3VuY2UoXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnQURGX0RST1BET1dOLlNFTEVDVElPTl9BUklBX0xBQkVMJywge1xuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh0aGlzLnBsYWNlaG9sZGVyKSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXZlbnQudmFsdWUuZW50cnkudGl0bGUpXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGV2ZW50LnZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRTaXRlTGlzdCgpIHtcbiAgICAgICAgY29uc3QgZXh0ZW5kZWRPcHRpb25zOiBhbnkgPSB7XG4gICAgICAgICAgICBza2lwQ291bnQ6IHRoaXMuc2tpcENvdW50LFxuICAgICAgICAgICAgbWF4SXRlbXM6IEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlLk1BWF9JVEVNU1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuc2tpcENvdW50ICs9IEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlLk1BWF9JVEVNUztcblxuICAgICAgICBpZiAodGhpcy5yZWxhdGlvbnMpIHtcbiAgICAgICAgICAgIGV4dGVuZGVkT3B0aW9ucy5yZWxhdGlvbnMgPSBbdGhpcy5yZWxhdGlvbnNdO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zaXRlc1NlcnZpY2UuZ2V0U2l0ZXMoZXh0ZW5kZWRPcHRpb25zKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoc2l0ZVBhZ2luZzogU2l0ZVBhZ2luZykgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zaXRlTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0ID0gdGhpcy5yZWxhdGlvbnMgPT09IFJlbGF0aW9ucy5NZW1iZXJzID8gdGhpcy5maWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlUGFnaW5nKSA6IHNpdGVQYWdpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmhpZGVNeUZpbGVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXRlRW50cnkgPSBuZXcgU2l0ZUVudHJ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeTogbmV3IFNpdGUoeyBpZDogdGhpcy5NWV9GSUxFU19WQUxVRSwgZ3VpZDogdGhpcy5NWV9GSUxFU19WQUxVRSwgdGl0bGU6ICdEUk9QRE9XTi5NWV9GSUxFU19PUFRJT04nIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMudW5zaGlmdChzaXRlRW50cnkpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5NWV9GSUxFU19WQUxVRTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVMaXN0OiBTaXRlUGFnaW5nID0gdGhpcy5yZWxhdGlvbnMgPT09IFJlbGF0aW9ucy5NZW1iZXJzID8gdGhpcy5maWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlUGFnaW5nKSA6IHNpdGVQYWdpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMgPSB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy5jb25jYXQoc2l0ZUxpc3QubGlzdC5lbnRyaWVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaXRlTGlzdC5saXN0LnBhZ2luYXRpb24gPSBzaXRlUGFnaW5nLmxpc3QucGFnaW5hdGlvbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5zaXRlTGlzdC5saXN0LmVudHJpZXMuZmluZCgoc2l0ZTogU2l0ZUVudHJ5KSA9PiBzaXRlLmVudHJ5LmlkID09PSB0aGlzLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmICF0aGlzLnNlbGVjdGVkICYmIHRoaXMuc2l0ZUxpc3RIYXNNb3JlSXRlbXMoKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRTaXRlTGlzdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2hvd0xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmcgJiYgdGhpcy5zaXRlTGlzdEhhc01vcmVJdGVtcygpO1xuICAgIH1cblxuICAgIGlzSW5maW5pdGVTY3JvbGxpbmdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMubG9hZGluZyAmJiB0aGlzLnNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaXRlTGlzdEhhc01vcmVJdGVtcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2l0ZUxpc3Q/Lmxpc3QucGFnaW5hdGlvbj8uaGFzTW9yZUl0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyZWRSZXN1bHRzQnlNZW1iZXIoc2l0ZXM6IFNpdGVQYWdpbmcpOiBTaXRlUGFnaW5nIHtcbiAgICAgICAgY29uc3QgbG9nZ2VkVXNlck5hbWUgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEVjbVVzZXJuYW1lKCk7XG4gICAgICAgIHNpdGVzLmxpc3QuZW50cmllcyA9IHNpdGVzLmxpc3QuZW50cmllcy5maWx0ZXIoKHNpdGUpID0+IHRoaXMuaXNDdXJyZW50VXNlck1lbWJlcihzaXRlLCBsb2dnZWRVc2VyTmFtZSkpO1xuICAgICAgICByZXR1cm4gc2l0ZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0N1cnJlbnRVc2VyTWVtYmVyKHNpdGU6IFNpdGVFbnRyeSwgbG9nZ2VkVXNlck5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc2l0ZS5lbnRyeS52aXNpYmlsaXR5ID09PSAnUFVCTElDJyB8fFxuICAgICAgICAgICAgISFzaXRlLnJlbGF0aW9ucy5tZW1iZXJzLmxpc3QuZW50cmllcy5maW5kKChtZW1iZXIpID0+IG1lbWJlci5lbnRyeS5pZC50b0xvd2VyQ2FzZSgpID09PSBsb2dnZWRVc2VyTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgaWQ9XCJzaXRlLWRyb3Bkb3duLWNvbnRhaW5lclwiIGNsYXNzPVwiYWRmLXNpdGUtZHJvcGRvd24tY29udGFpbmVyXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLXNpdGVzLWRyb3Bkb3duLWZvcm0tZmllbGRcIiBhcHBlYXJhbmNlPVwiZmlsbFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyAnTk9ERV9TRUxFQ1RPUi5MT0NBVElPTicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIGFkZi1pbmZpbml0ZS1zZWxlY3Qtc2Nyb2xsXG4gICAgICAgICAgICAoc2Nyb2xsRW5kKT1cImxvYWRBbGxPblNjcm9sbCgpXCJcbiAgICAgICAgICAgICNzaXRlU2VsZWN0XG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJzaXRlLW15LWZpbGVzLW9wdGlvblwiXG4gICAgICAgICAgICBjbGFzcz1cImFkZi1zaXRlLWRyb3Bkb3duLWxpc3QtZWxlbWVudFwiXG4gICAgICAgICAgICBpZD1cInNpdGUtZHJvcGRvd25cIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgWyh2YWx1ZSldPVwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7e3BsYWNlaG9sZGVyIHwgdHJhbnNsYXRlfX1cIlxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3RlZFNpdGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlciBjbGFzcz1cImFkZi1zaXRlcy1kcm9wZG93bi1zZWxlY3QtdHJpZ2dlclwiPlxuICAgICAgICAgICAgICAgIHt7IHNlbGVjdGVkPy5lbnRyeS50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVMaXN0Py5saXN0LmVudHJpZXM7XCIgW3ZhbHVlXT1cInNpdGVcIj5cbiAgICAgICAgICAgICAgICB7eyBzaXRlLmVudHJ5LnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwic2hvd0xvYWRpbmcoKVwiIGRpc2FibGVkPVwidHJ1ZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cInNpdGUtbG9hZGluZ1wiPlxuICAgICAgICAgICAgICAgIHt7ICdBREZfRFJPUERPV04uTE9BRElORycgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l0ZXMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9jb250ZW50LW5vZGUtc2VsZWN0b3Ivc2l0ZS1kcm9wZG93bi9zaXRlcy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2NvbnRlbnQtbm9kZS1zZWxlY3Rvci9zaXRlLWRyb3Bkb3duL3NpdGVzLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFtQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7QUFFbEUsOEJBQThCO0FBQzlCLHlEQUF5RDtBQUV6RCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQs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T0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3pILENBQUM7SUFDTixDQUFDOytHQXZKUSxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrU0MzQ25DLCt5Q0EwQkEsMkNEWWMsWUFBWSwyUEFBRSxhQUFhLGlEQUFFLGtCQUFrQiwwU0FBRSxlQUFlLHN3QkFBRSw2QkFBNkI7OzRGQUtoRyxzQkFBc0I7a0JBUmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGNBQ2xCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLDZCQUE2QixDQUFDLGlCQUUzRixpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFO2dMQUtyQyxXQUFXO3NCQURWLEtBQUs7Z0JBVU4sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFRTixXQUFXO3NCQURWLEtBQUs7Z0JBU04sU0FBUztzQkFEUixLQUFLO2dCQVFOLE1BQU07c0JBREwsTUFBTTtnQkFJUCxLQUFLO3NCQURKLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVNlbGVjdFNjcm9sbERpcmVjdGl2ZSwgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IFNpdGVQYWdpbmcsIFNpdGVFbnRyeSwgU2l0ZSB9IGZyb20gJ0BhbGZyZXNjby9qcy1hcGknO1xuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFNpdGVzU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9zaXRlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcblxuLyogZXNsaW50LWRpc2FibGUgbm8tc2hhZG93ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cblxuZXhwb3J0IGVudW0gUmVsYXRpb25zIHtcbiAgICBNZW1iZXJzID0gJ21lbWJlcnMnLFxuICAgIENvbnRhaW5lcnMgPSAnY29udGFpbmVycydcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2l0ZXMtZHJvcGRvd24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIEluZmluaXRlU2VsZWN0U2Nyb2xsRGlyZWN0aXZlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2l0ZXMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zaXRlcy1kcm9wZG93bicgfVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93blNpdGVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogSGlkZSB0aGUgXCJNeSBGaWxlc1wiIG9wdGlvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVNeUZpbGVzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBsaXN0IG9mIHNpdGVzIHRvIGJlIGRpc3BsYXllZCBieSB0aGUgZHJvcGRvd24uIElmIG5vIHZhbHVlXG4gICAgICogaXMgZ2l2ZW4sIHRoZSBzaXRlcyBvZiB0aGUgY3VycmVudCB1c2VyIGFyZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gQVxuICAgICAqIGxpc3Qgb2Ygb2JqZWN0cyBvbmx5IHdpdGggcHJvcGVydGllcyAndGl0bGUnIGFuZCAnZ3VpZCcgaXMgZW5vdWdoIHRvXG4gICAgICogYmUgYWJsZSB0byBkaXNwbGF5IHRoZSBkcm9wZG93bi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNpdGVMaXN0OiBTaXRlUGFnaW5nID0gbnVsbDtcblxuICAgIC8qKiBJZCBvZiB0aGUgc2VsZWN0ZWQgc2l0ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmFsdWU6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IG9yIGEgdHJhbnNsYXRpb24ga2V5IHRvIGFjdCBhcyBhIHBsYWNlaG9sZGVyLiBEZWZhdWx0IHZhbHVlIGlzIHRoZVxuICAgICAqIGtleSBcIkRST1BET1dOLlBMQUNFSE9MREVSX0xBQkVMXCIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ0RST1BET1dOLlBMQUNFSE9MREVSX0xBQkVMJztcblxuICAgIC8qKlxuICAgICAqIEZpbHRlciBmb3IgdGhlIHJlc3VsdHMgb2YgdGhlIHNpdGVzIHF1ZXJ5LiBQb3NzaWJsZSB2YWx1ZXMgYXJlXG4gICAgICogXCJtZW1iZXJzXCIgYW5kIFwiY29udGFpbmVyc1wiLiBXaGVuIFwibWVtYmVyc1wiIGlzIHVzZWQsIHRoZSBzaXRlIGxpc3RcbiAgICAgKiB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gdGhlIHNpdGVzIHRoYXQgdGhlIHVzZXIgaXMgYSBtZW1iZXIgb2YuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByZWxhdGlvbnM6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgdXNlciBzZWxlY3RzIGEgc2l0ZS4gV2hlbiB0aGUgZGVmYXVsdCBvcHRpb24gaXMgc2VsZWN0ZWQsXG4gICAgICogYW4gZW1wdHkgbW9kZWwgaXMgZW1pdHRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNpdGVFbnRyeT4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBwcml2YXRlIGxvYWRpbmcgPSB0cnVlO1xuICAgIHByaXZhdGUgc2tpcENvdW50ID0gMDtcblxuICAgIHNlbGVjdGVkOiBTaXRlRW50cnkgPSBudWxsO1xuICAgIE1ZX0ZJTEVTX1ZBTFVFID0gJy1teS0nO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzaXRlc1NlcnZpY2U6IFNpdGVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsaXZlQW5ub3VuY2VyOiBMaXZlQW5ub3VuY2VyLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnNpdGVMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRTaXRlTGlzdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbG9hZEFsbE9uU2Nyb2xsKCkge1xuICAgICAgICBpZiAodGhpcy5pc0luZmluaXRlU2Nyb2xsaW5nRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5sb2FkU2l0ZUxpc3QoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdGVkU2l0ZShldmVudDogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgICAgIHRoaXMubGl2ZUFubm91bmNlci5hbm5vdW5jZShcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdBREZfRFJPUERPV04uU0VMRUNUSU9OX0FSSUFfTEFCRUwnLCB7XG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMucGxhY2Vob2xkZXIpLFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChldmVudC52YWx1ZS5lbnRyeS50aXRsZSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQudmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFNpdGVMaXN0KCkge1xuICAgICAgICBjb25zdCBleHRlbmRlZE9wdGlvbnM6IGFueSA9IHtcbiAgICAgICAgICAgIHNraXBDb3VudDogdGhpcy5za2lwQ291bnQsXG4gICAgICAgICAgICBtYXhJdGVtczogSW5maW5pdGVTZWxlY3RTY3JvbGxEaXJlY3RpdmUuTUFYX0lURU1TXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5za2lwQ291bnQgKz0gSW5maW5pdGVTZWxlY3RTY3JvbGxEaXJlY3RpdmUuTUFYX0lURU1TO1xuXG4gICAgICAgIGlmICh0aGlzLnJlbGF0aW9ucykge1xuICAgICAgICAgICAgZXh0ZW5kZWRPcHRpb25zLnJlbGF0aW9ucyA9IFt0aGlzLnJlbGF0aW9uc107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNpdGVzU2VydmljZS5nZXRTaXRlcyhleHRlbmRlZE9wdGlvbnMpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChzaXRlUGFnaW5nOiBTaXRlUGFnaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNpdGVMaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2l0ZUxpc3QgPSB0aGlzLnJlbGF0aW9ucyA9PT0gUmVsYXRpb25zLk1lbWJlcnMgPyB0aGlzLmZpbHRlcmVkUmVzdWx0c0J5TWVtYmVyKHNpdGVQYWdpbmcpIDogc2l0ZVBhZ2luZztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaGlkZU15RmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpdGVFbnRyeSA9IG5ldyBTaXRlRW50cnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5OiBuZXcgU2l0ZSh7IGlkOiB0aGlzLk1ZX0ZJTEVTX1ZBTFVFLCBndWlkOiB0aGlzLk1ZX0ZJTEVTX1ZBTFVFLCB0aXRsZTogJ0RST1BET1dOLk1ZX0ZJTEVTX09QVElPTicgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy51bnNoaWZ0KHNpdGVFbnRyeSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLk1ZX0ZJTEVTX1ZBTFVFO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2l0ZUxpc3Q6IFNpdGVQYWdpbmcgPSB0aGlzLnJlbGF0aW9ucyA9PT0gUmVsYXRpb25zLk1lbWJlcnMgPyB0aGlzLmZpbHRlcmVkUmVzdWx0c0J5TWVtYmVyKHNpdGVQYWdpbmcpIDogc2l0ZVBhZ2luZztcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcyA9IHRoaXMuc2l0ZUxpc3QubGlzdC5lbnRyaWVzLmNvbmNhdChzaXRlTGlzdC5saXN0LmVudHJpZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNpdGVMaXN0Lmxpc3QucGFnaW5hdGlvbiA9IHNpdGVQYWdpbmcubGlzdC5wYWdpbmF0aW9uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0aGlzLnNpdGVMaXN0Lmxpc3QuZW50cmllcy5maW5kKChzaXRlOiBTaXRlRW50cnkpID0+IHNpdGUuZW50cnkuaWQgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgIXRoaXMuc2VsZWN0ZWQgJiYgdGhpcy5zaXRlTGlzdEhhc01vcmVJdGVtcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFNpdGVMaXN0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG93TG9hZGluZygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZGluZyAmJiB0aGlzLnNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk7XG4gICAgfVxuXG4gICAgaXNJbmZpbml0ZVNjcm9sbGluZ0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5sb2FkaW5nICYmIHRoaXMuc2l0ZUxpc3RIYXNNb3JlSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNpdGVMaXN0SGFzTW9yZUl0ZW1zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXRlTGlzdD8ubGlzdC5wYWdpbmF0aW9uPy5oYXNNb3JlSXRlbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJlZFJlc3VsdHNCeU1lbWJlcihzaXRlczogU2l0ZVBhZ2luZyk6IFNpdGVQYWdpbmcge1xuICAgICAgICBjb25zdCBsb2dnZWRVc2VyTmFtZSA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0RWNtVXNlcm5hbWUoKTtcbiAgICAgICAgc2l0ZXMubGlzdC5lbnRyaWVzID0gc2l0ZXMubGlzdC5lbnRyaWVzLmZpbHRlcigoc2l0ZSkgPT4gdGhpcy5pc0N1cnJlbnRVc2VyTWVtYmVyKHNpdGUsIGxvZ2dlZFVzZXJOYW1lKSk7XG4gICAgICAgIHJldHVybiBzaXRlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ3VycmVudFVzZXJNZW1iZXIoc2l0ZTogU2l0ZUVudHJ5LCBsb2dnZWRVc2VyTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBzaXRlLmVudHJ5LnZpc2liaWxpdHkgPT09ICdQVUJMSUMnIHx8XG4gICAgICAgICAgICAhIXNpdGUucmVsYXRpb25zLm1lbWJlcnMubGlzdC5lbnRyaWVzLmZpbmQoKG1lbWJlcikgPT4gbWVtYmVyLmVudHJ5LmlkLnRvTG93ZXJDYXNlKCkgPT09IGxvZ2dlZFVzZXJOYW1lLnRvTG93ZXJDYXNlKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGRpdiBpZD1cInNpdGUtZHJvcGRvd24tY29udGFpbmVyXCIgY2xhc3M9XCJhZGYtc2l0ZS1kcm9wZG93bi1jb250YWluZXJcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2l0ZXMtZHJvcGRvd24tZm9ybS1maWVsZFwiIGFwcGVhcmFuY2U9XCJmaWxsXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7ICdOT0RFX1NFTEVDVE9SLkxPQ0FUSU9OJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgYWRmLWluZmluaXRlLXNlbGVjdC1zY3JvbGxcbiAgICAgICAgICAgIChzY3JvbGxFbmQpPVwibG9hZEFsbE9uU2Nyb2xsKClcIlxuICAgICAgICAgICAgI3NpdGVTZWxlY3RcbiAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cInNpdGUtbXktZmlsZXMtb3B0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWRmLXNpdGUtZHJvcGRvd24tbGlzdC1lbGVtZW50XCJcbiAgICAgICAgICAgIGlkPVwic2l0ZS1kcm9wZG93blwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXIgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICBbKHZhbHVlKV09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cInt7cGxhY2Vob2xkZXIgfCB0cmFuc2xhdGV9fVwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGVkU2l0ZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyIGNsYXNzPVwiYWRmLXNpdGVzLWRyb3Bkb3duLXNlbGVjdC10cmlnZ2VyXCI+XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0ZWQ/LmVudHJ5LnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNpdGUgb2Ygc2l0ZUxpc3Q/Lmxpc3QuZW50cmllcztcIiBbdmFsdWVdPVwic2l0ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHNpdGUuZW50cnkudGl0bGUgfCB0cmFuc2xhdGV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJzaG93TG9hZGluZygpXCIgZGlzYWJsZWQ9XCJ0cnVlXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwic2l0ZS1sb2FkaW5nXCI+XG4gICAgICAgICAgICAgICAge3sgJ0FERl9EUk9QRE9XTi5MT0FESU5HJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+XG4iXX0=
|