@ohioepa/oepa-ui-lib 1.2.26 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/edoc-attachment/edoc-attachment.component.mjs +8 -9
- package/esm2022/lib/file-upload/file-upload.component.mjs +7 -8
- package/esm2022/lib/lynx-image-upload/lynx-image-upload.component.mjs +6 -7
- package/esm2022/lib/multi-file-upload/multi-file-upload.component.mjs +7 -8
- package/esm2022/lib/table/p-table/p-table.component.mjs +8 -9
- package/esm2022/lib/table/table-data-cell/table-data-cell.component.mjs +3 -3
- package/esm2022/lib/table/table.component.mjs +12 -13
- package/esm2022/public-api.mjs +1 -2
- package/fesm2022/ohioepa-oepa-ui-lib.mjs +15 -246
- package/fesm2022/ohioepa-oepa-ui-lib.mjs.map +1 -1
- package/lib/edoc-attachment/edoc-attachment.component.d.ts +1 -1
- package/lib/file-upload/file-upload.component.d.ts +1 -1
- package/lib/lynx-image-upload/lynx-image-upload.component.d.ts +1 -1
- package/lib/multi-file-upload/multi-file-upload.component.d.ts +1 -1
- package/lib/table/p-table/p-table.component.d.ts +1 -1
- package/lib/table/table.component.d.ts +1 -1
- package/ohioepa-oepa-ui-lib-1.3.1.tgz +0 -0
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/esm2022/lib/oepa-file-utils/oepa-file-util.service.mjs +0 -236
- package/lib/oepa-file-utils/oepa-file-util.service.d.ts +0 -53
- package/ohioepa-oepa-ui-lib-1.2.26.tgz +0 -0
|
@@ -33,11 +33,11 @@ export class TableDataCellComponent {
|
|
|
33
33
|
this.onActionClick.emit(event);
|
|
34
34
|
}
|
|
35
35
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableDataCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
36
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableDataCellComponent, selector: "oepa-table-data-cell", inputs: { col: "col", row: "row", i: "i", r: "r", tableId: "tableId" }, outputs: { onCellClick: "onCellClick", onToggleRowSelection: "onToggleRowSelection", onSingleRowSelection: "onSingleRowSelection", onActionClick: "onActionClick" }, ngImport: i0, template: " <!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <
|
|
36
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TableDataCellComponent, selector: "oepa-table-data-cell", inputs: { col: "col", row: "row", i: "i", r: "r", tableId: "tableId" }, outputs: { onCellClick: "onCellClick", onToggleRowSelection: "onToggleRowSelection", onSingleRowSelection: "onSingleRowSelection", onActionClick: "onActionClick" }, ngImport: i0, template: " <!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <a *ngIf=\"col.hyperlink && !(row|cellNotSelectable:col)\" href=\"javascript:void(0);\"\n (click)=\"cellClick(row, col.id)\" [id]=\"tableId+'_CellClick_'+r+'_'+i\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i [ngClass]=\"row|cellIconClassname:col\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </a>\n <!-- If col is NOT hyperlink, just display data -->\n <span *ngIf=\"!col.hyperlink || (row|cellNotSelectable:col)\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i ngClass=\"{{row|cellIconClassname:col || ''}}\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </span>\n </div>\n <!-- Input Cell -->\n <div *ngIf=\"col.inputColumn\">\n <cml-template [templateInfo]=\"row|cellInputComponent:col\"></cml-template>\n </div>\n <!-- Select Cell -->\n <div *ngIf=\"col.selectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_'+r\" type=\"checkbox\" [disabled]=\"!row.selectable\" [checked]=\"row.selected\"\n (change)=\"toggleRowSelection(row)\">\n </div>\n <!-- Single Select Cell -->\n <div *ngIf=\"col.singleSelectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_singleSelect_'+r\" type=\"radio\" [disabled]=\"!row.selectable\"\n [checked]=\"row.selected\" (change)=\"singleRowSelection(row)\">\n </div>\n <!-- Action Button Cell -->\n <div *ngIf=\"col.actionColumn && row.actions\">\n <oepa-action-btn [actions]=\"row.actions\" [data]=\"row.dataSource\" (actionClicked)=\"actionClick($event)\"\n [btnId]=\"tableId+'_'+r\"></oepa-action-btn>\n </div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "component", type: i3.OepaTemplateComponent, selector: "cml-template", inputs: ["templateInfo"] }, { kind: "component", type: i4.ActionBtnComponent, selector: "oepa-action-btn", inputs: ["label", "btnId", "data", "actions", "normalSize", "dropup"], outputs: ["actionClicked"] }, { kind: "pipe", type: i5.OepaTableCellInnerHtmlPipe, name: "cellInnerHTML" }, { kind: "pipe", type: i6.OepaTableCellValuePipe, name: "cellValue" }, { kind: "pipe", type: i7.OepaTableCellIconClassnamePipe, name: "cellIconClassname" }, { kind: "pipe", type: i8.OepaTableCellImgSrcPipe, name: "cellImgSrc" }, { kind: "pipe", type: i9.OepaTableCellNotSelectablePipe, name: "cellNotSelectable" }, { kind: "pipe", type: i10.OepaTableCellInputComponentPipe, name: "cellInputComponent" }] });
|
|
37
37
|
}
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableDataCellComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
|
-
args: [{ selector: 'oepa-table-data-cell', template: " <!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <
|
|
40
|
+
args: [{ selector: 'oepa-table-data-cell', template: " <!-- Data Cell -->\n <div *ngIf=\"!col.actionColumn && !col.selectColumn && !col.singleSelectColumn && !col.inputColumn\">\n <!-- Template for popover 1 -->\n <ng-template #popoverTemplate>\n <div *ngIf=\"row.popover\">\n <cml-template [templateInfo]=\"row.popover.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 1 icon (if specified) -->\n <span *ngIf=\"row.popover && i === (row.popoverColumnIndex || 0) && row.popover\" tabindex=\"0\"\n [popoverTitle]=\"row.popover.title\" [popover]=\"popoverTemplate\"\n [containerClass]=\"row.popover.containerClass\" placement=\"right\"\n [triggers]=\"row.popover.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover.className\" [id]=\"tableId+'_PopoverLink_'+r\"></i>\n </span>\n \n <!-- Template for popover 2 -->\n <ng-template #popover2Template>\n <div *ngIf=\"row.popover2\">\n <cml-template [templateInfo]=\"row.popover2.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 2 icon (if specified) -->\n <span *ngIf=\"i === (row.popover2ColumnIndex || 0) && row.popover2\" tabindex=\"0\"\n [popoverTitle]=\"row.popover2.title\" [popover]=\"popover2Template\"\n [containerClass]=\"row.popover2.containerClass\" placement=\"right\"\n [triggers]=\"row.popover2.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover2.className\" [id]=\"tableId+'_Popover2Link_'+r\"></i>\n </span>\n \n <!-- Template for popover 3 -->\n <ng-template #popover3Template>\n <div *ngIf=\"row.popover3\">\n <cml-template [templateInfo]=\"row.popover3.content\"></cml-template>\n </div>\n </ng-template>\n <!-- Popover 3 icon (if specified) -->\n <span *ngIf=\"i === (row.popover3ColumnIndex || 0) && row.popover3\" tabindex=\"0\"\n [popoverTitle]=\"row.popover3.title\" [popover]=\"popover3Template\"\n [containerClass]=\"row.popover3.containerClass\" placement=\"right\"\n [triggers]=\"row.popover3.trigger || 'mouseenter:mouseleave'\">\n <i [ngClass]=\"row.popover3.className\" [id]=\"tableId+'_Popover3Link_'+r\"></i>\n </span>\n \n \n <!-- <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n <span *ngIf=\"!(row|cellInnerHTML:col)\">{{row|cellValue:col}}</span> -->\n \n <!-- If col is hyperlink, display data as a hyperlink -->\n <a *ngIf=\"col.hyperlink && !(row|cellNotSelectable:col)\" href=\"javascript:void(0);\"\n (click)=\"cellClick(row, col.id)\" [id]=\"tableId+'_CellClick_'+r+'_'+i\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i [ngClass]=\"row|cellIconClassname:col\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </a>\n <!-- If col is NOT hyperlink, just display data -->\n <span *ngIf=\"!col.hyperlink || (row|cellNotSelectable:col)\">\n <span *ngIf=\"!(row|cellInnerHTML:col)\">\n <i ngClass=\"{{row|cellIconClassname:col || ''}}\"></i>\n <span *ngIf=\"row|cellImgSrc:col\"><img [src]=\"row|cellImgSrc:col\" /></span>\n {{row|cellValue:col}}\n </span>\n <div *ngIf=\"row|cellInnerHTML:col\" [innerHTML]=\"row|cellInnerHTML:col\"></div>\n </span>\n </div>\n <!-- Input Cell -->\n <div *ngIf=\"col.inputColumn\">\n <cml-template [templateInfo]=\"row|cellInputComponent:col\"></cml-template>\n </div>\n <!-- Select Cell -->\n <div *ngIf=\"col.selectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_'+r\" type=\"checkbox\" [disabled]=\"!row.selectable\" [checked]=\"row.selected\"\n (change)=\"toggleRowSelection(row)\">\n </div>\n <!-- Single Select Cell -->\n <div *ngIf=\"col.singleSelectColumn\" class=\"text-center\">\n <input [id]=\"tableId+'_singleSelect_'+r\" type=\"radio\" [disabled]=\"!row.selectable\"\n [checked]=\"row.selected\" (change)=\"singleRowSelection(row)\">\n </div>\n <!-- Action Button Cell -->\n <div *ngIf=\"col.actionColumn && row.actions\">\n <oepa-action-btn [actions]=\"row.actions\" [data]=\"row.dataSource\" (actionClicked)=\"actionClick($event)\"\n [btnId]=\"tableId+'_'+r\"></oepa-action-btn>\n </div>\n" }]
|
|
41
41
|
}], propDecorators: { col: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}], row: [{
|
|
@@ -57,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
57
57
|
}], onActionClick: [{
|
|
58
58
|
type: Output
|
|
59
59
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvdGFibGUvdGFibGUtZGF0YS1jZWxsL3RhYmxlLWRhdGEtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RhYmxlL3RhYmxlLWRhdGEtY2VsbC90YWJsZS1kYXRhLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV3ZFLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsR0FBRyxDQUFtQjtJQUN0QixHQUFHLENBQWdCO0lBQ25CLENBQUMsR0FBVyxDQUFDLENBQUM7SUFDZCxDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBQ2QsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUVwQixXQUFXLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0lBQ2pHLG9CQUFvQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUNwRixvQkFBb0IsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFDcEYsYUFBYSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUV0RixTQUFTLENBQUMsR0FBaUIsRUFBRSxRQUFnQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEdBQWlCO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEdBQWlCO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFzQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQTFCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix5U0NYbkMsbzVMQXVGQTs7NEZENUVhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csQ0FBQztzQkFBVCxLQUFLO2dCQUNHLENBQUM7c0JBQVQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVEYXRhQ2VsbENsaWNrRXZlbnQgfSBmcm9tICcuL3RhYmxlLWRhdGEtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb2x1bW4gfSBmcm9tICcuLi9vZXBhLXRhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi9vZXBhLXRhYmxlLXJvdyc7XG5pbXBvcnQgeyBPZXBhQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tYnRuL29lcGEtYWN0aW9uLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS10YWJsZS1kYXRhLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZGF0YS1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLWRhdGEtY2VsbC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFDZWxsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sITogT2VwYVRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSByb3chOiBPZXBhVGFibGVSb3c7XG4gIEBJbnB1dCgpIGk6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHI6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRhYmxlSWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvbkNlbGxDbGljazogRXZlbnRFbWl0dGVyPFRhYmxlRGF0YUNlbGxDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVEYXRhQ2VsbENsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblRvZ2dsZVJvd1NlbGVjdGlvbjogRXZlbnRFbWl0dGVyPE9lcGFUYWJsZVJvdz4gPSBuZXcgRXZlbnRFbWl0dGVyPE9lcGFUYWJsZVJvdz4oKTtcbiAgQE91dHB1dCgpIG9uU2luZ2xlUm93U2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8T2VwYVRhYmxlUm93PiA9IG5ldyBFdmVudEVtaXR0ZXI8T2VwYVRhYmxlUm93PigpO1xuICBAT3V0cHV0KCkgb25BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPE9lcGFBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE9lcGFBY3Rpb25FdmVudD4oKTtcblxuICBwdWJsaWMgY2VsbENsaWNrKHJvdzogT2VwYVRhYmxlUm93LCBjb2x1bW5JRDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNlbGxDbGljay5lbWl0KHtyb3c6IHJvdywgY29sdW1uSUQ6IGNvbHVtbklEfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93U2VsZWN0aW9uKHJvdzogT2VwYVRhYmxlUm93KSB7XG4gICAgdGhpcy5vblRvZ2dsZVJvd1NlbGVjdGlvbi5lbWl0KHJvdyk7XG4gIH1cblxuICBwdWJsaWMgc2luZ2xlUm93U2VsZWN0aW9uKHJvdzogT2VwYVRhYmxlUm93KSB7XG4gICAgdGhpcy5vblNpbmdsZVJvd1NlbGVjdGlvbi5lbWl0KHJvdyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soZXZlbnQ6IE9lcGFBY3Rpb25FdmVudCkge1xuICAgIHRoaXMub25BY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiICAgICAgICAgICAgICAgICAgICA8IS0tIERhdGEgQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb2wuYWN0aW9uQ29sdW1uICYmICFjb2wuc2VsZWN0Q29sdW1uICYmICFjb2wuc2luZ2xlU2VsZWN0Q29sdW1uICYmICFjb2wuaW5wdXRDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIHBvcG92ZXIgMSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9wb3ZlclRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y21sLXRlbXBsYXRlIFt0ZW1wbGF0ZUluZm9dPVwicm93LnBvcG92ZXIuY29udGVudFwiPjwvY21sLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvcG92ZXIgMSBpY29uIChpZiBzcGVjaWZpZWQpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyb3cucG9wb3ZlciAmJiBpID09PSAocm93LnBvcG92ZXJDb2x1bW5JbmRleCB8fCAwKSAmJiByb3cucG9wb3ZlclwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwicm93LnBvcG92ZXIudGl0bGVcIiBbcG9wb3Zlcl09XCJwb3BvdmVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyQ2xhc3NdPVwicm93LnBvcG92ZXIuY29udGFpbmVyQ2xhc3NcIiBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJyb3cucG9wb3Zlci50cmlnZ2VyIHx8ICdtb3VzZWVudGVyOm1vdXNlbGVhdmUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvdy5wb3BvdmVyLmNsYXNzTmFtZVwiIFtpZF09XCJ0YWJsZUlkKydfUG9wb3ZlckxpbmtfJytyXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIHBvcG92ZXIgMiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9wb3ZlcjJUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5wb3BvdmVyMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbWwtdGVtcGxhdGUgW3RlbXBsYXRlSW5mb109XCJyb3cucG9wb3ZlcjIuY29udGVudFwiPjwvY21sLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvcG92ZXIgMiBpY29uIChpZiBzcGVjaWZpZWQpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpID09PSAocm93LnBvcG92ZXIyQ29sdW1uSW5kZXggfHwgMCkgJiYgcm93LnBvcG92ZXIyXCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJyb3cucG9wb3ZlcjIudGl0bGVcIiBbcG9wb3Zlcl09XCJwb3BvdmVyMlRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckNsYXNzXT1cInJvdy5wb3BvdmVyMi5jb250YWluZXJDbGFzc1wiIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cInJvdy5wb3BvdmVyMi50cmlnZ2VyIHx8ICdtb3VzZWVudGVyOm1vdXNlbGVhdmUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvdy5wb3BvdmVyMi5jbGFzc05hbWVcIiBbaWRdPVwidGFibGVJZCsnX1BvcG92ZXIyTGlua18nK3JcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgcG9wb3ZlciAzIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyM1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnBvcG92ZXIzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNtbC10ZW1wbGF0ZSBbdGVtcGxhdGVJbmZvXT1cInJvdy5wb3BvdmVyMy5jb250ZW50XCI+PC9jbWwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUG9wb3ZlciAzIGljb24gKGlmIHNwZWNpZmllZCkgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgPT09IChyb3cucG9wb3ZlcjNDb2x1bW5JbmRleCB8fCAwKSAmJiByb3cucG9wb3ZlcjNcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cInJvdy5wb3BvdmVyMy50aXRsZVwiIFtwb3BvdmVyXT1cInBvcG92ZXIzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyQ2xhc3NdPVwicm93LnBvcG92ZXIzLmNvbnRhaW5lckNsYXNzXCIgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJpZ2dlcnNdPVwicm93LnBvcG92ZXIzLnRyaWdnZXIgfHwgJ21vdXNlZW50ZXI6bW91c2VsZWF2ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwicm93LnBvcG92ZXIzLmNsYXNzTmFtZVwiIFtpZF09XCJ0YWJsZUlkKydfUG9wb3ZlcjNMaW5rXycrclwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwicm93fGNlbGxJbm5lckhUTUw6Y29sXCIgW2lubmVySFRNTF09XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiEocm93fGNlbGxJbm5lckhUTUw6Y29sKVwiPnt7cm93fGNlbGxWYWx1ZTpjb2x9fTwvc3Bhbj4gLS0+XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJZiBjb2wgaXMgaHlwZXJsaW5rLCBkaXNwbGF5IGRhdGEgYXMgYSBoeXBlcmxpbmsgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiY29sLmh5cGVybGluayAmJiAhKHJvd3xjZWxsTm90U2VsZWN0YWJsZTpjb2wpXCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNlbGxDbGljayhyb3csIGNvbC5pZClcIiBbaWRdPVwidGFibGVJZCsnX0NlbGxDbGlja18nK3IrJ18nK2lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhKHJvd3xjZWxsSW5uZXJIVE1MOmNvbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJyb3d8Y2VsbEljb25DbGFzc25hbWU6Y29sXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicm93fGNlbGxJbWdTcmM6Y29sXCI+PGltZyBbc3JjXT1cInJvd3xjZWxsSW1nU3JjOmNvbFwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cm93fGNlbGxWYWx1ZTpjb2x9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIiBbaW5uZXJIVE1MXT1cInJvd3xjZWxsSW5uZXJIVE1MOmNvbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIElmIGNvbCBpcyBOT1QgaHlwZXJsaW5rLCBqdXN0IGRpc3BsYXkgZGF0YSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbC5oeXBlcmxpbmsgfHwgKHJvd3xjZWxsTm90U2VsZWN0YWJsZTpjb2wpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIShyb3d8Y2VsbElubmVySFRNTDpjb2wpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgbmdDbGFzcz1cInt7cm93fGNlbGxJY29uQ2xhc3NuYW1lOmNvbCB8fCAnJ319XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicm93fGNlbGxJbWdTcmM6Y29sXCI+PGltZyBbc3JjXT1cInJvd3xjZWxsSW1nU3JjOmNvbFwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cm93fGNlbGxWYWx1ZTpjb2x9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIiBbaW5uZXJIVE1MXT1cInJvd3xjZWxsSW5uZXJIVE1MOmNvbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gSW5wdXQgQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLmlucHV0Q29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8Y21sLXRlbXBsYXRlIFt0ZW1wbGF0ZUluZm9dPVwicm93fGNlbGxJbnB1dENvbXBvbmVudDpjb2xcIj48L2NtbC10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlbGVjdCBDZWxsIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2wuc2VsZWN0Q29sdW1uXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtpZF09XCJ0YWJsZUlkKydfJytyXCIgdHlwZT1cImNoZWNrYm94XCIgW2Rpc2FibGVkXT1cIiFyb3cuc2VsZWN0YWJsZVwiIFtjaGVja2VkXT1cInJvdy5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlUm93U2VsZWN0aW9uKHJvdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNpbmdsZSBTZWxlY3QgQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLnNpbmdsZVNlbGVjdENvbHVtblwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwidGFibGVJZCsnX3NpbmdsZVNlbGVjdF8nK3JcIiB0eXBlPVwicmFkaW9cIiBbZGlzYWJsZWRdPVwiIXJvdy5zZWxlY3RhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwicm93LnNlbGVjdGVkXCIgKGNoYW5nZSk9XCJzaW5nbGVSb3dTZWxlY3Rpb24ocm93KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9uIEJ1dHRvbiBDZWxsIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2wuYWN0aW9uQ29sdW1uICYmIHJvdy5hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b2VwYS1hY3Rpb24tYnRuIFthY3Rpb25zXT1cInJvdy5hY3Rpb25zXCIgW2RhdGFdPVwicm93LmRhdGFTb3VyY2VcIiAoYWN0aW9uQ2xpY2tlZCk9XCJhY3Rpb25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2J0bklkXT1cInRhYmxlSWQrJ18nK3JcIj48L29lcGEtYWN0aW9uLWJ0bj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiJdfQ==
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS1jZWxsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29lcGEtdWktbGliL3NyYy9saWIvdGFibGUvdGFibGUtZGF0YS1jZWxsL3RhYmxlLWRhdGEtY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vZXBhLXVpLWxpYi9zcmMvbGliL3RhYmxlL3RhYmxlLWRhdGEtY2VsbC90YWJsZS1kYXRhLWNlbGwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBV3ZFLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsR0FBRyxDQUFtQjtJQUN0QixHQUFHLENBQWdCO0lBQ25CLENBQUMsR0FBVyxDQUFDLENBQUM7SUFDZCxDQUFDLEdBQVcsQ0FBQyxDQUFDO0lBQ2QsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUVwQixXQUFXLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0lBQ2pHLG9CQUFvQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztJQUNwRixvQkFBb0IsR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7SUFDcEYsYUFBYSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUV0RixTQUFTLENBQUMsR0FBaUIsRUFBRSxRQUFnQjtRQUNsRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEdBQWlCO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEdBQWlCO1FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFzQjtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO3dHQTFCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQix5U0NYbkMsZzRMQXVGQTs7NEZENUVhLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxzQkFBc0I7OEJBS3ZCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csQ0FBQztzQkFBVCxLQUFLO2dCQUNHLENBQUM7c0JBQVQsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVEYXRhQ2VsbENsaWNrRXZlbnQgfSBmcm9tICcuL3RhYmxlLWRhdGEtY2VsbC1jbGljay1ldmVudCc7XG5pbXBvcnQgeyBPZXBhVGFibGVDb2x1bW4gfSBmcm9tICcuLi9vZXBhLXRhYmxlLWNvbHVtbic7XG5pbXBvcnQgeyBPZXBhVGFibGVSb3cgfSBmcm9tICcuLi9vZXBhLXRhYmxlLXJvdyc7XG5pbXBvcnQgeyBPZXBhQWN0aW9uRXZlbnQgfSBmcm9tICcuLi8uLi9hY3Rpb24tYnRuL29lcGEtYWN0aW9uLWV2ZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb2VwYS10YWJsZS1kYXRhLWNlbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZGF0YS1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLWRhdGEtY2VsbC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFDZWxsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY29sITogT2VwYVRhYmxlQ29sdW1uO1xuICBASW5wdXQoKSByb3chOiBPZXBhVGFibGVSb3c7XG4gIEBJbnB1dCgpIGk6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHI6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIHRhYmxlSWQ6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBvbkNlbGxDbGljazogRXZlbnRFbWl0dGVyPFRhYmxlRGF0YUNlbGxDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVEYXRhQ2VsbENsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBvblRvZ2dsZVJvd1NlbGVjdGlvbjogRXZlbnRFbWl0dGVyPE9lcGFUYWJsZVJvdz4gPSBuZXcgRXZlbnRFbWl0dGVyPE9lcGFUYWJsZVJvdz4oKTtcbiAgQE91dHB1dCgpIG9uU2luZ2xlUm93U2VsZWN0aW9uOiBFdmVudEVtaXR0ZXI8T2VwYVRhYmxlUm93PiA9IG5ldyBFdmVudEVtaXR0ZXI8T2VwYVRhYmxlUm93PigpO1xuICBAT3V0cHV0KCkgb25BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPE9lcGFBY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE9lcGFBY3Rpb25FdmVudD4oKTtcblxuICBwdWJsaWMgY2VsbENsaWNrKHJvdzogT2VwYVRhYmxlUm93LCBjb2x1bW5JRDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNlbGxDbGljay5lbWl0KHtyb3c6IHJvdywgY29sdW1uSUQ6IGNvbHVtbklEfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUm93U2VsZWN0aW9uKHJvdzogT2VwYVRhYmxlUm93KSB7XG4gICAgdGhpcy5vblRvZ2dsZVJvd1NlbGVjdGlvbi5lbWl0KHJvdyk7XG4gIH1cblxuICBwdWJsaWMgc2luZ2xlUm93U2VsZWN0aW9uKHJvdzogT2VwYVRhYmxlUm93KSB7XG4gICAgdGhpcy5vblNpbmdsZVJvd1NlbGVjdGlvbi5lbWl0KHJvdyk7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soZXZlbnQ6IE9lcGFBY3Rpb25FdmVudCkge1xuICAgIHRoaXMub25BY3Rpb25DbGljay5lbWl0KGV2ZW50KTtcbiAgfVxufVxuIiwiICAgICAgICAgICAgICAgICAgICA8IS0tIERhdGEgQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFjb2wuYWN0aW9uQ29sdW1uICYmICFjb2wuc2VsZWN0Q29sdW1uICYmICFjb2wuc2luZ2xlU2VsZWN0Q29sdW1uICYmICFjb2wuaW5wdXRDb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIHBvcG92ZXIgMSAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9wb3ZlclRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y21sLXRlbXBsYXRlIFt0ZW1wbGF0ZUluZm9dPVwicm93LnBvcG92ZXIuY29udGVudFwiPjwvY21sLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvcG92ZXIgMSBpY29uIChpZiBzcGVjaWZpZWQpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJyb3cucG9wb3ZlciAmJiBpID09PSAocm93LnBvcG92ZXJDb2x1bW5JbmRleCB8fCAwKSAmJiByb3cucG9wb3ZlclwiIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3BvdmVyVGl0bGVdPVwicm93LnBvcG92ZXIudGl0bGVcIiBbcG9wb3Zlcl09XCJwb3BvdmVyVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyQ2xhc3NdPVwicm93LnBvcG92ZXIuY29udGFpbmVyQ2xhc3NcIiBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJyb3cucG9wb3Zlci50cmlnZ2VyIHx8ICdtb3VzZWVudGVyOm1vdXNlbGVhdmUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvdy5wb3BvdmVyLmNsYXNzTmFtZVwiIFtpZF09XCJ0YWJsZUlkKydfUG9wb3ZlckxpbmtfJytyXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVGVtcGxhdGUgZm9yIHBvcG92ZXIgMiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcG9wb3ZlcjJUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5wb3BvdmVyMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbWwtdGVtcGxhdGUgW3RlbXBsYXRlSW5mb109XCJyb3cucG9wb3ZlcjIuY29udGVudFwiPjwvY21sLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFBvcG92ZXIgMiBpY29uIChpZiBzcGVjaWZpZWQpIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpID09PSAocm93LnBvcG92ZXIyQ29sdW1uSW5kZXggfHwgMCkgJiYgcm93LnBvcG92ZXIyXCIgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3BvcG92ZXJUaXRsZV09XCJyb3cucG9wb3ZlcjIudGl0bGVcIiBbcG9wb3Zlcl09XCJwb3BvdmVyMlRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRhaW5lckNsYXNzXT1cInJvdy5wb3BvdmVyMi5jb250YWluZXJDbGFzc1wiIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyaWdnZXJzXT1cInJvdy5wb3BvdmVyMi50cmlnZ2VyIHx8ICdtb3VzZWVudGVyOm1vdXNlbGVhdmUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cInJvdy5wb3BvdmVyMi5jbGFzc05hbWVcIiBbaWRdPVwidGFibGVJZCsnX1BvcG92ZXIyTGlua18nK3JcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBUZW1wbGF0ZSBmb3IgcG9wb3ZlciAzIC0tPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyM1RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnBvcG92ZXIzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNtbC10ZW1wbGF0ZSBbdGVtcGxhdGVJbmZvXT1cInJvdy5wb3BvdmVyMy5jb250ZW50XCI+PC9jbWwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUG9wb3ZlciAzIGljb24gKGlmIHNwZWNpZmllZCkgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImkgPT09IChyb3cucG9wb3ZlcjNDb2x1bW5JbmRleCB8fCAwKSAmJiByb3cucG9wb3ZlcjNcIiB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3ZlclRpdGxlXT1cInJvdy5wb3BvdmVyMy50aXRsZVwiIFtwb3BvdmVyXT1cInBvcG92ZXIzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGFpbmVyQ2xhc3NdPVwicm93LnBvcG92ZXIzLmNvbnRhaW5lckNsYXNzXCIgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJpZ2dlcnNdPVwicm93LnBvcG92ZXIzLnRyaWdnZXIgfHwgJ21vdXNlZW50ZXI6bW91c2VsZWF2ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwicm93LnBvcG92ZXIzLmNsYXNzTmFtZVwiIFtpZF09XCJ0YWJsZUlkKydfUG9wb3ZlcjNMaW5rXycrclwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwicm93fGNlbGxJbm5lckhUTUw6Y29sXCIgW2lubmVySFRNTF09XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiEocm93fGNlbGxJbm5lckhUTUw6Y29sKVwiPnt7cm93fGNlbGxWYWx1ZTpjb2x9fTwvc3Bhbj4gLS0+XG4gICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJZiBjb2wgaXMgaHlwZXJsaW5rLCBkaXNwbGF5IGRhdGEgYXMgYSBoeXBlcmxpbmsgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSAqbmdJZj1cImNvbC5oeXBlcmxpbmsgJiYgIShyb3d8Y2VsbE5vdFNlbGVjdGFibGU6Y29sKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNlbGxDbGljayhyb3csIGNvbC5pZClcIiBbaWRdPVwidGFibGVJZCsnX0NlbGxDbGlja18nK3IrJ18nK2lcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhKHJvd3xjZWxsSW5uZXJIVE1MOmNvbClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJyb3d8Y2VsbEljb25DbGFzc25hbWU6Y29sXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicm93fGNlbGxJbWdTcmM6Y29sXCI+PGltZyBbc3JjXT1cInJvd3xjZWxsSW1nU3JjOmNvbFwiIC8+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7cm93fGNlbGxWYWx1ZTpjb2x9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIiBbaW5uZXJIVE1MXT1cInJvd3xjZWxsSW5uZXJIVE1MOmNvbFwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJZiBjb2wgaXMgTk9UIGh5cGVybGluaywganVzdCBkaXNwbGF5IGRhdGEgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjb2wuaHlwZXJsaW5rIHx8IChyb3d8Y2VsbE5vdFNlbGVjdGFibGU6Y29sKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiEocm93fGNlbGxJbm5lckhUTUw6Y29sKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIG5nQ2xhc3M9XCJ7e3Jvd3xjZWxsSWNvbkNsYXNzbmFtZTpjb2wgfHwgJyd9fVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInJvd3xjZWxsSW1nU3JjOmNvbFwiPjxpbWcgW3NyY109XCJyb3d8Y2VsbEltZ1NyYzpjb2xcIiAvPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3Jvd3xjZWxsVmFsdWU6Y29sfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicm93fGNlbGxJbm5lckhUTUw6Y29sXCIgW2lubmVySFRNTF09XCJyb3d8Y2VsbElubmVySFRNTDpjb2xcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIElucHV0IENlbGwgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbC5pbnB1dENvbHVtblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGNtbC10ZW1wbGF0ZSBbdGVtcGxhdGVJbmZvXT1cInJvd3xjZWxsSW5wdXRDb21wb25lbnQ6Y29sXCI+PC9jbWwtdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZWxlY3QgQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLnNlbGVjdENvbHVtblwiIGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwidGFibGVJZCsnXycrclwiIHR5cGU9XCJjaGVja2JveFwiIFtkaXNhYmxlZF09XCIhcm93LnNlbGVjdGFibGVcIiBbY2hlY2tlZF09XCJyb3cuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVJvd1NlbGVjdGlvbihyb3cpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBTaW5nbGUgU2VsZWN0IENlbGwgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbC5zaW5nbGVTZWxlY3RDb2x1bW5cIiBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW2lkXT1cInRhYmxlSWQrJ19zaW5nbGVTZWxlY3RfJytyXCIgdHlwZT1cInJhZGlvXCIgW2Rpc2FibGVkXT1cIiFyb3cuc2VsZWN0YWJsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInJvdy5zZWxlY3RlZFwiIChjaGFuZ2UpPVwic2luZ2xlUm93U2VsZWN0aW9uKHJvdylcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFjdGlvbiBCdXR0b24gQ2VsbCAtLT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLmFjdGlvbkNvbHVtbiAmJiByb3cuYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9lcGEtYWN0aW9uLWJ0biBbYWN0aW9uc109XCJyb3cuYWN0aW9uc1wiIFtkYXRhXT1cInJvdy5kYXRhU291cmNlXCIgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtidG5JZF09XCJ0YWJsZUlkKydfJytyXCI+PC9vZXBhLWFjdGlvbi1idG4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4iXX0=
|