@sachin9822/reports-lib 0.0.221 → 0.0.223

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.
@@ -109,7 +109,7 @@ export class AccGlDetailsEnquiryReportComponent {
109
109
  };
110
110
  this.rowData = formattedEntries;
111
111
  this.companyName = data.companyName;
112
- this.reportUser = data.reportUser.toLowerCase();
112
+ this.reportUser = data.reportUser?.toLowerCase();
113
113
  this.reportTime = formatDate(new Date(), 'dd/MM/yyyy hh:mm a', 'en-US');
114
114
  this.currentReportValueOrPostDate = formatDate(data.date, 'dd/MM/yyyy', 'en-US');
115
115
  const DateType = this.dateType === 'VD' ? 'Value Date' : 'Posting Date';
@@ -237,4 +237,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
237
237
  type: Component,
238
238
  args: [{ selector: 'lib-acc-gl-details-enquiry-report', template: "<lib-search-filter [ReportName]=\"ReportName\" (searchClicked)=\"handleSearch($event)\"\r\n (formValid)=\"handleFormValid($event)\">\r\n</lib-search-filter>\r\n<app-loader class=\"\" *ngIf=\"loadingState == ComponentLoadingState.Loading\"></app-loader>\r\n<div class=\"main-container\">\r\n <div class=\"report-container\"\r\n *ngIf=\"accGlDetailsEnquiryReportModel != undefined && isFormValid && dataReady && accGlDetailsEnquiryReportModel?.journalVoucherEntries?.length!=0\">\r\n <div class=\"main-report\" *ngIf=\"accGlDetailsEnquiryReportModel != undefined && dataReady\">\r\n <lib-metadata [reportName]=\"ReportName\" [showmetaDataOne]=\"true\" [showmetaDataTwo]=\"true\"\r\n [metaDataOne]=\"metaDataOne\" [metaDataTwo]=\"metaDataTwo\" (exportEvent)=\"handleExport($event)\"\r\n (searchEvent)=\"onSearch($event)\"></lib-metadata>\r\n <div style=\"position: relative;\" *ngIf=\"rowData && rowData.length > 0\">\r\n <lib-page-size-selector [totalEntries]=\"accGlDetailsEnquiryReportModel?.journalVoucherEntries?.length\"\r\n [defaultSize]=\"'15'\" [gridApi]=\"gridApi\">\r\n ></lib-page-size-selector>\r\n <ag-grid-angular class=\"ag-theme-alpine transaction-grid\" style=\"width: 100%;height: 375px;\"\r\n [columnDefs]=\"columnDefs\" [defaultColDef]=\"defaultColDef\" [rowData]=\"rowData\" [rowHeight]=\"20\"\r\n [headerHeight]=\"22\" [pagination]=\"true\" [paginationPageSize]=\"pageSize\" (gridReady)=\"onGridReady($event)\">\r\n </ag-grid-angular>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"alert alert-warning mt-3\" *ngIf=\"accGlDetailsEnquiryReportModel?.journalVoucherEntries?.length==0\">\r\n No Data found matching your search criteria.\r\n </div>\r\n</div>", styles: [".btn-report{border-radius:4px;background-color:#8091a5;color:#fff!important;font-size:14px!important;height:32px!important;height:32px;min-width:110px;margin:0 0 0 20px!important;padding:4px 15px!important}.tooltip-block{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:1px solid #ccc!important}.dpicker{border:1px solid #ccc!important;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"!important;font-size:12px!important;font-weight:400!important;height:32px!important}.dpicker:focus{box-shadow:0 0 5px 3px #1877f2!important}.cal{height:32px!important;background-color:#1877f2!important}.cal:focus{box-shadow:none!important}.input-group-button{background:none;border:1px solid #0081c6;background-color:#0081c6;border-radius:0 3px 3px 0;min-width:35px;margin-left:1px;cursor:pointer}.labl{font-size:11.2px;font-weight:700!important}.info{font-size:12px!important;font-weight:400;padding-left:.5rem}.label-data{font-weight:600!important;font-size:.7rem!important;line-height:1rem}.meta-td{padding:0!important}.title{text-align:center;font-size:18px;font-weight:700!important}.export-options{display:inline-flex;font-size:.75rem;height:2rem!important;width:5rem!important;margin-right:-1;margin-left:.4rem}.opt-cls{display:block;height:100%;width:5rem;border:1px solid #ccc!important;border-radius:4px!important;margin-right:1rem!important;outline:none!important}.opt-cls:focus{box-shadow:0 0 5px 3px #1877f2}.export-selector{height:2rem!important;width:100%}.search-btn{height:32px!important;height:32px;width:36px;background-color:#8091a5;border:none;border-radius:0 4px 4px 0;display:flex;justify-content:center;align-items:center}.search-btn:hover{background-color:#8091a5}.search-icon{height:16px;width:16px;object-fit:contain}.search-input{outline:none!important;border:1px solid #ccc!important;width:190px;height:32px!important;font-size:.75rem;padding:.25rem .5rem;border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0!important;border-bottom-right-radius:0!important;text-transform:uppercase}.search-input:focus{box-shadow:0 0 5px 3px #1877f2!important}.searchBox{margin-right:auto;display:flex}table{width:100%;border-collapse:separate;margin-bottom:0!important;table-layout:fixed!important}td{padding:0 1rem 6px 0!important;border-right:0 solid #ffffff!important;background-color:#fff!important}.row-cls{height:2.5rem!important}.inputbox{padding-left:1rem;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Noto Sans,Liberation Sans,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol,\"Noto Color Emoji\"}::ng-deep .ng-select.ng-select-single .ng-select-container{height:32px I!important}::ng-deep .ng-select.ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;overflow-y:auto;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container{max-height:32px!important;overflow-x:auto!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-multiple .ng-select-container .ng-value-container .ng-value{max-width:200px!important;overflow:hidden!important;text-overflow:hidden!important;white-space:nowrap!important}::ng-deep .ng-select .ng-select-container{cursor:default;display:flex;outline:none;overflow:hidden;position:relative;width:100%}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option{box-sizing:border-box;cursor:pointer;display:block;white-space:nowrap;overflow-x:scroll!important;text-overflow:clip!important}::ng-deep .ng-dropdown-panel .ng-dropdown-panel-items .ng-option::-webkit-scrollbar{display:none!important;width:0!important}::ng-deep .ng-select .ng-select-container:focus-within{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container:focus{box-shadow:0 0 5px 3px #1877f2!important}::ng-deep .ng-select .ng-select-container,::ng-deep .ng-select.ng-select-single .ng-select-container,::ng-deep .ng-select.ng-select-multiple .ng-select-container{min-height:32px!important;height:32px!important;font-size:12px!important}.panel-cls{font-weight:700;font-size:13px;line-height:1.2;margin:0;padding:2px 0;color:#16181e}.transaction-grid ::ng-deep .ag-header{background-color:#f9f9f9;font-weight:600;font-size:10px;color:#000;border-right:1px solid #e0e0e0}:host ::ng-deep .ag-header-cell{padding:2px!important;align-items:center!important;justify-content:center!important;border-right:1px solid #e0e0e0;white-space:normal!important;word-break:normal!important;overflow-wrap:break-word!important;text-align:center!important}::ng-deep .ag-header-cell-label{display:flex!important;justify-content:center!important;align-items:center!important;width:100%;text-align:center!important}::ng-deep .ag-header-cell-text{text-align:center!important;width:100%!important;display:flex!important;justify-content:center!important}.transaction-grid ::ng-deep .ag-row{border-bottom:1px solid #e0e0e0}.transaction-grid ::ng-deep .ag-cell{font-size:9px;white-space:normal!important;word-break:keep-all!important;overflow-wrap:anywhere;line-height:1.4;padding:4px!important;color:#000;font-weight:500;border-right:.5px solid #e0e0e0;align-content:center;user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important;cursor:text}::ng-deep .ag-cell-label-container{padding:0!important}.ag-theme-alpine{--ag-header-font-size: 10px;--ag-font-size: 10px;--ag-header-background-color: #fdfdfd;--ag-header-foreground-color: rgb(0, 0, 0)}::ng-deep .ag-paging-panel{height:30px!important;font-weight:500!important}.main-container{display:flex;flex-direction:column;width:100%;padding:0;box-sizing:border-box}.report-loader{display:flex;justify-content:center;align-items:center;height:320px;background-color:#ffffffb3;border:none none none}.report-container{min-height:350px;font-size:.7rem;line-height:1.4;margin:0;overflow:visible}.main-report{overflow:visible}.grid-size{width:100%!important;font-weight:500!important;height:390px!important}\n"] }]
239
239
  }], ctorParameters: function () { return [{ type: i1.ExportService }, { type: i2.ReportService }, { type: i3.HttpClient }, { type: i4.DomSanitizer }]; } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0L2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc3QyxPQUFPLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFjL0UsTUFBTSxPQUFPLGtDQUFrQztJQXVFN0MsWUFDVSxhQUE0QixFQUM1QixhQUE0QixFQUM1QixJQUFnQixFQUNoQixTQUF1QjtRQUh2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUF4RWpDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFHeEIseUJBQW9CLEdBQVcsT0FBTyxDQUFDO1FBQ3ZDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBUzNCLFlBQU8s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QUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDOzsrSEEzUVUsa0NBQWtDO21IQUFsQyxrQ0FBa0MseUVDdkIvQywwdkRBMEJNOzJGREhPLGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQvYWNjZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydG1vZGVsJztcclxuaW1wb3J0IHsgQ29sRGVmLCBDb2x1bW5BcGksIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXhwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkaW5nU3RhdGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudC1sb2FkaW5nLXN0YXRlcyc7XHJcblxyXG5kZWNsYXJlIG1vZHVsZSAnanNwZGYnIHtcclxuICBpbnRlcmZhY2UganNQREYge1xyXG4gICAgYXV0b1RhYmxlOiAob3B0aW9uczogYW55KSA9PiBqc1BERjtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC5zY3NzJ10sXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcclxuICBncmlkQXBpOiBHcmlkQXBpPGFueT47XHJcbiAgZ3JpZENvbHVtbkFwaSE6IENvbHVtbkFwaTtcclxuICBzZWxlY3RlZEV4cG9ydE9wdGlvbjogc3RyaW5nID0gJ2V4Y2VsJztcclxuICBzdmdMb2FkZXI6IFNhZmVIdG1sID0gJyc7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGFSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGVUeXBlRmlsdGVyOiBudW1iZXIgPSAxO1xyXG4gIGRhdGVUeXBlOiBhbnk7XHJcbiAgc3lzQ29tcGFueUNvZGU6IGFueTtcclxuICBzeXNVc2VySWQ6IGFueTtcclxuICBjb21wYW55TmFtZTogYW55O1xyXG4gIHJlcG9ydFVzZXI6IGFueTtcclxuICByZXBvcnRUaW1lOiBhbnk7XHJcbiAgY3VycmVudFJlcG9ydFZhbHVlT3JQb3N0RGF0ZTogYW55O1xyXG4gIGFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbDogQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsO1xyXG4gIHJvd0RhdGEgPSBbXTtcclxuICBkYXRlOiBzdHJpbmc7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG4gIFJlcG9ydE5hbWUgPSAnQUNDIEdMIERldGFpbHMgRW5xdWlyeSc7XHJcbiAgZXhwb3J0Rm9ybWF0cyA9IFtcclxuICAgIHsgZm9ybWF0TmFtZTogJ0V4Y2VsJywgY29kZTogJ2V4Y2VsJyB9LFxyXG4gICAgeyBmb3JtYXROYW1lOiAnUERGJywgY29kZTogJ3BkZicgfSxcclxuICAgIHsgZm9ybWF0TmFtZTogJ0NTVicsIGNvZGU6ICdjc3YnIH0sXHJcbiAgXTtcclxuICBtZXRhRGF0YU9uZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBtZXRhRGF0YVR3bzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBDb21wb25lbnRMb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzO1xyXG4gIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlcyA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgc2VhcmNoQ3JpdGVyaWE6IFtzdHJpbmcsIHN0cmluZ11bXTtcclxuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbldpZHRoOiA0MCxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiBmYWxzZSxcclxuICAgIGNlbGxTdHlsZToge1xyXG4gICAgICB1c2VyU2VsZWN0OiAndGV4dCcsXHJcbiAgICAgICdsaW5lLWhlaWdodCc6ICcxLjInLFxyXG4gICAgICAnd2hpdGUtc3BhY2UnOiAnbm9ybWFsJyxcclxuICAgICAgJ3dvcmQtYnJlYWsnOiAnbm9ybWFsJyxcclxuICAgICAgJ292ZXJmbG93LXdyYXAnOiAnYnJlYWstd29yZCcsXHJcbiAgICB9LFxyXG4gICAgd3JhcEhlYWRlclRleHQ6IHRydWUsXHJcbiAgICBhdXRvSGVhZGVySGVpZ2h0OiB0cnVlLFxyXG4gICAgd3JhcFRleHQ6IHRydWUsXHJcbiAgICBhdXRvSGVpZ2h0OiB0cnVlLFxyXG4gIH07XHJcblxyXG4gIGNvbHVtbkRlZnM6IENvbERlZltdID0gW1xyXG4gICAgeyBoZWFkZXJOYW1lOiAnSm91cm5hbCBJRCcsIGZpZWxkOiAnam91cm5hbElEJywgZmxleDogMS44LCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogOTUsIHRvb2x0aXBGaWVsZDogJ2pvdXJuYWxJRCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1RyYW5zIE5vJywgZmllbGQ6ICd0cmFuc2FjdGlvbk5vJywgZmxleDogMS44LCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwtdHJhbnNhY3Rpb24nLCBtaW5XaWR0aDogNzMsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uTm8nIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdUcmFucyBDb2RlJywgZmllbGQ6ICd0cmFuc2FjdGlvbkNvZGUnLCBmbGV4OiAxLjEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA2MCwgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25Db2RlJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnSm91cm5hbCBUeXBlJywgZmllbGQ6ICdqb3VybmFsVHlwZScsIGZsZXg6IDEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA3MywgdG9vbHRpcEZpZWxkOiAnam91cm5hbFR5cGUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdQb3N0aW5nIERhdGUnLCBmaWVsZDogJ3Bvc3RpbmdEYXRlJywgZmxleDogMS4yLCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogNjksIHRvb2x0aXBGaWVsZDogJ3Bvc3RpbmdEYXRlJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnVmFsdWUgRGF0ZScsIGZpZWxkOiAndmFsdWVEYXRlJywgZmxleDogMS4xLCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogNjgsIHRvb2x0aXBGaWVsZDogJ3ZhbHVlRGF0ZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0Rlc2NyaXB0aW9uJywgZmllbGQ6ICdkZXNjcmlwdGlvbicsIGZsZXg6IDMsIG1pbldpZHRoOiAxMTksIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsU3R5bGU6IHsgJ2xpbmUtaGVpZ2h0JzogJzEuMicsICd3aGl0ZS1zcGFjZSc6ICdub3JtYWwnLCAnd29yZC1icmVhayc6ICdub3JtYWwnLCAnb3ZlcmZsb3ctd3JhcCc6ICdicmVhay13b3JkJyB9LCB0b29sdGlwRmllbGQ6ICdkZXNjcmlwdGlvbicgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0FjY291bnQgQ29kZScsIGZpZWxkOiAnYWNjb3VudENvZGUnLCBmbGV4OiAxLjEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA3MywgdG9vbHRpcEZpZWxkOiAnYWNjb3VudENvZGUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdDY3knLCBmaWVsZDogJ2N1cnJlbmN5JywgZmxleDogMSwgY2VsbENsYXNzOiAnYWctbGVmdC1jb2xzLWNlbGwnLCBtaW5XaWR0aDogMzUsIHRvb2x0aXBGaWVsZDogJ2N1cnJlbmN5JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnUmF0ZScsIGZpZWxkOiAncmF0ZScsIGZsZXg6IDEuMSwgY2VsbENsYXNzOiAnYWctcmlnaHQtYWxpZ25lZC1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA2OSwgdG9vbHRpcEZpZWxkOiAncmF0ZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0Z4RGViaXQnLCBmaWVsZDogJ2ZvcmV4RGViaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDU4LCB0b29sdGlwRmllbGQ6ICdmb3JleERlYml0JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnTG9jYWwgRGViaXQnLCBmaWVsZDogJ2xvY2FsRGViaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDYyLCB0b29sdGlwRmllbGQ6ICdsb2NhbERlYml0JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnRnhDcmVkaXQnLCBmaWVsZDogJ2ZvcmV4Q3JlZGl0JywgZmxleDogMS40LCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDU4LCB0b29sdGlwRmllbGQ6ICdmb3JleENyZWRpdCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0xvY2FsIENyZWRpdCcsIGZpZWxkOiAnbG9jYWxDcmVkaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDYyLCB0b29sdGlwRmllbGQ6ICdsb2NhbENyZWRpdCcgfSxcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRXhwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuaHR0cFxyXG4gICAgLy8gICAuZ2V0KCdhc3NldHMvcmVwb3J0cy1saWIvYXNzZXRzL3N2Zy1sb2FkZXJzL2JsdWUtdGFpbC1zcGluLnN2ZycsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcclxuICAgIC8vICAgLnN1YnNjcmliZSgoc3ZnKSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5zdmdMb2FkZXIgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdmcpO1xyXG4gICAgLy8gICB9KTtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjY0dMRGV0YWlsc1JlcG9ydCgpIHtcclxuICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Mb2FkaW5nO1xyXG4gICAgdGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXRhUmVhZHkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPSAnZXhjZWwnO1xyXG4gICAgdGhpcy5zeXNDb21wYW55Q29kZSA9ICdCSCc7XHJcbiAgICB0aGlzLnN5c1VzZXJJZCA9IHRoaXMucmVwb3J0U2VydmljZS5nZXRVc2VyTmFtZUZyb21TZXNzaW9uU3RvcmFnZSgpO1xyXG4gICAgdGhpcy5jb21wYW55TmFtZSA9ICdYcHJlc3MgTW9uZXknO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5kYXRlVHlwZSA9IHRoaXMuZGF0ZVR5cGVGaWx0ZXIgPT09IDEgPyAnVkQnIDogJ1BEJztcclxuXHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0QWNjR0xEZXRhaWxzUmVwb3J0KHRoaXMuZGF0ZS5zcGxpdCgnVCcpWzBdLCB0aGlzLmRhdGVUeXBlKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIC8vICBQcmUtZm9ybWF0IGVudHJpZXMgYmVmb3JlIHN0b3JpbmdcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEVudHJpZXMgPSBkYXRhLmpvdXJuYWxWb3VjaGVyRW50cmllcy5tYXAoKGVudHJ5KSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5lbnRyeSxcclxuICAgICAgICAgICAgcG9zdGluZ0RhdGU6IHRoaXMuZm9ybWF0RGF0ZVZhbHVlKGVudHJ5LnBvc3RpbmdEYXRlKSxcclxuICAgICAgICAgICAgdmFsdWVEYXRlOiB0aGlzLmZvcm1hdERhdGVWYWx1ZShlbnRyeS52YWx1ZURhdGUpLFxyXG4gICAgICAgICAgICByYXRlOiB0aGlzLmZvcm1hdE51bWJlclZhbHVlKGVudHJ5LnJhdGUsICdyYXRlJyksXHJcbiAgICAgICAgICAgIGZvcmV4RGViaXQ6IHRoaXMuZm9ybWF0TnVtYmVyVmFsdWUoZW50cnkuZm9yZXhEZWJpdCwgJ2ZvcmV4RGViaXQnKSxcclxuICAgICAgICAgICAgbG9jYWxEZWJpdDogdGhpcy5mb3JtYXROdW1iZXJWYWx1ZShlbnRyeS5sb2NhbERlYml0LCAnbG9jYWxEZWJpdCcpLFxyXG4gICAgICAgICAgICBmb3JleENyZWRpdDogdGhpcy5mb3JtYXROdW1iZXJWYWx1ZShlbnRyeS5mb3JleENyZWRpdCwgJ2ZvcmV4Q3JlZGl0JyksXHJcbiAgICAgICAgICAgIGxvY2FsQ3JlZGl0OiB0aGlzLmZvcm1hdE51bWJlclZhbHVlKGVudHJ5LmxvY2FsQ3JlZGl0LCAnbG9jYWxDcmVkaXQnKSxcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCA9IHtcclxuICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgam91cm5hbFZvdWNoZXJFbnRyaWVzOiBmb3JtYXR0ZWRFbnRyaWVzLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJvd0RhdGEgPSBmb3JtYXR0ZWRFbnRyaWVzO1xyXG4gICAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IGRhdGEuY29tcGFueU5hbWU7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydFVzZXIgPSBkYXRhLnJlcG9ydFVzZXIudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgIHRoaXMucmVwb3J0VGltZSA9IGZvcm1hdERhdGUobmV3IERhdGUoKSwgJ2RkL01NL3l5eXkgaGg6bW0gYScsICdlbi1VUycpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50UmVwb3J0VmFsdWVPclBvc3REYXRlID0gZm9ybWF0RGF0ZShkYXRhLmRhdGUsICdkZC9NTS95eXl5JywgJ2VuLVVTJyk7XHJcbiAgICAgICAgICBjb25zdCBEYXRlVHlwZSA9IHRoaXMuZGF0ZVR5cGUgPT09ICdWRCcgPyAnVmFsdWUgRGF0ZScgOiAnUG9zdGluZyBEYXRlJztcclxuXHJcbiAgICAgICAgICB0aGlzLm1ldGFEYXRhT25lID0ge1xyXG4gICAgICAgICAgICBbRGF0ZVR5cGVdOiB0aGlzLmN1cnJlbnRSZXBvcnRWYWx1ZU9yUG9zdERhdGUsXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIHRoaXMubWV0YURhdGFUd28gPSB7XHJcbiAgICAgICAgICAgICdSZXBvcnQgVXNlciAmIFRpbWUgJzogYCR7dGhpcy5yZXBvcnRVc2VyfSBAICR7dGhpcy5yZXBvcnRUaW1lfWBcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzLkNvbXBsZXRlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmRhdGFSZWFkeSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB3aW5kb3cuYWxlcnQoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdERhdGVWYWx1ZSh2YWx1ZTogYW55KTogc3RyaW5nIHtcclxuICAgIGlmICghdmFsdWUpIHJldHVybiAnJztcclxuICAgIHJldHVybiBmb3JtYXREYXRlKG5ldyBEYXRlKHZhbHVlKSwgJ2RkL01NL3l5eXknLCAnZW4tVVMnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0TnVtYmVyVmFsdWUodmFsdWU6IGFueSwgZmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsdWUgPT0gbnVsbCkgcmV0dXJuICcnO1xyXG4gICAgcmV0dXJuIGZpZWxkID09PSAncmF0ZScgPyBOdW1iZXIodmFsdWUpLnRvRml4ZWQoOCkgOiBOdW1iZXIodmFsdWUpLnRvRml4ZWQoMyk7XHJcbiAgfVxyXG5cclxuICBvbkdyaWRSZWFkeShwYXJhbXM6IEdyaWRSZWFkeUV2ZW50KSB7XHJcbiAgICB0aGlzLmdyaWRBcGkgPSBwYXJhbXMuYXBpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1uQXBpID0gcGFyYW1zLmNvbHVtbkFwaTtcclxuICB9XHJcblxyXG4gIG9uR3JpZFNpemVDaGFuZ2VkKHBhcmFtczogYW55KSB7XHJcbiAgICBwYXJhbXMuYXBpLnNpemVDb2x1bW5zVG9GaXQoKTtcclxuICB9XHJcblxyXG4gIGdldFJvd0hlaWdodChwYXJhbXM6IGFueSk6IG51bWJlciB7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IHBhcmFtcy5kYXRhPy5kZXNjcmlwdGlvbiB8fCAnJztcclxuICAgIHJldHVybiBkZXNjcmlwdGlvbi5sZW5ndGggPiA1MCA/IDQwIDogMjA7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaCh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZSA9IChzdHI6IGFueSk6IHN0cmluZyA9PlxyXG4gICAgICBzdHJcclxuICAgICAgICA/LnRvU3RyaW5nKClcclxuICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgIC5yZXBsYWNlKC8sL2csICcnKVxyXG4gICAgICAgIC5yZXBsYWNlKC9cXHMrL2csICcgJylcclxuICAgICAgICAucmVwbGFjZSgvW1xcdTIwMEItXFx1MjAwRFxcdUZFRkZdL2csICcnKVxyXG4gICAgICAgIC50cmltKCk7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gdGV4dDtcclxuICAgIGNvbnN0IHNlYXJjaCA9IG5vcm1hbGl6ZSh0aGlzLnNlYXJjaFRleHQpO1xyXG5cclxuICAgIGlmIChzZWFyY2gpIHtcclxuICAgICAgdGhpcy5yb3dEYXRhID0gdGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwuam91cm5hbFZvdWNoZXJFbnRyaWVzLmZpbHRlcigoaXRlbSkgPT5cclxuICAgICAgICBPYmplY3QudmFsdWVzKGl0ZW0pLnNvbWUoKHZhbHVlKSA9PiBub3JtYWxpemUodmFsdWUpLmluY2x1ZGVzKHNlYXJjaCkpXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJvd0RhdGEgPSB0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVFeHBvcnQob3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPSBvcHRpb247XHJcbiAgICBzd2l0Y2ggKHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24pIHtcclxuICAgICAgY2FzZSAnZXhjZWwnOlxyXG4gICAgICAgIHRoaXMuZXhwb3J0VG9FeGNlbCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdwZGYnOlxyXG4gICAgICAgIHRoaXMuZXhwb3J0VG9QZGYoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY3N2JzpcclxuICAgICAgICB0aGlzLmV4cG9ydFRvQ3N2KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYWxlcnQoJ1BsZWFzZSBzZWxlY3QgYW4gZXhwb3J0IGZvcm1hdC4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIGV4cG9ydFRvUGRmKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gYCR7dGhpcy5jb21wYW55TmFtZX0gLSBHZW5lcmFsIExlZGdlciBBY2NvdW50IERldGFpbHMgRW5xdWlyeSBSZXBvcnRgO1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVSZXBvcnRNZXRhZGF0YShbXHJcbiAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lIDogJywgYCR7dGhpcy5yZXBvcnRVc2VyfUAke3RoaXMucmVwb3J0VGltZX1gXSxcclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXMsIHRoaXMuY29sdW1uRGVmcywge1xyXG4gICAgICBjdXJyZW5jeUZpZWxkczogWydsb2NhbENyZWRpdCcsICdmb3JleENyZWRpdCcsICdsb2NhbERlYml0JywgJ2ZvcmV4RGViaXQnXSxcclxuICAgIH0pO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb1BkZlVuaXZlcnNhbCh0aXRsZSwgbWV0YWRhdGEsIHRoaXMuc2VhcmNoQ3JpdGVyaWEsIGhlYWRlcnMsIHJvd3MsICdBQ0MtR0wtRGV0YWlscy1FbnF1aXJ5LVJlcG9ydC5wZGYnKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvRXhjZWwoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsLmpvdXJuYWxWb3VjaGVyRW50cmllcz8ubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSBgJHt0aGlzLmNvbXBhbnlOYW1lfSAtIEdlbmVyYWwgTGVkZ2VyIEFjY291bnQgRGV0YWlscyBFbnF1aXJ5IFJlcG9ydGA7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKFtcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOiAnLCBgJHt0aGlzLnJlcG9ydFVzZXJ9QCR7dGhpcy5yZXBvcnRUaW1lfWBdLFxyXG4gICAgXSk7XHJcblxyXG4gICAgY29uc3QgeyBoZWFkZXJzLCByb3dzIH0gPSB0aGlzLmV4cG9ydFNlcnZpY2UucHJlcGFyZUV4cG9ydFRhYmxlKHRoaXMuYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsLmpvdXJuYWxWb3VjaGVyRW50cmllcywgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbJ2xvY2FsQ3JlZGl0JywgJ2ZvcmV4Q3JlZGl0JywgJ2xvY2FsRGViaXQnLCAnZm9yZXhEZWJpdCddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvRXhjZWxVbml2ZXJzYWwodGl0bGUsIG1ldGFkYXRhLCB0aGlzLnNlYXJjaENyaXRlcmlhLCBoZWFkZXJzLCByb3dzLCAnQUNDLUdMLURldGFpbHMtRW5xdWlyeS1SZXBvcnQueGxzeCcpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0VG9Dc3YoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsLmpvdXJuYWxWb3VjaGVyRW50cmllcz8ubGVuZ3RoKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSBgJHt0aGlzLmNvbXBhbnlOYW1lfSAtIEdlbmVyYWwgTGVkZ2VyIEFjY291bnQgRGV0YWlscyBFbnF1aXJ5IFJlcG9ydGA7XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZVJlcG9ydE1ldGFkYXRhKFtcclxuICAgICAgWydSZXBvcnQgVXNlciAmIFRpbWUgOiAnLCBgJHt0aGlzLnJlcG9ydFVzZXJ9QCR7dGhpcy5yZXBvcnRUaW1lfWBdLFxyXG4gICAgXSk7XHJcblxyXG4gICAgY29uc3QgeyBoZWFkZXJzLCByb3dzIH0gPSB0aGlzLmV4cG9ydFNlcnZpY2UucHJlcGFyZUV4cG9ydFRhYmxlKHRoaXMuYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsLmpvdXJuYWxWb3VjaGVyRW50cmllcywgdGhpcy5jb2x1bW5EZWZzLCB7XHJcbiAgICAgIGN1cnJlbmN5RmllbGRzOiBbJ2xvY2FsQ3JlZGl0JywgJ2ZvcmV4Q3JlZGl0JywgJ2xvY2FsRGViaXQnLCAnZm9yZXhEZWJpdCddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLmV4cG9ydFRvQ3N2VW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ0FDQy1HTC1EZXRhaWxzLUVucXVpcnktUmVwb3J0LmNzdicpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2VhcmNoKGNyaXRlcmlhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZVR5cGVGaWx0ZXIgPSBjcml0ZXJpYS5zZWxlY3RlZERhdGVUeXBlO1xyXG4gICAgdGhpcy5kYXRlID0gY3JpdGVyaWEuc2VsZWN0ZWREYXRlLnNwbGl0KCdUJylbMF07XHJcbiAgICB0aGlzLnNlYXJjaENyaXRlcmlhID0gW1xyXG4gICAgICBbJ0RhdGUgVHlwZTonLCBgJHt0aGlzLmRhdGVUeXBlRmlsdGVyID09PSAxID8gJ1ZhbHVlIERhdGUnIDogJ1Bvc3RpbmcgRGF0ZSd9YF0sXHJcbiAgICAgIFsnRGF0ZTonLCBmb3JtYXREYXRlKHRoaXMuZGF0ZSwgJ2RkL01NL3l5eXknLCAnZW4tVVMnKV0sXHJcbiAgICBdO1xyXG4gICAgdGhpcy5nZXRBY2NHTERldGFpbHNSZXBvcnQoKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZvcm1WYWxpZChpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9ybVZhbGlkID0gaXNWYWxpZDtcclxuICB9XHJcbn1cclxuIiwiPGxpYi1zZWFyY2gtZmlsdGVyIFtSZXBvcnROYW1lXT1cIlJlcG9ydE5hbWVcIiAoc2VhcmNoQ2xpY2tlZCk9XCJoYW5kbGVTZWFyY2goJGV2ZW50KVwiXHJcbiAgKGZvcm1WYWxpZCk9XCJoYW5kbGVGb3JtVmFsaWQoJGV2ZW50KVwiPlxyXG48L2xpYi1zZWFyY2gtZmlsdGVyPlxyXG48YXBwLWxvYWRlciBjbGFzcz1cIlwiICpuZ0lmPVwibG9hZGluZ1N0YXRlID09IENvbXBvbmVudExvYWRpbmdTdGF0ZS5Mb2FkaW5nXCI+PC9hcHAtbG9hZGVyPlxyXG48ZGl2IGNsYXNzPVwibWFpbi1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwicmVwb3J0LWNvbnRhaW5lclwiXHJcbiAgICAqbmdJZj1cImFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCAhPSB1bmRlZmluZWQgJiYgaXNGb3JtVmFsaWQgJiYgZGF0YVJlYWR5ICYmIGFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbD8uam91cm5hbFZvdWNoZXJFbnRyaWVzPy5sZW5ndGghPTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLXJlcG9ydFwiICpuZ0lmPVwiYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsICE9IHVuZGVmaW5lZCAmJiBkYXRhUmVhZHlcIj5cclxuICAgICAgPGxpYi1tZXRhZGF0YSBbcmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgW3Nob3dtZXRhRGF0YU9uZV09XCJ0cnVlXCIgW3Nob3dtZXRhRGF0YVR3b109XCJ0cnVlXCJcclxuICAgICAgICBbbWV0YURhdGFPbmVdPVwibWV0YURhdGFPbmVcIiBbbWV0YURhdGFUd29dPVwibWV0YURhdGFUd29cIiAoZXhwb3J0RXZlbnQpPVwiaGFuZGxlRXhwb3J0KCRldmVudClcIlxyXG4gICAgICAgIChzZWFyY2hFdmVudCk9XCJvblNlYXJjaCgkZXZlbnQpXCI+PC9saWItbWV0YWRhdGE+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCIgKm5nSWY9XCJyb3dEYXRhICYmIHJvd0RhdGEubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgIDxsaWItcGFnZS1zaXplLXNlbGVjdG9yIFt0b3RhbEVudHJpZXNdPVwiYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsPy5qb3VybmFsVm91Y2hlckVudHJpZXM/Lmxlbmd0aFwiXHJcbiAgICAgICAgICBbZGVmYXVsdFNpemVdPVwiJzE1J1wiIFtncmlkQXBpXT1cImdyaWRBcGlcIj5cclxuICAgICAgICAgID48L2xpYi1wYWdlLXNpemUtc2VsZWN0b3I+XHJcbiAgICAgICAgPGFnLWdyaWQtYW5ndWxhciBjbGFzcz1cImFnLXRoZW1lLWFscGluZSB0cmFuc2FjdGlvbi1ncmlkXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtoZWlnaHQ6IDM3NXB4O1wiXHJcbiAgICAgICAgICBbY29sdW1uRGVmc109XCJjb2x1bW5EZWZzXCIgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiIFtyb3dEYXRhXT1cInJvd0RhdGFcIiBbcm93SGVpZ2h0XT1cIjIwXCJcclxuICAgICAgICAgIFtoZWFkZXJIZWlnaHRdPVwiMjJcIiBbcGFnaW5hdGlvbl09XCJ0cnVlXCIgW3BhZ2luYXRpb25QYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIChncmlkUmVhZHkpPVwib25HcmlkUmVhZHkoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYWctZ3JpZC1hbmd1bGFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYWxlcnQgYWxlcnQtd2FybmluZyBtdC0zXCIgKm5nSWY9XCJhY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWw/LmpvdXJuYWxWb3VjaGVyRW50cmllcz8ubGVuZ3RoPT0wXCI+XHJcbiAgICBObyBEYXRhIGZvdW5kIG1hdGNoaW5nIHlvdXIgc2VhcmNoIGNyaXRlcmlhLlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmVwb3J0cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0L2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlcG9ydHMtbGliL3NyYy9saWIvY29tcG9uZW50cy9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC9hY2MtZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUc3QyxPQUFPLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFjL0UsTUFBTSxPQUFPLGtDQUFrQztJQXVFN0MsWUFDVSxhQUE0QixFQUM1QixhQUE0QixFQUM1QixJQUFnQixFQUNoQixTQUF1QjtRQUh2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUF4RWpDLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFHeEIseUJBQW9CLEdBQVcsT0FBTyxDQUFDO1FBQ3ZDLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBUzNCLFlBQU8s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QUFDO1FBQ0YsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQztJQUM3QixDQUFDOzsrSEEzUVUsa0NBQWtDO21IQUFsQyxrQ0FBa0MseUVDdkIvQywwdkRBMEJNOzJGREhPLGtDQUFrQztrQkFOOUMsU0FBUzsrQkFDRSxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcmVwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQvYWNjZ2wtZGV0YWlscy1lbnF1aXJ5LXJlcG9ydG1vZGVsJztcclxuaW1wb3J0IHsgQ29sRGVmLCBDb2x1bW5BcGksIEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zaGFyZWQvZXhwb3J0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRMb2FkaW5nU3RhdGVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbXBvbmVudC1sb2FkaW5nLXN0YXRlcyc7XHJcblxyXG5kZWNsYXJlIG1vZHVsZSAnanNwZGYnIHtcclxuICBpbnRlcmZhY2UganNQREYge1xyXG4gICAgYXV0b1RhYmxlOiAob3B0aW9uczogYW55KSA9PiBqc1BERjtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWFjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWNjLWdsLWRldGFpbHMtZW5xdWlyeS1yZXBvcnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjYy1nbC1kZXRhaWxzLWVucXVpcnktcmVwb3J0LmNvbXBvbmVudC5zY3NzJ10sXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBzZWFyY2hUZXh0OiBzdHJpbmcgPSAnJztcclxuICBncmlkQXBpOiBHcmlkQXBpPGFueT47XHJcbiAgZ3JpZENvbHVtbkFwaSE6IENvbHVtbkFwaTtcclxuICBzZWxlY3RlZEV4cG9ydE9wdGlvbjogc3RyaW5nID0gJ2V4Y2VsJztcclxuICBzdmdMb2FkZXI6IFNhZmVIdG1sID0gJyc7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGFSZWFkeTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRhdGVUeXBlRmlsdGVyOiBudW1iZXIgPSAxO1xyXG4gIGRhdGVUeXBlOiBhbnk7XHJcbiAgc3lzQ29tcGFueUNvZGU6IGFueTtcclxuICBzeXNVc2VySWQ6IGFueTtcclxuICBjb21wYW55TmFtZTogYW55O1xyXG4gIHJlcG9ydFVzZXI6IGFueTtcclxuICByZXBvcnRUaW1lOiBhbnk7XHJcbiAgY3VycmVudFJlcG9ydFZhbHVlT3JQb3N0RGF0ZTogYW55O1xyXG4gIGFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbDogQWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsO1xyXG4gIHJvd0RhdGEgPSBbXTtcclxuICBkYXRlOiBzdHJpbmc7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDE1O1xyXG4gIFJlcG9ydE5hbWUgPSAnQUNDIEdMIERldGFpbHMgRW5xdWlyeSc7XHJcbiAgZXhwb3J0Rm9ybWF0cyA9IFtcclxuICAgIHsgZm9ybWF0TmFtZTogJ0V4Y2VsJywgY29kZTogJ2V4Y2VsJyB9LFxyXG4gICAgeyBmb3JtYXROYW1lOiAnUERGJywgY29kZTogJ3BkZicgfSxcclxuICAgIHsgZm9ybWF0TmFtZTogJ0NTVicsIGNvZGU6ICdjc3YnIH0sXHJcbiAgXTtcclxuICBtZXRhRGF0YU9uZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBtZXRhRGF0YVR3bzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuICBDb21wb25lbnRMb2FkaW5nU3RhdGUgPSBDb21wb25lbnRMb2FkaW5nU3RhdGVzO1xyXG4gIGxvYWRpbmdTdGF0ZTogQ29tcG9uZW50TG9hZGluZ1N0YXRlcyA9IENvbXBvbmVudExvYWRpbmdTdGF0ZXMuQ29tcGxldGU7XHJcbiAgc2VhcmNoQ3JpdGVyaWE6IFtzdHJpbmcsIHN0cmluZ11bXTtcclxuICBpc0Zvcm1WYWxpZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7XHJcbiAgICByZXNpemFibGU6IHRydWUsXHJcbiAgICBzb3J0YWJsZTogdHJ1ZSxcclxuICAgIGZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbldpZHRoOiA0MCxcclxuICAgIHN1cHByZXNzU2l6ZVRvRml0OiBmYWxzZSxcclxuICAgIGNlbGxTdHlsZToge1xyXG4gICAgICB1c2VyU2VsZWN0OiAndGV4dCcsXHJcbiAgICAgICdsaW5lLWhlaWdodCc6ICcxLjInLFxyXG4gICAgICAnd2hpdGUtc3BhY2UnOiAnbm9ybWFsJyxcclxuICAgICAgJ3dvcmQtYnJlYWsnOiAnbm9ybWFsJyxcclxuICAgICAgJ292ZXJmbG93LXdyYXAnOiAnYnJlYWstd29yZCcsXHJcbiAgICB9LFxyXG4gICAgd3JhcEhlYWRlclRleHQ6IHRydWUsXHJcbiAgICBhdXRvSGVhZGVySGVpZ2h0OiB0cnVlLFxyXG4gICAgd3JhcFRleHQ6IHRydWUsXHJcbiAgICBhdXRvSGVpZ2h0OiB0cnVlLFxyXG4gIH07XHJcblxyXG4gIGNvbHVtbkRlZnM6IENvbERlZltdID0gW1xyXG4gICAgeyBoZWFkZXJOYW1lOiAnSm91cm5hbCBJRCcsIGZpZWxkOiAnam91cm5hbElEJywgZmxleDogMS44LCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogOTUsIHRvb2x0aXBGaWVsZDogJ2pvdXJuYWxJRCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ1RyYW5zIE5vJywgZmllbGQ6ICd0cmFuc2FjdGlvbk5vJywgZmxleDogMS44LCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwtdHJhbnNhY3Rpb24nLCBtaW5XaWR0aDogNzMsIHRvb2x0aXBGaWVsZDogJ3RyYW5zYWN0aW9uTm8nIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdUcmFucyBDb2RlJywgZmllbGQ6ICd0cmFuc2FjdGlvbkNvZGUnLCBmbGV4OiAxLjEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA2MCwgdG9vbHRpcEZpZWxkOiAndHJhbnNhY3Rpb25Db2RlJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnSm91cm5hbCBUeXBlJywgZmllbGQ6ICdqb3VybmFsVHlwZScsIGZsZXg6IDEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA3MywgdG9vbHRpcEZpZWxkOiAnam91cm5hbFR5cGUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdQb3N0aW5nIERhdGUnLCBmaWVsZDogJ3Bvc3RpbmdEYXRlJywgZmxleDogMS4yLCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogNjksIHRvb2x0aXBGaWVsZDogJ3Bvc3RpbmdEYXRlJyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnVmFsdWUgRGF0ZScsIGZpZWxkOiAndmFsdWVEYXRlJywgZmxleDogMS4xLCBjZWxsQ2xhc3M6ICdhZy1sZWZ0LWNvbHMtY2VsbCBjb21wYWN0LWNlbGwnLCBtaW5XaWR0aDogNjgsIHRvb2x0aXBGaWVsZDogJ3ZhbHVlRGF0ZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0Rlc2NyaXB0aW9uJywgZmllbGQ6ICdkZXNjcmlwdGlvbicsIGZsZXg6IDMsIG1pbldpZHRoOiAxMTksIHdyYXBUZXh0OiB0cnVlLCBhdXRvSGVpZ2h0OiB0cnVlLCBjZWxsU3R5bGU6IHsgJ2xpbmUtaGVpZ2h0JzogJzEuMicsICd3aGl0ZS1zcGFjZSc6ICdub3JtYWwnLCAnd29yZC1icmVhayc6ICdub3JtYWwnLCAnb3ZlcmZsb3ctd3JhcCc6ICdicmVhay13b3JkJyB9LCB0b29sdGlwRmllbGQ6ICdkZXNjcmlwdGlvbicgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0FjY291bnQgQ29kZScsIGZpZWxkOiAnYWNjb3VudENvZGUnLCBmbGV4OiAxLjEsIGNlbGxDbGFzczogJ2FnLWxlZnQtY29scy1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA3MywgdG9vbHRpcEZpZWxkOiAnYWNjb3VudENvZGUnIH0sXHJcbiAgICB7IGhlYWRlck5hbWU6ICdDY3knLCBmaWVsZDogJ2N1cnJlbmN5JywgZmxleDogMSwgY2VsbENsYXNzOiAnYWctbGVmdC1jb2xzLWNlbGwnLCBtaW5XaWR0aDogMzUsIHRvb2x0aXBGaWVsZDogJ2N1cnJlbmN5JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnUmF0ZScsIGZpZWxkOiAncmF0ZScsIGZsZXg6IDEuMSwgY2VsbENsYXNzOiAnYWctcmlnaHQtYWxpZ25lZC1jZWxsIGNvbXBhY3QtY2VsbCcsIG1pbldpZHRoOiA2OSwgdG9vbHRpcEZpZWxkOiAncmF0ZScgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0Z4RGViaXQnLCBmaWVsZDogJ2ZvcmV4RGViaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDU4LCB0b29sdGlwRmllbGQ6ICdmb3JleERlYml0JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnTG9jYWwgRGViaXQnLCBmaWVsZDogJ2xvY2FsRGViaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDYyLCB0b29sdGlwRmllbGQ6ICdsb2NhbERlYml0JyB9LFxyXG4gICAgeyBoZWFkZXJOYW1lOiAnRnhDcmVkaXQnLCBmaWVsZDogJ2ZvcmV4Q3JlZGl0JywgZmxleDogMS40LCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDU4LCB0b29sdGlwRmllbGQ6ICdmb3JleENyZWRpdCcgfSxcclxuICAgIHsgaGVhZGVyTmFtZTogJ0xvY2FsIENyZWRpdCcsIGZpZWxkOiAnbG9jYWxDcmVkaXQnLCBmbGV4OiAxLCBjZWxsQ2xhc3M6ICdhZy1yaWdodC1hbGlnbmVkLWNlbGwgY29tcGFjdC1jZWxsJywgbWluV2lkdGg6IDYyLCB0b29sdGlwRmllbGQ6ICdsb2NhbENyZWRpdCcgfSxcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRXhwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVwb3J0U2VydmljZTogUmVwb3J0U2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuaHR0cFxyXG4gICAgLy8gICAuZ2V0KCdhc3NldHMvcmVwb3J0cy1saWIvYXNzZXRzL3N2Zy1sb2FkZXJzL2JsdWUtdGFpbC1zcGluLnN2ZycsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcgfSlcclxuICAgIC8vICAgLnN1YnNjcmliZSgoc3ZnKSA9PiB7XHJcbiAgICAvLyAgICAgdGhpcy5zdmdMb2FkZXIgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChzdmcpO1xyXG4gICAgLy8gICB9KTtcclxuICAgIHRoaXMuZGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldEFjY0dMRGV0YWlsc1JlcG9ydCgpIHtcclxuICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Mb2FkaW5nO1xyXG4gICAgdGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5kYXRhUmVhZHkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRFeHBvcnRPcHRpb24gPSAnZXhjZWwnO1xyXG4gICAgdGhpcy5zeXNDb21wYW55Q29kZSA9ICdCSCc7XHJcbiAgICB0aGlzLnN5c1VzZXJJZCA9IHRoaXMucmVwb3J0U2VydmljZS5nZXRVc2VyTmFtZUZyb21TZXNzaW9uU3RvcmFnZSgpO1xyXG4gICAgdGhpcy5jb21wYW55TmFtZSA9ICdYcHJlc3MgTW9uZXknO1xyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcblxyXG4gICAgdGhpcy5kYXRlVHlwZSA9IHRoaXMuZGF0ZVR5cGVGaWx0ZXIgPT09IDEgPyAnVkQnIDogJ1BEJztcclxuXHJcbiAgICB0aGlzLnJlcG9ydFNlcnZpY2UuZ2V0QWNjR0xEZXRhaWxzUmVwb3J0KHRoaXMuZGF0ZS5zcGxpdCgnVCcpWzBdLCB0aGlzLmRhdGVUeXBlKS5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICAgIC8vICBQcmUtZm9ybWF0IGVudHJpZXMgYmVmb3JlIHN0b3JpbmdcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZEVudHJpZXMgPSBkYXRhLmpvdXJuYWxWb3VjaGVyRW50cmllcy5tYXAoKGVudHJ5KSA9PiAoe1xyXG4gICAgICAgICAgICAuLi5lbnRyeSxcclxuICAgICAgICAgICAgcG9zdGluZ0RhdGU6IHRoaXMuZm9ybWF0RGF0ZVZhbHVlKGVudHJ5LnBvc3RpbmdEYXRlKSxcclxuICAgICAgICAgICAgdmFsdWVEYXRlOiB0aGlzLmZvcm1hdERhdGVWYWx1ZShlbnRyeS52YWx1ZURhdGUpLFxyXG4gICAgICAgICAgICByYXRlOiB0aGlzLmZvcm1hdE51bWJlclZhbHVlKGVudHJ5LnJhdGUsICdyYXRlJyksXHJcbiAgICAgICAgICAgIGZvcmV4RGViaXQ6IHRoaXMuZm9ybWF0TnVtYmVyVmFsdWUoZW50cnkuZm9yZXhEZWJpdCwgJ2ZvcmV4RGViaXQnKSxcclxuICAgICAgICAgICAgbG9jYWxEZWJpdDogdGhpcy5mb3JtYXROdW1iZXJWYWx1ZShlbnRyeS5sb2NhbERlYml0LCAnbG9jYWxEZWJpdCcpLFxyXG4gICAgICAgICAgICBmb3JleENyZWRpdDogdGhpcy5mb3JtYXROdW1iZXJWYWx1ZShlbnRyeS5mb3JleENyZWRpdCwgJ2ZvcmV4Q3JlZGl0JyksXHJcbiAgICAgICAgICAgIGxvY2FsQ3JlZGl0OiB0aGlzLmZvcm1hdE51bWJlclZhbHVlKGVudHJ5LmxvY2FsQ3JlZGl0LCAnbG9jYWxDcmVkaXQnKSxcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCA9IHtcclxuICAgICAgICAgICAgLi4uZGF0YSxcclxuICAgICAgICAgICAgam91cm5hbFZvdWNoZXJFbnRyaWVzOiBmb3JtYXR0ZWRFbnRyaWVzLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJvd0RhdGEgPSBmb3JtYXR0ZWRFbnRyaWVzO1xyXG4gICAgICAgICAgdGhpcy5jb21wYW55TmFtZSA9IGRhdGEuY29tcGFueU5hbWU7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydFVzZXIgPSBkYXRhLnJlcG9ydFVzZXI/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICB0aGlzLnJlcG9ydFRpbWUgPSBmb3JtYXREYXRlKG5ldyBEYXRlKCksICdkZC9NTS95eXl5IGhoOm1tIGEnLCAnZW4tVVMnKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudFJlcG9ydFZhbHVlT3JQb3N0RGF0ZSA9IGZvcm1hdERhdGUoZGF0YS5kYXRlLCAnZGQvTU0veXl5eScsICdlbi1VUycpO1xyXG4gICAgICAgICAgY29uc3QgRGF0ZVR5cGUgPSB0aGlzLmRhdGVUeXBlID09PSAnVkQnID8gJ1ZhbHVlIERhdGUnIDogJ1Bvc3RpbmcgRGF0ZSc7XHJcblxyXG4gICAgICAgICAgdGhpcy5tZXRhRGF0YU9uZSA9IHtcclxuICAgICAgICAgICAgW0RhdGVUeXBlXTogdGhpcy5jdXJyZW50UmVwb3J0VmFsdWVPclBvc3REYXRlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICB0aGlzLm1ldGFEYXRhVHdvID0ge1xyXG4gICAgICAgICAgICAnUmVwb3J0IFVzZXIgJiBUaW1lICc6IGAke3RoaXMucmVwb3J0VXNlcn0gQCAke3RoaXMucmVwb3J0VGltZX1gXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIHRoaXMubG9hZGluZ1N0YXRlID0gQ29tcG9uZW50TG9hZGluZ1N0YXRlcy5Db21wbGV0ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5kYXRhUmVhZHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgd2luZG93LmFsZXJ0KGVycm9yLm1lc3NhZ2UpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtYXREYXRlVmFsdWUodmFsdWU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gZm9ybWF0RGF0ZShuZXcgRGF0ZSh2YWx1ZSksICdkZC9NTS95eXl5JywgJ2VuLVVTJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdE51bWJlclZhbHVlKHZhbHVlOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHJldHVybiAnJztcclxuICAgIHJldHVybiBmaWVsZCA9PT0gJ3JhdGUnID8gTnVtYmVyKHZhbHVlKS50b0ZpeGVkKDgpIDogTnVtYmVyKHZhbHVlKS50b0ZpeGVkKDMpO1xyXG4gIH1cclxuXHJcbiAgb25HcmlkUmVhZHkocGFyYW1zOiBHcmlkUmVhZHlFdmVudCkge1xyXG4gICAgdGhpcy5ncmlkQXBpID0gcGFyYW1zLmFwaTtcclxuICAgIHRoaXMuZ3JpZENvbHVtbkFwaSA9IHBhcmFtcy5jb2x1bW5BcGk7XHJcbiAgfVxyXG5cclxuICBvbkdyaWRTaXplQ2hhbmdlZChwYXJhbXM6IGFueSkge1xyXG4gICAgcGFyYW1zLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XHJcbiAgfVxyXG5cclxuICBnZXRSb3dIZWlnaHQocGFyYW1zOiBhbnkpOiBudW1iZXIge1xyXG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBwYXJhbXMuZGF0YT8uZGVzY3JpcHRpb24gfHwgJyc7XHJcbiAgICByZXR1cm4gZGVzY3JpcHRpb24ubGVuZ3RoID4gNTAgPyA0MCA6IDIwO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2godGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBub3JtYWxpemUgPSAoc3RyOiBhbnkpOiBzdHJpbmcgPT5cclxuICAgICAgc3RyXHJcbiAgICAgICAgPy50b1N0cmluZygpXHJcbiAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAucmVwbGFjZSgvLC9nLCAnJylcclxuICAgICAgICAucmVwbGFjZSgvXFxzKy9nLCAnICcpXHJcbiAgICAgICAgLnJlcGxhY2UoL1tcXHUyMDBCLVxcdTIwMERcXHVGRUZGXS9nLCAnJylcclxuICAgICAgICAudHJpbSgpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHRleHQ7XHJcbiAgICBjb25zdCBzZWFyY2ggPSBub3JtYWxpemUodGhpcy5zZWFyY2hUZXh0KTtcclxuXHJcbiAgICBpZiAoc2VhcmNoKSB7XHJcbiAgICAgIHRoaXMucm93RGF0YSA9IHRoaXMuYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsLmpvdXJuYWxWb3VjaGVyRW50cmllcy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhpdGVtKS5zb21lKCh2YWx1ZSkgPT4gbm9ybWFsaXplKHZhbHVlKS5pbmNsdWRlcyhzZWFyY2gpKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yb3dEYXRhID0gdGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwuam91cm5hbFZvdWNoZXJFbnRyaWVzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRXhwb3J0KG9wdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uID0gb3B0aW9uO1xyXG4gICAgc3dpdGNoICh0aGlzLnNlbGVjdGVkRXhwb3J0T3B0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ2V4Y2VsJzpcclxuICAgICAgICB0aGlzLmV4cG9ydFRvRXhjZWwoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAncGRmJzpcclxuICAgICAgICB0aGlzLmV4cG9ydFRvUGRmKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2Nzdic6XHJcbiAgICAgICAgdGhpcy5leHBvcnRUb0NzdigpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGFsZXJ0KCdQbGVhc2Ugc2VsZWN0IGFuIGV4cG9ydCBmb3JtYXQuJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBleHBvcnRUb1BkZigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwuam91cm5hbFZvdWNoZXJFbnRyaWVzPy5sZW5ndGgpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB0aXRsZSA9IGAke3RoaXMuY29tcGFueU5hbWV9IC0gR2VuZXJhbCBMZWRnZXIgQWNjb3VudCBEZXRhaWxzIEVucXVpcnkgUmVwb3J0YDtcclxuICAgIGNvbnN0IG1ldGFkYXRhID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlUmVwb3J0TWV0YWRhdGEoW1xyXG4gICAgICBbJ1JlcG9ydCBVc2VyICYgVGltZSA6ICcsIGAke3RoaXMucmVwb3J0VXNlcn1AJHt0aGlzLnJlcG9ydFRpbWV9YF0sXHJcbiAgICBdKTtcclxuXHJcbiAgICBjb25zdCB7IGhlYWRlcnMsIHJvd3MgfSA9IHRoaXMuZXhwb3J0U2VydmljZS5wcmVwYXJlRXhwb3J0VGFibGUodGhpcy5hY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwuam91cm5hbFZvdWNoZXJFbnRyaWVzLCB0aGlzLmNvbHVtbkRlZnMsIHtcclxuICAgICAgY3VycmVuY3lGaWVsZHM6IFsnbG9jYWxDcmVkaXQnLCAnZm9yZXhDcmVkaXQnLCAnbG9jYWxEZWJpdCcsICdmb3JleERlYml0J10sXHJcbiAgICB9KTtcclxuXHJcbiAgICBhd2FpdCB0aGlzLmV4cG9ydFNlcnZpY2UuZXhwb3J0VG9QZGZVbml2ZXJzYWwodGl0bGUsIG1ldGFkYXRhLCB0aGlzLnNlYXJjaENyaXRlcmlhLCBoZWFkZXJzLCByb3dzLCAnQUNDLUdMLURldGFpbHMtRW5xdWlyeS1SZXBvcnQucGRmJyk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRUb0V4Y2VsKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gYCR7dGhpcy5jb21wYW55TmFtZX0gLSBHZW5lcmFsIExlZGdlciBBY2NvdW50IERldGFpbHMgRW5xdWlyeSBSZXBvcnRgO1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVSZXBvcnRNZXRhZGF0YShbXHJcbiAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lIDogJywgYCR7dGhpcy5yZXBvcnRVc2VyfUAke3RoaXMucmVwb3J0VGltZX1gXSxcclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXMsIHRoaXMuY29sdW1uRGVmcywge1xyXG4gICAgICBjdXJyZW5jeUZpZWxkczogWydsb2NhbENyZWRpdCcsICdmb3JleENyZWRpdCcsICdsb2NhbERlYml0JywgJ2ZvcmV4RGViaXQnXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb0V4Y2VsVW5pdmVyc2FsKHRpdGxlLCBtZXRhZGF0YSwgdGhpcy5zZWFyY2hDcml0ZXJpYSwgaGVhZGVycywgcm93cywgJ0FDQy1HTC1EZXRhaWxzLUVucXVpcnktUmVwb3J0Lnhsc3gnKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFRvQ3N2KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXM/Lmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHRpdGxlID0gYCR7dGhpcy5jb21wYW55TmFtZX0gLSBHZW5lcmFsIExlZGdlciBBY2NvdW50IERldGFpbHMgRW5xdWlyeSBSZXBvcnRgO1xyXG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLmV4cG9ydFNlcnZpY2UuZ2VuZXJhdGVSZXBvcnRNZXRhZGF0YShbXHJcbiAgICAgIFsnUmVwb3J0IFVzZXIgJiBUaW1lIDogJywgYCR7dGhpcy5yZXBvcnRVc2VyfUAke3RoaXMucmVwb3J0VGltZX1gXSxcclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0IHsgaGVhZGVycywgcm93cyB9ID0gdGhpcy5leHBvcnRTZXJ2aWNlLnByZXBhcmVFeHBvcnRUYWJsZSh0aGlzLmFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbC5qb3VybmFsVm91Y2hlckVudHJpZXMsIHRoaXMuY29sdW1uRGVmcywge1xyXG4gICAgICBjdXJyZW5jeUZpZWxkczogWydsb2NhbENyZWRpdCcsICdmb3JleENyZWRpdCcsICdsb2NhbERlYml0JywgJ2ZvcmV4RGViaXQnXSxcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnRUb0NzdlVuaXZlcnNhbCh0aXRsZSwgbWV0YWRhdGEsIHRoaXMuc2VhcmNoQ3JpdGVyaWEsIGhlYWRlcnMsIHJvd3MsICdBQ0MtR0wtRGV0YWlscy1FbnF1aXJ5LVJlcG9ydC5jc3YnKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVNlYXJjaChjcml0ZXJpYTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVUeXBlRmlsdGVyID0gY3JpdGVyaWEuc2VsZWN0ZWREYXRlVHlwZTtcclxuICAgIHRoaXMuZGF0ZSA9IGNyaXRlcmlhLnNlbGVjdGVkRGF0ZS5zcGxpdCgnVCcpWzBdO1xyXG4gICAgdGhpcy5zZWFyY2hDcml0ZXJpYSA9IFtcclxuICAgICAgWydEYXRlIFR5cGU6JywgYCR7dGhpcy5kYXRlVHlwZUZpbHRlciA9PT0gMSA/ICdWYWx1ZSBEYXRlJyA6ICdQb3N0aW5nIERhdGUnfWBdLFxyXG4gICAgICBbJ0RhdGU6JywgZm9ybWF0RGF0ZSh0aGlzLmRhdGUsICdkZC9NTS95eXl5JywgJ2VuLVVTJyldLFxyXG4gICAgXTtcclxuICAgIHRoaXMuZ2V0QWNjR0xEZXRhaWxzUmVwb3J0KCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtVmFsaWQoaXNWYWxpZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Zvcm1WYWxpZCA9IGlzVmFsaWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxsaWItc2VhcmNoLWZpbHRlciBbUmVwb3J0TmFtZV09XCJSZXBvcnROYW1lXCIgKHNlYXJjaENsaWNrZWQpPVwiaGFuZGxlU2VhcmNoKCRldmVudClcIlxyXG4gIChmb3JtVmFsaWQpPVwiaGFuZGxlRm9ybVZhbGlkKCRldmVudClcIj5cclxuPC9saWItc2VhcmNoLWZpbHRlcj5cclxuPGFwcC1sb2FkZXIgY2xhc3M9XCJcIiAqbmdJZj1cImxvYWRpbmdTdGF0ZSA9PSBDb21wb25lbnRMb2FkaW5nU3RhdGUuTG9hZGluZ1wiPjwvYXBwLWxvYWRlcj5cclxuPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cInJlcG9ydC1jb250YWluZXJcIlxyXG4gICAgKm5nSWY9XCJhY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWwgIT0gdW5kZWZpbmVkICYmIGlzRm9ybVZhbGlkICYmIGRhdGFSZWFkeSAmJiBhY2NHbERldGFpbHNFbnF1aXJ5UmVwb3J0TW9kZWw/LmpvdXJuYWxWb3VjaGVyRW50cmllcz8ubGVuZ3RoIT0wXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1yZXBvcnRcIiAqbmdJZj1cImFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbCAhPSB1bmRlZmluZWQgJiYgZGF0YVJlYWR5XCI+XHJcbiAgICAgIDxsaWItbWV0YWRhdGEgW3JlcG9ydE5hbWVdPVwiUmVwb3J0TmFtZVwiIFtzaG93bWV0YURhdGFPbmVdPVwidHJ1ZVwiIFtzaG93bWV0YURhdGFUd29dPVwidHJ1ZVwiXHJcbiAgICAgICAgW21ldGFEYXRhT25lXT1cIm1ldGFEYXRhT25lXCIgW21ldGFEYXRhVHdvXT1cIm1ldGFEYXRhVHdvXCIgKGV4cG9ydEV2ZW50KT1cImhhbmRsZUV4cG9ydCgkZXZlbnQpXCJcclxuICAgICAgICAoc2VhcmNoRXZlbnQpPVwib25TZWFyY2goJGV2ZW50KVwiPjwvbGliLW1ldGFkYXRhPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiICpuZ0lmPVwicm93RGF0YSAmJiByb3dEYXRhLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICA8bGliLXBhZ2Utc2l6ZS1zZWxlY3RvciBbdG90YWxFbnRyaWVzXT1cImFjY0dsRGV0YWlsc0VucXVpcnlSZXBvcnRNb2RlbD8uam91cm5hbFZvdWNoZXJFbnRyaWVzPy5sZW5ndGhcIlxyXG4gICAgICAgICAgW2RlZmF1bHRTaXplXT1cIicxNSdcIiBbZ3JpZEFwaV09XCJncmlkQXBpXCI+XHJcbiAgICAgICAgICA+PC9saWItcGFnZS1zaXplLXNlbGVjdG9yPlxyXG4gICAgICAgIDxhZy1ncmlkLWFuZ3VsYXIgY2xhc3M9XCJhZy10aGVtZS1hbHBpbmUgdHJhbnNhY3Rpb24tZ3JpZFwiIHN0eWxlPVwid2lkdGg6IDEwMCU7aGVpZ2h0OiAzNzVweDtcIlxyXG4gICAgICAgICAgW2NvbHVtbkRlZnNdPVwiY29sdW1uRGVmc1wiIFtkZWZhdWx0Q29sRGVmXT1cImRlZmF1bHRDb2xEZWZcIiBbcm93RGF0YV09XCJyb3dEYXRhXCIgW3Jvd0hlaWdodF09XCIyMFwiXHJcbiAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cIjIyXCIgW3BhZ2luYXRpb25dPVwidHJ1ZVwiIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwicGFnZVNpemVcIiAoZ3JpZFJlYWR5KT1cIm9uR3JpZFJlYWR5KCRldmVudClcIj5cclxuICAgICAgICA8L2FnLWdyaWQtYW5ndWxhcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LXdhcm5pbmcgbXQtM1wiICpuZ0lmPVwiYWNjR2xEZXRhaWxzRW5xdWlyeVJlcG9ydE1vZGVsPy5qb3VybmFsVm91Y2hlckVudHJpZXM/Lmxlbmd0aD09MFwiPlxyXG4gICAgTm8gRGF0YSBmb3VuZCBtYXRjaGluZyB5b3VyIHNlYXJjaCBjcml0ZXJpYS5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19