nuxeo-development-framework 5.2.0 → 5.2.2
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/bundles/nuxeo-development-framework.umd.js +34 -3
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +1 -1
- package/esm2015/lib/components/table/table/table.component.js +37 -4
- package/fesm2015/nuxeo-development-framework.js +34 -4
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/table/table/table.component.d.ts +13 -4
- package/package.json +1 -1
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
var _TableComponent_resizeObserver;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
3
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
4
|
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { DatatableComponent } from '@swimlane/ngx-datatable';
|
|
6
|
+
import { map } from 'rxjs/operators';
|
|
3
7
|
import * as i0 from "@angular/core";
|
|
4
8
|
import * as i1 from "../../../core/services/nuxeo/nuxeo.service";
|
|
5
9
|
import * as i2 from "../../../configuration/app-config.service";
|
|
@@ -58,6 +62,7 @@ const TABLE_MODE = {
|
|
|
58
62
|
*/
|
|
59
63
|
export class TableComponent {
|
|
60
64
|
constructor(nuxeoService, appConfig, translation) {
|
|
65
|
+
var _a;
|
|
61
66
|
this.nuxeoService = nuxeoService;
|
|
62
67
|
this.appConfig = appConfig;
|
|
63
68
|
this.translation = translation;
|
|
@@ -100,14 +105,19 @@ export class TableComponent {
|
|
|
100
105
|
this.tableWidth = 'auto';
|
|
101
106
|
this.tableColumnsSub = new BehaviorSubject([]);
|
|
102
107
|
this.tableColumns$ = this.tableColumnsSub.asObservable();
|
|
108
|
+
_TableComponent_resizeObserver.set(this, void 0);
|
|
109
|
+
this.defaultColumnSize = 200;
|
|
110
|
+
this.sumOfColumnSizes$ = this.tableColumns$.pipe(map((columns) => columns.reduce((sum, col) => sum + (col.size || this.defaultColumnSize), 0) + (this.multiSelectRows ? 30 : 0)));
|
|
103
111
|
this.selected = [];
|
|
104
112
|
this.pageNumber = 1;
|
|
105
113
|
this.responsiveView = false;
|
|
106
114
|
this.statusIcons = {}; // object to contains all status icons if exist
|
|
107
115
|
this.directionIcons = {}; // object to contains all direction icons if exist
|
|
116
|
+
this.isFixedOptionColumns = false;
|
|
108
117
|
this.format = this.appConfig.myConfiguration['dateFormate'];
|
|
109
118
|
this.statusIcons = this.appConfig.myConfiguration['statusIcons'];
|
|
110
119
|
this.directionIcons = this.appConfig.myConfiguration['directionIcons'];
|
|
120
|
+
this.isFixedOptionColumns = (_a = this.appConfig.myConfiguration.tables) === null || _a === void 0 ? void 0 : _a.isFixedOptionColumns;
|
|
111
121
|
this.langSubscription = this.translation.isArabic.subscribe((res) => {
|
|
112
122
|
this.isArabic = res;
|
|
113
123
|
});
|
|
@@ -122,6 +132,20 @@ export class TableComponent {
|
|
|
122
132
|
get tableColumns() {
|
|
123
133
|
return this.tableColumnsSub.getValue();
|
|
124
134
|
}
|
|
135
|
+
ngAfterViewInit() {
|
|
136
|
+
var _a;
|
|
137
|
+
if (!((_a = this.tableContainer) === null || _a === void 0 ? void 0 : _a.nativeElement))
|
|
138
|
+
return;
|
|
139
|
+
__classPrivateFieldSet(this, _TableComponent_resizeObserver, new ResizeObserver((entries) => {
|
|
140
|
+
this.dataTable.recalculate();
|
|
141
|
+
}), "f");
|
|
142
|
+
__classPrivateFieldGet(this, _TableComponent_resizeObserver, "f").observe(this.tableContainer.nativeElement);
|
|
143
|
+
}
|
|
144
|
+
ngOnDestroy() {
|
|
145
|
+
if (__classPrivateFieldGet(this, _TableComponent_resizeObserver, "f")) {
|
|
146
|
+
__classPrivateFieldGet(this, _TableComponent_resizeObserver, "f").disconnect();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
125
149
|
ngOnChanges(changes) {
|
|
126
150
|
var _a, _b;
|
|
127
151
|
if (changes.columns && !((_a = changes === null || changes === void 0 ? void 0 : changes.columns) === null || _a === void 0 ? void 0 : _a.isFirstChange())) {
|
|
@@ -201,8 +225,9 @@ export class TableComponent {
|
|
|
201
225
|
this.onRowIndexSelected.emit(index);
|
|
202
226
|
}
|
|
203
227
|
}
|
|
228
|
+
_TableComponent_resizeObserver = new WeakMap();
|
|
204
229
|
TableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, deps: [{ token: i1.NuxeoService }, { token: i2.AppConfigService }, { token: i3.TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
205
|
-
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu", messages: "messages" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n\tclass=\"iner-table-container\"\r\n\t[style]=\"'width:' + tableWidth\"\r\n\t*ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n\t<ngx-datatable\r\n\t\t[ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n\t\tclass=\"large-table\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[summaryRow]=\"customFirstRow\"\r\n\t\t[columnMode]=\"'force'\"\r\n\t\t[externalSorting]=\"true\"\r\n\t\t(activate)=\"rowDetails($event)\"\r\n\t\t(select)=\"onSelect($event)\"\r\n\t\t(sort)=\"onSort($event)\"\r\n\t\t(window:resize)=\"assignTableColumns($event)\"\r\n\t\t[rowHeight]=\"'auto'\"\r\n\t\t[selected]=\"selected\"\r\n\t\t[selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n\t\t[sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n\t\t[messages]=\"messages\"\r\n\r\n\t>\r\n\t\t<ngx-datatable-column\r\n\t\t\t*ngIf=\"multiSelectRows\"\r\n\t\t\t[width]=\"30\"\r\n\t\t\t[sortable]=\"false\"\r\n\t\t\t[prop]=\"''\"\r\n\t\t\t[canAutoResize]=\"false\"\r\n\t\t\t[draggable]=\"false\"\r\n\t\t\t[resizeable]=\"false\"\r\n\t\t>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-header-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-allRowsSelected=\"allRowsSelected\"\r\n\t\t\t\tlet-selectFn=\"selectFn\"\r\n\t\t\t>\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\"> </mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-cell-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-isSelected=\"isSelected\"\r\n\t\t\t\tlet-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n\t\t\t>\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\"> </mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t</ngx-datatable-column>\r\n\t\t<!-- | translate -->\r\n\r\n\t\t<ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n\t\t\t<ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n\t\t\t<ng-container *ngIf=\"!!columns?.length\">\r\n\t\t\t\t<ng-container *ngFor=\"let column of columns; let i = index\">\r\n\t\t\t\t\t<ng-container *permission=\"{ name: column.permission }\">\r\n\t\t\t\t\t\t<ngx-datatable-column\r\n\t\t\t\t\t\t\t*ngIf=\"column.display\"\r\n\t\t\t\t\t\t\t[sortable]=\"column.sortable\"\r\n\t\t\t\t\t\t\t[name]=\"prefix + column.name | translate\"\r\n\t\t\t\t\t\t\t[prop]=\"column.prop\"\r\n\t\t\t\t\t\t\t[resizeable]=\"false\"\r\n\t\t\t\t\t\t\t[draggable]=\"false\"\r\n\t\t\t\t\t\t\t[width]=\"column?.size\"\r\n\t\t\t\t\t\t\t[headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n\t\t\t\t\t\t\t[summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'text'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\" *ngIf=\"!column.withTooltip\">\r\n\t\t\t\t\t\t\t\t\t\t{{ value ? value : '--' }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\" matTooltip=\"{{ value ? value : '--' }}\" *ngIf=\"column.withTooltip\">\r\n\t\t\t\t\t\t\t\t\t\t{{ value ? value : '--' }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t<cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n\t\t\t\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocCell'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t{{ (value ? column.vocabularyId + '.' + value : '--') | translate }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocItem'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t{{ vocItemTranslationPrefix + value | translate }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'department'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t<cts-department-viewer [noStyle]=\"true\" [value]=\"value\"> </cts-department-viewer>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'status'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"status-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"value {{ value }}\">\r\n\t\t\t\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"statusIcons && statusIcons !== {}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"status-icon {{ statusIcons[value] }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t></span>\r\n\t\t\t\t\t\t\t\t\t\t\t{{ 'STATS.' + value | translate }}\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'role'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t{{ 'role.' + (value ? value : '--') | translate }}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"!showActionsAsMenu\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-pencil-square edit-icon\"\r\n\t\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'UPDATE' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'edit')\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table'\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-trash\"\r\n\t\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'delete' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-plus-square\"\r\n\t\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<span *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"action.type == 'button'; else showIcon\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ action.class }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"action.icon\" [class]=\"action.iconClass\" [svgIcon]=\"action.icon\"> </mat-icon>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{{ action.title | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-template #showIcon>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t\t<!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"showActionsAsMenu\"\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t<button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-three-dots-vertical\"></i>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-pencil-square edit-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-trash\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-plus-square\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-conttainer *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"{{ action.icon }}\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-conttainer>\r\n\t\t\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'date'\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t\t<cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'custom'\">\r\n\t\t\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'direction'\">\r\n\t\t\t\t\t\t\t\t\t<div (click)=\"iconSelected($event, row)\" class=\"status-wrapper {{ value }} {{ row.state }}\">\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['incoming'] : 'bi bi-box-arrow-down' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['outgoing'] : 'bi bi-box-arrow-up outgoing' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['internal'] : 'bi bi-box-arrow-right internal' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'InternalCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t\t<!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t<ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t\t\t<div class=\"w-full flex items-center justify-center overflow-visible\">\r\n\t\t\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n\t\t\t\t\t\t\t\t\t</cts-dynamic-column>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</ngx-datatable-column>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== tableModes.card\" (window:resize)=\"assignTableColumns($event)\">\r\n\t<div class=\"dynamic-cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.owner]?.[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate: format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value] }}\">\r\n\t\t\t\t\t\t\t{{ 'STATS.' + row[property.value] | translate }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'department'\">\r\n\t\t\t\t\t\t\t<cts-department-viewer [noStyle]=\"true\" [value]=\"row.properties[property.value]\"> </cts-department-viewer>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t<cts-dropdown-viewer\r\n\t\t\t\t\t\t\t\t[withOutLabel]=\"true\"\r\n\t\t\t\t\t\t\t\t[value]=\"row.properties[property.value]\"\r\n\t\t\t\t\t\t\t\t[dropdownId]=\"property.vocabularyId\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t*ngIf=\"property.type === 'direction'\"\r\n\t\t\t\t\t\t\t(click)=\"iconSelected($event, row)\"\r\n\t\t\t\t\t\t\tclass=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<ng-container *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngFor=\"let row of rows\">\r\n\t\t\t\t<cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'deleteMemo',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'deleteMemo')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'terminateDelegation',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'terminateDelegation')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'memoPublished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'MEMOS.PUBLISHED' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationFinished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.finished' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationActive',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.active' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row); cardFocused(i)\">\r\n\t\t\t\t<div class=\"key\" *ngIf=\"property.type !== 'default'\">\r\n\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclass=\"key\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value].fullName }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate: format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n\t\t\t\t\t\t{{ (row.properties[property.value] ? 'Yes' : 'No') | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"text\"\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n\t\t\t\t\t\t\t{{ item | translate }} {{ ', ' }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate: format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t\t<cts-dynamic-column [id]=\"tableColumns[0].template\" [column]=\"tableColumns[0]\" [context]=\"row\">\r\n\t\t\t\t</cts-dynamic-column>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n\t<app-dynamic-component\r\n\t\tclass=\"table-custom-view__component\"\r\n\t\t*ngFor=\"let row of rows\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[row]=\"row\"\r\n\t\t[rowAction]=\"actionOnRow\"\r\n\t\t[onClick]=\"onRowSelected\"\r\n\t\t(click)=\"cardSelected(row)\"\r\n\t\t[class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n\t></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;width:100%!important;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{width:100%!important;height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{width:100%!important;display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:16px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));grid-gap:var(--tcv-gap, 1rem);gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }, { type: i11.DynamicCustomComponent, selector: "app-dynamic-component", inputs: ["componentName", "row", "rowAction", "onClick"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "async": i12.AsyncPipe, "translate": i15.TranslatePipe, "localizedDate": i16.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
230
|
+
TableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TableComponent, selector: "cts-table", inputs: { rows: "rows", columns: "columns", responsiveColumns: "responsiveColumns", entityType: "entityType", prefix: "prefix", pageCount: "pageCount", totalRecords: "totalRecords", rowCursor: "rowCursor", fullWidth: "fullWidth", vocItemTranslationPrefix: "vocItemTranslationPrefix", tableMode: "tableMode", componentName: "componentName", tableActions: "tableActions", format: "format", defultSort: "defultSort", highlightSelectedCard: "highlightSelectedCard", multiSelectRows: "multiSelectRows", customFirstRow: "customFirstRow", showActionsAsMenu: "showActionsAsMenu", messages: "messages", defaultColumnSize: "defaultColumnSize" }, outputs: { onRowSelected: "onRowSelected", onRowIndexSelected: "onRowIndexSelected", onIconSelected: "onIconSelected", actionOnRow: "actionOnRow", onSorting: "onSorting", onMultiRowSelected: "onMultiRowSelected" }, viewQueries: [{ propertyName: "dataTable", first: true, predicate: DatatableComponent, descendants: true }, { propertyName: "tableContainer", first: true, predicate: ["tableContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\r\n\t#tableContainer\r\n\tclass=\"iner-table-container\"\r\n\t[style]=\"'width:' + tableWidth\"\r\n\t*ngIf=\"tableMode === tableModes.list && !responsiveView\"\r\n>\r\n\t<ngx-datatable\r\n\t\t[ngClass]=\"{ overflowVisible: customFirstRow }\"\r\n\t\tclass=\"large-table\"\r\n\t\t[rows]=\"rows\"\r\n\t\t[summaryRow]=\"customFirstRow\"\r\n\t\t[columnMode]=\"'standard'\"\r\n\t\t[scrollbarH]=\"true\"\r\n\t\t[style.width.%]=\"100\"\r\n\t\t[externalSorting]=\"true\"\r\n\t\t(activate)=\"rowDetails($event)\"\r\n\t\t(select)=\"onSelect($event)\"\r\n\t\t(sort)=\"onSort($event)\"\r\n\t\t(window:resize)=\"assignTableColumns($event)\"\r\n\t\t[rowHeight]=\"'3rem'\"\r\n\t\t[selected]=\"selected\"\r\n\t\t[selectionType]=\"multiSelectRows ? 'checkbox' : 'single'\"\r\n\t\t[sorts]=\"[{ prop: defultSort?.name, dir: defultSort?.dir }]\"\r\n\t\t[messages]=\"messages\"\r\n\t>\r\n\t\t<ngx-datatable-column\r\n\t\t\t*ngIf=\"multiSelectRows\"\r\n\t\t\t[width]=\"30\"\r\n\t\t\t[sortable]=\"false\"\r\n\t\t\t[prop]=\"''\"\r\n\t\t\t[canAutoResize]=\"false\"\r\n\t\t\t[draggable]=\"false\"\r\n\t\t\t[resizeable]=\"false\"\r\n\t\t>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-header-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-allRowsSelected=\"allRowsSelected\"\r\n\t\t\t\tlet-selectFn=\"selectFn\"\r\n\t\t\t>\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"allRowsSelected\" (change)=\"selectFn(!allRowsSelected)\"> </mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t\t<ng-template\r\n\t\t\t\tngx-datatable-cell-template\r\n\t\t\t\tlet-value=\"value\"\r\n\t\t\t\tlet-isSelected=\"isSelected\"\r\n\t\t\t\tlet-onCheckboxChangeFn=\"onCheckboxChangeFn\"\r\n\t\t\t>\r\n\t\t\t\t<mat-checkbox color=\"primary\" [checked]=\"isSelected\" (change)=\"onCheckboxChangeFn($event)\"> </mat-checkbox>\r\n\t\t\t</ng-template>\r\n\t\t</ngx-datatable-column>\r\n\t\t<!-- | translate -->\r\n\r\n\t\t<ng-container *ngIf=\"tableColumns$ | async as columns\">\r\n\t\t\t<ngx-datatable-column *ngIf=\"!columns.length\"></ngx-datatable-column>\r\n\r\n\t\t\t<!-- [frozenRight]=\"column.type === 'actions'\" -->\r\n\t\t\t<ng-container *ngFor=\"let column of columns; let i = index\">\r\n\t\t\t\t<ng-container *permission=\"{ name: column.permission }\">\r\n\t\t\t\t\t<ngx-datatable-column\r\n\t\t\t\t\t\t*ngIf=\"column.display\"\r\n\t\t\t\t\t\t[sortable]=\"column.sortable\"\r\n\t\t\t\t\t\t[name]=\"prefix + column.name | translate\"\r\n\t\t\t\t\t\t[prop]=\"column.prop\"\r\n\t\t\t\t\t\t[resizeable]=\"false\"\r\n\t\t\t\t\t\t[draggable]=\"false\"\r\n\t\t\t\t\t\t[width]=\"column?.size || defaultColumnSize\"\r\n\t\t\t\t\t\t[frozenLeft]=\"isFixedOptionColumns && column.type === 'actions'\"\r\n\t\t\t\t\t\t[headerClass]=\"column.headerClass ? column.headerClass : ''\"\r\n\t\t\t\t\t\t[summaryTemplate]=\"customFirstRow ? customRowTemplate : null\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<ng-template let-row=\"row\" let-value=\"value\" let-index=\"index\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'text'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\" *ngIf=\"!column.withTooltip\">\r\n\t\t\t\t\t\t\t\t\t{{ value ? value : '--' }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\" matTooltip=\"{{ value ? value : '--' }}\" *ngIf=\"column.withTooltip\">\r\n\t\t\t\t\t\t\t\t\t{{ value ? value : '--' }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'vocabulary'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t<cts-dropdown-viewer [withOutLabel]=\"true\" [value]=\"value\" [dropdownId]=\"column.vocabularyId\">\r\n\t\t\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocCell'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t{{ (value ? column.vocabularyId + '.' + value : '--') | translate }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'VocItem'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t{{ vocItemTranslationPrefix + value | translate }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'department'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t<cts-department-viewer [noStyle]=\"true\" [value]=\"value\"> </cts-department-viewer>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'status'\">\r\n\t\t\t\t\t\t\t\t<div class=\"status-wrapper\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"value {{ value }}\">\r\n\t\t\t\t\t\t\t\t\t\t<span *ngIf=\"statusIcons && statusIcons !== {}\" class=\"status-icon {{ statusIcons[value] }}\"></span>\r\n\t\t\t\t\t\t\t\t\t\t{{ 'STATS.' + value | translate }}\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'role'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t{{ 'role.' + (value ? value : '--') | translate }}\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'actions' && rows.length !== 0\">\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"!showActionsAsMenu\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<!-- <span class=\"bi bi-trash delete-icon\" (click)=\"performAction(row , 'delete')\"></span> -->\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-pencil-square edit-icon\"\r\n\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'UPDATE' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'edit')\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table'\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-trash\"\r\n\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'delete' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\tclass=\"bi bi-plus-square\"\r\n\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ 'USER_MANGMENT.addToDepartment' | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t\t></i>\r\n\r\n\t\t\t\t\t\t\t\t\t<span *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *ngIf=\"action.type == 'button'; else showIcon\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ action.class }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<mat-icon *ngIf=\"action.icon\" [class]=\"action.iconClass\" [svgIcon]=\"action.icon\"> </mat-icon>\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{{ action.title | translate }}\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<ng-template #showIcon>\r\n\t\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\r\n\t\t\t\t\t\t\t\t\t<!-- <i\r\n *permission=\"{ name: 'registerCorrespondance', entity: row }\"\r\n class=\"bi bi-box-arrow-in-right\"\r\n matTooltip=\"{{ 'LISTING.REGISTER' | translate }}\"\r\n (click)=\"performAction(row, 'register')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'sendCorrespondance', entity: row }\"\r\n class=\"bi bi-envelope\"\r\n matTooltip=\"{{ 'LISTING.SEND' | translate }}\"\r\n (click)=\"performAction(row, 'send')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'closeCorrespondance', entity: row }\"\r\n class=\"bi bi-x-circle\"\r\n matTooltip=\"{{ 'LISTING.CLOSE' | translate }}\"\r\n (click)=\"performAction(row, 'close')\"\r\n ></i>\r\n <i\r\n *permission=\"{ name: 'archiveCorrespondance', entity: row }\"\r\n class=\"bi bi-folder-symlink\"\r\n matTooltip=\"{{ 'LISTING.ARCHIVE' | translate }}\"\r\n (click)=\"performAction(row, 'archive')\"\r\n ></i> -->\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t[ngClass]=\"disabledActions ? 'disabled-actions-wrapper' : 'actions-wrapper'\"\r\n\t\t\t\t\t\t\t\t\t*ngIf=\"showActionsAsMenu\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<button class=\"action-menu-trigger\" [matMenuTriggerFor]=\"menu\" [disabled]=\"disabledActions\">\r\n\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-three-dots-vertical\"></i>\r\n\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t<mat-menu #menu=\"matMenu\" class=\"datatable-actions-menu\">\r\n\t\t\t\t\t\t\t\t\t\t<button mat-menu-item (click)=\"performAction(row, 'edit')\" *ngIf=\"entityType === 'voc-table'\">\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-pencil-square edit-icon\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'UPDATE' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'voc-table' || entityType === 'department' || entityType === 'signers'\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-trash\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'delete' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\tmat-menu-item\r\n\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, 'delete')\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"entityType === 'users' && row.isInitial\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"bi bi-plus-square\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ 'USER_MANGMENT.addToDepartment' | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t<ng-conttainer *ngFor=\"let action of column.actions\">\r\n\t\t\t\t\t\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<i class=\"{{ action.icon }}\"></i>\r\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"action-text\">{{ action.tooltip | translate }}</span>\r\n\t\t\t\t\t\t\t\t\t\t\t</button>\r\n\t\t\t\t\t\t\t\t\t\t</ng-conttainer>\r\n\t\t\t\t\t\t\t\t\t</mat-menu>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'date'\">\r\n\t\t\t\t\t\t\t\t<div class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t\t\t<cts-date-viewer [withOutLabel]=\"true\" [value]=\"value\"></cts-date-viewer>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'custom'\">\r\n\t\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.template\" [column]=\"column\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t\t\t\t<ng-container *ngIf=\"column.type === 'direction'\">\r\n\t\t\t\t\t\t\t\t<div (click)=\"iconSelected($event, row)\" class=\"status-wrapper {{ value }} {{ row.state }}\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['incoming'] : 'bi bi-box-arrow-down' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'IncomingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['outgoing'] : 'bi bi-box-arrow-up outgoing' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'OutgoingCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"{{ directionIcons ? directionIcons['internal'] : 'bi bi-box-arrow-right internal' }}\"\r\n\t\t\t\t\t\t\t\t\t\t\t*ngIf=\"row.type === 'InternalCorrespondence'\"\r\n\t\t\t\t\t\t\t\t\t\t></i>\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t<!-- <span class=\"value {{ value }}\">{{ \"STATS.\" + value | translate }}</span> -->\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t<ng-template #customRowTemplate let-row=\"row\" let-value=\"value\" ngx-datatable-cell-template>\r\n\t\t\t\t\t\t\t<div class=\"w-full flex items-center justify-center overflow-visible\">\r\n\t\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"column.custom1stCellTemplate\" [column]=\"column\" [context]=\"row\">\r\n\t\t\t\t\t\t\t\t</cts-dynamic-column>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t</ngx-datatable-column>\r\n\t\t\t\t</ng-container>\r\n\t\t\t</ng-container>\r\n\t\t</ng-container>\r\n\t</ngx-datatable>\r\n</div>\r\n\r\n<div *ngIf=\"responsiveView && tableMode !== tableModes.card\" (window:resize)=\"assignTableColumns($event)\">\r\n\t<div class=\"dynamic-cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'owner'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.owner]?.[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'status'\" class=\"value {{ row[property.value] }}\">\r\n\t\t\t\t\t\t\t{{ 'STATS.' + row[property.value] | translate }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'department'\">\r\n\t\t\t\t\t\t\t<cts-department-viewer [noStyle]=\"true\" [value]=\"row.properties[property.value]\"> </cts-department-viewer>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'vocabulary'\" class=\"cell-text-wrapper\">\r\n\t\t\t\t\t\t\t<cts-dropdown-viewer\r\n\t\t\t\t\t\t\t\t[withOutLabel]=\"true\"\r\n\t\t\t\t\t\t\t\t[value]=\"row.properties[property.value]\"\r\n\t\t\t\t\t\t\t\t[dropdownId]=\"property.vocabularyId\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t</cts-dropdown-viewer>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t*ngIf=\"property.type === 'direction'\"\r\n\t\t\t\t\t\t\t(click)=\"iconSelected($event, row)\"\r\n\t\t\t\t\t\t\tclass=\"status-wrapper {{ property.value }} {{ row.state }}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span class=\"iner-status-wrapper\" matTooltip=\"{{ 'STATS.' + row.state | translate }}\">\r\n\t\t\t\t\t\t\t\t<ng-container *permission=\"{ name: 'isFavorite', entity: row }\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"fav-icon-indicator bi bi-star-fill\"></span>\r\n\t\t\t\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-down\" *ngIf=\"row.type === 'IncomingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-up outgoing\" *ngIf=\"row.type === 'OutgoingCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t\t<i class=\"bi bi-box-arrow-right internal\" *ngIf=\"row.type === 'InternalCorrespondence'\"></i>\r\n\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t\t<cts-dynamic-column [id]=\"property.template\" [column]=\"property\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<ng-container *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngFor=\"let row of rows\">\r\n\t\t\t\t<cts-dynamic-column [id]=\"columns[0].template\" [column]=\"columns[0]\" [context]=\"row\"> </cts-dynamic-column>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.card\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div class=\"single-card\" *ngFor=\"let row of rows; let i = index\">\r\n\t\t\t<div class=\"memo-title\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t{{ row.properties.referenceNumber }}\r\n\t\t\t\t</span>\r\n\t\t\t\t<span class=\"action-wrap\">\r\n\t\t\t\t\t<span class=\"action\" *ngFor=\"let action of tableActions\">\r\n\t\t\t\t\t\t<i\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: action.permission,\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t\tclass=\"{{ action.icon }}\"\r\n\t\t\t\t\t\t\tmatTooltip=\"{{ action.tooltip | translate }}\"\r\n\t\t\t\t\t\t\t(click)=\"performAction(row, action.actionName)\"\r\n\t\t\t\t\t\t></i>\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'deleteMemo',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'deleteMemo')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.ONLY_DELETE' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<button\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'terminateDelegation',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"performAction(row, 'terminateDelegation')\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<i class=\"bi bi-trash\" matTooltip=\"{{ 'LISTING.CANCEL' | translate }}\"></i>\r\n\t\t\t\t\t</button>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'memoPublished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'MEMOS.PUBLISHED' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationFinished',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.finished' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t\t<span\r\n\t\t\t\t\t\tclass=\"publish-state\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'delegationActive',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ 'delegations.active' | translate }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</span>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row); cardFocused(i)\">\r\n\t\t\t\t<div class=\"key\" *ngIf=\"property.type !== 'default'\">\r\n\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t</div>\r\n\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t<div\r\n\t\t\t\t\t\tclass=\"key\"\r\n\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ prefix + property.key | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'user'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value].fullName }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'boolean'\">\r\n\t\t\t\t\t\t{{ (row.properties[property.value] ? 'Yes' : 'No') | translate }}\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'default'\">\r\n\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\tclass=\"text\"\r\n\t\t\t\t\t\t\t*permission=\"{\r\n\t\t\t\t\t\t\t\tname: 'internalIsEnabled',\r\n\t\t\t\t\t\t\t\tentity: row,\r\n\t\t\t\t\t\t\t\tuser: nuxeoService.nuxeoClient.user\r\n\t\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t\t<ng-container *ngIf=\"property.type === 'custom'\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngFor=\"let item of row.properties[property.value]\">\r\n\t\t\t\t\t\t\t{{ item | translate }} {{ ', ' }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-container>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.dynamicCard\">\r\n\t<div class=\"cards-container\">\r\n\t\t<div\r\n\t\t\tclass=\"single-card\"\r\n\t\t\t[ngClass]=\"{ 'selected-card': highlightSelectedCard && row?.isSelected }\"\r\n\t\t\t*ngFor=\"let row of rows\"\r\n\t\t>\r\n\t\t\t<div *ngIf=\"tableColumns.length > 1\">\r\n\t\t\t\t<div class=\"memo-body\" *ngFor=\"let property of tableColumns$ | async\" (click)=\"cardSelected(row)\">\r\n\t\t\t\t\t<div class=\"key\">{{ prefix + property.key | translate }}</div>\r\n\t\t\t\t\t<div class=\"value\">\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'text'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t<div class=\"text\" *ngIf=\"property.type === 'date'\">\r\n\t\t\t\t\t\t\t{{ row.properties[property.value] | localizedDate : format : (isArabic ? 'ar-AR' : 'en-US') }}\r\n\t\t\t\t\t\t\t<!-- <cts-date-viewer [withOutLabel]=\"true\" [value]=\"row.properties[property.value]\" ></cts-date-viewer> -->\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"iner-card-container {{ entityType }}\" (click)=\"cardSelected(row)\" *ngIf=\"tableColumns.length === 1\">\r\n\t\t\t\t<cts-dynamic-column [id]=\"tableColumns[0].template\" [column]=\"tableColumns[0]\" [context]=\"row\">\r\n\t\t\t\t</cts-dynamic-column>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</div>\r\n</div>\r\n\r\n<div *ngIf=\"tableMode === tableModes.custom\" class=\"table-custom-view\">\r\n\t<app-dynamic-component\r\n\t\tclass=\"table-custom-view__component\"\r\n\t\t*ngFor=\"let row of rows\"\r\n\t\t[componentName]=\"componentName\"\r\n\t\t[row]=\"row\"\r\n\t\t[rowAction]=\"actionOnRow\"\r\n\t\t[onClick]=\"onRowSelected\"\r\n\t\t(click)=\"cardSelected(row)\"\r\n\t\t[class.dynamic-selected-card]=\"highlightSelectedCard && row?.isSelected\"\r\n\t></app-dynamic-component>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.iner-table-container{max-width:var(--table-container-max-width, 100%)}.ngx-datatable{border:1px solid #eef1f5;border-radius:5px}.ngx-datatable .datatable-header{font-weight:bold;height:50px!important;background-color:#eef1f5;color:#9aa4ac;font-size:14px}.ngx-datatable .datatable-header .datatable-header-inner{height:100%;padding:0 20px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center{display:flex;justify-content:space-between;align-items:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn{margin:5px 5px 0;width:16px;height:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .sort-btn:before{content:\"\\f127\";display:inline-block;font-family:bootstrap-icons!important;font-style:normal;font-weight:normal!important;font-variant:normal;text-transform:none;line-height:1;vertical-align:-.125em;-webkit-font-smoothing:antialiased}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-up.sort-btn:before{content:\"\\f57b\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-icon-down.sort-btn:before{content:\"\\f574\";color:#000;font-size:16px}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap{width:100%;height:100%;display:flex;align-items:center;justify-content:center;white-space:pre-wrap}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper{display:flex}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .datatable-header-cell-wrapper .datatable-header-cell-label{text-align:center}.ngx-datatable .datatable-header .datatable-header-inner .datatable-row-center .datatable-header-cell .datatable-header-cell-template-wrap .checkbox-input{z-index:99}.ngx-datatable .datatable-body .empty-row{text-align:center}.ngx-datatable .datatable-body .datatable-scroll{width:100%!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{display:flex!important;min-height:50px!important;overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-row-center .datatable-body-cell{overflow:visible!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row{height:50px;font-size:14px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row{min-width:100%!important;height:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center{display:flex;justify-content:space-between;padding:0 20px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell{min-height:50px;display:flex;align-items:center;overflow:hidden}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label{width:100%;display:flex;justify-content:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .checkbox-input{z-index:99}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .datatable-body-cell-label .cell-text-wrapper{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper{position:relative}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .iner-status-wrapper .fav-icon-indicator{font-size:12px;position:absolute;top:-5px;right:-10px;color:#ebb98e}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value{display:flex;justify-content:center;align-items:center;border-radius:5px;width:100px;height:25px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .value .status-icon{margin-inline-end:5px;font-size:16px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .draft{background-color:#596973;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .inProgress{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .registered{background-color:#5a1496;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .archived{background-color:#fbb62c;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .closed{background-color:#00dca5;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .approved{background-color:#06a57e;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .assigned{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .sent{background-color:#3c3cf0;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_revision{background:#689be7;color:#e9f1fd}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .rejected{background-color:#fd6670;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .under_sign{background-color:#dda722;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirectSelection{background-color:#28b994;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper .redirect{background-color:#e38888;color:#fff}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Incoming{color:#00dca5;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Outgoing{color:#fbb62c;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.Internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .status-wrapper.internal{color:#3c3cf0;font-size:30px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi{font-size:25px;cursor:pointer;color:#465573;margin:0 5px!important}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .bi:hover{color:#2e62df!important;font-size:26px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button{display:flex;color:#5171a6;font-size:16px;height:45px;align-items:center;padding:0 10px;width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button i{font-size:20px;padding:0;display:flex;align-items:center}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button .action-text{padding:0 5px}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .actions-wrapper .datatable-actions-menu button:hover{background-color:#e6ebf2}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper{width:100%}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi,.ngx-datatable .datatable-body .datatable-scroll .datatable-summary-row .datatable-body-row .datatable-row-center .datatable-body-cell .disabled-actions-wrapper .bi{font-size:25px;cursor:not-allowed;color:#465573;margin:0 5px!important;opacity:.7}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:nth-child(even){background-color:#f4f6f8}.ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper:hover{background-color:#eef1f5}.cards-container{display:flex;flex-wrap:wrap;justify-content:center}.cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:270px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.cards-container .single-card .memo-title .action-wrap .action{margin:0 5px;cursor:pointer}.cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.cards-container .single-card .memo-body{display:flex;padding:0 10px}.cards-container .single-card .memo-body .key{width:50%;font-size:12px;color:#9aa4ac}.cards-container .single-card .memo-body .value{width:50%;font-size:12px}.cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cards-container .single-card:hover{background-color:#f6f7f8}.cards-container .single-card:focus{background-color:#f6f7f8}.cards-container .selected-card{background-color:#f6f7f8}.rtl .ngx-datatable .datatable-body .status-wrapper .fav-icon-indicator{left:-10px;top:15px!important;right:auto!important}.dynamic-cards-container{display:flex;flex-wrap:wrap;justify-content:center}.dynamic-cards-container .single-card{padding:15px;border:1px solid rgba(180,186,198,.2);border-radius:3px;min-width:306px;width:24%;margin:0 5px 10px;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;cursor:pointer}.dynamic-cards-container .single-card .memo-title{font-size:14px;font-weight:bold;color:#465573;border-bottom:1px solid lightgray;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.dynamic-cards-container .single-card .memo-title .action-wrap .action{cursor:pointer}.dynamic-cards-container .single-card .memo-title .action-wrap .action i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap .action i:hover{color:#00f}.dynamic-cards-container .single-card .memo-title .action-wrap .publish-state{font-size:12px;color:#00dca5;font-weight:bold}.dynamic-cards-container .single-card .memo-title .action-wrap button{border:none;color:#465573;background-color:transparent}.dynamic-cards-container .single-card .memo-title .action-wrap button i{font-size:16px}.dynamic-cards-container .single-card .memo-title .action-wrap button i:hover{color:#00f}.dynamic-cards-container .single-card .memo-body{display:flex;padding:0 10px}.dynamic-cards-container .single-card .memo-body .key{width:58%;font-size:12px;color:#9aa4ac;margin-bottom:4px}.dynamic-cards-container .single-card .memo-body .value{width:58%;font-size:12px}.dynamic-cards-container .single-card .memo-body .value .text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dynamic-cards-container .single-card .memo-body .draft{background-color:#596973;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .inProgress{background-color:#3c3cf0;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .registered{background-color:#5a1496;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .archived{background-color:#fbb62c;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .closed{background-color:#00dca5;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .approved{background-color:#06a57e;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .assigned{background-color:#fd6670;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .sent{background-color:#3c3cf0;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .under_revision{background:#689be7;color:#e9f1fd;text-align:center}.dynamic-cards-container .single-card .memo-body .rejected{background-color:#fd6670;color:#fff;text-align:center}.dynamic-cards-container .single-card .memo-body .under_sign{background-color:#dda722;color:#fff;text-align:center}.dynamic-cards-container .single-card:hover{background-color:#f6f7f8}.dynamic-cards-container .single-card:focus{background-color:#f6f7f8}.dynamic-cards-container .selected-card{background-color:#f6f7f8}.overflowVisible{overflow:visible!important}.table-custom-view{display:var(--tcv-display, grid);grid-template-columns:var(--tcv-display-columns, repeat(var(--tcv-columns-count, auto-fit), minmax(350px, 1fr)));grid-gap:var(--tcv-gap, 1rem);gap:var(--tcv-gap, 1rem);padding-inline:var(--tcv-padding-inline, 1rem);padding-block:var(--tcv-padding-block, 1rem)}.table-style .ngx-datatable .datatable-body .datatable-scroll .datatable-row-wrapper .datatable-body-row .datatable-row-center .datatable-body-cell{flex-shrink:0}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{flex-shrink:0}.actions-wrapper i{font-size:var(--table-options-font-size, 2rem)!important}.ngx-datatable .datatable-row-left{position:absolute!important;right:0px!important}.ngx-datatable .datatable-row-left .datatable-body-cell{overflow:hidden;background:var(--table-options-body-cell-color, #fff)}.ngx-datatable .datatable-row-left .datatable-header-cell{overflow:hidden;background:var(--table-options-header-cell-color, #fff)}.rtl .ngx-datatable .datatable-row-left{left:0px!important;right:unset!important}\n"], components: [{ type: i4.DatatableComponent, selector: "ngx-datatable", inputs: ["selected", "scrollbarV", "scrollbarH", "rowHeight", "columnMode", "headerHeight", "footerHeight", "externalPaging", "externalSorting", "loadingIndicator", "reorderable", "swapColumns", "sortType", "sorts", "cssClasses", "messages", "groupExpansionDefault", "selectAllRowsOnPage", "virtualization", "summaryRow", "summaryHeight", "summaryPosition", "rowIdentity", "rows", "groupedRows", "groupRowsBy", "columns", "limit", "count", "offset", "targetMarkerTemplate", "selectionType", "rowClass", "selectCheck", "displayCheck", "trackByProp", "treeFromRelation", "treeToRelation"], outputs: ["scroll", "activate", "select", "sort", "page", "reorder", "resize", "tableContextmenu", "treeAction"] }, { type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "id", "labelPosition", "name", "required", "checked", "disabled", "indeterminate", "aria-describedby", "value"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i6.DropdownViewerComponent, selector: "cts-dropdown-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel"] }, { type: i7.DepartmentViewerComponent, selector: "cts-department-viewer", inputs: ["label", "value", "dropdownId", "vertical", "withOutLabel", "noStyle"] }, { type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { type: i9.DateViewerComponent, selector: "cts-date-viewer", inputs: ["label", "value", "vertical", "format", "hijri", "withOutLabel"] }, { type: i10.DynamicColumnComponent, selector: "cts-dynamic-column", inputs: ["id", "context", "column"] }, { type: i11.DynamicCustomComponent, selector: "app-dynamic-component", inputs: ["componentName", "row", "rowAction", "onClick"] }], directives: [{ type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.DataTableColumnDirective, selector: "ngx-datatable-column", inputs: ["name", "prop", "frozenLeft", "frozenRight", "flexGrow", "resizeable", "comparator", "pipe", "sortable", "draggable", "canAutoResize", "minWidth", "width", "maxWidth", "checkboxable", "headerCheckboxable", "headerClass", "cellClass", "isTreeColumn", "treeLevelIndent", "summaryFunc", "summaryTemplate", "cellTemplate", "headerTemplate", "treeToggleTemplate"] }, { type: i4.DataTableColumnHeaderDirective, selector: "[ngx-datatable-header-template]" }, { type: i4.DataTableColumnCellDirective, selector: "[ngx-datatable-cell-template]" }, { type: i12.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i13.PermissionsDirective, selector: "[permission]", inputs: ["permission"] }, { type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }], pipes: { "async": i12.AsyncPipe, "translate": i15.TranslatePipe, "localizedDate": i16.LocalizedDatePipe }, encapsulation: i0.ViewEncapsulation.None });
|
|
206
231
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TableComponent, decorators: [{
|
|
207
232
|
type: Component,
|
|
208
233
|
args: [{
|
|
@@ -211,7 +236,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
211
236
|
styleUrls: ['./table.component.scss'],
|
|
212
237
|
encapsulation: ViewEncapsulation.None
|
|
213
238
|
}]
|
|
214
|
-
}], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: i2.AppConfigService }, { type: i3.TranslationService }]; }, propDecorators: {
|
|
239
|
+
}], ctorParameters: function () { return [{ type: i1.NuxeoService }, { type: i2.AppConfigService }, { type: i3.TranslationService }]; }, propDecorators: { dataTable: [{
|
|
240
|
+
type: ViewChild,
|
|
241
|
+
args: [DatatableComponent]
|
|
242
|
+
}], tableContainer: [{
|
|
243
|
+
type: ViewChild,
|
|
244
|
+
args: ['tableContainer']
|
|
245
|
+
}], onRowSelected: [{
|
|
215
246
|
type: Output
|
|
216
247
|
}], onRowIndexSelected: [{
|
|
217
248
|
type: Output
|
|
@@ -263,5 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
263
294
|
type: Input
|
|
264
295
|
}], messages: [{
|
|
265
296
|
type: Input
|
|
297
|
+
}], defaultColumnSize: [{
|
|
298
|
+
type: Input
|
|
266
299
|
}] } });
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQWdCLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNckQsTUFBTSxVQUFVLEdBQUc7SUFDbEIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLFdBQVcsRUFBRSxhQUFhO0lBQzFCLE1BQU0sRUFBRSxRQUFRO0NBQ1AsQ0FBQztBQUVYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdDRztBQU9ILE1BQU0sT0FBTyxjQUFjO0lBa0YxQixZQUNRLFlBQTBCLEVBQ3pCLFNBQTJCLEVBQzNCLFdBQStCO1FBRmhDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQXBGeEMsOENBQThDO1FBQ3BDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3Qyw0REFBNEQ7UUFDbEQsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsRCxtREFBbUQ7UUFDekMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFB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QWpCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFHRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcblx0U2ltcGxlQ2hhbmdlcyxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuXHJcbmNvbnN0IFRBQkxFX01PREUgPSB7XHJcblx0bGlzdDogJ2xpc3QnLFxyXG5cdGNhcmQ6ICdjYXJkJyxcclxuXHRkeW5hbWljQ2FyZDogJ2R5bmFtaWNDYXJkJyxcclxuXHRjdXN0b206ICdjdXN0b20nXHJcbn0gYXMgY29uc3Q7XHJcblxyXG4vKipcclxuICogdGhpcyBjb21wb25lbnQgaXMgYSBtdWx0aS1wdXJwb3NlIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBkdW1iIGRhdGEgdGFibGUgdGhhdCBjYW4gYmUgY29uZmlndXJlZCB0byBzaG93IGFueSBsaXN0IG9mIGRhdGEsXHJcbiAqIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyaW5nIHRoZSB0YWJsZVxyXG4gKiBhbmQgdGhlIGpzb24gc3RydWN0dXJlIGZvciB0aGUgaW5wdXRzIHBsZWFzZSBjaGVjayBbQ29uZmlndXJhdGlvbiBGaWxlXXtAbGluayAuLi9hZGRpdGlvbmFsLWRvY3VtZW50YXRpb24vY29uZmlnLWZpbGUuaHRtbH1cclxuICogIVtTY3JlZW5zaG90LTFdKC4uL3NjcmVlbnNob3RzL2R5bmFtaWNUYWJsZS5wbmcpXHJcbiAqXHJcbiAqICMjIyByZWxhdGVkIExpbmtzOlxyXG4gKiAtIFtQYWdpbmF0aW9uIENvbXBvbmVudF17QGxpbmsgUGFnaW5hdGlvbkNvbXBvbmVudH1cclxuICogLSBbRHluYW1pYyBUYWJsZV17QGxpbmsgRHluYW1pY1RhYmxlQ29tcG9uZW50fVxyXG4gKiAtIFtDb25maWd1cmF0aW9uIEZpbGVde0BsaW5rIC4uL2FkZGl0aW9uYWwtZG9jdW1lbnRhdGlvbi9jb25maWctZmlsZS5odG1sfVxyXG4gKlxyXG4gKiBAdGl0bGVcclxuICogRGF0YSBUYWJsZVxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLXRhYmxlXHJcbiAqICAgICBbcm93c109XCJyb3dzXCJcclxuICogICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gKiAgICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuICogICAgIFtyb3dDdXJzb3JdPVwicm93Q3Vyc29yXCJcclxuICogICAgIFtmdWxsV2lkdGhdPVwiZnVsbFdpZHRoXCJcclxuICogICAgIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIlxyXG4gKiAgICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gKiAgICAgW3RhYmxlTW9kZV09XCJ0YWJsZU1vZGVcIlxyXG4gKiAgICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gKiAgICAgKG9uUm93U2VsZWN0ZWQpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuICogICAgIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIlxyXG4gKiAgICAgKG9uU29ydGluZyk9XCJvblNvcnQoJGV2ZW50KVwiXHJcbiAqICA+PC9jdHMtdGFibGU+XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2N0cy10YWJsZScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgKi9cclxuXHRAT3V0cHV0KCkgb25Sb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHNlbGVjdGluZyBzaW5nbGUgcm93IHRvIGNhdGNoIGluZGV4Ki9cclxuXHRAT3V0cHV0KCkgb25Sb3dJbmRleFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgSWNvbiAqL1xyXG5cdEBPdXRwdXQoKSBvbkljb25TZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogZXZlbnQgdG8gZW1pdCB3aGVuIHBlcmZvcm0gYWN0aW9uIG9uIHJvdyAoZGVsdGUsIGVkaXQsIC4uLiApICovXHJcblx0QE91dHB1dCgpIGFjdGlvbk9uUm93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0IGVtaXQgd2hlbiBzb3J0aW5nIHRhYmxlICovXHJcblx0QE91dHB1dCgpIG9uU29ydGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogZXZlbnQgdCBlbWl0IHdoZW4gc2VsZWN0aW5nIG11bHRpcGxlIHJvdyAqL1xyXG5cdEBPdXRwdXQoKSBvbk11bHRpUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGFyYXkgb2Ygcm93cyBwYXNzZWQgZnJvbSBvdXQgc2lkZSB0aGUgY29tcG9uZW50ICovXHJcblxyXG5cdHByaXZhdGUgX3Jvd3M6IEFycmF5PGFueT4gPSBbXTtcclxuXHRASW5wdXQoKSBzZXQgcm93cyhyb3dzOiBBcnJheTxhbnk+KSB7XHJcblx0XHR0aGlzLl9yb3dzID0gcm93cztcclxuXHRcdHRoaXMuc2VsZWN0ZWQgPSBbXTtcclxuXHR9XHJcblxyXG5cdGdldCByb3dzKCk6IEFycmF5PGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3Jvd3M7XHJcblx0fVxyXG5cdC8qKiBhcnJheSBvZiBjb2x1bW5zIHBhYXNlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuXHRASW5wdXQoKSBjb2x1bW5zO1xyXG5cdC8qKiBhcnJheSBvZiBjb2x1bW5zIHBhYXNlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgZm9yIHNtYWxsZXIgc2NyZWVucyAqL1xyXG5cdEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zO1xyXG5cdC8qKiB0byBkZWZpbmUgdGhlIHBhZ2UgaW4gd2hpY2ggdGFibGUgaXMgYmVpbmcgdXNlZCAqL1xyXG5cdEBJbnB1dCgpIGVudGl0eVR5cGU6IHN0cmluZyA9ICcnO1xyXG5cdC8qKiBzdGF0aWMgIHBhdGggZm9yIHRyYW5zbGF0aW9uIHBhc3NlZCBmcm9tIG91dCBzaWRlIGFjY29yZGluZyB0byBlYWNoIHBhZ2UgdHJhbnNsYXRpb24gcGF0aCAqL1xyXG5cdEBJbnB1dCgpIHByZWZpeCA9ICcnO1xyXG5cdC8qKiBAZGVwcmVjYXRlZCAqL1xyXG5cdEBJbnB1dCgpIHBhZ2VDb3VudDtcclxuXHQvKiogVG90YWwgUmVjb3Jkc2NvdW50ICovXHJcblx0QElucHV0KCkgdG90YWxSZWNvcmRzO1xyXG5cdC8qKiBAZGVwcmVjYXRlZCAqL1xyXG5cdEBJbnB1dCgpIHJvd0N1cnNvciA9IGZhbHNlO1xyXG5cdC8qKiBNYXggZnVsbCB3aWR0aCBpbiBQWCB8IGF1dG8gKi9cclxuXHRASW5wdXQoKSBmdWxsV2lkdGggPSAnYXV0byc7XHJcblx0LyoqIFZvY2FidWxhcnkgVHJhbnNsYXRpb24gcHJlZml4ICovXHJcblx0QElucHV0KCkgdm9jSXRlbVRyYW5zbGF0aW9uUHJlZml4O1xyXG5cclxuXHR0YWJsZU1vZGVzID0gVEFCTEVfTU9ERTtcclxuXHJcblx0QElucHV0KCkgdGFibGVNb2RlOiBzdHJpbmcgPSBUQUJMRV9NT0RFLmxpc3Q7XHJcblxyXG5cdEBJbnB1dCgpIGNvbXBvbmVudE5hbWU6IHN0cmluZztcclxuXHJcblx0LyoqIGFjdGlvbiB0byBiZSBpbiBjYXJkIG1vZGUgKi9cclxuXHRASW5wdXQoKSB0YWJsZUFjdGlvbnM7XHJcblx0QElucHV0KCkgZm9ybWF0ID0gJ01NTU0gZCwgeSc7XHJcblx0QElucHV0KCkgZGVmdWx0U29ydCA9IG51bGw7XHJcblx0bGFuZ1N1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cdEBJbnB1dCgpIGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCA9IGZhbHNlO1xyXG5cclxuXHQvKiogYWxsb3cgbXVsdGlzZWxlY3Qgcm93cyB3aXRoIGNoZWNrYm94ICovXHJcblx0QElucHV0KCkgbXVsdGlTZWxlY3RSb3dzID0gZmFsc2U7XHJcblxyXG5cdC8qKiB0byBzaG93IDFzdCByb3cgd2l0aCBjdXN0b20gdGVtcGxhdGUgaW4gdGhlIHRhYmxlKi9cclxuXHRASW5wdXQoKSBjdXN0b21GaXJzdFJvdyA9IGZhbHNlO1xyXG5cdC8qKiBmbGFnZSB1c2VkIHRvIGRpc2FibGUgYWN0aW9ucyBpZiB0aGVyZSB3YXMgbXVsdGkgc2VsZWN0ZWQgcm93cyAqL1xyXG5cclxuXHRASW5wdXQoKSBzaG93QWN0aW9uc0FzTWVudSA9IGZhbHNlOyAvLyBmbGFnZSB0byBzaG93IGFjdGlvbiBpbiBtZW51IG9yIHNpZGUgYnkgc2lkZVxyXG5cclxuXHRASW5wdXQoKSBtZXNzYWdlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsgZW1wdHlNZXNzYWdlOiAnJyB9O1xyXG5cclxuXHRkaXNhYmxlZEFjdGlvbnMgPSBmYWxzZTtcclxuXHRpc0FyYWJpYyA9IGZhbHNlO1xyXG5cdHRhYmxlV2lkdGggPSAnYXV0byc7XHJcblx0dGFibGVDb2x1bW5zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcblx0dGFibGVDb2x1bW5zJCA9IHRoaXMudGFibGVDb2x1bW5zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRnZXQgdGFibGVDb2x1bW5zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb2x1bW5zU3ViLmdldFZhbHVlKCk7XHJcblx0fVxyXG5cdGN1cnJlbnRSb3c7XHJcblx0c2VsZWN0ZWQgPSBbXTtcclxuXHRwYWdlTnVtYmVyID0gMTtcclxuXHRyZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG5cdHN0YXR1c0ljb25zID0ge307IC8vIG9iamVjdCB0byBjb250YWlucyBhbGwgc3RhdHVzIGljb25zIGlmIGV4aXN0XHJcblx0ZGlyZWN0aW9uSWNvbnMgPSB7fTsgLy8gb2JqZWN0IHRvIGNvbnRhaW5zIGFsbCBkaXJlY3Rpb24gaWNvbnMgaWYgZXhpc3RcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuXHRcdHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLmZvcm1hdCA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnZGF0ZUZvcm1hdGUnXTtcclxuXHRcdHRoaXMuc3RhdHVzSWNvbnMgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ3N0YXR1c0ljb25zJ107XHJcblx0XHR0aGlzLmRpcmVjdGlvbkljb25zID0gdGhpcy5hcHBDb25maWcubXlDb25maWd1cmF0aW9uWydkaXJlY3Rpb25JY29ucyddO1xyXG5cdFx0dGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmlzQXJhYmljID0gcmVzO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcblx0XHRpZiAoY2hhbmdlcy5jb2x1bW5zICYmICFjaGFuZ2VzPy5jb2x1bW5zPy5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuXHRcdFx0dGhpcy50YWJsZUNvbHVtbnNTdWIubmV4dChbLi4uY2hhbmdlcy5jb2x1bW5zPy5jdXJyZW50VmFsdWVdKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vblJlc2l6ZSh3aW5kb3cuaW5uZXJXaWR0aCk7XHJcblx0fVxyXG5cclxuXHQvLyBmdW5jdGlvbiB0byBiZSBleGVjdXRlZCB3aGVuIGNsaWNraW5nIG9uIHNpbmdsZSByb3dcclxuXHRyb3dEZXRhaWxzKGV2ZW50KSB7XHJcblx0XHRpZiAoZXZlbnQudHlwZSAhPT0gJ21vdXNlZW50ZXInKSB7XHJcblx0XHRcdGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmIGV2ZW50LmNvbHVtbi5wcm9wICE9PSAnJykge1xyXG5cdFx0XHRcdHRoaXMuY3VycmVudFJvdyA9IGV2ZW50LnJvdztcclxuXHRcdFx0XHR0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdCh0aGlzLmN1cnJlbnRSb3cpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdGljb25TZWxlY3RlZChldmVudDogTW91c2VFdmVudCwgcm93KSB7XHJcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdHRoaXMub25JY29uU2VsZWN0ZWQuZW1pdChyb3cpO1xyXG5cdH1cclxuXHJcblx0Ly9mdW5jdGlvbiB0byBoYW5kbGUgYWxsIG9wZXJhdGlvbnMgb24gc2luZ2xlIHJvdyAoZGVsZXRlICwgZWRpdCAsIC4uLilcclxuXHRwZXJmb3JtQWN0aW9uKHNpbmdsZVJvdywgYWN0aW9uVHlwZSkge1xyXG5cdFx0aWYgKCF0aGlzLmRpc2FibGVkQWN0aW9ucylcclxuXHRcdFx0dGhpcy5hY3Rpb25PblJvdy5lbWl0KHtcclxuXHRcdFx0XHR0eXBlOiBhY3Rpb25UeXBlLFxyXG5cdFx0XHRcdHJvdzogc2luZ2xlUm93XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gaGFuZGxlIGNoZWNrYm94IGlmIHRhYmxlIGhhcyBvbmVzXHJcblx0b25TZWxlY3QoeyBzZWxlY3RlZCB9KSB7XHJcblx0XHRpZiAodGhpcy5tdWx0aVNlbGVjdFJvd3MpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZC5zcGxpY2UoMCwgdGhpcy5zZWxlY3RlZC5sZW5ndGgpO1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkLnB1c2goLi4uc2VsZWN0ZWQpO1xyXG5cdFx0XHR0aGlzLm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KHNlbGVjdGVkKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRpc2FibGVkQWN0aW9ucyA9IHRoaXMubXVsdGlTZWxlY3RSb3dzICYmIHNlbGVjdGVkLmxlbmd0aCA+IDA7XHJcblx0fVxyXG5cclxuXHQvLyBoYW5kbGUgc29ydGluZyBmdW5jdGlvbmFsaXR5IG9mIHRoZSB0YWJsZVxyXG5cdG9uU29ydChldmVudCkge1xyXG5cdFx0bGV0IHNvcnQgPSB7XHJcblx0XHRcdHNvcnRCeTogZXZlbnQuY29sdW1uLmhlYWRlckNsYXNzLFxyXG5cdFx0XHRzb3J0T3JkZXI6IGV2ZW50Lm5ld1ZhbHVlXHJcblx0XHR9O1xyXG5cdFx0dGhpcy5vblNvcnRpbmcuZW1pdChzb3J0KTtcclxuXHR9XHJcblxyXG5cdGFzc2lnblRhYmxlQ29sdW1ucyhldmVudCkge1xyXG5cdFx0dGhpcy5vblJlc2l6ZShldmVudC50YXJnZXQuaW5uZXJXaWR0aCk7XHJcblx0fVxyXG5cclxuXHRvblJlc2l6ZSh3aWR0aCkge1xyXG5cdFx0aWYgKHdpZHRoID4gMTQwMCkge1xyXG5cdFx0XHR0aGlzLnRhYmxlV2lkdGggPSAnYXV0byc7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnRhYmxlV2lkdGggPSB0aGlzLmZ1bGxXaWR0aDtcclxuXHRcdH1cclxuXHRcdGlmICh3aWR0aCA8IDc2OCkge1xyXG5cdFx0XHR0aGlzLnRhYmxlQ29sdW1uc1N1Yi5uZXh0KHRoaXMucmVzcG9uc2l2ZUNvbHVtbnMpO1xyXG5cdFx0XHR0aGlzLnJlc3BvbnNpdmVWaWV3ID0gdHJ1ZTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMucmVzcG9uc2l2ZVZpZXcgPSBmYWxzZTtcclxuXHJcblx0XHRcdHRoaXMudGFibGVDb2x1bW5zU3ViLm5leHQodGhpcy5jb2x1bW5zKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNhcmRTZWxlY3RlZChjYXJkKSB7XHJcblx0XHRpZiAodGhpcy5oaWdobGlnaHRTZWxlY3RlZENhcmQpIHtcclxuXHRcdFx0dGhpcy5yb3dzLm1hcCgocm93KSA9PiB7XHJcblx0XHRcdFx0cm93Wydpc1NlbGVjdGVkJ10gPSBmYWxzZTtcclxuXHRcdFx0fSk7XHJcblx0XHRcdGNhcmRbJ2lzU2VsZWN0ZWQnXSA9IHRydWU7XHJcblx0XHR9XHJcblx0XHR0aGlzLm9uUm93U2VsZWN0ZWQuZW1pdChjYXJkKTtcclxuXHR9XHJcblxyXG5cdGNhcmRGb2N1c2VkKGluZGV4KSB7XHJcblx0XHR0aGlzLm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KGluZGV4KTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdlxyXG5cdGNsYXNzPVwiaW5lci10YWJsZS1jb250YWluZXJcIlxyXG5cdFtzdHlsZV09XCInd2lkdGg6JyArIHRhYmxlV2lkdGhcIlxyXG5cdCpuZ0lmPVwidGFibGVNb2RlID09PSB0YWJsZU1vZGVzLmxpc3QgJiYgIXJlc3BvbnNpdmVWaWV3XCJcclxuPlxyXG5cdDxuZ3gtZGF0YXRhYmxlXHJcblx0XHRbbmdDbGFzc109XCJ7IG92ZXJmbG93VmlzaWJsZTogY3VzdG9tRmlyc3RSb3cgfVwiXHJcblx0XHRjbGFzcz1cImxhcmdlLXRhYmxlXCJcclxuXHRcdFtyb3dzXT1cInJvd3NcIlxyXG5cdFx0W3N1bW1hcnlSb3ddPVwiY3VzdG9tRmlyc3RSb3dcIlxyXG5cdFx0W2NvbHVtbk1vZGVdPVwiJ2ZvcmNlJ1wiXHJcblx0XHRbZXh0ZXJuYWxTb3J0aW5nXT1cInRydWVcIlxyXG5cdFx0KGFjdGl2YXRlKT1cInJvd0RldGFpbHMoJGV2ZW50KVwiXHJcblx0XHQoc2VsZWN0KT1cIm9uU2VsZWN0KCRldmVudClcIlxyXG5cdFx0KHNvcnQpPVwib25Tb3J0KCRldmVudClcIlxyXG5cdFx0KHdpbmRvdzpyZXNpemUpPVwiYXNzaWduVGFibGVDb2x1bW5zKCRldmVudClcIlxyXG5cdFx0W3Jvd0hlaWdodF09XCInYXV0bydcIlxyXG5cdFx0W3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcclxuXHRcdFtzZWxlY3Rpb25UeXBlXT1cIm11bHRpU2VsZWN0Um93cyA/ICdjaGVja2JveCcgOiAnc2luZ2xlJ1wiXHJcblx0XHRbc29ydHNdPVwiW3sgcHJvcDogZGVmdWx0U29ydD8ubmFtZSwgZGlyOiBkZWZ1bHRTb3J0Py5kaXIgfV1cIlxyXG5cdFx0W21lc3NhZ2VzXT1cIm1lc3NhZ2VzXCJcclxuXHJcblx0PlxyXG5cdFx0PG5neC1kYXRhdGFibGUtY29sdW1uXHJcblx0XHRcdCpuZ0lmPVwibXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W3dpZHRoXT1cIjMwXCJcclxuXHRcdFx0W3NvcnRhYmxlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Byb3BdPVwiJydcIlxyXG5cdFx0XHRbY2FuQXV0b1Jlc2l6ZV09XCJmYWxzZVwiXHJcblx0XHRcdFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRbcmVzaXplYWJsZV09XCJmYWxzZVwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdG5neC1kYXRhdGFibGUtaGVhZGVyLXRlbXBsYXRlXHJcblx0XHRcdFx0bGV0LXZhbHVlPVwidmFsdWVcIlxyXG5cdFx0XHRcdGxldC1hbGxSb3dzU2VsZWN0ZWQ9XCJhbGxSb3dzU2VsZWN0ZWRcIlxyXG5cdFx0XHRcdGxldC1zZWxlY3RGbj1cInNlbGVjdEZuXCJcclxuXHRcdFx0PlxyXG5cdFx0XHRcdDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgW2NoZWNrZWRdPVwiYWxsUm93c1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJzZWxlY3RGbighYWxsUm93c1NlbGVjdGVkKVwiPiA8L21hdC1jaGVja2JveD5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PG5nLXRlbXBsYXRlXHJcblx0XHRcdFx0bmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlXHJcblx0XHRcdFx0bGV0LXZhbHVlPVwidmFsdWVcIlxyXG5cdFx0XHRcdGxldC1pc1NlbGVjdGVkPVwiaXNTZWxlY3RlZFwiXHJcblx0XHRcdFx0bGV0LW9uQ2hlY2tib3hDaGFuZ2VGbj1cIm9uQ2hlY2tib3hDaGFuZ2VGblwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWRcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2VGbigkZXZlbnQpXCI+IDwvbWF0LWNoZWNrYm94PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0PC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHRcdDwhLS0gfCB0cmFuc2xhdGUgLS0+XHJcblxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYmxlQ29sdW1ucyQgfCBhc3luYyBhcyBjb2x1bW5zXCI+XHJcblx0XHRcdDxuZ3gtZGF0YXRhYmxlLWNvbHVtbiAqbmdJZj1cIiFjb2x1bW5zLmxlbmd0aFwiPjwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiISFjb2x1bW5zPy5sZW5ndGhcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogY29sdW1uLnBlcm1pc3Npb24gfVwiPlxyXG5cdFx0XHRcdFx0XHQ8bmd4LWRhdGF0YWJsZS1jb2x1bW5cclxuXHRcdFx0XHRcdFx0XHQqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCJcclxuXHRcdFx0XHRcdFx0XHRbc29ydGFibGVdPVwiY29sdW1uLnNvcnRhYmxlXCJcclxuXHRcdFx0XHRcdFx0XHRbbmFtZV09XCJwcmVmaXggKyBjb2x1bW4ubmFtZSB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFx0XHRcdFx0W3Byb3BdPVwiY29sdW1uLnByb3BcIlxyXG5cdFx0XHRcdFx0XHRcdFtyZXNpemVhYmxlXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFx0XHRbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuXHRcdFx0XHRcdFx0XHRbd2lkdGhdPVwiY29sdW1uPy5zaXplXCJcclxuXHRcdFx0XHRcdFx0XHRbaGVhZGVyQ2xhc3NdPVwiY29sdW1uLmhlYWRlckNsYXNzID8gY29sdW1uLmhlYWRlckNsYXNzIDogJydcIlxyXG5cdFx0XHRcdFx0XHRcdFtzdW1tYXJ5VGVtcGxhdGVdPVwiY3VzdG9tRmlyc3RSb3cgPyBjdXN0b21Sb3dUZW1wbGF0ZSA6IG51bGxcIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIGxldC1pbmRleD1cImluZGV4XCIgbmd4LWRhdGF0YWJsZS1jZWxsLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCIgKm5nSWY9XCIhY29sdW1uLndpdGhUb29sdGlwXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgdmFsdWUgPyB2YWx1ZSA6ICctLScgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyB2YWx1ZSA/IHZhbHVlIDogJy0tJyB9fVwiICpuZ0lmPVwiY29sdW1uLndpdGhUb29sdGlwXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgdmFsdWUgPyB2YWx1ZSA6ICctLScgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICd2b2NhYnVsYXJ5J1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWRyb3Bkb3duLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIiBbZHJvcGRvd25JZF09XCJjb2x1bW4udm9jYWJ1bGFyeUlkXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9jdHMtZHJvcGRvd24tdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ1ZvY0NlbGwnXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICh2YWx1ZSA/IGNvbHVtbi52b2NhYnVsYXJ5SWQgKyAnLicgKyB2YWx1ZSA6ICctLScpIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jSXRlbSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgdm9jSXRlbVRyYW5zbGF0aW9uUHJlZml4ICsgdmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RlcGFydG1lbnQnXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxjdHMtZGVwYXJ0bWVudC12aWV3ZXIgW25vU3R5bGVdPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPiA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdzdGF0dXMnXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwidmFsdWUge3sgdmFsdWUgfX1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwic3RhdHVzSWNvbnMgJiYgc3RhdHVzSWNvbnMgIT09IHt9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzdGF0dXMtaWNvbiB7eyBzdGF0dXNJY29uc1t2YWx1ZV0gfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Pjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7ICdTVEFUUy4nICsgdmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAncm9sZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0e3sgJ3JvbGUuJyArICh2YWx1ZSA/IHZhbHVlIDogJy0tJykgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdhY3Rpb25zJyAmJiByb3dzLmxlbmd0aCAhPT0gMFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwiZGlzYWJsZWRBY3Rpb25zID8gJ2Rpc2FibGVkLWFjdGlvbnMtd3JhcHBlcicgOiAnYWN0aW9ucy13cmFwcGVyJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCIhc2hvd0FjdGlvbnNBc01lbnVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8c3BhbiBjbGFzcz1cImJpIGJpLXRyYXNoIGRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93ICwgJ2RlbGV0ZScpXCI+PC9zcGFuPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZWRpdCcpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZSdcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiYmkgYmktdHJhc2hcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZScgfHwgZW50aXR5VHlwZSA9PT0gJ2RlcGFydG1lbnQnIHx8IGVudGl0eVR5cGUgPT09ICdzaWduZXJzJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PjwvaT5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwiYmkgYmktcGx1cy1zcXVhcmVcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJlbnRpdHlUeXBlID09PSAndXNlcnMnICYmIHJvdy5pc0luaXRpYWxcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29sdW1uLmFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3Rpb24udHlwZSA9PSAnYnV0dG9uJzsgZWxzZSBzaG93SWNvblwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInt7IGFjdGlvbi5jbGFzcyB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiIFtzdmdJY29uXT1cImFjdGlvbi5pY29uXCI+IDwvbWF0LWljb24+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGFjdGlvbi50aXRsZSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNzaG93SWNvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAncmVnaXN0ZXJDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctaW4tcmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLlJFR0lTVEVSJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdyZWdpc3RlcicpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ3NlbmRDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1lbnZlbG9wZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuU0VORCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnc2VuZCcpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2Nsb3NlQ29ycmVzcG9uZGFuY2UnLCBlbnRpdHk6IHJvdyB9XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLkNMT1NFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdjbG9zZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2FyY2hpdmVDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS1mb2xkZXItc3ltbGlua1wiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQVJDSElWRScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnYXJjaGl2ZScpXCJcclxuICAgICAgICAgICAgICA+PC9pPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRbbmdDbGFzc109XCJkaXNhYmxlZEFjdGlvbnMgPyAnZGlzYWJsZWQtYWN0aW9ucy13cmFwcGVyJyA6ICdhY3Rpb25zLXdyYXBwZXInXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cInNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b24gY2xhc3M9XCJhY3Rpb24tbWVudS10cmlnZ2VyXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRBY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiZGF0YXRhYmxlLWFjdGlvbnMtbWVudVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiICpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1wZW5jaWwtc3F1YXJlIGVkaXQtaWNvblwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdVUERBVEUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hdC1tZW51LWl0ZW1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd2b2MtdGFibGUnIHx8IGVudGl0eVR5cGUgPT09ICdkZXBhcnRtZW50JyB8fCBlbnRpdHlUeXBlID09PSAnc2lnbmVycydcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ2RlbGV0ZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0LW1lbnUtaXRlbVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3VzZXJzJyAmJiByb3cuaXNJbml0aWFsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1wbHVzLXNxdWFyZVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy1jb250dGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgY29sdW1uLmFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250dGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvbWF0LW1lbnU+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwidmFsdWVcIj48L2N0cy1kYXRlLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29udGV4dF09XCJyb3dcIj4gPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdkaXJlY3Rpb24nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxkaXYgKGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIiBjbGFzcz1cInN0YXR1cy13cmFwcGVyIHt7IHZhbHVlIH19IHt7IHJvdy5zdGF0ZSB9fVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiaW5lci1zdGF0dXMtd3JhcHBlclwiIG1hdFRvb2x0aXA9XCJ7eyAnU1RBVFMuJyArIHJvdy5zdGF0ZSB8IHRyYW5zbGF0ZSB9fVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqcGVybWlzc2lvbj1cInsgbmFtZTogJ2lzRmF2b3JpdGUnLCBlbnRpdHk6IHJvdyB9XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbmNvbWluZyddIDogJ2JpIGJpLWJveC1hcnJvdy1kb3duJyB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwicm93LnR5cGUgPT09ICdJbmNvbWluZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydvdXRnb2luZyddIDogJ2JpIGJpLWJveC1hcnJvdy11cCBvdXRnb2luZycgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgZGlyZWN0aW9uSWNvbnMgPyBkaXJlY3Rpb25JY29uc1snaW50ZXJuYWwnXSA6ICdiaSBiaS1ib3gtYXJyb3ctcmlnaHQgaW50ZXJuYWwnIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJyb3cudHlwZSA9PT0gJ0ludGVybmFsQ29ycmVzcG9uZGVuY2UnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHNwYW4gY2xhc3M9XCJ2YWx1ZSB7eyB2YWx1ZSB9fVwiPnt7IFwiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2N1c3RvbVJvd1RlbXBsYXRlIGxldC1yb3c9XCJyb3dcIiBsZXQtdmFsdWU9XCJ2YWx1ZVwiIG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctdmlzaWJsZVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW4uY3VzdG9tMXN0Q2VsbFRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29udGV4dF09XCJyb3dcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHQ8L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0PC9uZy1jb250YWluZXI+XHJcblx0PC9uZ3gtZGF0YXRhYmxlPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJyZXNwb25zaXZlVmlldyAmJiB0YWJsZU1vZGUgIT09IHRhYmxlTW9kZXMuY2FyZFwiICh3aW5kb3c6cmVzaXplKT1cImFzc2lnblRhYmxlQ29sdW1ucygkZXZlbnQpXCI+XHJcblx0PGRpdiBjbGFzcz1cImR5bmFtaWMtY2FyZHMtY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2XHJcblx0XHRcdGNsYXNzPVwic2luZ2xlLWNhcmRcIlxyXG5cdFx0XHRbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1jYXJkJzogaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZCB9XCJcclxuXHRcdFx0Km5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCJcclxuXHRcdD5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuXHRcdFx0XHQ8c3Bhbj5cclxuXHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCJcclxuXHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0PjwvaT5cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA+IDFcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIHRhYmxlQ29sdW1ucyQgfCBhc3luY1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImtleVwiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnb3duZXInXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkub3duZXJdPy5bcHJvcGVydHkudmFsdWVdIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RhdGUnXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIHwgbG9jYWxpemVkRGF0ZTogZm9ybWF0IDogKGlzQXJhYmljID8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdzdGF0dXMnXCIgY2xhc3M9XCJ2YWx1ZSB7eyByb3dbcHJvcGVydHkudmFsdWVdIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgJ1NUQVRTLicgKyByb3dbcHJvcGVydHkudmFsdWVdIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlcGFydG1lbnQnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiPiA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndm9jYWJ1bGFyeSdcIiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1kcm9wZG93bi12aWV3ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtkcm9wZG93bklkXT1cInByb3BlcnR5LnZvY2FidWxhcnlJZFwiXHJcblx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwvY3RzLWRyb3Bkb3duLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHQqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkaXJlY3Rpb24nXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiaWNvblNlbGVjdGVkKCRldmVudCwgcm93KVwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzdGF0dXMtd3JhcHBlciB7eyBwcm9wZXJ0eS52YWx1ZSB9fSB7eyByb3cuc3RhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmVyLXN0YXR1cy13cmFwcGVyXCIgbWF0VG9vbHRpcD1cInt7ICdTVEFUUy4nICsgcm93LnN0YXRlIHwgdHJhbnNsYXRlIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaXNGYXZvcml0ZScsIGVudGl0eTogcm93IH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYXYtaWNvbi1pbmRpY2F0b3IgYmkgYmktc3Rhci1maWxsXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1kb3duXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0luY29taW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctdXAgb3V0Z29pbmdcIiAqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbFwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJwcm9wZXJ0eS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwicHJvcGVydHlcIiBbY29udGV4dF09XCJyb3dcIj4gPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7eyBlbnRpdHlUeXBlIH19XCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XHJcblx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uc1swXS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uc1swXVwiIFtjb250ZXh0XT1cInJvd1wiPiA8L2N0cy1keW5hbWljLWNvbHVtbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSB0YWJsZU1vZGVzLmNhcmRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwic2luZ2xlLWNhcmRcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCBpID0gaW5kZXhcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuXHRcdFx0XHQ8c3Bhbj5cclxuXHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCJcclxuXHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0PjwvaT5cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2RlbGV0ZU1lbW8nLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGVNZW1vJylcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLk9OTFlfREVMRVRFJyB8IHRyYW5zbGF0ZSB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAndGVybWluYXRlRGVsZWdhdGlvbicsXHJcblx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3Rlcm1pbmF0ZURlbGVnYXRpb24nKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIiBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ21lbW9QdWJsaXNoZWQnLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHR7eyAnTUVNT1MuUFVCTElTSEVEJyB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2RlbGVnYXRpb25GaW5pc2hlZCcsXHJcblx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdHt7ICdkZWxlZ2F0aW9ucy5maW5pc2hlZCcgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcblx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdkZWxlZ2F0aW9uQWN0aXZlJyxcclxuXHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0e3sgJ2RlbGVnYXRpb25zLmFjdGl2ZScgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIHRhYmxlQ29sdW1ucyQgfCBhc3luY1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KTsgY2FyZEZvY3VzZWQoaSlcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwia2V5XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlICE9PSAnZGVmYXVsdCdcIj5cclxuXHRcdFx0XHRcdHt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuXHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJrZXlcIlxyXG5cdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnaW50ZXJuYWxJc0VuYWJsZWQnLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHR7eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd1c2VyJ1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0uZnVsbE5hbWUgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlOiBmb3JtYXQgOiAoaXNBcmFiaWMgPyAnYXItQVInIDogJ2VuLVVTJykgfX1cclxuXHRcdFx0XHRcdFx0PCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGV4dFwiICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2Jvb2xlYW4nXCI+XHJcblx0XHRcdFx0XHRcdHt7IChyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gPyAnWWVzJyA6ICdObycpIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuXHRcdFx0XHRcdFx0PGRpdlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwidGV4dFwiXHJcblx0XHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiAnaW50ZXJuYWxJc0VuYWJsZWQnLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIj5cclxuXHRcdFx0XHRcdFx0XHR7eyBpdGVtIHwgdHJhbnNsYXRlIH19IHt7ICcsICcgfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSB0YWJsZU1vZGVzLmR5bmFtaWNDYXJkXCI+XHJcblx0PGRpdiBjbGFzcz1cImNhcmRzLWNvbnRhaW5lclwiPlxyXG5cdFx0PGRpdlxyXG5cdFx0XHRjbGFzcz1cInNpbmdsZS1jYXJkXCJcclxuXHRcdFx0W25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtY2FyZCc6IGhpZ2hsaWdodFNlbGVjdGVkQ2FyZCAmJiByb3c/LmlzU2VsZWN0ZWQgfVwiXHJcblx0XHRcdCpuZ0Zvcj1cImxldCByb3cgb2Ygcm93c1wiXHJcblx0XHQ+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgdGFibGVDb2x1bW5zJCB8IGFzeW5jXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB8IGxvY2FsaXplZERhdGU6IGZvcm1hdCA6IChpc0FyYWJpYyA/ICdhci1BUicgOiAnZW4tVVMnKSB9fVxyXG5cdFx0XHRcdFx0XHRcdDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJpbmVyLWNhcmQtY29udGFpbmVyIHt7IGVudGl0eVR5cGUgfX1cIiAoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIiAqbmdJZj1cInRhYmxlQ29sdW1ucy5sZW5ndGggPT09IDFcIj5cclxuXHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJ0YWJsZUNvbHVtbnNbMF0udGVtcGxhdGVcIiBbY29sdW1uXT1cInRhYmxlQ29sdW1uc1swXVwiIFtjb250ZXh0XT1cInJvd1wiPlxyXG5cdFx0XHRcdDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0YWJsZU1vZGUgPT09IHRhYmxlTW9kZXMuY3VzdG9tXCIgY2xhc3M9XCJ0YWJsZS1jdXN0b20tdmlld1wiPlxyXG5cdDxhcHAtZHluYW1pYy1jb21wb25lbnRcclxuXHRcdGNsYXNzPVwidGFibGUtY3VzdG9tLXZpZXdfX2NvbXBvbmVudFwiXHJcblx0XHQqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIlxyXG5cdFx0W2NvbXBvbmVudE5hbWVdPVwiY29tcG9uZW50TmFtZVwiXHJcblx0XHRbcm93XT1cInJvd1wiXHJcblx0XHRbcm93QWN0aW9uXT1cImFjdGlvbk9uUm93XCJcclxuXHRcdFtvbkNsaWNrXT1cIm9uUm93U2VsZWN0ZWRcIlxyXG5cdFx0KGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCJcclxuXHRcdFtjbGFzcy5keW5hbWljLXNlbGVjdGVkLWNhcmRdPVwiaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkICYmIHJvdz8uaXNTZWxlY3RlZFwiXHJcblx0PjwvYXBwLWR5bmFtaWMtY29tcG9uZW50PlxyXG48L2Rpdj5cclxuIl19
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZS90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBS2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXJDLE1BQU0sVUFBVSxHQUFHO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixXQUFXLEVBQUUsYUFBYTtJQUMxQixNQUFNLEVBQUUsUUFBUTtDQUNQLENBQUM7QUFFWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFPSCxNQUFNLE9BQU8sY0FBYztJQStGMUIsWUFDUSxZQUEwQixFQUN6QixTQUEyQixFQUMzQixXQUErQjs7UUFGaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBOUZ4Qyw4Q0FBOEM7UUFDcEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLDREQUE0RDtRQUNsRCx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2xELG1EQUFtRDtRQUN6QyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsbUVBQW1FO1FBQ3pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxzQ0FBc0M7UUFDNUIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDekMsK0NBQStDO1FBQ3JDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEQsc0RBQXNEO1FBRTlDLFVBQUssR0FBZSxFQUFFLENBQUM7UUFhL0Isc0RBQXNEO1FBQzdDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFDakMsZ0dBQWdHO1FBQ3ZGLFdBQU0sR0FBRyxFQUFFLENBQUM7UUFLckIsa0JBQWtCO1FBQ1QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUMzQixrQ0FBa0M7UUFDekIsY0FBUyxHQUFHLE1BQU0sQ0FBQztRQUk1QixlQUFVLEdBQUcsVUFBVSxDQUFDO1FBRWYsY0FBUyxHQUFXLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFNcEMsV0FBTSxHQUFHLFdBQVcsQ0FBQztRQUNyQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBRWxCLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUV2QywyQ0FBMkM7UUFDbEMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFakMsdURBQXVEO1FBQzlDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLHFFQUFxRTtRQUU1RCxzQkFBaUIsR0FBRyxLQUFLLENBQUMsQ0FBQywrQ0FBK0M7UUFFMUUsYUFBUSxHQUEyQixFQUFFLFlBQVksRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUVqRSxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUN4QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFDcEIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsaURBQWdDO1FBRXZCLHNCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxzQkFBaUIsR0FBdUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FDRixDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ1gsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUM5RyxDQUNELENBQUM7UUFNRixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGdCQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsK0NBQStDO1FBQ2pFLG1CQUFjLEdBQUcsRUFBRSxDQUFDLENBQUMsa0RBQWtEO1FBQ3ZFLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQU01QixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxNQUFBLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLE1BQU0sMENBQUUsb0JBQW9CLENBQUM7UUFDeEYsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQXhGRCxJQUFhLElBQUksQ0FBQyxJQUFnQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ25CLENBQUM7SUEyREQsSUFBSSxZQUFZO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFzQkQsZUFBZTs7UUFDZCxJQUFJLENBQUMsQ0FBQSxNQUFBLElBQUksQ0FBQyxjQUFjLDBDQUFFLGFBQWEsQ0FBQTtZQUFFLE9BQU87UUFDaEQsdUJBQUEsSUFBSSxrQ0FBbUIsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzlCLENBQUMsQ0FBQyxNQUFBLENBQUM7UUFFSCx1QkFBQSxJQUFJLHNDQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFDRCxXQUFXO1FBQ1YsSUFBSSx1QkFBQSxJQUFJLHNDQUFnQixFQUFFO1lBQ3pCLHVCQUFBLElBQUksc0NBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbEM7SUFDRixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCOztRQUNqQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sMENBQUUsYUFBYSxFQUFFLENBQUEsRUFBRTtZQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBQSxPQUFPLENBQUMsT0FBTywwQ0FBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQzlEO0lBQ0YsQ0FBQztJQUVELFFBQVE7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELFVBQVUsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFlBQVksRUFBRTtZQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDekM7U0FDRDtJQUNGLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBaUIsRUFBRSxHQUFHO1FBQ2xDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsdUVBQXVFO0lBQ3ZFLGFBQWEsQ0FBQyxTQUFTLEVBQUUsVUFBVTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWU7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3JCLElBQUksRUFBRSxVQUFVO2dCQUNoQixHQUFHLEVBQUUsU0FBUzthQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsUUFBUSxDQUFDLEVBQUUsUUFBUSxFQUFFO1FBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdkM7UUFFRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxNQUFNLENBQUMsS0FBSztRQUNYLElBQUksSUFBSSxHQUFHO1lBQ1YsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVztZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFLO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDYixJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7U0FDekI7YUFBTTtZQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNqQztRQUNELElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUNoQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztTQUMzQjthQUFNO1lBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFFNUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3hDO0lBQ0YsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFJO1FBQ2hCLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQzs7OzRHQWhOVyxjQUFjO2dHQUFkLGNBQWMsKzZCQUNmLGtCQUFrQix3S0NuRTlCLDgyeEJBNGhCQTs0RkQxZGEsY0FBYztrQkFOMUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsV0FBVztvQkFDckIsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3JDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUNyQzttS0FFK0IsU0FBUztzQkFBdkMsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBQ0EsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBR2pCLGFBQWE7c0JBQXRCLE1BQU07Z0JBRUcsa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUVHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFJTSxJQUFJO3NCQUFoQixLQUFLO2dCQVNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyx3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcscUJBQXFCO3NCQUE3QixLQUFLO2dCQUdHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFTRyxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENvbXBvbmVudCxcclxuXHRFbGVtZW50UmVmLFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T25Jbml0LFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFZpZXdDaGlsZCxcclxuXHRWaWV3RW5jYXBzdWxhdGlvblxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTnV4ZW9TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXRhYmxlQ29tcG9uZW50IH0gZnJvbSAnQHN3aW1sYW5lL25neC1kYXRhdGFibGUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5jb25zdCBUQUJMRV9NT0RFID0ge1xyXG5cdGxpc3Q6ICdsaXN0JyxcclxuXHRjYXJkOiAnY2FyZCcsXHJcblx0ZHluYW1pY0NhcmQ6ICdkeW5hbWljQ2FyZCcsXHJcblx0Y3VzdG9tOiAnY3VzdG9tJ1xyXG59IGFzIGNvbnN0O1xyXG5cclxuLyoqXHJcbiAqIHRoaXMgY29tcG9uZW50IGlzIGEgbXVsdGktcHVycG9zZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgZHVtYiBkYXRhIHRhYmxlIHRoYXQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gc2hvdyBhbnkgbGlzdCBvZiBkYXRhLFxyXG4gKiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBjb25maWd1cmluZyB0aGUgdGFibGVcclxuICogYW5kIHRoZSBqc29uIHN0cnVjdHVyZSBmb3IgdGhlIGlucHV0cyBwbGVhc2UgY2hlY2sgW0NvbmZpZ3VyYXRpb24gRmlsZV17QGxpbmsgLi4vYWRkaXRpb25hbC1kb2N1bWVudGF0aW9uL2NvbmZpZy1maWxlLmh0bWx9XHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9keW5hbWljVGFibGUucG5nKVxyXG4gKlxyXG4gKiAjIyMgcmVsYXRlZCBMaW5rczpcclxuICogLSBbUGFnaW5hdGlvbiBDb21wb25lbnRde0BsaW5rIFBhZ2luYXRpb25Db21wb25lbnR9XHJcbiAqIC0gW0R5bmFtaWMgVGFibGVde0BsaW5rIER5bmFtaWNUYWJsZUNvbXBvbmVudH1cclxuICogLSBbQ29uZmlndXJhdGlvbiBGaWxlXXtAbGluayAuLi9hZGRpdGlvbmFsLWRvY3VtZW50YXRpb24vY29uZmlnLWZpbGUuaHRtbH1cclxuICpcclxuICogQHRpdGxlXHJcbiAqIERhdGEgVGFibGVcclxuICpcclxuICogQGV4YW1wbGVcclxuICpcclxuICogPGN0cy10YWJsZVxyXG4gKiAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAqICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICogICAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAqICAgICBbcm93Q3Vyc29yXT1cInJvd0N1cnNvclwiXHJcbiAqICAgICBbZnVsbFdpZHRoXT1cImZ1bGxXaWR0aFwiXHJcbiAqICAgICBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCJcclxuICogICAgIFtwcmVmaXhdPVwicHJlZml4XCJcclxuICogICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICogICAgIFt0YWJsZU1vZGVdPVwidGFibGVNb2RlXCJcclxuICogICAgIFt0YWJsZUFjdGlvbnNdPVwidGFibGVBY3Rpb25zXCJcclxuICogICAgIChvblJvd1NlbGVjdGVkKT1cInJvd0RldGFpbHMoJGV2ZW50KVwiXHJcbiAqICAgICAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICogICAgIChvblNvcnRpbmcpPVwib25Tb3J0KCRldmVudClcIlxyXG4gKiAgPjwvY3RzLXRhYmxlPlxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdjdHMtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcblx0c3R5bGVVcmxzOiBbJy4vdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHRAVmlld0NoaWxkKERhdGF0YWJsZUNvbXBvbmVudCkgZGF0YVRhYmxlOiBEYXRhdGFibGVDb21wb25lbnQ7XHJcblx0QFZpZXdDaGlsZCgndGFibGVDb250YWluZXInKSB0YWJsZUNvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuXHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyAqL1xyXG5cdEBPdXRwdXQoKSBvblJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gc2VsZWN0aW5nIHNpbmdsZSByb3cgdG8gY2F0Y2ggaW5kZXgqL1xyXG5cdEBPdXRwdXQoKSBvblJvd0luZGV4U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHRvIGVtaXQgd2hlbiBzZWxlY3Rpbmcgc2luZ2xlIHJvdyBJY29uICovXHJcblx0QE91dHB1dCgpIG9uSWNvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0byBlbWl0IHdoZW4gcGVyZm9ybSBhY3Rpb24gb24gcm93IChkZWx0ZSwgZWRpdCwgLi4uICkgKi9cclxuXHRAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0LyoqIGV2ZW50IHQgZW1pdCB3aGVuIHNvcnRpbmcgdGFibGUgKi9cclxuXHRAT3V0cHV0KCkgb25Tb3J0aW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdC8qKiBldmVudCB0IGVtaXQgd2hlbiBzZWxlY3RpbmcgbXVsdGlwbGUgcm93ICovXHJcblx0QE91dHB1dCgpIG9uTXVsdGlSb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHQvKiogYXJheSBvZiByb3dzIHBhc3NlZCBmcm9tIG91dCBzaWRlIHRoZSBjb21wb25lbnQgKi9cclxuXHJcblx0cHJpdmF0ZSBfcm93czogQXJyYXk8YW55PiA9IFtdO1xyXG5cdEBJbnB1dCgpIHNldCByb3dzKHJvd3M6IEFycmF5PGFueT4pIHtcclxuXHRcdHRoaXMuX3Jvd3MgPSByb3dzO1xyXG5cdFx0dGhpcy5zZWxlY3RlZCA9IFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IHJvd3MoKTogQXJyYXk8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5fcm93cztcclxuXHR9XHJcblx0LyoqIGFycmF5IG9mIGNvbHVtbnMgcGFhc2VkIGZyb20gb3V0IHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG5cdEBJbnB1dCgpIGNvbHVtbnM7XHJcblx0LyoqIGFycmF5IG9mIGNvbHVtbnMgcGFhc2VkIGZyb20gb3V0IHNpZGUgdGhlIGNvbXBvbmVudCBmb3Igc21hbGxlciBzY3JlZW5zICovXHJcblx0QElucHV0KCkgcmVzcG9uc2l2ZUNvbHVtbnM7XHJcblx0LyoqIHRvIGRlZmluZSB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcblx0QElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nID0gJyc7XHJcblx0LyoqIHN0YXRpYyAgcGF0aCBmb3IgdHJhbnNsYXRpb24gcGFzc2VkIGZyb20gb3V0IHNpZGUgYWNjb3JkaW5nIHRvIGVhY2ggcGFnZSB0cmFuc2xhdGlvbiBwYXRoICovXHJcblx0QElucHV0KCkgcHJlZml4ID0gJyc7XHJcblx0LyoqIEBkZXByZWNhdGVkICovXHJcblx0QElucHV0KCkgcGFnZUNvdW50O1xyXG5cdC8qKiBUb3RhbCBSZWNvcmRzY291bnQgKi9cclxuXHRASW5wdXQoKSB0b3RhbFJlY29yZHM7XHJcblx0LyoqIEBkZXByZWNhdGVkICovXHJcblx0QElucHV0KCkgcm93Q3Vyc29yID0gZmFsc2U7XHJcblx0LyoqIE1heCBmdWxsIHdpZHRoIGluIFBYIHwgYXV0byAqL1xyXG5cdEBJbnB1dCgpIGZ1bGxXaWR0aCA9ICdhdXRvJztcclxuXHQvKiogVm9jYWJ1bGFyeSBUcmFuc2xhdGlvbiBwcmVmaXggKi9cclxuXHRASW5wdXQoKSB2b2NJdGVtVHJhbnNsYXRpb25QcmVmaXg7XHJcblxyXG5cdHRhYmxlTW9kZXMgPSBUQUJMRV9NT0RFO1xyXG5cclxuXHRASW5wdXQoKSB0YWJsZU1vZGU6IHN0cmluZyA9IFRBQkxFX01PREUubGlzdDtcclxuXHJcblx0QElucHV0KCkgY29tcG9uZW50TmFtZTogc3RyaW5nO1xyXG5cclxuXHQvKiogYWN0aW9uIHRvIGJlIGluIGNhcmQgbW9kZSAqL1xyXG5cdEBJbnB1dCgpIHRhYmxlQWN0aW9ucztcclxuXHRASW5wdXQoKSBmb3JtYXQgPSAnTU1NTSBkLCB5JztcclxuXHRASW5wdXQoKSBkZWZ1bHRTb3J0ID0gbnVsbDtcclxuXHRsYW5nU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblx0QElucHV0KCkgaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkID0gZmFsc2U7XHJcblxyXG5cdC8qKiBhbGxvdyBtdWx0aXNlbGVjdCByb3dzIHdpdGggY2hlY2tib3ggKi9cclxuXHRASW5wdXQoKSBtdWx0aVNlbGVjdFJvd3MgPSBmYWxzZTtcclxuXHJcblx0LyoqIHRvIHNob3cgMXN0IHJvdyB3aXRoIGN1c3RvbSB0ZW1wbGF0ZSBpbiB0aGUgdGFibGUqL1xyXG5cdEBJbnB1dCgpIGN1c3RvbUZpcnN0Um93ID0gZmFsc2U7XHJcblx0LyoqIGZsYWdlIHVzZWQgdG8gZGlzYWJsZSBhY3Rpb25zIGlmIHRoZXJlIHdhcyBtdWx0aSBzZWxlY3RlZCByb3dzICovXHJcblxyXG5cdEBJbnB1dCgpIHNob3dBY3Rpb25zQXNNZW51ID0gZmFsc2U7IC8vIGZsYWdlIHRvIHNob3cgYWN0aW9uIGluIG1lbnUgb3Igc2lkZSBieSBzaWRlXHJcblxyXG5cdEBJbnB1dCgpIG1lc3NhZ2VzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyBlbXB0eU1lc3NhZ2U6ICcnIH07XHJcblxyXG5cdGRpc2FibGVkQWN0aW9ucyA9IGZhbHNlO1xyXG5cdGlzQXJhYmljID0gZmFsc2U7XHJcblx0dGFibGVXaWR0aCA9ICdhdXRvJztcclxuXHR0YWJsZUNvbHVtbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuXHR0YWJsZUNvbHVtbnMkID0gdGhpcy50YWJsZUNvbHVtbnNTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0I3Jlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcblx0QElucHV0KCkgZGVmYXVsdENvbHVtblNpemUgPSAyMDA7XHJcblx0c3VtT2ZDb2x1bW5TaXplcyQ6IE9ic2VydmFibGU8bnVtYmVyPiA9IHRoaXMudGFibGVDb2x1bW5zJC5waXBlKFxyXG5cdFx0bWFwKFxyXG5cdFx0XHQoY29sdW1ucykgPT5cclxuXHRcdFx0XHRjb2x1bW5zLnJlZHVjZSgoc3VtLCBjb2wpID0+IHN1bSArIChjb2wuc2l6ZSB8fCB0aGlzLmRlZmF1bHRDb2x1bW5TaXplKSwgMCkgKyAodGhpcy5tdWx0aVNlbGVjdFJvd3MgPyAzMCA6IDApXHJcblx0XHQpXHJcblx0KTtcclxuXHJcblx0Z2V0IHRhYmxlQ29sdW1ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYmxlQ29sdW1uc1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdH1cclxuXHRjdXJyZW50Um93O1xyXG5cdHNlbGVjdGVkID0gW107XHJcblx0cGFnZU51bWJlciA9IDE7XHJcblx0cmVzcG9uc2l2ZVZpZXcgPSBmYWxzZTtcclxuXHRzdGF0dXNJY29ucyA9IHt9OyAvLyBvYmplY3QgdG8gY29udGFpbnMgYWxsIHN0YXR1cyBpY29ucyBpZiBleGlzdFxyXG5cdGRpcmVjdGlvbkljb25zID0ge307IC8vIG9iamVjdCB0byBjb250YWlucyBhbGwgZGlyZWN0aW9uIGljb25zIGlmIGV4aXN0XHJcblx0aXNGaXhlZE9wdGlvbkNvbHVtbnMgPSBmYWxzZTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHB1YmxpYyBudXhlb1NlcnZpY2U6IE51eGVvU2VydmljZSxcclxuXHRcdHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlXHJcblx0KSB7XHJcblx0XHR0aGlzLmZvcm1hdCA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvblsnZGF0ZUZvcm1hdGUnXTtcclxuXHRcdHRoaXMuc3RhdHVzSWNvbnMgPSB0aGlzLmFwcENvbmZpZy5teUNvbmZpZ3VyYXRpb25bJ3N0YXR1c0ljb25zJ107XHJcblx0XHR0aGlzLmRpcmVjdGlvbkljb25zID0gdGhpcy5hcHBDb25maWcubXlDb25maWd1cmF0aW9uWydkaXJlY3Rpb25JY29ucyddO1xyXG5cdFx0dGhpcy5pc0ZpeGVkT3B0aW9uQ29sdW1ucyA9IHRoaXMuYXBwQ29uZmlnLm15Q29uZmlndXJhdGlvbi50YWJsZXM/LmlzRml4ZWRPcHRpb25Db2x1bW5zO1xyXG5cdFx0dGhpcy5sYW5nU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGlvbi5pc0FyYWJpYy5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHR0aGlzLmlzQXJhYmljID0gcmVzO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMudGFibGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcclxuXHRcdHRoaXMuI3Jlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChlbnRyaWVzKSA9PiB7XHJcblx0XHRcdHRoaXMuZGF0YVRhYmxlLnJlY2FsY3VsYXRlKCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLiNyZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMudGFibGVDb250YWluZXIubmF0aXZlRWxlbWVudCk7XHJcblx0fVxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuI3Jlc2l6ZU9ic2VydmVyKSB7XHJcblx0XHRcdHRoaXMuI3Jlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzLmNvbHVtbnMgJiYgIWNoYW5nZXM/LmNvbHVtbnM/LmlzRmlyc3RDaGFuZ2UoKSkge1xyXG5cdFx0XHR0aGlzLnRhYmxlQ29sdW1uc1N1Yi5uZXh0KFsuLi5jaGFuZ2VzLmNvbHVtbnM/LmN1cnJlbnRWYWx1ZV0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLm9uUmVzaXplKHdpbmRvdy5pbm5lcldpZHRoKTtcclxuXHR9XHJcblxyXG5cdC8vIGZ1bmN0aW9uIHRvIGJlIGV4ZWN1dGVkIHdoZW4gY2xpY2tpbmcgb24gc2luZ2xlIHJvd1xyXG5cdHJvd0RldGFpbHMoZXZlbnQpIHtcclxuXHRcdGlmIChldmVudC50eXBlICE9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0aWYgKGV2ZW50LnR5cGUgPT09ICdjbGljaycgJiYgZXZlbnQuY29sdW1uLnByb3AgIT09ICcnKSB7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50Um93ID0gZXZlbnQucm93O1xyXG5cdFx0XHRcdHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KHRoaXMuY3VycmVudFJvdyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0aWNvblNlbGVjdGVkKGV2ZW50OiBNb3VzZUV2ZW50LCByb3cpIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5vbkljb25TZWxlY3RlZC5lbWl0KHJvdyk7XHJcblx0fVxyXG5cclxuXHQvL2Z1bmN0aW9uIHRvIGhhbmRsZSBhbGwgb3BlcmF0aW9ucyBvbiBzaW5nbGUgcm93IChkZWxldGUgLCBlZGl0ICwgLi4uKVxyXG5cdHBlcmZvcm1BY3Rpb24oc2luZ2xlUm93LCBhY3Rpb25UeXBlKSB7XHJcblx0XHRpZiAoIXRoaXMuZGlzYWJsZWRBY3Rpb25zKVxyXG5cdFx0XHR0aGlzLmFjdGlvbk9uUm93LmVtaXQoe1xyXG5cdFx0XHRcdHR5cGU6IGFjdGlvblR5cGUsXHJcblx0XHRcdFx0cm93OiBzaW5nbGVSb3dcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBoYW5kbGUgY2hlY2tib3ggaWYgdGFibGUgaGFzIG9uZXNcclxuXHRvblNlbGVjdCh7IHNlbGVjdGVkIH0pIHtcclxuXHRcdGlmICh0aGlzLm11bHRpU2VsZWN0Um93cykge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkLnNwbGljZSgwLCB0aGlzLnNlbGVjdGVkLmxlbmd0aCk7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWQucHVzaCguLi5zZWxlY3RlZCk7XHJcblx0XHRcdHRoaXMub25NdWx0aVJvd1NlbGVjdGVkLmVtaXQoc2VsZWN0ZWQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuZGlzYWJsZWRBY3Rpb25zID0gdGhpcy5tdWx0aVNlbGVjdFJvd3MgJiYgc2VsZWN0ZWQubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdC8vIGhhbmRsZSBzb3J0aW5nIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlXHJcblx0b25Tb3J0KGV2ZW50KSB7XHJcblx0XHRsZXQgc29ydCA9IHtcclxuXHRcdFx0c29ydEJ5OiBldmVudC5jb2x1bW4uaGVhZGVyQ2xhc3MsXHJcblx0XHRcdHNvcnRPcmRlcjogZXZlbnQubmV3VmFsdWVcclxuXHRcdH07XHJcblx0XHR0aGlzLm9uU29ydGluZy5lbWl0KHNvcnQpO1xyXG5cdH1cclxuXHJcblx0YXNzaWduVGFibGVDb2x1bW5zKGV2ZW50KSB7XHJcblx0XHR0aGlzLm9uUmVzaXplKGV2ZW50LnRhcmdldC5pbm5lcldpZHRoKTtcclxuXHR9XHJcblxyXG5cdG9uUmVzaXplKHdpZHRoKSB7XHJcblx0XHRpZiAod2lkdGggPiAxNDAwKSB7XHJcblx0XHRcdHRoaXMudGFibGVXaWR0aCA9ICdhdXRvJztcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMudGFibGVXaWR0aCA9IHRoaXMuZnVsbFdpZHRoO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHdpZHRoIDwgNzY4KSB7XHJcblx0XHRcdHRoaXMudGFibGVDb2x1bW5zU3ViLm5leHQodGhpcy5yZXNwb25zaXZlQ29sdW1ucyk7XHJcblx0XHRcdHRoaXMucmVzcG9uc2l2ZVZpZXcgPSB0cnVlO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5yZXNwb25zaXZlVmlldyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0dGhpcy50YWJsZUNvbHVtbnNTdWIubmV4dCh0aGlzLmNvbHVtbnMpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y2FyZFNlbGVjdGVkKGNhcmQpIHtcclxuXHRcdGlmICh0aGlzLmhpZ2hsaWdodFNlbGVjdGVkQ2FyZCkge1xyXG5cdFx0XHR0aGlzLnJvd3MubWFwKChyb3cpID0+IHtcclxuXHRcdFx0XHRyb3dbJ2lzU2VsZWN0ZWQnXSA9IGZhbHNlO1xyXG5cdFx0XHR9KTtcclxuXHRcdFx0Y2FyZFsnaXNTZWxlY3RlZCddID0gdHJ1ZTtcclxuXHRcdH1cclxuXHRcdHRoaXMub25Sb3dTZWxlY3RlZC5lbWl0KGNhcmQpO1xyXG5cdH1cclxuXHJcblx0Y2FyZEZvY3VzZWQoaW5kZXgpIHtcclxuXHRcdHRoaXMub25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoaW5kZXgpO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcblx0I3RhYmxlQ29udGFpbmVyXHJcblx0Y2xhc3M9XCJpbmVyLXRhYmxlLWNvbnRhaW5lclwiXHJcblx0W3N0eWxlXT1cIid3aWR0aDonICsgdGFibGVXaWR0aFwiXHJcblx0Km5nSWY9XCJ0YWJsZU1vZGUgPT09IHRhYmxlTW9kZXMubGlzdCAmJiAhcmVzcG9uc2l2ZVZpZXdcIlxyXG4+XHJcblx0PG5neC1kYXRhdGFibGVcclxuXHRcdFtuZ0NsYXNzXT1cInsgb3ZlcmZsb3dWaXNpYmxlOiBjdXN0b21GaXJzdFJvdyB9XCJcclxuXHRcdGNsYXNzPVwibGFyZ2UtdGFibGVcIlxyXG5cdFx0W3Jvd3NdPVwicm93c1wiXHJcblx0XHRbc3VtbWFyeVJvd109XCJjdXN0b21GaXJzdFJvd1wiXHJcblx0XHRbY29sdW1uTW9kZV09XCInc3RhbmRhcmQnXCJcclxuXHRcdFtzY3JvbGxiYXJIXT1cInRydWVcIlxyXG5cdFx0W3N0eWxlLndpZHRoLiVdPVwiMTAwXCJcclxuXHRcdFtleHRlcm5hbFNvcnRpbmddPVwidHJ1ZVwiXHJcblx0XHQoYWN0aXZhdGUpPVwicm93RGV0YWlscygkZXZlbnQpXCJcclxuXHRcdChzZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcblx0XHQoc29ydCk9XCJvblNvcnQoJGV2ZW50KVwiXHJcblx0XHQod2luZG93OnJlc2l6ZSk9XCJhc3NpZ25UYWJsZUNvbHVtbnMoJGV2ZW50KVwiXHJcblx0XHRbcm93SGVpZ2h0XT1cIiczcmVtJ1wiXHJcblx0XHRbc2VsZWN0ZWRdPVwic2VsZWN0ZWRcIlxyXG5cdFx0W3NlbGVjdGlvblR5cGVdPVwibXVsdGlTZWxlY3RSb3dzID8gJ2NoZWNrYm94JyA6ICdzaW5nbGUnXCJcclxuXHRcdFtzb3J0c109XCJbeyBwcm9wOiBkZWZ1bHRTb3J0Py5uYW1lLCBkaXI6IGRlZnVsdFNvcnQ/LmRpciB9XVwiXHJcblx0XHRbbWVzc2FnZXNdPVwibWVzc2FnZXNcIlxyXG5cdD5cclxuXHRcdDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG5cdFx0XHQqbmdJZj1cIm11bHRpU2VsZWN0Um93c1wiXHJcblx0XHRcdFt3aWR0aF09XCIzMFwiXHJcblx0XHRcdFtzb3J0YWJsZV09XCJmYWxzZVwiXHJcblx0XHRcdFtwcm9wXT1cIicnXCJcclxuXHRcdFx0W2NhbkF1dG9SZXNpemVdPVwiZmFsc2VcIlxyXG5cdFx0XHRbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Jlc2l6ZWFibGVdPVwiZmFsc2VcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0XHRuZ3gtZGF0YXRhYmxlLWhlYWRlci10ZW1wbGF0ZVxyXG5cdFx0XHRcdGxldC12YWx1ZT1cInZhbHVlXCJcclxuXHRcdFx0XHRsZXQtYWxsUm93c1NlbGVjdGVkPVwiYWxsUm93c1NlbGVjdGVkXCJcclxuXHRcdFx0XHRsZXQtc2VsZWN0Rm49XCJzZWxlY3RGblwiXHJcblx0XHRcdD5cclxuXHRcdFx0XHQ8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFtjaGVja2VkXT1cImFsbFJvd3NTZWxlY3RlZFwiIChjaGFuZ2UpPVwic2VsZWN0Rm4oIWFsbFJvd3NTZWxlY3RlZClcIj4gPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZVxyXG5cdFx0XHRcdG5neC1kYXRhdGFibGUtY2VsbC10ZW1wbGF0ZVxyXG5cdFx0XHRcdGxldC12YWx1ZT1cInZhbHVlXCJcclxuXHRcdFx0XHRsZXQtaXNTZWxlY3RlZD1cImlzU2VsZWN0ZWRcIlxyXG5cdFx0XHRcdGxldC1vbkNoZWNrYm94Q2hhbmdlRm49XCJvbkNoZWNrYm94Q2hhbmdlRm5cIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlRm4oJGV2ZW50KVwiPiA8L21hdC1jaGVja2JveD5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvbmd4LWRhdGF0YWJsZS1jb2x1bW4+XHJcblx0XHQ8IS0tIHwgdHJhbnNsYXRlIC0tPlxyXG5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJsZUNvbHVtbnMkIHwgYXN5bmMgYXMgY29sdW1uc1wiPlxyXG5cdFx0XHQ8bmd4LWRhdGF0YWJsZS1jb2x1bW4gKm5nSWY9XCIhY29sdW1ucy5sZW5ndGhcIj48L25neC1kYXRhdGFibGUtY29sdW1uPlxyXG5cclxuXHRcdFx0PCEtLSBbZnJvemVuUmlnaHRdPVwiY29sdW1uLnR5cGUgPT09ICdhY3Rpb25zJ1wiIC0tPlxyXG5cdFx0XHQ8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uczsgbGV0IGkgPSBpbmRleFwiPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXIgKnBlcm1pc3Npb249XCJ7IG5hbWU6IGNvbHVtbi5wZXJtaXNzaW9uIH1cIj5cclxuXHRcdFx0XHRcdDxuZ3gtZGF0YXRhYmxlLWNvbHVtblxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cImNvbHVtbi5kaXNwbGF5XCJcclxuXHRcdFx0XHRcdFx0W3NvcnRhYmxlXT1cImNvbHVtbi5zb3J0YWJsZVwiXHJcblx0XHRcdFx0XHRcdFtuYW1lXT1cInByZWZpeCArIGNvbHVtbi5uYW1lIHwgdHJhbnNsYXRlXCJcclxuXHRcdFx0XHRcdFx0W3Byb3BdPVwiY29sdW1uLnByb3BcIlxyXG5cdFx0XHRcdFx0XHRbcmVzaXplYWJsZV09XCJmYWxzZVwiXHJcblx0XHRcdFx0XHRcdFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRcdFx0XHRbd2lkdGhdPVwiY29sdW1uPy5zaXplIHx8IGRlZmF1bHRDb2x1bW5TaXplXCJcclxuXHRcdFx0XHRcdFx0W2Zyb3plbkxlZnRdPVwiaXNGaXhlZE9wdGlvbkNvbHVtbnMgJiYgY29sdW1uLnR5cGUgPT09ICdhY3Rpb25zJ1wiXHJcblx0XHRcdFx0XHRcdFtoZWFkZXJDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3MgPyBjb2x1bW4uaGVhZGVyQ2xhc3MgOiAnJ1wiXHJcblx0XHRcdFx0XHRcdFtzdW1tYXJ5VGVtcGxhdGVdPVwiY3VzdG9tRmlyc3RSb3cgPyBjdXN0b21Sb3dUZW1wbGF0ZSA6IG51bGxcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC12YWx1ZT1cInZhbHVlXCIgbGV0LWluZGV4PVwiaW5kZXhcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAndGV4dCdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiICpuZ0lmPVwiIWNvbHVtbi53aXRoVG9vbHRpcFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7eyB2YWx1ZSA/IHZhbHVlIDogJy0tJyB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIiBtYXRUb29sdGlwPVwie3sgdmFsdWUgPyB2YWx1ZSA6ICctLScgfX1cIiAqbmdJZj1cImNvbHVtbi53aXRoVG9vbHRpcFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7eyB2YWx1ZSA/IHZhbHVlIDogJy0tJyB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3ZvY2FidWxhcnknXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGN0cy1kcm9wZG93bi12aWV3ZXIgW3dpdGhPdXRMYWJlbF09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCIgW2Ryb3Bkb3duSWRdPVwiY29sdW1uLnZvY2FidWxhcnlJZFwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L2N0cy1kcm9wZG93bi12aWV3ZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnVm9jQ2VsbCdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHR7eyAodmFsdWUgPyBjb2x1bW4udm9jYWJ1bGFyeUlkICsgJy4nICsgdmFsdWUgOiAnLS0nKSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ1ZvY0l0ZW0nXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgdm9jSXRlbVRyYW5zbGF0aW9uUHJlZml4ICsgdmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RlcGFydG1lbnQnXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiY2VsbC10ZXh0LXdyYXBwZXJcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInZhbHVlXCI+IDwvY3RzLWRlcGFydG1lbnQtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ3N0YXR1cydcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJzdGF0dXMtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cInZhbHVlIHt7IHZhbHVlIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gKm5nSWY9XCJzdGF0dXNJY29ucyAmJiBzdGF0dXNJY29ucyAhPT0ge31cIiBjbGFzcz1cInN0YXR1cy1pY29uIHt7IHN0YXR1c0ljb25zW3ZhbHVlXSB9fVwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7eyAnU1RBVFMuJyArIHZhbHVlIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLnR5cGUgPT09ICdyb2xlJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdHt7ICdyb2xlLicgKyAodmFsdWUgPyB2YWx1ZSA6ICctLScpIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnYWN0aW9ucycgJiYgcm93cy5sZW5ndGggIT09IDBcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRcdFx0W25nQ2xhc3NdPVwiZGlzYWJsZWRBY3Rpb25zID8gJ2Rpc2FibGVkLWFjdGlvbnMtd3JhcHBlcicgOiAnYWN0aW9ucy13cmFwcGVyJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiIXNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8c3BhbiBjbGFzcz1cImJpIGJpLXRyYXNoIGRlbGV0ZS1pY29uXCIgKGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93ICwgJ2RlbGV0ZScpXCI+PC9zcGFuPiAtLT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cImJpIGJpLXBlbmNpbC1zcXVhcmUgZWRpdC1pY29uXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJiaSBiaS10cmFzaFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGUnKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHwgZW50aXR5VHlwZSA9PT0gJ3NpZ25lcnMnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0PjwvaT5cclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJiaSBiaS1wbHVzLXNxdWFyZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0VG9vbHRpcD1cInt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cImVudGl0eVR5cGUgPT09ICd1c2VycycgJiYgcm93LmlzSW5pdGlhbFwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbHVtbi5hY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGlvbi50eXBlID09ICdidXR0b24nOyBlbHNlIHNob3dJY29uXCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInt7IGFjdGlvbi5jbGFzcyB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0PG1hdC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25cIiBbY2xhc3NdPVwiYWN0aW9uLmljb25DbGFzc1wiIFtzdmdJY29uXT1cImFjdGlvbi5pY29uXCI+IDwvbWF0LWljb24+XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR7eyBhY3Rpb24udGl0bGUgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjc2hvd0ljb24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBhY3Rpb24uaWNvbiB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PC9zcGFuPlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PCEtLSA8aVxyXG4gICAgICAgICAgICAgICAgKnBlcm1pc3Npb249XCJ7IG5hbWU6ICdyZWdpc3RlckNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1pbi1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuUkVHSVNURVInIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3JlZ2lzdGVyJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnc2VuZENvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWVudmVsb3BlXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5TRU5EJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdzZW5kJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnY2xvc2VDb3JyZXNwb25kYW5jZScsIGVudGl0eTogcm93IH1cIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiaSBiaS14LWNpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQ0xPU0UnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2Nsb3NlJylcIlxyXG4gICAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnYXJjaGl2ZUNvcnJlc3BvbmRhbmNlJywgZW50aXR5OiByb3cgfVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJpIGJpLWZvbGRlci1zeW1saW5rXCJcclxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJ7eyAnTElTVElORy5BUkNISVZFJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdhcmNoaXZlJylcIlxyXG4gICAgICAgICAgICAgID48L2k+IC0tPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2XHJcblx0XHRcdFx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cImRpc2FibGVkQWN0aW9ucyA/ICdkaXNhYmxlZC1hY3Rpb25zLXdyYXBwZXInIDogJ2FjdGlvbnMtd3JhcHBlcidcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cInNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0XHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1tZW51LXRyaWdnZXJcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZEFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRocmVlLWRvdHMtdmVydGljYWxcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJkYXRhdGFibGUtYWN0aW9ucy1tZW51XCI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2VkaXQnKVwiICpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3ZvYy10YWJsZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktcGVuY2lsLXNxdWFyZSBlZGl0LWljb25cIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgJ1VQREFURScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWF0LW1lbnUtaXRlbVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCAnZGVsZXRlJylcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJlbnRpdHlUeXBlID09PSAndm9jLXRhYmxlJyB8fCBlbnRpdHlUeXBlID09PSAnZGVwYXJ0bWVudCcgfHwgZW50aXR5VHlwZSA9PT0gJ3NpZ25lcnMnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdkZWxldGUnIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1hdC1tZW51LWl0ZW1cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ2RlbGV0ZScpXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwiZW50aXR5VHlwZSA9PT0gJ3VzZXJzJyAmJiByb3cuaXNJbml0aWFsXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXBsdXMtc3F1YXJlXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJhY3Rpb24tdGV4dFwiPnt7ICdVU0VSX01BTkdNRU5ULmFkZFRvRGVwYXJ0bWVudCcgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PG5nLWNvbnR0YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBjb2x1bW4uYWN0aW9uc1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csIGFjdGlvbi5hY3Rpb25OYW1lKVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi10ZXh0XCI+e3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnR0YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwvbWF0LW1lbnU+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJjZWxsLXRleHQtd3JhcHBlclwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJ2YWx1ZVwiPjwvY3RzLWRhdGUtdmlld2VyPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbHVtbi50eXBlID09PSAnY3VzdG9tJ1wiPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uLnRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29udGV4dF09XCJyb3dcIj4gPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4udHlwZSA9PT0gJ2RpcmVjdGlvbidcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDxkaXYgKGNsaWNrKT1cImljb25TZWxlY3RlZCgkZXZlbnQsIHJvdylcIiBjbGFzcz1cInN0YXR1cy13cmFwcGVyIHt7IHZhbHVlIH19IHt7IHJvdy5zdGF0ZSB9fVwiPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImluZXItc3RhdHVzLXdyYXBwZXJcIiBtYXRUb29sdGlwPVwie3sgJ1NUQVRTLicgKyByb3cuc3RhdGUgfCB0cmFuc2xhdGUgfX1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaXNGYXZvcml0ZScsIGVudGl0eTogcm93IH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmF2LWljb24taW5kaWNhdG9yIGJpIGJpLXN0YXItZmlsbFwiPjwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbmNvbWluZyddIDogJ2JpIGJpLWJveC1hcnJvdy1kb3duJyB9fVwiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQqbmdJZj1cInJvdy50eXBlID09PSAnSW5jb21pbmdDb3JyZXNwb25kZW5jZSdcIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgZGlyZWN0aW9uSWNvbnMgPyBkaXJlY3Rpb25JY29uc1snb3V0Z29pbmcnXSA6ICdiaSBiaS1ib3gtYXJyb3ctdXAgb3V0Z29pbmcnIH19XCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdCpuZ0lmPVwicm93LnR5cGUgPT09ICdPdXRnb2luZ0NvcnJlc3BvbmRlbmNlJ1wiXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PjwvaT5cclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJ7eyBkaXJlY3Rpb25JY29ucyA/IGRpcmVjdGlvbkljb25zWydpbnRlcm5hbCddIDogJ2JpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbCcgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Km5nSWY9XCJyb3cudHlwZSA9PT0gJ0ludGVybmFsQ29ycmVzcG9uZGVuY2UnXCJcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdFx0XHRcdDwhLS0gPHNwYW4gY2xhc3M9XCJ2YWx1ZSB7eyB2YWx1ZSB9fVwiPnt7IFwiU1RBVFMuXCIgKyB2YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj4gLS0+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0XHRcdFx0PG5nLXRlbXBsYXRlICNjdXN0b21Sb3dUZW1wbGF0ZSBsZXQtcm93PVwicm93XCIgbGV0LXZhbHVlPVwidmFsdWVcIiBuZ3gtZGF0YXRhYmxlLWNlbGwtdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInctZnVsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBvdmVyZmxvdy12aXNpYmxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJjb2x1bW4uY3VzdG9tMXN0Q2VsbFRlbXBsYXRlXCIgW2NvbHVtbl09XCJjb2x1bW5cIiBbY29udGV4dF09XCJyb3dcIj5cclxuXHRcdFx0XHRcdFx0XHRcdDwvY3RzLWR5bmFtaWMtY29sdW1uPlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PC9uZ3gtZGF0YXRhYmxlLWNvbHVtbj5cclxuXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L25neC1kYXRhdGFibGU+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInJlc3BvbnNpdmVWaWV3ICYmIHRhYmxlTW9kZSAhPT0gdGFibGVNb2Rlcy5jYXJkXCIgKHdpbmRvdzpyZXNpemUpPVwiYXNzaWduVGFibGVDb2x1bW5zKCRldmVudClcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiZHluYW1pYy1jYXJkcy1jb250YWluZXJcIj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJzaW5nbGUtY2FyZFwiXHJcblx0XHRcdFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWNhcmQnOiBoaWdobGlnaHRTZWxlY3RlZENhcmQgJiYgcm93Py5pc1NlbGVjdGVkIH1cIlxyXG5cdFx0XHQqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWVtby10aXRsZVwiPlxyXG5cdFx0XHRcdDxzcGFuPlxyXG5cdFx0XHRcdFx0e3sgcm93LnByb3BlcnRpZXMucmVmZXJlbmNlTnVtYmVyIH19XHJcblx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiYWN0aW9uLXdyYXBcIj5cclxuXHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiYWN0aW9uXCIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiB0YWJsZUFjdGlvbnNcIj5cclxuXHRcdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRcdG5hbWU6IGFjdGlvbi5wZXJtaXNzaW9uLFxyXG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwie3sgYWN0aW9uLmljb24gfX1cIlxyXG5cdFx0XHRcdFx0XHRcdG1hdFRvb2x0aXA9XCJ7eyBhY3Rpb24udG9vbHRpcCB8IHRyYW5zbGF0ZSB9fVwiXHJcblx0XHRcdFx0XHRcdFx0KGNsaWNrKT1cInBlcmZvcm1BY3Rpb24ocm93LCBhY3Rpb24uYWN0aW9uTmFtZSlcIlxyXG5cdFx0XHRcdFx0XHQ+PC9pPlxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJ0YWJsZUNvbHVtbnMubGVuZ3RoID4gMVwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJtZW1vLWJvZHlcIiAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgdGFibGVDb2x1bW5zJCB8IGFzeW5jXCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCI+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwia2V5XCI+e3sgcHJlZml4ICsgcHJvcGVydHkua2V5IHwgdHJhbnNsYXRlIH19PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidmFsdWVcIj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG5cdFx0XHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdvd25lcidcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS5vd25lcl0/Lltwcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlIDogZm9ybWF0IDogKGlzQXJhYmljID8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdFx0PGRpdiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdzdGF0dXMnXCIgY2xhc3M9XCJ2YWx1ZSB7eyByb3dbcHJvcGVydHkudmFsdWVdIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgJ1NUQVRTLicgKyByb3dbcHJvcGVydHkudmFsdWVdIHwgdHJhbnNsYXRlIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlcGFydG1lbnQnXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1kZXBhcnRtZW50LXZpZXdlciBbbm9TdHlsZV09XCJ0cnVlXCIgW3ZhbHVlXT1cInJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXVwiPiA8L2N0cy1kZXBhcnRtZW50LXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndm9jYWJ1bGFyeSdcIiBjbGFzcz1cImNlbGwtdGV4dC13cmFwcGVyXCI+XHJcblx0XHRcdFx0XHRcdFx0PGN0cy1kcm9wZG93bi12aWV3ZXJcclxuXHRcdFx0XHRcdFx0XHRcdFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiXHJcblx0XHRcdFx0XHRcdFx0XHRbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCJcclxuXHRcdFx0XHRcdFx0XHRcdFtkcm9wZG93bklkXT1cInByb3BlcnR5LnZvY2FidWxhcnlJZFwiXHJcblx0XHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdDwvY3RzLWRyb3Bkb3duLXZpZXdlcj5cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHQqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkaXJlY3Rpb24nXCJcclxuXHRcdFx0XHRcdFx0XHQoY2xpY2spPVwiaWNvblNlbGVjdGVkKCRldmVudCwgcm93KVwiXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJzdGF0dXMtd3JhcHBlciB7eyBwcm9wZXJ0eS52YWx1ZSB9fSB7eyByb3cuc3RhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJpbmVyLXN0YXR1cy13cmFwcGVyXCIgbWF0VG9vbHRpcD1cInt7ICdTVEFUUy4nICsgcm93LnN0YXRlIHwgdHJhbnNsYXRlIH19XCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpwZXJtaXNzaW9uPVwieyBuYW1lOiAnaXNGYXZvcml0ZScsIGVudGl0eTogcm93IH1cIj5cclxuXHRcdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmYXYtaWNvbi1pbmRpY2F0b3IgYmkgYmktc3Rhci1maWxsXCI+PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1kb3duXCIgKm5nSWY9XCJyb3cudHlwZSA9PT0gJ0luY29taW5nQ29ycmVzcG9uZGVuY2UnXCI+PC9pPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJiaSBiaS1ib3gtYXJyb3ctdXAgb3V0Z29pbmdcIiAqbmdJZj1cInJvdy50eXBlID09PSAnT3V0Z29pbmdDb3JyZXNwb25kZW5jZSdcIj48L2k+XHJcblx0XHRcdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLWJveC1hcnJvdy1yaWdodCBpbnRlcm5hbFwiICpuZ0lmPVwicm93LnR5cGUgPT09ICdJbnRlcm5hbENvcnJlc3BvbmRlbmNlJ1wiPjwvaT5cclxuXHRcdFx0XHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2ICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2N1c3RvbSdcIj5cclxuXHRcdFx0XHRcdFx0XHQ8Y3RzLWR5bmFtaWMtY29sdW1uIFtpZF09XCJwcm9wZXJ0eS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwicHJvcGVydHlcIiBbY29udGV4dF09XCJyb3dcIj4gPC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiaW5lci1jYXJkLWNvbnRhaW5lciB7eyBlbnRpdHlUeXBlIH19XCIgKGNsaWNrKT1cImNhcmRTZWxlY3RlZChyb3cpXCIgKm5nRm9yPVwibGV0IHJvdyBvZiByb3dzXCI+XHJcblx0XHRcdFx0PGN0cy1keW5hbWljLWNvbHVtbiBbaWRdPVwiY29sdW1uc1swXS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwiY29sdW1uc1swXVwiIFtjb250ZXh0XT1cInJvd1wiPiA8L2N0cy1keW5hbWljLWNvbHVtbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLWNvbnRhaW5lcj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwidGFibGVNb2RlID09PSB0YWJsZU1vZGVzLmNhcmRcIj5cclxuXHQ8ZGl2IGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwic2luZ2xlLWNhcmRcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3M7IGxldCBpID0gaW5kZXhcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm1lbW8tdGl0bGVcIj5cclxuXHRcdFx0XHQ8c3Bhbj5cclxuXHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzLnJlZmVyZW5jZU51bWJlciB9fVxyXG5cdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvbi13cmFwXCI+XHJcblx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImFjdGlvblwiICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdGFibGVBY3Rpb25zXCI+XHJcblx0XHRcdFx0XHRcdDxpXHJcblx0XHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0XHRuYW1lOiBhY3Rpb24ucGVybWlzc2lvbixcclxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInt7IGFjdGlvbi5pY29uIH19XCJcclxuXHRcdFx0XHRcdFx0XHRtYXRUb29sdGlwPVwie3sgYWN0aW9uLnRvb2x0aXAgfCB0cmFuc2xhdGUgfX1cIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgYWN0aW9uLmFjdGlvbk5hbWUpXCJcclxuXHRcdFx0XHRcdFx0PjwvaT5cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxidXR0b25cclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2RlbGV0ZU1lbW8nLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwicGVyZm9ybUFjdGlvbihyb3csICdkZWxldGVNZW1vJylcIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHQ8aSBjbGFzcz1cImJpIGJpLXRyYXNoXCIgbWF0VG9vbHRpcD1cInt7ICdMSVNUSU5HLk9OTFlfREVMRVRFJyB8IHRyYW5zbGF0ZSB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGJ1dHRvblxyXG5cdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAndGVybWluYXRlRGVsZWdhdGlvbicsXHJcblx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHRcdChjbGljayk9XCJwZXJmb3JtQWN0aW9uKHJvdywgJ3Rlcm1pbmF0ZURlbGVnYXRpb24nKVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwiYmkgYmktdHJhc2hcIiBtYXRUb29sdGlwPVwie3sgJ0xJU1RJTkcuQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVwiPjwvaT5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ21lbW9QdWJsaXNoZWQnLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHR7eyAnTUVNT1MuUFVCTElTSEVEJyB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0PC9zcGFuPlxyXG5cdFx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwdWJsaXNoLXN0YXRlXCJcclxuXHRcdFx0XHRcdFx0KnBlcm1pc3Npb249XCJ7XHJcblx0XHRcdFx0XHRcdFx0bmFtZTogJ2RlbGVnYXRpb25GaW5pc2hlZCcsXHJcblx0XHRcdFx0XHRcdFx0ZW50aXR5OiByb3csXHJcblx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0XHQ+XHJcblx0XHRcdFx0XHRcdHt7ICdkZWxlZ2F0aW9ucy5maW5pc2hlZCcgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHRcdDxzcGFuXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwicHVibGlzaC1zdGF0ZVwiXHJcblx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdG5hbWU6ICdkZWxlZ2F0aW9uQWN0aXZlJyxcclxuXHRcdFx0XHRcdFx0XHRlbnRpdHk6IHJvdyxcclxuXHRcdFx0XHRcdFx0XHR1c2VyOiBudXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlclxyXG5cdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdD5cclxuXHRcdFx0XHRcdFx0e3sgJ2RlbGVnYXRpb25zLmFjdGl2ZScgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvc3Bhbj5cclxuXHRcdFx0XHQ8L3NwYW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIHRhYmxlQ29sdW1ucyQgfCBhc3luY1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KTsgY2FyZEZvY3VzZWQoaSlcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwia2V5XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlICE9PSAnZGVmYXVsdCdcIj5cclxuXHRcdFx0XHRcdHt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGVmYXVsdCdcIj5cclxuXHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJrZXlcIlxyXG5cdFx0XHRcdFx0XHQqcGVybWlzc2lvbj1cIntcclxuXHRcdFx0XHRcdFx0XHRuYW1lOiAnaW50ZXJuYWxJc0VuYWJsZWQnLFxyXG5cdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdHVzZXI6IG51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHR7eyBwcmVmaXggKyBwcm9wZXJ0eS5rZXkgfCB0cmFuc2xhdGUgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJ2YWx1ZVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd0ZXh0J1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICd1c2VyJ1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0uZnVsbE5hbWUgfX1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdkYXRlJ1wiPlxyXG5cdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlIDogZm9ybWF0IDogKGlzQXJhYmljID8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcblx0XHRcdFx0XHRcdDwhLS0gPGN0cy1kYXRlLXZpZXdlciBbd2l0aE91dExhYmVsXT1cInRydWVcIiBbdmFsdWVdPVwicm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCIgPjwvY3RzLWRhdGUtdmlld2VyPiAtLT5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInRleHRcIiAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdib29sZWFuJ1wiPlxyXG5cdFx0XHRcdFx0XHR7eyAocm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdID8gJ1llcycgOiAnTm8nKSB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwicHJvcGVydHkudHlwZSA9PT0gJ2RlZmF1bHQnXCI+XHJcblx0XHRcdFx0XHRcdDxkaXZcclxuXHRcdFx0XHRcdFx0XHRjbGFzcz1cInRleHRcIlxyXG5cdFx0XHRcdFx0XHRcdCpwZXJtaXNzaW9uPVwie1xyXG5cdFx0XHRcdFx0XHRcdFx0bmFtZTogJ2ludGVybmFsSXNFbmFibGVkJyxcclxuXHRcdFx0XHRcdFx0XHRcdGVudGl0eTogcm93LFxyXG5cdFx0XHRcdFx0XHRcdFx0dXNlcjogbnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXJcclxuXHRcdFx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdHt7IHJvdy5wcm9wZXJ0aWVzW3Byb3BlcnR5LnZhbHVlXSB9fVxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInByb3BlcnR5LnR5cGUgPT09ICdjdXN0b20nXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygcm93LnByb3BlcnRpZXNbcHJvcGVydHkudmFsdWVdXCI+XHJcblx0XHRcdFx0XHRcdFx0e3sgaXRlbSB8IHRyYW5zbGF0ZSB9fSB7eyAnLCAnIH19XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gdGFibGVNb2Rlcy5keW5hbWljQ2FyZFwiPlxyXG5cdDxkaXYgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cclxuXHRcdDxkaXZcclxuXHRcdFx0Y2xhc3M9XCJzaW5nbGUtY2FyZFwiXHJcblx0XHRcdFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLWNhcmQnOiBoaWdobGlnaHRTZWxlY3RlZENhcmQgJiYgcm93Py5pc1NlbGVjdGVkIH1cIlxyXG5cdFx0XHQqbmdGb3I9XCJsZXQgcm93IG9mIHJvd3NcIlxyXG5cdFx0PlxyXG5cdFx0XHQ8ZGl2ICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA+IDFcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibWVtby1ib2R5XCIgKm5nRm9yPVwibGV0IHByb3BlcnR5IG9mIHRhYmxlQ29sdW1ucyQgfCBhc3luY1wiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiPlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cImtleVwiPnt7IHByZWZpeCArIHByb3BlcnR5LmtleSB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxyXG5cdFx0XHRcdFx0PGRpdiBjbGFzcz1cInZhbHVlXCI+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAndGV4dCdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfX1cclxuXHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0XCIgKm5nSWY9XCJwcm9wZXJ0eS50eXBlID09PSAnZGF0ZSdcIj5cclxuXHRcdFx0XHRcdFx0XHR7eyByb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV0gfCBsb2NhbGl6ZWREYXRlIDogZm9ybWF0IDogKGlzQXJhYmljID8gJ2FyLUFSJyA6ICdlbi1VUycpIH19XHJcblx0XHRcdFx0XHRcdFx0PCEtLSA8Y3RzLWRhdGUtdmlld2VyIFt3aXRoT3V0TGFiZWxdPVwidHJ1ZVwiIFt2YWx1ZV09XCJyb3cucHJvcGVydGllc1twcm9wZXJ0eS52YWx1ZV1cIiA+PC9jdHMtZGF0ZS12aWV3ZXI+IC0tPlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cImluZXItY2FyZC1jb250YWluZXIge3sgZW50aXR5VHlwZSB9fVwiIChjbGljayk9XCJjYXJkU2VsZWN0ZWQocm93KVwiICpuZ0lmPVwidGFibGVDb2x1bW5zLmxlbmd0aCA9PT0gMVwiPlxyXG5cdFx0XHRcdDxjdHMtZHluYW1pYy1jb2x1bW4gW2lkXT1cInRhYmxlQ29sdW1uc1swXS50ZW1wbGF0ZVwiIFtjb2x1bW5dPVwidGFibGVDb2x1bW5zWzBdXCIgW2NvbnRleHRdPVwicm93XCI+XHJcblx0XHRcdFx0PC9jdHMtZHluYW1pYy1jb2x1bW4+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiAqbmdJZj1cInRhYmxlTW9kZSA9PT0gdGFibGVNb2Rlcy5jdXN0b21cIiBjbGFzcz1cInRhYmxlLWN1c3RvbS12aWV3XCI+XHJcblx0PGFwcC1keW5hbWljLWNvbXBvbmVudFxyXG5cdFx0Y2xhc3M9XCJ0YWJsZS1jdXN0b20tdmlld19fY29tcG9uZW50XCJcclxuXHRcdCpuZ0Zvcj1cImxldCByb3cgb2Ygcm93c1wiXHJcblx0XHRbY29tcG9uZW50TmFtZV09XCJjb21wb25lbnROYW1lXCJcclxuXHRcdFtyb3ddPVwicm93XCJcclxuXHRcdFtyb3dBY3Rpb25dPVwiYWN0aW9uT25Sb3dcIlxyXG5cdFx0W29uQ2xpY2tdPVwib25Sb3dTZWxlY3RlZFwiXHJcblx0XHQoY2xpY2spPVwiY2FyZFNlbGVjdGVkKHJvdylcIlxyXG5cdFx0W2NsYXNzLmR5bmFtaWMtc2VsZWN0ZWQtY2FyZF09XCJoaWdobGlnaHRTZWxlY3RlZENhcmQgJiYgcm93Py5pc1NlbGVjdGVkXCJcclxuXHQ+PC9hcHAtZHluYW1pYy1jb21wb25lbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|