ezlibrary_v2 0.1.19 → 0.1.21
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.
|
@@ -53,8 +53,8 @@ export class WebsearchHistoryComponent {
|
|
|
53
53
|
this.loadResult = [];
|
|
54
54
|
}
|
|
55
55
|
setOrder(value, i) {
|
|
56
|
-
this.pageSize = 1;
|
|
57
56
|
this.showarr = i;
|
|
57
|
+
this.p = 1;
|
|
58
58
|
if (this.order === value) {
|
|
59
59
|
this.reverse = !this.reverse;
|
|
60
60
|
}
|
|
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
282
282
|
type: Component,
|
|
283
283
|
args: [{ selector: 'app-websearch-history', template: "<div class=\"mt\" style=\"background: #fff;\">\r\n <div class=\"panel panel-default\">\r\n <div class=\"panel-heading\">\r\n <h3 class=\"panel-title\">{{pageDefination?.title}}\r\n <span class=\"f-12\">({{cDt | date:'medium'}})</span>\r\n </h3>\r\n </div>\r\n </div>\r\n <div class=\"content-frame\">\r\n <div class=\"innerD\">\r\n <div class=\"row\" style=\"padding: 10px;\">\r\n <form class=\"form-inline\" #f=\"ngForm\" (ngSubmit)=\"onSubmit(f)\" name=\"appForm\">\r\n <div [ngClass]=\"isOpen == true ? 'col-md-4' : 'hidden'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12\" *ngFor=\"let fl of pageDefination?.form_field\">\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 'sb'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <ng-select style=\"z-index: 3;\" placeholder=\"Select Buyers\" [options]=\"buyerList\"\r\n [(ngModel)]=\"fl.default_value\" name=\"buyer\" (filterInputChanged)=\"loadBuyer($event)\">\r\n </ng-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 's'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"{{fl?.form_field}}\" [value]=\"fl?.default_value\"\r\n [(ngModel)]=\"fl.default_value\" #lInput=\"ngModel\">\r\n <option *ngFor=\"let lov of sqlArray[fl.form_field]\" value=\"{{lov.k}}\">{{lov.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"fl?.form_field_typ == 't' && fl?.dta_typ=='d'\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">{{fl?.form_field_title}}</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <input name=\"{{fl?.form_field}}\" [(ngModel)]=\"fl.default_value\" onfocus=\"(this.type='date')\"\r\n onblur=\"(this.type='text')\" class=\"form-control\" placeholder=\"dd/mm/yyyy\" />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"form-group w-100\" *ngIf=\"sourceList != null\">\r\n <label class=\"col-md-5 control-label\" style=\"padding-left: 2px;\">Source</label>\r\n <div class=\"col-md-7\">\r\n <div class=\"input-group w-100\">\r\n <select class=\"form-control\" name=\"source\" [(ngModel)]=\"sourceVal\">\r\n <option *ngFor=\"let option of sourceList\" value=\"{{option.k}}\">{{option.v}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n <div [ngClass]=\"isOpen == false ? 'col-md-12 custCls' : 'col-md-8 custCls'\">\r\n <div class=\"row\" *ngIf=\"searchResultDtlList.length>0\">\r\n <div class=\"col-sm-6\">\r\n <form class=\"form-inline pull-left\">\r\n </form>\r\n <form class=\"form-inline pull-left\">\r\n <div class=\"form-group\">\r\n <label for=\"ddlPagesize\">Page Size </label>\r\n <select class=\"form-control\" name=\"pageSize\" [(ngModel)]=\"pageSize\"\r\n (change)=\"onPageSizeChange(pageSize)\">\r\n <option value=\"All\">All</option>\r\n <option value=\"10\">10</option>\r\n <option value=\"25\">25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>\r\n </div>\r\n </form>\r\n\r\n <button *ngIf=\"searchResultDtlList.length>0\" class=\"btn btn-default\"\r\n style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\" data-toggle=\"tooltip\" data-placement=\"right\"\r\n title=\"Filter results\" (click)=\"openTog();\">\r\n <span class=\"{{icon}}\" style=\"color:#3b5998;\"></span>\r\n </button>\r\n\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Refresh\" (click)=\"ngOnInit();\">\r\n <span class=\"fa fa-refresh\"></span>\r\n </button>\r\n <button *ngIf=\"!noData\" class=\"btn btn-default\" style=\"padding: 4px 15px 4px 20px;margin-left: 10px;\"\r\n data-toggle=\"tooltip\" data-placement=\"right\" title=\"Download Excel\" (click)=\"exportToCSV();\">\r\n <span class=\"fa fa-file-excel-o\" style=\"color:green;\"></span>\r\n </button>\r\n\r\n </div>\r\n <div *ngIf=\"!noData\" class=\"col-md-6\">\r\n <form class=\"form-inline pull-right\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName2\">Search </label>\r\n <input type=\"text\" class=\"form-control\" id=\"exampleInputName2\" name=\"schtxt\" [(ngModel)]=\"searchF\" />\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n <div id=\"wrap\" style=\"overflow: auto;width: 100%;height: calc(100vh - 210px);\">\r\n <table class=\"displayTable\" *ngIf=\"!noData\">\r\n <thead>\r\n <tr class=\"posrel\">\r\n <ng-container *ngFor=\"let hdr of resultView ;let j=index;\">\r\n <th *ngIf=\"hdr != 'request_attr' && hdr != 'request_attrVal'\" nowrap (click)=\"setOrder(hdr,j)\">\r\n {{resultViewDtl[hdr]}}\r\n <span [hidden]=\"reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-down\" aria-hidden=\"true\"></i>\r\n </span>\r\n <span [hidden]=\"!reverse\" *ngIf=\"showarr === j\">\r\n <i class=\"fa fa-arrow-up\" aria-hidden=\"true\"></i>\r\n </span>\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody style=\"height:400px;overflow:auto;\">\r\n <ng-container\r\n *ngFor=\"let pktdtl of loadResult | tableSearch:searchF | orderBy: order:reverse | paginate: { itemsPerPage: pageSize, currentPage: p }; let pkti = index ;trackBy:stock_idn\">\r\n\r\n <tr [ngClass]=\"{'even':pkti%2==0,'odd':pkti%2==1}\">\r\n <ng-container *ngFor=\"let att of resultView; let j = index;\">\r\n <td *ngIf=\"att != 'request_attr' && att != 'request_attrVal'\"\r\n style=\"max-width: 300px;white-space: normal;\"\r\n [ngStyle]=\"{'word-break' : att == 'dscr' ? 'break-word': 'normal','white-space': att != 'dscr'? 'nowrap':'normal'}\">\r\n <span>{{pktdtl[att]}}</span>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n <p *ngIf=\"searchResultDtlList.length==0\" style=\"text-align: center\"><b> No Data Found !</b></p>\r\n <!-- \"max-width: 300px;white-space: normal;word-break: break-word; -->\r\n <!-- <pagination-controls (pageChange)=\"p = $event\" *ngIf=\"processDetails.length>0\" class=\"pull-right\"></pagination-controls> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"actionFooter\">\r\n <button type=\"submit\" class=\"btn btn-success cBtn pull-left\" appAppNoDblClick (click)=\"onSubmit(f)\">Fetch</button>\r\n <pagination-controls style=\"background: white;\" (pageChange)=\"p=$event\" class=\"pull-right\"></pagination-controls>\r\n </div>\r\n</div>", styles: [".mb10p{margin-bottom:10px}.picn{padding:3px;margin-left:20px;font-size:16px;cursor:pointer}.divstyle{background:#fff;padding:2px}td,th{text-align:left}.ta-right{text-align:right!important}.ta-center{text-align:center!important}.p-cursor{cursor:pointer!important}.custCls{position:relative}.custCls:after{content:\"\";position:absolute;border-right:1px solid #ccc;height:85vh;width:20px;left:-25px;top:0}.actionFooter{position:fixed;bottom:0;width:100%;text-align:right;padding:10px;background:#1b1e24}.innerD{min-height:calc(100vh - 100px);overflow:auto;background:#fff}table.wrp{table-layout:auto}\n"] }]
|
|
284
284
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ToastrService }, { type: i3.StockServiceService }, { type: i4.NgxSpinnerService }, { type: i5.SystemServiceService }, { type: i6.PdfServiceService }, { type: i7.CommanServiceService }]; } });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXpsaWIvc3JjL2xpYi93ZWJzZWFyY2gtaGlzdG9yeS93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL3dlYnNlYXJjaC1oaXN0b3J5L3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU9oRixNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1MsTUFBYyxFQUNiLEtBQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLEVBQXVCLEVBQ3ZCLGNBQWlDLEVBQ2pDLElBQTBCLEVBQzFCLEVBQXFCLEVBQ3JCLEVBQXdCO1FBUHpCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFl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LEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDL0IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7O3lJQTNRVSx5QkFBeUI7NkhBQXpCLHlCQUF5Qiw2RENqQnRDLG9qUkFvSk07MkZEbklPLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzICB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5pbXBvcnQgeyBDb29raWUgfSBmcm9tICduZzItY29va2llcy9uZzItY29va2llcyc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IFN0b2NrU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9jay1zZXJ2aWNlL3N0b2NrLXNlcnZpY2Uuc2VydmljZSdcclxuaW1wb3J0IHsgU3lzdGVtU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9zeXN0ZW0tbW9kdWxlL3N5c3RlbS1zZXJ2aWNlL3N5c3RlbS1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQZGZTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2dsb2JsZS9wZGYtc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tbWFuU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9jb21tYW4tc2VydmljZS9jb21tYW4tc2VydmljZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXdlYnNlYXJjaC1oaXN0b3J5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vic2VhcmNoSGlzdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcclxuICAgIHByaXZhdGUgc3M6IFN0b2NrU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNwaW5uZXJTZXJ2aWNlOiBOZ3hTcGlubmVyU2VydmljZSAsXHJcbiAgICBwcml2YXRlIHN5c1M6IFN5c3RlbVNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwczogUGRmU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNzOiBDb21tYW5TZXJ2aWNlU2VydmljZVxyXG4gICkgeyB9XHJcbiAgY0R0O1xyXG4gIGNVcmw7XHJcbiAgaGVhZGVyO1xyXG4gIHBhZ2VEZWZpbmF0aW9uO1xyXG4gIHJlc3VsdFZpZXcgPSBbXTtcclxuICByZXN1bHRWaWV3RHRsO1xyXG4gIHNlYXJjaFJlc3VsdER0bExpc3QgPSBbXTtcclxuICBpc09wZW4gPSB0cnVlO1xyXG4gIGljb24gPSAnZmEgZmEtZGVkZW50JztcclxuICBzaG93YXJyO1xyXG4gIG9yZGVyID0gJyc7XHJcbiAgcmV2ZXJzZSA9IHRydWU7XHJcbiAgcGFnZVNpemUgPSAxMDtcclxuICBwID0gMTtcclxuICBwb2tleSA9ICcnO1xyXG4gIHNlYXJjaEY7XHJcbiAgY3VySW5keDtcclxuICBidXllckxpc3QgPSBbXTtcclxuICBsb3ZzID0gW107XHJcbiAgc3FsQXJyYXkgPSB7fTtcclxuICBub0RhdGEgPSB0cnVlO1xyXG4gIHNvdXJjZVZhbDtcclxuICBzb3VyY2VMaXN0O1xyXG4gIHN0b2NrX2lkbjtcclxuXHJcbiAgcmVzdWx0bGVuZ3RoID0gMDtcclxuICBzY3JvbGxEaXN0YW5jZSA9IDE7XHJcbiAgc2Nyb2xsVXBEaXN0YW5jZSA9IDI7XHJcbiAgc3RhcnRJbmRleCA9IDA7XHJcbiAgZW5kSW5kZXggPSAzMDtcclxuICBsb2FkUmVzdWx0ID0gW107XHJcbiAgc2V0T3JkZXIodmFsdWU6IHN0cmluZywgaSkge1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IDFcclxuICAgIHRoaXMuc2hvd2FyciA9IGk7XHJcbiAgICBpZiAodGhpcy5vcmRlciA9PT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy5yZXZlcnNlID0gIXRoaXMucmV2ZXJzZTtcclxuICAgIH1cclxuICAgIHRoaXMub3JkZXIgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocCkge1xyXG4gICAgaWYgKHAgPT0gJ0FsbCcpIHtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gcDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TG92TGlzdCh0YmxGLCBwYWdlX2l0ZW1faWRuKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsncGFnZV9pdGVtX2lkbiddID0gcGFnZV9pdGVtX2lkbjtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdnZXREYXRhQnlJdGVtSWRuJztcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6ICB0aGlzLmhlYWRlclsnbWV0aG9kJ11cclxuICAgIH1cclxuICAgIHRoaXMuc3lzUy5nZXREYXRhKHJlcU9iaiwgb3B0aW9ucykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIHRoaXMubG92cyA9IHJlc3BvbnNlLmt2O1xyXG4gICAgICAgIHRoaXMuc3FsQXJyYXlbdGJsRl0gPSB0aGlzLmxvdnM7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5sb3ZzKTtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyh0YmxGLCB0aGlzLnNxbEFycmF5KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpXHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZEJ1eWVyKHNlYXJjaFRlcm0pIHtcclxuICAgIC8vIHRoaXMuc3Bpbm5lclNlcnZpY2Uuc2hvdygpO1xyXG4gICAgbGV0IHJlcU9iaiA9IHt9O1xyXG4gICAgcmVxT2JqWydsaWtlU3RyJ10gPSBzZWFyY2hUZXJtO1xyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2xvYWRCdXllcic7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgbWV0aG9kOiAgdGhpcy5oZWFkZXJbJ21ldGhvZCddXHJcbiAgICB9XHJcbiAgICB0aGlzLnNzLmxvYWQocmVxT2JqLCBvcHRpb25zLCAnbWFya2V0aW5nL3NlYXJjaCcpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMuYnV5ZXJMaXN0ID0gcmVzdWx0LmJ1eWVyTGlzdC5tYXAob3B0aW9uID0+ICh7XHJcbiAgICAgICAgICB2YWx1ZTogb3B0aW9uLmssXHJcbiAgICAgICAgICBsYWJlbDogb3B0aW9uLnZcclxuICAgICAgICB9KSk7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWRGcm1GaWVsZHMoKSB7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2ZybW5tZSddOy8vJ3NlYXJjaER0bERzY3JGb3JtJztcclxuICAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddOy8vICdvbmxpbmUnO1xyXG4gICAgLy8gaWYgKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBudWxsICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSB1bmRlZmluZWQgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IFwiXCIpIHtcclxuICAgIC8vICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSdleic7Ly8gWydxcycsICdxcyddO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ29ubGluZSc7XHJcbiAgICAvLyB9XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0U2VhcmNoRGV0YWlscyc7XHJcbiAgICAvLyBjb25zb2xlLmxvZyhyZXFPYmopO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZDogIHRoaXMuaGVhZGVyWydtZXRob2QnXVxyXG4gICAgfVxyXG4gICAgdGhpcy5zcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9zZWFyY2gnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgLy8gIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICBsZXQgcmVzdWx0ID0gcmVzcG9uc2UucmVzdWx0O1xyXG4gICAgICAgIHRoaXMucGFnZURlZmluYXRpb24gPSByZXN1bHQucGFnZURlZmluYXRpb247XHJcbiAgICAgICAgdGhpcy5zb3VyY2VMaXN0ID0gcmVzdWx0LnNvdXJjZUxpc3Q7XHJcbiAgICAgICAgdGhpcy5wYWdlRGVmaW5hdGlvbi5mb3JtX2ZpZWxkLmZvckVhY2goZWxlbWVudCA9PiB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5mb3JtX2ZpZWxkX3R5cCA9PSAncycpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRMb3ZMaXN0KGVsZW1lbnQuZm9ybV9maWVsZCwgZWxlbWVudC5wYWdlX2l0ZW1faWRuKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UpXHJcbiAgICAgIH1cclxuICAgIH0pLmNhdGNoKChlcnI6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLmhpZGUoKTtcclxuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoZXJyLm1lc3NhZ2UpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgb3BlblRvZygpIHtcclxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuO1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuID09IHRydWUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2ZhIGZhLWRlZGVudCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmljb24gPSAnZmEgZmEtaW5kZW50JztcclxuICAgIH1cclxuICB9XHJcbiAgZXhwb3J0VG9DU1YoKSB7XHJcbiAgICBsZXQgbW9kaWZpZWRPYmpBcnIgPSB0aGlzLmNzLm1vZGlmeURhdGFCeUhlYWRlcih0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QsIHRoaXMucmVzdWx0VmlldywgdGhpcy5yZXN1bHRWaWV3RHRsKTtcclxuICAgIHRoaXMuY3MuQ1NWQ29udmVydG9yKG1vZGlmaWVkT2JqQXJyLCBcIldlYl9TZWFyY2hfSGlzdG9yeVwiLCB0cnVlKVxyXG4gIH1cclxuICBsb2FkUmVzdWx0cyhmb3JtVmFsKSB7XHJcbiAgICB0aGlzLmxvYWRSZXN1bHQgPSBbXTtcclxuICAgIC8vIHRoaXMuc3RhcnRJbmRleCA9IDA7XHJcbiAgICAvLyB0aGlzLmVuZEluZGV4ID0gMzA7XHJcbiAgICB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnZm9ybU5tZSddID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2ZybW5tZSddOy8vJ3NlYXJjaER0bERzY3JGb3JtJztcclxuICAgIGlmIChmb3JtVmFsICE9IG51bGwpIHtcclxuICAgICAgLy9yZXFPYmpbJ2Zvcm1ObWUnXSA9ICdzZWFyY2hEdGxEc2NyRm9ybSc7XHJcbiAgICAgIHJlcU9ialsnZW1wSWRuTGlzdCddID0gZm9ybVZhbC5lbXBsb3llZSAhPSBudWxsID8gW2Zvcm1WYWwuZW1wbG95ZWVdIDogW107XHJcbiAgICAgIHJlcU9ialsnYnV5ZXJJZG5MaXN0J10gPSBmb3JtVmFsLmJ1eWVyICE9IG51bGwgPyBbZm9ybVZhbC5idXllcl0gOiBbXTtcclxuICAgICAgcmVxT2JqWydkYXRlRnJvbSddID0gZm9ybVZhbC5mcm9tRGF0ZSAhPSBudWxsID8gdGhpcy5jcy5mb3JtYXREYXRlKGZvcm1WYWwuZnJvbURhdGUpIDogJyc7XHJcbiAgICAgIHJlcU9ialsnZGF0ZVRvJ10gPSBmb3JtVmFsLnRvRGF0ZSAhPSBudWxsID8gdGhpcy5jcy5mb3JtYXREYXRlKGZvcm1WYWwudG9EYXRlKSA6ICcnO1xyXG4gICAgfVxyXG4gICAgLy8gaWYgKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBudWxsICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSB1bmRlZmluZWQgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ3NyYyddICE9IFwiXCIpIHtcclxuICAgIC8vICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSAnZXonOy8vWydxcycsICdxcyddO1xyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ29ubGluZSc7XHJcbiAgICAvLyB9XHJcbiAgICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXTtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdnZXRTZWFyY2hEZXRhaWxzJztcclxuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHJlcU9iaikpO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZDogIHRoaXMuaGVhZGVyWydtZXRob2QnXVxyXG4gICAgfVxyXG4gICAgdGhpcy5zcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9zZWFyY2gnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICBpZiAocmVzdWx0ICE9IHVuZGVmaW5lZCAmJiByZXN1bHQgIT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucGFnZURlZmluYXRpb24gPSByZXN1bHQucGFnZURlZmluYXRpb247XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdFZpZXcgPSByZXN1bHQucmVzdWx0VmlldyB8fCBbXTtcclxuICAgICAgICAgIHRoaXMucmVzdWx0Vmlld0R0bCA9IHJlc3VsdC5yZXN1bHRWaWV3RHRsIHx8IHt9O1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0ID0gcmVzdWx0LnNlYXJjaFJlc3VsdER0bExpc3QgfHxbXTtcclxuXHJcbiAgICAgICAgICB0aGlzLnJlc3VsdGxlbmd0aCA9IHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg7XHJcblxyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuZW5kSW5kZXggPiB0aGlzLnJlc3VsdGxlbmd0aClcclxuICAgICAgICAgICAgLy8gdGhpcy5lbmRJbmRleCA9IHRoaXMucmVzdWx0bGVuZ3RoXHJcbiAgICAgICAgICAvLyB0aGlzLmFkZEl0ZW1zKCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRSZXN1bHQgPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3Q7XHJcbiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIndyYXBcIikuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciB0cmFuc2xhdGUgPSBcInRyYW5zbGF0ZSgwLFwiICsgdGhpcy5zY3JvbGxUb3AgKyBcInB4KVwiO1xyXG4gICAgICAgICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3IoXCJ0aGVhZFwiKS5zdHlsZS50cmFuc2Zvcm0gPSB0cmFuc2xhdGU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoRiA9IHRoaXMuc291cmNlVmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuaXNPcGVuID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gb25TY3JvbGxEb3duKCkge1xyXG4gIC8vICAgaWYgKHRoaXMuZW5kSW5kZXggPD0gdGhpcy5yZXN1bHRsZW5ndGgpXHJcbiAgLy8gICAgIHRoaXMuYWRkSXRlbXMoKVxyXG4gIC8vICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3cmFwXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gIC8vICAgICB2YXIgdHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoMCxcIiArIHRoaXMuc2Nyb2xsVG9wICsgXCJweClcIjtcclxuICAvLyAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFwidGhlYWRcIikuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNsYXRlO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBhZGRJdGVtcygpIHtcclxuICAvLyAgIGZvciAobGV0IGkgPSB0aGlzLnN0YXJ0SW5kZXg7IGkgPCB0aGlzLmVuZEluZGV4OyBpKyspIHtcclxuICAvLyAgICAgdGhpcy5sb2FkUmVzdWx0W2ldID0gdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0W2ldO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdGFydEluZGV4ID0gdGhpcy5lbmRJbmRleDtcclxuICAvLyAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLmVuZEluZGV4ICsgMzA7XHJcbiAgLy8gICBpZiAodGhpcy5lbmRJbmRleCA+IHRoaXMucmVzdWx0bGVuZ3RoKSB7XHJcbiAgLy8gICAgIHRoaXMuZW5kSW5kZXggPSB0aGlzLnJlc3VsdGxlbmd0aDtcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIG9uU3VibWl0KGZvcm1WYWwpIHtcclxuICAgIHZhciB0ID0gT2JqZWN0LmtleXMoZm9ybVZhbC5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1WYWwuZm9ybS5nZXQoZmllbGQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxvYWRSZXN1bHRzKGZvcm1WYWwudmFsdWUpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGxldCBtZGxrID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWRsS2V5JykpO1xyXG4gICAgdGhpcy5jVXJsID0gdGhpcy5yb3V0ZXIudXJsO1xyXG5cclxuICAgIHRoaXMuaGVhZGVyID0ge1xyXG4gICAgICAnY2xpZW50a2V5JzogQ29va2llLmdldCgnX2NrJyksXHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICdtb2R1bGVrZXknOiBtZGxrW3RoaXMuY1VybC5zcGxpdCgnLycpWzFdXSxcclxuICAgICAgJ2xvZ2luaWQnOiBDb29raWUuZ2V0KCdfbG9naWQnKSxcclxuICAgICAgJ3NvdXJjZSc6ICdxcydcclxuICAgIH07XHJcbiAgICB0aGlzLmxvYWRSZXN1bHRzKG51bGwpO1xyXG4gICAgdGhpcy5sb2FkRnJtRmllbGRzKCk7XHJcbiAgICB0aGlzLmNEdCA9IG5ldyBEYXRlKCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXRcIiBzdHlsZT1cImJhY2tncm91bmQ6ICNmZmY7XCI+XHJcbiAgPGRpdiBjbGFzcz1cInBhbmVsIHBhbmVsLWRlZmF1bHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cInBhbmVsLXRpdGxlXCI+e3twYWdlRGVmaW5hdGlvbj8udGl0bGV9fVxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZi0xMlwiPih7e2NEdCB8IGRhdGU6J21lZGl1bSd9fSk8L3NwYW4+XHJcbiAgICAgIDwvaDM+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiY29udGVudC1mcmFtZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImlubmVyRFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmVcIiAjZj1cIm5nRm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdChmKVwiIG5hbWU9XCJhcHBGb3JtXCI+XHJcbiAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImlzT3BlbiA9PSB0cnVlID8gJ2NvbC1tZC00JyA6ICdoaWRkZW4nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCIgKm5nRm9yPVwibGV0IGZsIG9mIHBhZ2VEZWZpbmF0aW9uPy5mb3JtX2ZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICdzYidcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sLW1kLTUgY29udHJvbC1sYWJlbFwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiAycHg7XCI+e3tmbD8uZm9ybV9maWVsZF90aXRsZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctc2VsZWN0IHN0eWxlPVwiei1pbmRleDogMztcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBCdXllcnNcIiBbb3B0aW9uc109XCJidXllckxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiBuYW1lPVwiYnV5ZXJcIiAoZmlsdGVySW5wdXRDaGFuZ2VkKT1cImxvYWRCdXllcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHctMTAwXCIgKm5nSWY9XCJmbD8uZm9ybV9maWVsZF90eXAgPT0gJ3MnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJ7e2ZsPy5mb3JtX2ZpZWxkfX1cIiBbdmFsdWVdPVwiZmw/LmRlZmF1bHRfdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiAjbElucHV0PVwibmdNb2RlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBsb3Ygb2Ygc3FsQXJyYXlbZmwuZm9ybV9maWVsZF1cIiB2YWx1ZT1cInt7bG92Lmt9fVwiPnt7bG92LnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICd0JyAmJiBmbD8uZHRhX3R5cD09J2QnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9XCJ7e2ZsPy5mb3JtX2ZpZWxkfX1cIiBbKG5nTW9kZWwpXT1cImZsLmRlZmF1bHRfdmFsdWVcIiBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgb25ibHVyPVwiKHRoaXMudHlwZT0ndGV4dCcpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBwbGFjZWhvbGRlcj1cImRkL21tL3l5eXlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHctMTAwXCIgKm5nSWY9XCJzb3VyY2VMaXN0ICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPlNvdXJjZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwIHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJzb3VyY2VcIiBbKG5nTW9kZWwpXT1cInNvdXJjZVZhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHNvdXJjZUxpc3RcIiB2YWx1ZT1cInt7b3B0aW9uLmt9fVwiPnt7b3B0aW9uLnZ9fTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZm9ybT5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImlzT3BlbiA9PSBmYWxzZSA/ICdjb2wtbWQtMTIgY3VzdENscycgOiAnY29sLW1kLTggY3VzdENscydcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cInNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoPjBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS02XCI+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLWxlZnRcIj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkZGxQYWdlc2l6ZVwiPlBhZ2UgU2l6ZSAmbmJzcDsgJm5ic3A7PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tY29udHJvbFwiIG5hbWU9XCJwYWdlU2l6ZVwiIFsobmdNb2RlbCldPVwicGFnZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZShwYWdlU2l6ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQWxsXCI+QWxsPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwXCI+MTA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjVcIj4yNTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1MFwiPjUwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEwMFwiPjEwMDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoPjBcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmc6IDRweCAxNXB4IDRweCAyMHB4O21hcmdpbi1sZWZ0OiAxMHB4O1wiIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJGaWx0ZXIgcmVzdWx0c1wiIChjbGljayk9XCJvcGVuVG9nKCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7aWNvbn19XCIgc3R5bGU9XCJjb2xvcjojM2I1OTk4O1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHN0eWxlPVwicGFkZGluZzogNHB4IDE1cHggNHB4IDIwcHg7bWFyZ2luLWxlZnQ6IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIiB0aXRsZT1cIlJlZnJlc2hcIiAoY2xpY2spPVwibmdPbkluaXQoKTtcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtcmVmcmVzaFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiIW5vRGF0YVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgc3R5bGU9XCJwYWRkaW5nOiA0cHggMTVweCA0cHggMjBweDttYXJnaW4tbGVmdDogMTBweDtcIlxyXG4gICAgICAgICAgICAgICAgZGF0YS10b2dnbGU9XCJ0b29sdGlwXCIgZGF0YS1wbGFjZW1lbnQ9XCJyaWdodFwiIHRpdGxlPVwiRG93bmxvYWQgRXhjZWxcIiAoY2xpY2spPVwiZXhwb3J0VG9DU1YoKTtcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmEgZmEtZmlsZS1leGNlbC1vXCIgc3R5bGU9XCJjb2xvcjpncmVlbjtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJmb3JtLWlubGluZSBwdWxsLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0TmFtZTJcIj5TZWFyY2ggJm5ic3A7Jm5ic3A7PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImV4YW1wbGVJbnB1dE5hbWUyXCIgbmFtZT1cInNjaHR4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoRlwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGlkPVwid3JhcFwiIHN0eWxlPVwib3ZlcmZsb3c6IGF1dG87d2lkdGg6IDEwMCU7aGVpZ2h0OiBjYWxjKDEwMHZoIC0gMjEwcHgpO1wiPlxyXG4gICAgICAgICAgICA8dGFibGUgY2xhc3M9XCJkaXNwbGF5VGFibGVcIiAqbmdJZj1cIiFub0RhdGFcIj5cclxuICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJwb3NyZWxcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaGRyIG9mIHJlc3VsdFZpZXcgO2xldCBqPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCAqbmdJZj1cImhkciAhPSAncmVxdWVzdF9hdHRyJyAmJiBoZHIgIT0gJ3JlcXVlc3RfYXR0clZhbCdcIiBub3dyYXAgKGNsaWNrKT1cInNldE9yZGVyKGhkcixqKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tyZXN1bHRWaWV3RHRsW2hkcl19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2hpZGRlbl09XCJyZXZlcnNlXCIgKm5nSWY9XCJzaG93YXJyID09PSBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVwiIXJldmVyc2VcIiAqbmdJZj1cInNob3dhcnIgPT09IGpcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS1hcnJvdy11cFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICA8dGJvZHkgc3R5bGU9XCJoZWlnaHQ6NDAwcHg7b3ZlcmZsb3c6YXV0bztcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBrdGR0bCBvZiBsb2FkUmVzdWx0IHwgdGFibGVTZWFyY2g6c2VhcmNoRiB8IG9yZGVyQnk6IG9yZGVyOnJldmVyc2UgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2VTaXplLCBjdXJyZW50UGFnZTogcCB9OyBsZXQgcGt0aSA9IGluZGV4IDt0cmFja0J5OnN0b2NrX2lkblwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPHRyIFtuZ0NsYXNzXT1cInsnZXZlbic6cGt0aSUyPT0wLCdvZGQnOnBrdGklMj09MX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhdHQgb2YgcmVzdWx0VmlldzsgbGV0IGogPSBpbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZCAqbmdJZj1cImF0dCAhPSAncmVxdWVzdF9hdHRyJyAmJiBhdHQgIT0gJ3JlcXVlc3RfYXR0clZhbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1heC13aWR0aDogMzAwcHg7d2hpdGUtc3BhY2U6IG5vcm1hbDtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7J3dvcmQtYnJlYWsnIDogYXR0ID09ICdkc2NyJyAgPyAnYnJlYWstd29yZCc6ICdub3JtYWwnLCd3aGl0ZS1zcGFjZSc6IGF0dCAhPSAnZHNjcic/ICdub3dyYXAnOidub3JtYWwnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3BrdGR0bFthdHRdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPHAgKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD09MFwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyXCI+PGI+IE5vIERhdGEgRm91bmQgITwvYj48L3A+XHJcbiAgICAgICAgICAgIDwhLS0gXCJtYXgtd2lkdGg6IDMwMHB4O3doaXRlLXNwYWNlOiBub3JtYWw7d29yZC1icmVhazogYnJlYWstd29yZDsgLS0+XHJcbiAgICAgICAgICAgIDwhLS0gPHBhZ2luYXRpb24tY29udHJvbHMgKHBhZ2VDaGFuZ2UpPVwicCA9ICRldmVudFwiICpuZ0lmPVwicHJvY2Vzc0RldGFpbHMubGVuZ3RoPjBcIiBjbGFzcz1cInB1bGwtcmlnaHRcIj48L3BhZ2luYXRpb24tY29udHJvbHM+IC0tPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbkZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgY0J0biBwdWxsLWxlZnRcIiBhcHBBcHBOb0RibENsaWNrIChjbGljayk9XCJvblN1Ym1pdChmKVwiPkZldGNoPC9idXR0b24+XHJcbiAgICA8cGFnaW5hdGlvbi1jb250cm9scyBzdHlsZT1cImJhY2tncm91bmQ6IHdoaXRlO1wiIChwYWdlQ2hhbmdlKT1cInA9JGV2ZW50XCIgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+PC9wYWdpbmF0aW9uLWNvbnRyb2xzPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXpsaWIvc3JjL2xpYi93ZWJzZWFyY2gtaGlzdG9yeS93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lemxpYi9zcmMvbGliL3dlYnNlYXJjaC1oaXN0b3J5L3dlYnNlYXJjaC1oaXN0b3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRXpFLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQU9oRixNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1MsTUFBYyxFQUNiLEtBQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLEVBQXVCLEVBQ3ZCLGNBQWlDLEVBQ2pDLElBQTBCLEVBQzFCLEVBQXFCLEVBQ3JCLEVBQXdCO1FBUHpCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFl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RUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQztZQUMvQixRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7eUlBM1FVLHlCQUF5Qjs2SEFBekIseUJBQXlCLDZEQ2pCdEMsb2pSQW9KTTsyRkRuSU8seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IENvb2tpZSB9IGZyb20gJ25nMi1jb29raWVzL25nMi1jb29raWVzJztcclxuaW1wb3J0IHsgTmd4U3Bpbm5lclNlcnZpY2UgfSBmcm9tIFwibmd4LXNwaW5uZXJcIjtcclxuaW1wb3J0IHsgU3RvY2tTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL3N0b2NrLXNlcnZpY2Uvc3RvY2stc2VydmljZS5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL3N5c3RlbS1tb2R1bGUvc3lzdGVtLXNlcnZpY2Uvc3lzdGVtLXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFBkZlNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vZ2xvYmxlL3BkZi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21tYW5TZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2NvbW1hbi1zZXJ2aWNlL2NvbW1hbi1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd2Vic2VhcmNoLWhpc3RvcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93ZWJzZWFyY2gtaGlzdG9yeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2Vic2VhcmNoLWhpc3RvcnkuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWJzZWFyY2hIaXN0b3J5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzczogU3RvY2tTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3Bpbm5lclNlcnZpY2U6IE5neFNwaW5uZXJTZXJ2aWNlICxcclxuICAgIHByaXZhdGUgc3lzUzogU3lzdGVtU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBzOiBQZGZTZXJ2aWNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY3M6IENvbW1hblNlcnZpY2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBjRHQ7XHJcbiAgY1VybDtcclxuICBoZWFkZXI7XHJcbiAgcGFnZURlZmluYXRpb247XHJcbiAgcmVzdWx0VmlldyA9IFtdO1xyXG4gIHJlc3VsdFZpZXdEdGw7XHJcbiAgc2VhcmNoUmVzdWx0RHRsTGlzdCA9IFtdO1xyXG4gIGlzT3BlbiA9IHRydWU7XHJcbiAgaWNvbiA9ICdmYSBmYS1kZWRlbnQnO1xyXG4gIHNob3dhcnI7XHJcbiAgb3JkZXIgPSAnJztcclxuICByZXZlcnNlID0gdHJ1ZTtcclxuICBwYWdlU2l6ZSA9IDEwO1xyXG4gIHAgPSAxO1xyXG4gIHBva2V5ID0gJyc7XHJcbiAgc2VhcmNoRjtcclxuICBjdXJJbmR4O1xyXG4gIGJ1eWVyTGlzdCA9IFtdO1xyXG4gIGxvdnMgPSBbXTtcclxuICBzcWxBcnJheSA9IHt9O1xyXG4gIG5vRGF0YSA9IHRydWU7XHJcbiAgc291cmNlVmFsO1xyXG4gIHNvdXJjZUxpc3Q7XHJcbiAgc3RvY2tfaWRuO1xyXG5cclxuICByZXN1bHRsZW5ndGggPSAwO1xyXG4gIHNjcm9sbERpc3RhbmNlID0gMTtcclxuICBzY3JvbGxVcERpc3RhbmNlID0gMjtcclxuICBzdGFydEluZGV4ID0gMDtcclxuICBlbmRJbmRleCA9IDMwO1xyXG4gIGxvYWRSZXN1bHQgPSBbXTtcclxuICBzZXRPcmRlcih2YWx1ZTogc3RyaW5nLCBpKSB7XHJcbiAgICB0aGlzLnNob3dhcnIgPSBpO1xyXG4gICAgdGhpcy5wID0gMVxyXG4gICAgaWYgKHRoaXMub3JkZXIgPT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmV2ZXJzZSA9ICF0aGlzLnJldmVyc2U7XHJcbiAgICB9XHJcbiAgICB0aGlzLm9yZGVyID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VTaXplQ2hhbmdlKHApIHtcclxuICAgIGlmIChwID09ICdBbGwnKSB7XHJcbiAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IHA7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExvdkxpc3QodGJsRiwgcGFnZV9pdGVtX2lkbikge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ3BhZ2VfaXRlbV9pZG4nXSA9IHBhZ2VfaXRlbV9pZG47XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0RGF0YUJ5SXRlbUlkbic7XHJcbiAgICAvLyBsZXQgb3B0aW9ucyA9ICh7IGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh0aGlzLmhlYWRlcikgfSk7XHJcbiAgICBsZXQgb3B0aW9ucyA9IHtcclxuICAgICAgbWV0aG9kOiAgdGhpcy5oZWFkZXJbJ21ldGhvZCddXHJcbiAgICB9XHJcbiAgICB0aGlzLnN5c1MuZ2V0RGF0YShyZXFPYmosIG9wdGlvbnMpLnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgICB0aGlzLmxvdnMgPSByZXNwb25zZS5rdjtcclxuICAgICAgICB0aGlzLnNxbEFycmF5W3RibEZdID0gdGhpcy5sb3ZzO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMubG92cyk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2codGJsRiwgdGhpcy5zcWxBcnJheSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGxvYWRCdXllcihzZWFyY2hUZXJtKSB7XHJcbiAgICAvLyB0aGlzLnNwaW5uZXJTZXJ2aWNlLnNob3coKTtcclxuICAgIGxldCByZXFPYmogPSB7fTtcclxuICAgIHJlcU9ialsnbGlrZVN0ciddID0gc2VhcmNoVGVybTtcclxuICAgIHRoaXMuaGVhZGVyWydtZXRob2QnXSA9ICdsb2FkQnV5ZXInO1xyXG4gICAgLy8gbGV0IG9wdGlvbnMgPSAoeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnModGhpcy5oZWFkZXIpIH0pO1xyXG4gICAgbGV0IG9wdGlvbnMgPSB7XHJcbiAgICAgIG1ldGhvZDogIHRoaXMuaGVhZGVyWydtZXRob2QnXVxyXG4gICAgfVxyXG4gICAgdGhpcy5zcy5sb2FkKHJlcU9iaiwgb3B0aW9ucywgJ21hcmtldGluZy9zZWFyY2gnKS50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gJ1NVQ0NFU1MnKSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICB0aGlzLmJ1eWVyTGlzdCA9IHJlc3VsdC5idXllckxpc3QubWFwKG9wdGlvbiA9PiAoe1xyXG4gICAgICAgICAgdmFsdWU6IG9wdGlvbi5rLFxyXG4gICAgICAgICAgbGFiZWw6IG9wdGlvbi52XHJcbiAgICAgICAgfSkpO1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSlcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBsb2FkRnJtRmllbGRzKCkge1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydmcm1ubWUnXTsvLydzZWFyY2hEdGxEc2NyRm9ybSc7XHJcbiAgICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXTsvLyAnb25saW5lJztcclxuICAgIC8vIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gbnVsbCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gdW5kZWZpbmVkICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBcIlwiKSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0nZXonOy8vIFsncXMnLCAncXMnXTtcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9ICdvbmxpbmUnO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5oZWFkZXJbJ21ldGhvZCddID0gJ2dldFNlYXJjaERldGFpbHMnO1xyXG4gICAgLy8gY29uc29sZS5sb2cocmVxT2JqKTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6ICB0aGlzLmhlYWRlclsnbWV0aG9kJ11cclxuICAgIH1cclxuICAgIHRoaXMuc3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvc2VhcmNoJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIC8vICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IHJlc3BvbnNlLnJlc3VsdDtcclxuICAgICAgICB0aGlzLnBhZ2VEZWZpbmF0aW9uID0gcmVzdWx0LnBhZ2VEZWZpbmF0aW9uO1xyXG4gICAgICAgIHRoaXMuc291cmNlTGlzdCA9IHJlc3VsdC5zb3VyY2VMaXN0O1xyXG4gICAgICAgIHRoaXMucGFnZURlZmluYXRpb24uZm9ybV9maWVsZC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuZm9ybV9maWVsZF90eXAgPT0gJ3MnKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0TG92TGlzdChlbGVtZW50LmZvcm1fZmllbGQsIGVsZW1lbnQucGFnZV9pdGVtX2lkbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZS5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9KS5jYXRjaCgoZXJyOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zcGlubmVyU2VydmljZS5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9hc3RyLmVycm9yKGVyci5tZXNzYWdlKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW5Ub2coKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlbjtcclxuICAgIGlmICh0aGlzLmlzT3BlbiA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmYSBmYS1kZWRlbnQnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2ZhIGZhLWluZGVudCc7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGV4cG9ydFRvQ1NWKCkge1xyXG4gICAgbGV0IG1vZGlmaWVkT2JqQXJyID0gdGhpcy5jcy5tb2RpZnlEYXRhQnlIZWFkZXIodGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0LCB0aGlzLnJlc3VsdFZpZXcsIHRoaXMucmVzdWx0Vmlld0R0bCk7XHJcbiAgICB0aGlzLmNzLkNTVkNvbnZlcnRvcihtb2RpZmllZE9iakFyciwgXCJXZWJfU2VhcmNoX0hpc3RvcnlcIiwgdHJ1ZSlcclxuICB9XHJcbiAgbG9hZFJlc3VsdHMoZm9ybVZhbCkge1xyXG4gICAgdGhpcy5sb2FkUmVzdWx0ID0gW107XHJcbiAgICAvLyB0aGlzLnN0YXJ0SW5kZXggPSAwO1xyXG4gICAgLy8gdGhpcy5lbmRJbmRleCA9IDMwO1xyXG4gICAgdGhpcy5zcGlubmVyU2VydmljZS5zaG93KCk7XHJcbiAgICBsZXQgcmVxT2JqID0ge307XHJcbiAgICByZXFPYmpbJ2Zvcm1ObWUnXSA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydmcm1ubWUnXTsvLydzZWFyY2hEdGxEc2NyRm9ybSc7XHJcbiAgICBpZiAoZm9ybVZhbCAhPSBudWxsKSB7XHJcbiAgICAgIC8vcmVxT2JqWydmb3JtTm1lJ10gPSAnc2VhcmNoRHRsRHNjckZvcm0nO1xyXG4gICAgICByZXFPYmpbJ2VtcElkbkxpc3QnXSA9IGZvcm1WYWwuZW1wbG95ZWUgIT0gbnVsbCA/IFtmb3JtVmFsLmVtcGxveWVlXSA6IFtdO1xyXG4gICAgICByZXFPYmpbJ2J1eWVySWRuTGlzdCddID0gZm9ybVZhbC5idXllciAhPSBudWxsID8gW2Zvcm1WYWwuYnV5ZXJdIDogW107XHJcbiAgICAgIHJlcU9ialsnZGF0ZUZyb20nXSA9IGZvcm1WYWwuZnJvbURhdGUgIT0gbnVsbCA/IHRoaXMuY3MuZm9ybWF0RGF0ZShmb3JtVmFsLmZyb21EYXRlKSA6ICcnO1xyXG4gICAgICByZXFPYmpbJ2RhdGVUbyddID0gZm9ybVZhbC50b0RhdGUgIT0gbnVsbCA/IHRoaXMuY3MuZm9ybWF0RGF0ZShmb3JtVmFsLnRvRGF0ZSkgOiAnJztcclxuICAgIH1cclxuICAgIC8vIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gbnVsbCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ10gIT0gdW5kZWZpbmVkICYmIHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydzcmMnXSAhPSBcIlwiKSB7XHJcbiAgICAvLyAgIHJlcU9ialsncmVxdWVzdFNyYyddID0gJ2V6JzsvL1sncXMnLCAncXMnXTtcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICByZXFPYmpbJ3JlcXVlc3RTcmMnXSA9ICdvbmxpbmUnO1xyXG4gICAgLy8gfVxyXG4gICAgcmVxT2JqWydyZXF1ZXN0U3JjJ10gPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snc3JjJ107XHJcbiAgICB0aGlzLmhlYWRlclsnbWV0aG9kJ10gPSAnZ2V0U2VhcmNoRGV0YWlscyc7XHJcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShyZXFPYmopKTtcclxuICAgIC8vIGxldCBvcHRpb25zID0gKHsgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHRoaXMuaGVhZGVyKSB9KTtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBtZXRob2Q6ICB0aGlzLmhlYWRlclsnbWV0aG9kJ11cclxuICAgIH1cclxuICAgIHRoaXMuc3MubG9hZChyZXFPYmosIG9wdGlvbnMsICdtYXJrZXRpbmcvc2VhcmNoJykudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09ICdTVUNDRVNTJykge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICAgIGxldCByZXN1bHQgPSByZXNwb25zZS5yZXN1bHQ7XHJcbiAgICAgICAgaWYgKHJlc3VsdCAhPSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VEZWZpbmF0aW9uID0gcmVzdWx0LnBhZ2VEZWZpbmF0aW9uO1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHRWaWV3ID0gcmVzdWx0LnJlc3VsdFZpZXcgfHwgW107XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdFZpZXdEdGwgPSByZXN1bHQucmVzdWx0Vmlld0R0bCB8fCB7fTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdCA9IHJlc3VsdC5zZWFyY2hSZXN1bHREdGxMaXN0IHx8W107XHJcblxyXG4gICAgICAgICAgdGhpcy5yZXN1bHRsZW5ndGggPSB0aGlzLnNlYXJjaFJlc3VsdER0bExpc3QubGVuZ3RoO1xyXG5cclxuICAgICAgICAgIC8vIGlmICh0aGlzLmVuZEluZGV4ID4gdGhpcy5yZXN1bHRsZW5ndGgpXHJcbiAgICAgICAgICAgIC8vIHRoaXMuZW5kSW5kZXggPSB0aGlzLnJlc3VsdGxlbmd0aFxyXG4gICAgICAgICAgLy8gdGhpcy5hZGRJdGVtcygpO1xyXG4gICAgICAgICAgdGhpcy5sb2FkUmVzdWx0ID0gdGhpcy5zZWFyY2hSZXN1bHREdGxMaXN0O1xyXG4gICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3cmFwXCIpLmFkZEV2ZW50TGlzdGVuZXIoXCJzY3JvbGxcIiwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICB2YXIgdHJhbnNsYXRlID0gXCJ0cmFuc2xhdGUoMCxcIiArIHRoaXMuc2Nyb2xsVG9wICsgXCJweClcIjtcclxuICAgICAgICAgICAgdGhpcy5xdWVyeVNlbGVjdG9yKFwidGhlYWRcIikuc3R5bGUudHJhbnNmb3JtID0gdHJhbnNsYXRlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaEYgPSB0aGlzLnNvdXJjZVZhbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2UubWVzc2FnZSlcclxuICAgICAgfVxyXG4gICAgfSkuY2F0Y2goKGVycjogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuc3Bpbm5lclNlcnZpY2UuaGlkZSgpO1xyXG4gICAgICB0aGlzLnRvYXN0ci5lcnJvcihlcnIubWVzc2FnZSlcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIG9uU2Nyb2xsRG93bigpIHtcclxuICAvLyAgIGlmICh0aGlzLmVuZEluZGV4IDw9IHRoaXMucmVzdWx0bGVuZ3RoKVxyXG4gIC8vICAgICB0aGlzLmFkZEl0ZW1zKClcclxuICAvLyAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwid3JhcFwiKS5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIGZ1bmN0aW9uICgpIHtcclxuICAvLyAgICAgdmFyIHRyYW5zbGF0ZSA9IFwidHJhbnNsYXRlKDAsXCIgKyB0aGlzLnNjcm9sbFRvcCArIFwicHgpXCI7XHJcbiAgLy8gICAgIHRoaXMucXVlcnlTZWxlY3RvcihcInRoZWFkXCIpLnN0eWxlLnRyYW5zZm9ybSA9IHRyYW5zbGF0ZTtcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gYWRkSXRlbXMoKSB7XHJcbiAgLy8gICBmb3IgKGxldCBpID0gdGhpcy5zdGFydEluZGV4OyBpIDwgdGhpcy5lbmRJbmRleDsgaSsrKSB7XHJcbiAgLy8gICAgIHRoaXMubG9hZFJlc3VsdFtpXSA9IHRoaXMuc2VhcmNoUmVzdWx0RHRsTGlzdFtpXTtcclxuICAvLyAgIH1cclxuICAvLyAgIHRoaXMuc3RhcnRJbmRleCA9IHRoaXMuZW5kSW5kZXg7XHJcbiAgLy8gICB0aGlzLmVuZEluZGV4ID0gdGhpcy5lbmRJbmRleCArIDMwO1xyXG4gIC8vICAgaWYgKHRoaXMuZW5kSW5kZXggPiB0aGlzLnJlc3VsdGxlbmd0aCkge1xyXG4gIC8vICAgICB0aGlzLmVuZEluZGV4ID0gdGhpcy5yZXN1bHRsZW5ndGg7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBvblN1Ym1pdChmb3JtVmFsKSB7XHJcbiAgICB2YXIgdCA9IE9iamVjdC5rZXlzKGZvcm1WYWwuZm9ybS5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtVmFsLmZvcm0uZ2V0KGZpZWxkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5sb2FkUmVzdWx0cyhmb3JtVmFsLnZhbHVlKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBsZXQgbWRsayA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21kbEtleScpKTtcclxuICAgIHRoaXMuY1VybCA9IHRoaXMucm91dGVyLnVybDtcclxuXHJcbiAgICB0aGlzLmhlYWRlciA9IHtcclxuICAgICAgJ2NsaWVudGtleSc6IENvb2tpZS5nZXQoJ19jaycpLFxyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICAnbW9kdWxla2V5JzogbWRsa1t0aGlzLmNVcmwuc3BsaXQoJy8nKVsxXV0sXHJcbiAgICAgICdsb2dpbmlkJzogQ29va2llLmdldCgnX2xvZ2lkJyksXHJcbiAgICAgICdzb3VyY2UnOiAncXMnXHJcbiAgICB9O1xyXG4gICAgdGhpcy5sb2FkUmVzdWx0cyhudWxsKTtcclxuICAgIHRoaXMubG9hZEZybUZpZWxkcygpO1xyXG4gICAgdGhpcy5jRHQgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm10XCIgc3R5bGU9XCJiYWNrZ3JvdW5kOiAjZmZmO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBwYW5lbC1kZWZhdWx0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGluZ1wiPlxyXG4gICAgICA8aDMgY2xhc3M9XCJwYW5lbC10aXRsZVwiPnt7cGFnZURlZmluYXRpb24/LnRpdGxlfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImYtMTJcIj4oe3tjRHQgfCBkYXRlOidtZWRpdW0nfX0pPC9zcGFuPlxyXG4gICAgICA8L2gzPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRlbnQtZnJhbWVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJpbm5lckRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwicGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICA8Zm9ybSBjbGFzcz1cImZvcm0taW5saW5lXCIgI2Y9XCJuZ0Zvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoZilcIiBuYW1lPVwiYXBwRm9ybVwiPlxyXG4gICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpc09wZW4gPT0gdHJ1ZSA/ICdjb2wtbWQtNCcgOiAnaGlkZGVuJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiICpuZ0Zvcj1cImxldCBmbCBvZiBwYWdlRGVmaW5hdGlvbj8uZm9ybV9maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgdy0xMDBcIiAqbmdJZj1cImZsPy5mb3JtX2ZpZWxkX3R5cCA9PSAnc2InXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbC1tZC01IGNvbnRyb2wtbGFiZWxcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMnB4O1wiPnt7Zmw/LmZvcm1fZmllbGRfdGl0bGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBzdHlsZT1cInotaW5kZXg6IDM7XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgQnV5ZXJzXCIgW29wdGlvbnNdPVwiYnV5ZXJMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgbmFtZT1cImJ1eWVyXCIgKGZpbHRlcklucHV0Q2hhbmdlZCk9XCJsb2FkQnV5ZXIoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwiZmw/LmZvcm1fZmllbGRfdHlwID09ICdzJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj57e2ZsPy5mb3JtX2ZpZWxkX3RpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwie3tmbD8uZm9ybV9maWVsZH19XCIgW3ZhbHVlXT1cImZsPy5kZWZhdWx0X3ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgI2xJbnB1dD1cIm5nTW9kZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgbG92IG9mIHNxbEFycmF5W2ZsLmZvcm1fZmllbGRdXCIgdmFsdWU9XCJ7e2xvdi5rfX1cIj57e2xvdi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgdy0xMDBcIiAqbmdJZj1cImZsPy5mb3JtX2ZpZWxkX3R5cCA9PSAndCcgJiYgZmw/LmR0YV90eXA9PSdkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj57e2ZsPy5mb3JtX2ZpZWxkX3RpdGxlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdy0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBuYW1lPVwie3tmbD8uZm9ybV9maWVsZH19XCIgWyhuZ01vZGVsKV09XCJmbC5kZWZhdWx0X3ZhbHVlXCIgb25mb2N1cz1cIih0aGlzLnR5cGU9J2RhdGUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uYmx1cj1cIih0aGlzLnR5cGU9J3RleHQnKVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJkZC9tbS95eXl5XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCB3LTEwMFwiICpuZ0lmPVwic291cmNlTGlzdCAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjb2wtbWQtNSBjb250cm9sLWxhYmVsXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5Tb3VyY2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwic291cmNlXCIgWyhuZ01vZGVsKV09XCJzb3VyY2VWYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzb3VyY2VMaXN0XCIgdmFsdWU9XCJ7e29wdGlvbi5rfX1cIj57e29wdGlvbi52fX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJpc09wZW4gPT0gZmFsc2UgPyAnY29sLW1kLTEyIGN1c3RDbHMnIDogJ2NvbC1tZC04IGN1c3RDbHMnXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD4wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZGRsUGFnZXNpemVcIj5QYWdlIFNpemUgJm5ic3A7ICZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBuYW1lPVwicGFnZVNpemVcIiBbKG5nTW9kZWwpXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkFsbFwiPkFsbDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMFwiPjEwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjI1XCI+MjU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNTBcIj41MDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxMDBcIj4xMDA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Zvcm0+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzZWFyY2hSZXN1bHREdGxMaXN0Lmxlbmd0aD4wXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJwYWRkaW5nOiA0cHggMTVweCA0cHggMjBweDttYXJnaW4tbGVmdDogMTBweDtcIiBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgIHRpdGxlPVwiRmlsdGVyIHJlc3VsdHNcIiAoY2xpY2spPVwib3BlblRvZygpO1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7e2ljb259fVwiIHN0eWxlPVwiY29sb3I6IzNiNTk5ODtcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCIhbm9EYXRhXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIiBzdHlsZT1cInBhZGRpbmc6IDRweCAxNXB4IDRweCAyMHB4O21hcmdpbi1sZWZ0OiAxMHB4O1wiXHJcbiAgICAgICAgICAgICAgICBkYXRhLXRvZ2dsZT1cInRvb2x0aXBcIiBkYXRhLXBsYWNlbWVudD1cInJpZ2h0XCIgdGl0bGU9XCJSZWZyZXNoXCIgKGNsaWNrKT1cIm5nT25Jbml0KCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHN0eWxlPVwicGFkZGluZzogNHB4IDE1cHggNHB4IDIwcHg7bWFyZ2luLWxlZnQ6IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgIGRhdGEtdG9nZ2xlPVwidG9vbHRpcFwiIGRhdGEtcGxhY2VtZW50PVwicmlnaHRcIiB0aXRsZT1cIkRvd25sb2FkIEV4Y2VsXCIgKGNsaWNrKT1cImV4cG9ydFRvQ1NWKCk7XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZhIGZhLWZpbGUtZXhjZWwtb1wiIHN0eWxlPVwiY29sb3I6Z3JlZW47XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9EYXRhXCIgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZm9ybS1pbmxpbmUgcHVsbC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImV4YW1wbGVJbnB1dE5hbWUyXCI+U2VhcmNoICZuYnNwOyZuYnNwOzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJleGFtcGxlSW5wdXROYW1lMlwiIG5hbWU9XCJzY2h0eHRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaEZcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBpZD1cIndyYXBcIiBzdHlsZT1cIm92ZXJmbG93OiBhdXRvO3dpZHRoOiAxMDAlO2hlaWdodDogY2FsYygxMDB2aCAtIDIxMHB4KTtcIj5cclxuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwiZGlzcGxheVRhYmxlXCIgKm5nSWY9XCIhbm9EYXRhXCI+XHJcbiAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgPHRyIGNsYXNzPVwicG9zcmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhkciBvZiByZXN1bHRWaWV3IDtsZXQgaj1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGggKm5nSWY9XCJoZHIgIT0gJ3JlcXVlc3RfYXR0cicgJiYgaGRyICE9ICdyZXF1ZXN0X2F0dHJWYWwnXCIgbm93cmFwIChjbGljayk9XCJzZXRPcmRlcihoZHIsailcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7cmVzdWx0Vmlld0R0bFtoZHJdfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtoaWRkZW5dPVwicmV2ZXJzZVwiICpuZ0lmPVwic2hvd2FyciA9PT0galwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLWFycm93LWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaGlkZGVuXT1cIiFyZXZlcnNlXCIgKm5nSWY9XCJzaG93YXJyID09PSBqXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtYXJyb3ctdXBcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgPHRib2R5IHN0eWxlPVwiaGVpZ2h0OjQwMHB4O292ZXJmbG93OmF1dG87XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwa3RkdGwgb2YgbG9hZFJlc3VsdCB8IHRhYmxlU2VhcmNoOnNlYXJjaEYgfCBvcmRlckJ5OiBvcmRlcjpyZXZlcnNlIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHAgfTsgbGV0IHBrdGkgPSBpbmRleCA7dHJhY2tCeTpzdG9ja19pZG5cIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDx0ciBbbmdDbGFzc109XCJ7J2V2ZW4nOnBrdGklMj09MCwnb2RkJzpwa3RpJTI9PTF9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYXR0IG9mIHJlc3VsdFZpZXc7IGxldCBqID0gaW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQgKm5nSWY9XCJhdHQgIT0gJ3JlcXVlc3RfYXR0cicgJiYgYXR0ICE9ICdyZXF1ZXN0X2F0dHJWYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXgtd2lkdGg6IDMwMHB4O3doaXRlLXNwYWNlOiBub3JtYWw7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyd3b3JkLWJyZWFrJyA6IGF0dCA9PSAnZHNjcicgID8gJ2JyZWFrLXdvcmQnOiAnbm9ybWFsJywnd2hpdGUtc3BhY2UnOiBhdHQgIT0gJ2RzY3InPyAnbm93cmFwJzonbm9ybWFsJ31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3twa3RkdGxbYXR0XX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDxwICpuZ0lmPVwic2VhcmNoUmVzdWx0RHRsTGlzdC5sZW5ndGg9PTBcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlclwiPjxiPiBObyBEYXRhIEZvdW5kICE8L2I+PC9wPlxyXG4gICAgICAgICAgICA8IS0tIFwibWF4LXdpZHRoOiAzMDBweDt3aGl0ZS1zcGFjZTogbm9ybWFsO3dvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxwYWdpbmF0aW9uLWNvbnRyb2xzIChwYWdlQ2hhbmdlKT1cInAgPSAkZXZlbnRcIiAqbmdJZj1cInByb2Nlc3NEZXRhaWxzLmxlbmd0aD4wXCIgY2xhc3M9XCJwdWxsLXJpZ2h0XCI+PC9wYWdpbmF0aW9uLWNvbnRyb2xzPiAtLT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25Gb290ZXJcIj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGNCdG4gcHVsbC1sZWZ0XCIgYXBwQXBwTm9EYmxDbGljayAoY2xpY2spPVwib25TdWJtaXQoZilcIj5GZXRjaDwvYnV0dG9uPlxyXG4gICAgPHBhZ2luYXRpb24tY29udHJvbHMgc3R5bGU9XCJiYWNrZ3JvdW5kOiB3aGl0ZTtcIiAocGFnZUNoYW5nZSk9XCJwPSRldmVudFwiIGNsYXNzPVwicHVsbC1yaWdodFwiPjwvcGFnaW5hdGlvbi1jb250cm9scz5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -27918,8 +27918,8 @@ class WebsearchHistoryComponent {
|
|
|
27918
27918
|
this.loadResult = [];
|
|
27919
27919
|
}
|
|
27920
27920
|
setOrder(value, i) {
|
|
27921
|
-
this.pageSize = 1;
|
|
27922
27921
|
this.showarr = i;
|
|
27922
|
+
this.p = 1;
|
|
27923
27923
|
if (this.order === value) {
|
|
27924
27924
|
this.reverse = !this.reverse;
|
|
27925
27925
|
}
|