tango-app-ui-manage-settings 3.0.38-dev → 3.0.40-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/configurations/email-configuration/email-configuration.component.mjs +6 -6
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +27 -6
- package/esm2022/lib/services/client-api.service.mjs +2 -1
- package/fesm2022/tango-app-ui-manage-settings.mjs +30 -9
- package/fesm2022/tango-app-ui-manage-settings.mjs.map +1 -1
- package/lib/components/reactive-select/reactive-select.component.d.ts +9 -1
- package/lib/services/client-api.service.d.ts +1 -0
- package/package.json +1 -1
package/esm2022/lib/components/configurations/email-configuration/email-configuration.component.mjs
CHANGED
|
@@ -18,8 +18,8 @@ export class EmailConfigurationComponent {
|
|
|
18
18
|
endTime;
|
|
19
19
|
dropDown = false;
|
|
20
20
|
dropdownItems = ['Admin', 'User', 'Super Admin'];
|
|
21
|
-
selectedRole = 'Admin';
|
|
22
|
-
offset =
|
|
21
|
+
selectedRole = 'Super Admin';
|
|
22
|
+
offset = 1;
|
|
23
23
|
limit = 10;
|
|
24
24
|
sortBy = -1;
|
|
25
25
|
sortColumName;
|
|
@@ -157,7 +157,7 @@ export class EmailConfigurationComponent {
|
|
|
157
157
|
"searchValue": this.searchInstallation,
|
|
158
158
|
"sortColumName": this.sortColumName,
|
|
159
159
|
"sortBy": this.sortBy,
|
|
160
|
-
"
|
|
160
|
+
"offset": this.offset,
|
|
161
161
|
"limit": this.limit
|
|
162
162
|
};
|
|
163
163
|
this.loading = true;
|
|
@@ -200,11 +200,11 @@ export class EmailConfigurationComponent {
|
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EmailConfigurationComponent, deps: [{ token: i1.NgbModal }, { token: i2.ToastService }, { token: i0.ChangeDetectorRef }, { token: i3.ClientApiService }], target: i0.ɵɵFactoryTarget.Component });
|
|
203
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EmailConfigurationComponent, selector: "lib-email-configuration", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }] });
|
|
203
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EmailConfigurationComponent, selector: "lib-email-configuration", host: { listeners: { "document:click": "onClick($event)" } }, viewQueries: [{ propertyName: "confirmationModal", first: true, predicate: ["confirmationModal"], descendants: true }], ngImport: i0, template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "pipe", type: i4.UpperCasePipe, name: "uppercase" }] });
|
|
204
204
|
}
|
|
205
205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EmailConfigurationComponent, decorators: [{
|
|
206
206
|
type: Component,
|
|
207
|
-
args: [{ selector: 'lib-email-configuration', template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li>\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"] }]
|
|
207
|
+
args: [{ selector: 'lib-email-configuration', template: "\r\n<div class=\"mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap mb-10\">\r\n <li class=\"nav-item\" (click)=\"Selectedtabs('Infra Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Infra Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra Report\r\n </a>\r\n </li>\r\n <!-- <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Data Report')\">\r\n <a \r\n [ngClass]=\"SelectedTab === 'Data Report' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Data Report\r\n </a>\r\n </li> \r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('Insight Report')\">\r\n <a [ngClass]=\"SelectedTab ==='Insight Report' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Insight Report</a>\r\n </li>\r\n <li class=\"nav-item disabled-list \" (click)=\"Selectedtabs('All')\"><a [ngClass]=\"SelectedTab ==='All' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">All</a>\r\n </li> -->\r\n </ul>\r\n\r\n <div class=\"w-100 d-flex align-items-center\">\r\n <span class=\"timingtext fw-bold\">Send Daily Report at</span> <span> <input type=\"time\" [(ngModel)]=\"startTime\" class=\"form-control w-auto mx-5\"></span><span class=\"timingtext fw-bold\">and</span><span><input type=\"time\" [(ngModel)]=\"endTime\" class=\"form-control w-auto mx-5\"></span>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"title fw-bold\">Users List</div>\r\n <div class=\"sub-title\">Select your required email & schedule the mail timing accordingly</div>\r\n </div>\r\n <div class=\"card-toolbar\"> \r\n <input type=\"text\" class=\"form-control w-auto ps-3 me-2\" placeholder=\"Search\"\r\n autocomplete=\"off\" [(ngModel)]=\"searchInstallation\"\r\n (change)=\"searchInstallationTable()\" />\r\n <div class=\"position-relative w-150px mt-5 mb-5 ms-2\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedRole ? selectedRole : dropdownItems[0]}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute z-1 top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedRole === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData \">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" id=\"selectAllCheckbox\" (change)=\"selectAll($event)\">\r\n <div class=\"d-flex align-items-center cursor-pointer\" (click)=\"sortData('userName')\">\r\n <span class=\"ms-2 me-1\">User</span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('email')\">Email\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== 1 || sortColumName !== 'email' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'email' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('assigned')\">Store Count\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== 1 || sortColumName !== 'assigned' \">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"sortColumName === 'assigned' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of emailuserList?.result\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <input type=\"checkbox\" class=\"me-5\" [(ngModel)]=\"item.infraAlert\" (change)=\"selectItems($event, item)\">\r\n <div>\r\n {{ item?.userName ? item?.userName : 'NA' }}\r\n </div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.email ? item?.email :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"text-title text-primary cursor-pointer text-decoration-underline mb-1\" (click)=\"storeDetails(item?.assignedValue,item?.userName,item?.email)\">{{ item?.assigned }}</div></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\"\r\n [totalItems]=\"emailuserList?.count\" [paginationSizes]=\"[10,20,30]\" [pageSize]=\"limit\"\r\n (pageChange)=\"onPageChange($event)\" (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <div>\r\n\r\n <div class=\"mt-10 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline btn-default me-3\" (click)=\"cancelSelectedItems()\">\r\n Cancel\r\n </button>\r\n <button class=\"btn btn-primary btn-default\" (click)=\"updateSelectedItems()\">\r\n Save Chages\r\n </button>\r\n </div> \r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"p-8 card-title\">\r\n <div class=\"title\">\r\n Stores List of the user\r\n </div>\r\n <div class=\"d-flex align-items-center mt-10 mb-10\">\r\n <div class=\"rounded-5 profile d-flex align-items-center justify-content-center fw-semibold\">{{Email.slice(0,2) | uppercase}}</div>\r\n <div class=\"ms-3\">\r\n <div class=\"title1 mb-1 fw-bold\">{{userName}}</div>\r\n <div class=\"text-sub\">{{Email}}</div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 border border-gray border-1 rounded-3 p-5\">\r\n <span *ngFor=\"let list of storeList\" class=\"badge badge-light-default me-3\">{{list?.storeName}}</span>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-100\" (click)=\"modal.dismiss()\">Close</button>\r\n </div>\r\n </div>\r\n </ng-template>", styles: [".nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.items{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.img-src{width:25%!important}tr{vertical-align:middle!important}.card-title .title{color:var(--Gray-900, #101828);font-size:18px;font-weight:600;line-height:28px}.card-title .sub-title{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}input[type=checkbox]{width:16px!important;height:16px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}.timingtext{color:var(--Gray-700, #344054);font-size:16px;line-height:24px}.disabled-list{pointer-events:none;opacity:.5}.profile{color:var(--Primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF);font-size:14px;line-height:20px;width:40px;height:40px}.title1{color:var(--Gray-700, #344054);font-size:14px!important;line-height:20px}.text-sub{color:var(--Gray-500, #667085);line-height:20px;font-weight:400}table tr{vertical-align:middle!important;padding-top:16px;padding-bottom:16px}table td .text-sub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}\n"] }]
|
|
208
208
|
}], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.ToastService }, { type: i0.ChangeDetectorRef }, { type: i3.ClientApiService }], propDecorators: { confirmationModal: [{
|
|
209
209
|
type: ViewChild,
|
|
210
210
|
args: ['confirmationModal']
|
|
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
212
212
|
type: HostListener,
|
|
213
213
|
args: ['document:click', ['$event']]
|
|
214
214
|
}] } });
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLFlBQVksRUFBQyxTQUFTLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sRUFBRSxPQUFPLEVBQU8sU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTywyQkFBMkI7SUFvQ2xCO0lBQStCO0lBQzVDO0lBQTZCO0lBbkNKLGlCQUFpQixDQUFNO0lBQ3ZELFFBQVEsQ0FBMEI7SUFDbEMsV0FBVyxHQUFLLGNBQWMsQ0FBQTtJQUM5QixTQUFTLENBQUs7SUFDZCxPQUFPLENBQUs7SUFDWixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGFBQWEsR0FBUyxDQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEQsWUFBWSxHQUFPLE9BQU8sQ0FBRTtJQUM1QixNQUFNLEdBQU8sQ0FBQyxDQUFDO0lBQ2YsS0FBSyxHQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sR0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoQixhQUFhLENBQUs7SUFDbEIsVUFBVSxDQUFLO0lBQ2Ysa0JBQWtCLENBQU07SUFDeEIsTUFBTSxDQUFN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bUJBQW1CO2dCQTBCOUIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsSG9zdExpc3RlbmVyLFZpZXdDaGlsZCxDaGFuZ2VEZXRlY3RvclJlZixPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtYWlsLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcpIGNvbmZpcm1hdGlvbk1vZGFsOiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIFNlbGVjdGVkVGFiOmFueT0nSW5mcmEgUmVwb3J0J1xyXG4gIHN0YXJ0VGltZTphbnk7XHJcbiAgZW5kVGltZTphbnk7XHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkl0ZW1zOmFueVtdID0gWydBZG1pbicsJ1VzZXInLCdTdXBlciBBZG1pbiddXHJcbiAgc2VsZWN0ZWRSb2xlOmFueSA9ICdBZG1pbicgO1xyXG4gIG9mZnNldDphbnkgPSAwO1xyXG4gIGxpbWl0OmFueSA9IDEwO1xyXG4gIHNvcnRCeTphbnkgPSAtMTtcclxuICBzb3J0Q29sdW1OYW1lOmFueTtcclxuICB0b3RhbENvdW50OmFueTtcclxuICBzZWFyY2hJbnN0YWxsYXRpb246IGFueTtcclxuICBub0RhdGE6IGFueTtcclxuICBsb2FkaW5nOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGVtYWlsdXNlckxpc3Q6IGFueTtcclxuICBkdW1teUVtYWlsTGlzdDphbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBzdG9yZUxpc3Q6IGFueTtcclxuICBFbWFpbDogYW55O1xyXG4gIHVzZXJOYW1lOiBhbnk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UsXHJcbiBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgc2VydmljZTogQ2xpZW50QXBpU2VydmljZSl7XHJcbiAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgaWYgKGUpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IGUuY2xpZW50SWRcclxuICAgIH1cclxuICB9KVxyXG4gICAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgICAgdGhpcy5TZWxlY3RlZHRhYnModGhpcy5TZWxlY3RlZFRhYik7IFxyXG4gICAgICAgICAgdGhpcy5nZXRCcmFuZERldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMudXNlckxpc3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgaWYoY2hlY2tlZCl7XHJcbiAgICAgICAgICBpdGVtLmluZnJhQWxlcnQgPSBjaGVja2VkO1xyXG4gICAgICAgIC8vICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICB9ZWxzZSB7aXRlbS5pbmZyYUFsZXJ0ID0gZmFsc2V9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbXMoZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtLmluZnJhQWxlcnQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hlY2tTZWxlY3RBbGwoKTtcclxuICAgIC8vIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmV2ZXJ5KChpdGVtOmFueSkgPT4gaXRlbS5pbmZyYUFsZXJ0KTtcclxuICAgIGNvbnN0IHNlbGVjdEFsbENoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdEFsbENoZWNrYm94JykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxDaGVja2JveCkge1xyXG4gICAgICBzZWxlY3RBbGxDaGVja2JveC5jaGVja2VkID0gYWxsU2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgaWYodGhpcy5lbmRUaW1lID4gdGhpcy5zdGFydFRpbWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmVtYWlsdXNlckxpc3Q/LnJlc3VsdC5tYXAoKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgICByZXR1cm4ge2VtYWlsOml0ZW0uZW1haWwsaW5mcmFBbGVydDppdGVtLmluZnJhQWxlcnR9O1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVVc2VyTGlzdCgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBUaW1lIFRha2VuJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbFNlbGVjdGVkSXRlbXMoKXtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kdW1teUVtYWlsTGlzdCkpO1xyXG4gICAgdGhpcy5jaGVja1NlbGVjdEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgU2VsZWN0ZWR0YWJzKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgICAvLyB0aGlzLnRhYmxlRGF0YS5maWx0ZXIgPSB0aGlzLnNlbGVjdGVkSXRlbSA9PT0gXCJBbGxcIiA/IFtdIDogdmFsdWVcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gIXRoaXMuZHJvcERvd247XHJcbiAgfVxyXG4gIHNlYXJjaEluc3RhbGxhdGlvblRhYmxlKCkge1xyXG4gICAgICAgdGhpcy51c2VyTGlzdCgpXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogYW55KSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IGFueSkge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIHNvcnREYXRhKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc29ydEJ5ICo9IC0xO1xyXG4gICAgdGhpcy51c2VyTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVEZXRhaWxzKG9iajphbnksZW1haWw6YW55LHVzZXJOYW1lOmFueSl7XHJcbiAgICB0aGlzLnN0b3JlTGlzdCA9IG9iajtcclxuICAgIHRoaXMuRW1haWwgPSBlbWFpbDtcclxuICAgIHRoaXMudXNlck5hbWUgPSB1c2VyTmFtZTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmREZXRhaWxzKCl7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmdldEJyYW5kRGV0YWlscyh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyYmcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlcz8uZGF0YT8udGlja2V0Q29uZmlncztcclxuICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gcmVzcG9uc2VEYXRhPy5pbmZyYVJlcG9ydD8uc3RhcnQ7XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSByZXNwb25zZURhdGE/LmluZnJhUmVwb3J0Py5lbmQ7XHJcbiAgICAgICAgfWVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSxcclxuICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXNlckxpc3QoKXtcclxuICAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBcImNsaWVudElkXCI6dGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJyb2xlXCI6dGhpcy5zZWxlY3RlZFJvbGUucmVwbGFjZSgnICcsJycpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjp0aGlzLnNlYXJjaEluc3RhbGxhdGlvbixcclxuICAgICAgXCJzb3J0Q29sdW1OYW1lXCI6dGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBcInNvcnRCeVwiOnRoaXMuc29ydEJ5LFxyXG4gICAgICBcInNraXBcIjp0aGlzLm9mZnNldCxcclxuICAgICAgXCJsaW1pdFwiOnRoaXMubGltaXRcclxuICAgICB9XHJcbiAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgIHRoaXMuc2VydmljZS5lbWFpbFVzZXJMaXN0KGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICBpZihyZXMgJiYgcmVzLmNvZGU9PScyMDAnICYmIHJlcz8uZGF0YT8ucmVzdWx0Py5sZW5ndGgpe1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5lbWFpbHVzZXJMaXN0ID0gcmVzLmRhdGE7XHJcbiAgICAgICAgdGhpcy5kdW1teUVtYWlsTGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5lbWFpbHVzZXJMaXN0KSlcclxuICAgICAgICBcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+e1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgfSlcclxuXHJcbiAgfVxyXG5cclxuICB1cGRhdGVVc2VyTGlzdCgpe1xyXG4gICAgbGV0IGRhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOnRoaXMuY2xpZW50SWQsXHJcbiAgICAgIHN0YXJ0OiB0aGlzLnN0YXJ0VGltZSxcclxuICAgICAgZW5kOiB0aGlzLmVuZFRpbWUsXHJcbiAgICAgIFwidXNlckxpc3RcIjogdGhpcy5zZWxlY3RlZEl0ZW1zLFxyXG4gIH1cclxuICB0aGlzLnNlcnZpY2Uuc2F2ZUluZnJhRW1haWxDb25maWcoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgaWYocmVzICYmIHJlcy5jb2RlPT0nMjAwJyl7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8ubWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgIH0sXHJcbiAgICBlcnJvcjooZXJyKT0+e1xyXG4gICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyPy5lcnJvcilcclxuICAgIH0sXHJcbiB9KVxyXG5cclxufVxyXG5cclxufVxyXG5cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJtYi01IHB5LTMgcHgtNVwiPlxyXG4gICAgPHVsIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwIG1iLTEwXCI+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdJbmZyYSBSZXBvcnQnKVwiPlxyXG4gICAgICAgICAgICA8YSBcclxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09ICdJbmZyYSBSZXBvcnQnID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgIEluZnJhIFJlcG9ydFxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBkaXNhYmxlZC1saXN0IFwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ0RhdGEgUmVwb3J0JylcIj5cclxuICAgICAgICAgICAgPGEgXHJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSAnRGF0YSBSZXBvcnQnID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgIERhdGEgUmVwb3J0XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPiAgICBcclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBkaXNhYmxlZC1saXN0IFwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ0luc2lnaHQgUmVwb3J0JylcIj5cclxuICAgICAgICAgICAgPGEgW25nQ2xhc3NdPVwiU2VsZWN0ZWRUYWIgPT09J0luc2lnaHQgUmVwb3J0JyA/ICdhY3RpdmUnIDonJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbWUtM1wiPkluc2lnaHQgUmVwb3J0PC9hPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdBbGwnKVwiPjxhIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdBbGwnID8gJ2FjdGl2ZScgOicnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbWUtM1wiPkFsbDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgPC91bD5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkXCI+U2VuZCBEYWlseSBSZXBvcnQgYXQ8L3NwYW4+IDxzcGFuPiA8aW5wdXQgdHlwZT1cInRpbWVcIiBbKG5nTW9kZWwpXT1cInN0YXJ0VGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctYXV0byBteC01XCI+PC9zcGFuPjxzcGFuIGNsYXNzPVwidGltaW5ndGV4dCBmdy1ib2xkXCI+YW5kPC9zcGFuPjxzcGFuPjxpbnB1dCB0eXBlPVwidGltZVwiIFsobmdNb2RlbCldPVwiZW5kVGltZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctYXV0byBteC01XCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgZC1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZSBmdy1ib2xkXCI+VXNlcnMgTGlzdDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCI+U2VsZWN0IHlvdXIgcmVxdWlyZWQgZW1haWwgJiBzY2hlZHVsZSB0aGUgbWFpbCB0aW1pbmcgYWNjb3JkaW5nbHk8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+ICAgXHJcbiAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sIHctYXV0byBwcy0zIG1lLTJcIiBwbGFjZWhvbGRlcj1cIlNlYXJjaFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VhcmNoSW5zdGFsbGF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWFyY2hJbnN0YWxsYXRpb25UYWJsZSgpXCIgLz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIHctMTUwcHggbXQtNSBtYi01IG1zLTJcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgdy0xMDAgYnRuLW91dGxpbmUgYnRuLW91dGxpbmUtZGVmYXVsdCByb3VuZGVkLTMgdGV4dC1ub3dyYXAgYm9yZGVyLXZhbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkUm9sZSA/IHNlbGVjdGVkUm9sZSA6IGRyb3Bkb3duSXRlbXNbMF19fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZHJvcERvd25cIiBjbGFzcz1cImNhcmQgcHktMSB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSB6LTEgdG9wLTUwcHggZW5kLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZHJvcGRvd25JdGVtc1wiIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwic2VsZWN0ZWRSb2xlID09PSBpdGVtID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIj57e2l0ZW19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmcgJiYgIW5vRGF0YSBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIGJvdHRvbS1ib3JkZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cInNlbGVjdEFsbENoZWNrYm94XCIgKGNoYW5nZSk9XCJzZWxlY3RBbGwoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ3VzZXJOYW1lJylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWUtMVwiPlVzZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1OYW1lICE9PSAndXNlck5hbWUnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ3VzZXJOYW1lJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoPjxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnZW1haWwnKVwiPkVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2VtYWlsJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtTmFtZSAhPT0gJ2VtYWlsJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICdlbWFpbCcgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0aD48ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwic29ydERhdGEoJ2Fzc2lnbmVkJylcIj5TdG9yZSBDb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICdhc3NpZ25lZCcgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bU5hbWUgIT09ICdhc3NpZ25lZCcgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAnYXNzaWduZWQnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbWFpbHVzZXJMaXN0Py5yZXN1bHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJtZS01XCIgWyhuZ01vZGVsKV09XCJpdGVtLmluZnJhQWxlcnRcIiAoY2hhbmdlKT1cInNlbGVjdEl0ZW1zKCRldmVudCwgaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnVzZXJOYW1lID8gaXRlbT8udXNlck5hbWUgOiAnTkEnIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGl0ZW0/LmVtYWlsID8gaXRlbT8uZW1haWwgOidOQScgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRpdGxlIHRleHQtcHJpbWFyeSBjdXJzb3ItcG9pbnRlciB0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIG1iLTFcIiAoY2xpY2spPVwic3RvcmVEZXRhaWxzKGl0ZW0/LmFzc2lnbmVkVmFsdWUsaXRlbT8udXNlck5hbWUsaXRlbT8uZW1haWwpXCI+e3sgaXRlbT8uYXNzaWduZWQgfX08L2Rpdj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGxpYi1wYWdpbmF0aW9uIFtpdGVtc1BlclBhZ2VdPVwibGltaXRcIiBbY3VycmVudFBhZ2VdPVwib2Zmc2V0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwiZW1haWx1c2VyTGlzdD8uY291bnRcIiBbcGFnaW5hdGlvblNpemVzXT1cIlsxMCwyMCwzMF1cIiBbcGFnZVNpemVdPVwibGltaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiIChwYWdlU2l6ZUNoYW5nZSk9XCJvblBhZ2VTaXplQ2hhbmdlKCRldmVudClcIj48L2xpYi1wYWdpbmF0aW9uPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMCBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tZGVmYXVsdCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbFNlbGVjdGVkSXRlbXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENhbmNlbFxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IGJ0bi1kZWZhdWx0XCIgKGNsaWNrKT1cInVwZGF0ZVNlbGVjdGVkSXRlbXMoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIFNhdmUgQ2hhZ2VzXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb25maXJtYXRpb25Nb2RhbCBsZXQtbW9kYWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC04IGNhcmQtdGl0bGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICAgICAgU3RvcmVzIExpc3Qgb2YgdGhlIHVzZXJcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtdC0xMCBtYi0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC01IHByb2ZpbGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZ3LXNlbWlib2xkXCI+e3tFbWFpbC5zbGljZSgwLDIpIHwgdXBwZXJjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZTEgbWItMSBmdy1ib2xkXCI+e3t1c2VyTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdWJcIj57e0VtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgYm9yZGVyIGJvcmRlci1ncmF5IGJvcmRlci0xIHJvdW5kZWQtMyBwLTVcIj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGxpc3Qgb2Ygc3RvcmVMaXN0XCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1lLTNcIj57e2xpc3Q/LnN0b3JlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lIHctMTAwXCIgKGNsaWNrKT1cIm1vZGFsLmRpc21pc3MoKVwiPkNsb3NlPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPiJdfQ==
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2VtYWlsLWNvbmZpZ3VyYXRpb24vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFTLFlBQVksRUFBQyxTQUFTLEVBQThCLE1BQU0sZUFBZSxDQUFDO0FBR3JHLE9BQU8sRUFBRSxPQUFPLEVBQU8sU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7O0FBUS9DLE1BQU0sT0FBTywyQkFBMkI7SUFvQ2xCO0lBQStCO0lBQzVDO0lBQTZCO0lBbkNKLGlCQUFpQixDQUFNO0lBQ3ZELFFBQVEsQ0FBMEI7SUFDbEMsV0FBVyxHQUFLLGNBQWMsQ0FBQTtJQUM5QixTQUFTLENBQUs7SUFDZCxPQUFPLENBQUs7SUFDWixRQUFRLEdBQVksS0FBSyxDQUFDO0lBQzFCLGFBQWEsR0FBUyxDQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEQsWUFBWSxHQUFPLGFBQWEsQ0FBRTtJQUNsQyxNQUFNLEdBQU8sQ0FBQyxDQUFDO0lBQ2YsS0FBSyxHQUFPLEVBQUUsQ0FBQztJQUNmLE1BQU0sR0FBTyxDQUFDLENBQUMsQ0FBQztJQUNoQixhQUFhLENBQUs7SUFDbEIsVUFBVSxDQUFLO0lBQ2Ysa0JBQWtCLENBQU07SUFDeEIsTUFBTSxDQUFN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bUJBQW1CO2dCQTBCOUIsT0FBTztzQkFETixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsSG9zdExpc3RlbmVyLFZpZXdDaGlsZCxDaGFuZ2VEZXRlY3RvclJlZixPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVtYWlsLWNvbmZpZ3VyYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbWFpbC1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZW1haWwtY29uZmlndXJhdGlvbi5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVtYWlsQ29uZmlndXJhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG5cclxuICBAVmlld0NoaWxkKCdjb25maXJtYXRpb25Nb2RhbCcpIGNvbmZpcm1hdGlvbk1vZGFsOiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIFNlbGVjdGVkVGFiOmFueT0nSW5mcmEgUmVwb3J0J1xyXG4gIHN0YXJ0VGltZTphbnk7XHJcbiAgZW5kVGltZTphbnk7XHJcbiAgZHJvcERvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkcm9wZG93bkl0ZW1zOmFueVtdID0gWydBZG1pbicsJ1VzZXInLCdTdXBlciBBZG1pbiddXHJcbiAgc2VsZWN0ZWRSb2xlOmFueSA9ICdTdXBlciBBZG1pbicgO1xyXG4gIG9mZnNldDphbnkgPSAxO1xyXG4gIGxpbWl0OmFueSA9IDEwO1xyXG4gIHNvcnRCeTphbnkgPSAtMTtcclxuICBzb3J0Q29sdW1OYW1lOmFueTtcclxuICB0b3RhbENvdW50OmFueTtcclxuICBzZWFyY2hJbnN0YWxsYXRpb246IGFueTtcclxuICBub0RhdGE6IGFueTtcclxuICBsb2FkaW5nOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtczogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGVtYWlsdXNlckxpc3Q6IGFueTtcclxuICBkdW1teUVtYWlsTGlzdDphbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBzdG9yZUxpc3Q6IGFueTtcclxuICBFbWFpbDogYW55O1xyXG4gIHVzZXJOYW1lOiBhbnk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBjb25zdFxyXG4gICAgICB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIXRhcmdldC5jbG9zZXN0KCcuZHJvcGRvd24nKSkge1xyXG4gICAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UsXHJcbiBwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgc2VydmljZTogQ2xpZW50QXBpU2VydmljZSl7XHJcbiAgdGhpcy5zZXJ2aWNlLmNsaWVudERhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgaWYgKGUpIHtcclxuICAgICAgdGhpcy5jbGllbnRJZCA9IGUuY2xpZW50SWRcclxuICAgIH1cclxuICB9KVxyXG4gICAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgICAgdGhpcy5TZWxlY3RlZHRhYnModGhpcy5TZWxlY3RlZFRhYik7IFxyXG4gICAgICAgICAgdGhpcy5nZXRCcmFuZERldGFpbHMoKTtcclxuICAgICAgICAgIHRoaXMudXNlckxpc3QoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmZvckVhY2goKGl0ZW06YW55KSA9PiB7XHJcbiAgICAgICAgaWYoY2hlY2tlZCl7XHJcbiAgICAgICAgICBpdGVtLmluZnJhQWxlcnQgPSBjaGVja2VkO1xyXG4gICAgICAgIC8vICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgICB9ZWxzZSB7aXRlbS5pbmZyYUFsZXJ0ID0gZmFsc2V9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbXMoZXZlbnQ6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICBpdGVtLmluZnJhQWxlcnQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuY2hlY2tTZWxlY3RBbGwoKTtcclxuICAgIC8vIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTZWxlY3RBbGwoKSB7XHJcbiAgICBjb25zdCBhbGxTZWxlY3RlZCA9IHRoaXMuZW1haWx1c2VyTGlzdD8ucmVzdWx0LmV2ZXJ5KChpdGVtOmFueSkgPT4gaXRlbS5pbmZyYUFsZXJ0KTtcclxuICAgIGNvbnN0IHNlbGVjdEFsbENoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NlbGVjdEFsbENoZWNrYm94JykgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIGlmIChzZWxlY3RBbGxDaGVja2JveCkge1xyXG4gICAgICBzZWxlY3RBbGxDaGVja2JveC5jaGVja2VkID0gYWxsU2VsZWN0ZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgaWYodGhpcy5lbmRUaW1lID4gdGhpcy5zdGFydFRpbWUpe1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmVtYWlsdXNlckxpc3Q/LnJlc3VsdC5tYXAoKGl0ZW06YW55LGluZGV4OmFueSk9PntcclxuICAgICAgICByZXR1cm4ge2VtYWlsOml0ZW0uZW1haWwsaW5mcmFBbGVydDppdGVtLmluZnJhQWxlcnR9O1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGVVc2VyTGlzdCgpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnSW52YWxpZCBUaW1lIFRha2VuJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbFNlbGVjdGVkSXRlbXMoKXtcclxuICAgIHRoaXMuZW1haWx1c2VyTGlzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kdW1teUVtYWlsTGlzdCkpO1xyXG4gICAgdGhpcy5jaGVja1NlbGVjdEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgU2VsZWN0ZWR0YWJzKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLlNlbGVjdGVkVGFiID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RJdGVtKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb2xlID0gdmFsdWU7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gZmFsc2U7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgICAvLyB0aGlzLnRhYmxlRGF0YS5maWx0ZXIgPSB0aGlzLnNlbGVjdGVkSXRlbSA9PT0gXCJBbGxcIiA/IFtdIDogdmFsdWVcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmRyb3BEb3duID0gIXRoaXMuZHJvcERvd247XHJcbiAgfVxyXG4gIHNlYXJjaEluc3RhbGxhdGlvblRhYmxlKCkge1xyXG4gICAgICAgdGhpcy51c2VyTGlzdCgpXHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UocGFnZU9mZnNldDogYW55KSB7XHJcbiAgICB0aGlzLm9mZnNldCA9IHBhZ2VPZmZzZXQ7XHJcbiAgICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIFxyXG4gIG9uUGFnZVNpemVDaGFuZ2UocGFnZVNpemU6IGFueSkge1xyXG4gICAgdGhpcy5saW1pdCA9IHBhZ2VTaXplO1xyXG4gICB0aGlzLnVzZXJMaXN0KCk7XHJcbiAgXHJcbiAgfVxyXG4gIHNvcnREYXRhKHZhbHVlOmFueSl7XHJcbiAgICB0aGlzLnNvcnRDb2x1bU5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuc29ydEJ5ICo9IC0xO1xyXG4gICAgdGhpcy51c2VyTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgc3RvcmVEZXRhaWxzKG9iajphbnksZW1haWw6YW55LHVzZXJOYW1lOmFueSl7XHJcbiAgICB0aGlzLnN0b3JlTGlzdCA9IG9iajtcclxuICAgIHRoaXMuRW1haWwgPSBlbWFpbDtcclxuICAgIHRoaXMudXNlck5hbWUgPSB1c2VyTmFtZTtcclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLmNvbmZpcm1hdGlvbk1vZGFsLCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmREZXRhaWxzKCl7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmdldEJyYW5kRGV0YWlscyh0aGlzLmNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OihyZXM6YW55KT0+e1xyXG4gICAgICAgIGlmKHJlcyYmcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlRGF0YSA9IHJlcz8uZGF0YT8udGlja2V0Q29uZmlncztcclxuICAgICAgICAgIHRoaXMuc3RhcnRUaW1lID0gcmVzcG9uc2VEYXRhPy5pbmZyYVJlcG9ydD8uc3RhcnQ7XHJcbiAgICAgICAgICB0aGlzLmVuZFRpbWUgPSByZXNwb25zZURhdGE/LmluZnJhUmVwb3J0Py5lbmQ7XHJcbiAgICAgICAgfWVsc2V7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6KGVycik9PntcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgfSxcclxuICAgICB9KVxyXG4gIH1cclxuXHJcbiAgdXNlckxpc3QoKXtcclxuICAgICBsZXQgZGF0YSA9e1xyXG4gICAgICBcImNsaWVudElkXCI6dGhpcy5jbGllbnRJZCxcclxuICAgICAgXCJyb2xlXCI6dGhpcy5zZWxlY3RlZFJvbGUucmVwbGFjZSgnICcsJycpLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgIFwic2VhcmNoVmFsdWVcIjp0aGlzLnNlYXJjaEluc3RhbGxhdGlvbixcclxuICAgICAgXCJzb3J0Q29sdW1OYW1lXCI6dGhpcy5zb3J0Q29sdW1OYW1lLFxyXG4gICAgICBcInNvcnRCeVwiOnRoaXMuc29ydEJ5LFxyXG4gICAgICBcIm9mZnNldFwiOnRoaXMub2Zmc2V0LFxyXG4gICAgICBcImxpbWl0XCI6dGhpcy5saW1pdFxyXG4gICAgIH1cclxuICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgdGhpcy5zZXJ2aWNlLmVtYWlsVXNlckxpc3QoZGF0YSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZT09JzIwMCcgJiYgcmVzPy5kYXRhPy5yZXN1bHQ/Lmxlbmd0aCl7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVtYWlsdXNlckxpc3QgPSByZXMuZGF0YTtcclxuICAgICAgICB0aGlzLmR1bW15RW1haWxMaXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmVtYWlsdXNlckxpc3QpKVxyXG4gICAgICAgIFxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICB9KVxyXG5cclxuICB9XHJcblxyXG4gIHVwZGF0ZVVzZXJMaXN0KCl7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgY2xpZW50SWQ6dGhpcy5jbGllbnRJZCxcclxuICAgICAgc3RhcnQ6IHRoaXMuc3RhcnRUaW1lLFxyXG4gICAgICBlbmQ6IHRoaXMuZW5kVGltZSxcclxuICAgICAgXCJ1c2VyTGlzdFwiOiB0aGlzLnNlbGVjdGVkSXRlbXMsXHJcbiAgfVxyXG4gIHRoaXMuc2VydmljZS5zYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICBpZihyZXMgJiYgcmVzLmNvZGU9PScyMDAnKXtcclxuICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzPy5tZXNzYWdlKTtcclxuICAgIH1cclxuICAgfSxcclxuICAgIGVycm9yOihlcnIpPT57XHJcbiAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yKVxyXG4gICAgfSxcclxuIH0pXHJcblxyXG59XHJcblxyXG59XHJcblxyXG4iLCJcclxuPGRpdiBjbGFzcz1cIm1iLTUgcHktMyBweC01XCI+XHJcbiAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXAgbWItMTBcIj5cclxuICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbVwiIChjbGljayk9XCJTZWxlY3RlZHRhYnMoJ0luZnJhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0luZnJhIFJlcG9ydCcgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgSW5mcmEgUmVwb3J0XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwhLS0gPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdEYXRhIFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0gJ0RhdGEgUmVwb3J0JyA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICBEYXRhIFJlcG9ydFxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT4gICAgXHJcbiAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gZGlzYWJsZWQtbGlzdCBcIiAoY2xpY2spPVwiU2VsZWN0ZWR0YWJzKCdJbnNpZ2h0IFJlcG9ydCcpXCI+XHJcbiAgICAgICAgICAgIDxhIFtuZ0NsYXNzXT1cIlNlbGVjdGVkVGFiID09PSdJbnNpZ2h0IFJlcG9ydCcgPyAnYWN0aXZlJyA6JydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG1lLTNcIj5JbnNpZ2h0IFJlcG9ydDwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGRpc2FibGVkLWxpc3QgXCIgKGNsaWNrKT1cIlNlbGVjdGVkdGFicygnQWxsJylcIj48YSBbbmdDbGFzc109XCJTZWxlY3RlZFRhYiA9PT0nQWxsJyA/ICdhY3RpdmUnIDonJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG1lLTNcIj5BbGw8L2E+XHJcbiAgICAgICAgPC9saT4gLS0+XHJcbiAgICA8L3VsPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5TZW5kIERhaWx5IFJlcG9ydCBhdDwvc3Bhbj4gPHNwYW4+IDxpbnB1dCB0eXBlPVwidGltZVwiIFsobmdNb2RlbCldPVwic3RhcnRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+PHNwYW4gY2xhc3M9XCJ0aW1pbmd0ZXh0IGZ3LWJvbGRcIj5hbmQ8L3NwYW4+PHNwYW4+PGlucHV0IHR5cGU9XCJ0aW1lXCIgWyhuZ01vZGVsKV09XCJlbmRUaW1lXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIG14LTVcIj48L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBkLWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlIGZ3LWJvbGRcIj5Vc2VycyBMaXN0PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj5TZWxlY3QgeW91ciByZXF1aXJlZCBlbWFpbCAmIHNjaGVkdWxlIHRoZSBtYWlsIHRpbWluZyBhY2NvcmRpbmdseTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj4gICBcclxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdy1hdXRvIHBzLTMgbWUtMlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJzZWFyY2hJbnN0YWxsYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNlYXJjaEluc3RhbGxhdGlvblRhYmxlKClcIiAvPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmUgdy0xNTBweCBtdC01IG1iLTUgbXMtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRSb2xlID8gc2VsZWN0ZWRSb2xlIDogZHJvcGRvd25JdGVtc1swXX19XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk01IDcuNUwxMCAxMi41TDE1IDcuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93blwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHotMSB0b3AtNTBweCBlbmQtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkcm9wZG93bkl0ZW1zXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJzZWxlY3RlZFJvbGUgPT09IGl0ZW0gPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiPnt7aXRlbX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhbm9EYXRhIFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIGlkPVwic2VsZWN0QWxsQ2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgndXNlck5hbWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtZS0xXCI+VXNlcjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICd1c2VyTmFtZScgJiYgc29ydEJ5ICE9PSAxIHx8IHNvcnRDb2x1bU5hbWUgIT09ICd1c2VyTmFtZScgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxLjMzMzM3VjEwLjY2NjdNNi4wMDAxNiAxMC42NjY3TDEwLjY2NjggNi4wMDAwNE02LjAwMDE2IDEwLjY2NjdMMS4zMzM1IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAndXNlck5hbWUnICYmIHNvcnRCeSAhPT0gLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEwLjY2NjdMNi4wMDAxNiAxLjMzMzM3TTYuMDAwMTYgMS4zMzMzN0wxLjMzMzUgNi4wMDAwNE02LjAwMDE2IDEuMzMzMzdMMTAuNjY2OCA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGg+PGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInNvcnREYXRhKCdlbWFpbCcpXCI+RW1haWxcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzb3J0Q29sdW1OYW1lID09PSAnZW1haWwnICYmIHNvcnRCeSAhPT0gMSB8fCBzb3J0Q29sdW1OYW1lICE9PSAnZW1haWwnIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMS4zMzMzN1YxMC42NjY3TTYuMDAwMTYgMTAuNjY2N0wxMC42NjY4IDYuMDAwMDRNNi4wMDAxNiAxMC42NjY3TDEuMzMzNSA2LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2VtYWlsJyAmJiBzb3J0QnkgIT09IC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDAxNiAxMC42NjY3TDYuMDAwMTYgMS4zMzMzN002LjAwMDE2IDEuMzMzMzdMMS4zMzM1IDYuMDAwMDRNNi4wMDAxNiAxLjMzMzM3TDEwLjY2NjggNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoPjxkaXYgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzb3J0RGF0YSgnYXNzaWduZWQnKVwiPlN0b3JlIENvdW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic29ydENvbHVtTmFtZSA9PT0gJ2Fzc2lnbmVkJyAmJiBzb3J0QnkgIT09IDEgfHwgc29ydENvbHVtTmFtZSAhPT0gJ2Fzc2lnbmVkJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02LjAwMDE2IDEuMzMzMzdWMTAuNjY2N002LjAwMDE2IDEwLjY2NjdMMTAuNjY2OCA2LjAwMDA0TTYuMDAwMTYgMTAuNjY2N0wxLjMzMzUgNi4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNvcnRDb2x1bU5hbWUgPT09ICdhc3NpZ25lZCcgJiYgc29ydEJ5ICE9PSAtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYuMDAwMTYgMTAuNjY2N0w2LjAwMDE2IDEuMzMzMzdNNi4wMDAxNiAxLjMzMzM3TDEuMzMzNSA2LjAwMDA0TTYuMDAwMTYgMS4zMzMzN0wxMC42NjY4IDYuMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+PC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVtYWlsdXNlckxpc3Q/LnJlc3VsdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBjbGFzcz1cIm1lLTVcIiBbKG5nTW9kZWwpXT1cIml0ZW0uaW5mcmFBbGVydFwiIChjaGFuZ2UpPVwic2VsZWN0SXRlbXMoJGV2ZW50LCBpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbT8udXNlck5hbWUgPyBpdGVtPy51c2VyTmFtZSA6ICdOQScgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgaXRlbT8uZW1haWwgPyBpdGVtPy5lbWFpbCA6J05BJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtdGl0bGUgdGV4dC1wcmltYXJ5IGN1cnNvci1wb2ludGVyIHRleHQtZGVjb3JhdGlvbi11bmRlcmxpbmUgbWItMVwiIChjbGljayk9XCJzdG9yZURldGFpbHMoaXRlbT8uYXNzaWduZWRWYWx1ZSxpdGVtPy51c2VyTmFtZSxpdGVtPy5lbWFpbClcIj57eyBpdGVtPy5hc3NpZ25lZCB9fTwvZGl2PjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJsaW1pdFwiIFtjdXJyZW50UGFnZV09XCJvZmZzZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG90YWxJdGVtc109XCJlbWFpbHVzZXJMaXN0Py5jb3VudFwiIFtwYWdpbmF0aW9uU2l6ZXNdPVwiWzEwLDIwLDMwXVwiIFtwYWdlU2l6ZV09XCJsaW1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCIgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcblxyXG4gICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGJ0bi1kZWZhdWx0IG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2FuY2VsXHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLWRlZmF1bHRcIiAoY2xpY2spPVwidXBkYXRlU2VsZWN0ZWRJdGVtcygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBDaGFnZXNcclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgPC9kaXY+ICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbmZpcm1hdGlvbk1vZGFsIGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTggY2FyZC10aXRsZVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPlxyXG4gICAgICAgICAgICBTdG9yZXMgTGlzdCBvZiB0aGUgdXNlclxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG10LTEwIG1iLTEwXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTUgcHJvZmlsZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZnctc2VtaWJvbGRcIj57e0VtYWlsLnNsaWNlKDAsMikgfCB1cHBlcmNhc2V9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlMSBtYi0xIGZ3LWJvbGRcIj57e3VzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN1YlwiPnt7RW1haWx9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHAtNVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGlzdCBvZiBzdG9yZUxpc3RcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbWUtM1wiPnt7bGlzdD8uc3RvcmVOYW1lfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy0xMDBcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+Q2xvc2U8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+Il19
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { Component, HostListener, Input, forwardRef } from '@angular/core';
|
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "
|
|
4
|
+
import * as i1 from "../../services/client-api.service";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
5
6
|
const SELECT_CONTROL_VALUE_ACCESSOR = {
|
|
6
7
|
provide: NG_VALUE_ACCESSOR,
|
|
7
8
|
useExisting: forwardRef(() => ReactiveSelectComponent),
|
|
8
9
|
multi: true,
|
|
9
10
|
};
|
|
10
11
|
export class ReactiveSelectComponent {
|
|
12
|
+
apiService;
|
|
13
|
+
cd;
|
|
11
14
|
onTouched;
|
|
12
15
|
onChanged;
|
|
13
16
|
isDisabled;
|
|
@@ -18,6 +21,20 @@ export class ReactiveSelectComponent {
|
|
|
18
21
|
isOpened = false;
|
|
19
22
|
selected = null;
|
|
20
23
|
selectedId;
|
|
24
|
+
instanceId;
|
|
25
|
+
constructor(apiService, cd) {
|
|
26
|
+
this.apiService = apiService;
|
|
27
|
+
this.cd = cd;
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.instanceId = crypto.randomUUID();
|
|
31
|
+
this.apiService.dropDownTrigger.subscribe((e) => {
|
|
32
|
+
if (e !== this.instanceId) {
|
|
33
|
+
this.isOpened = false;
|
|
34
|
+
this.cd.detectChanges();
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
21
38
|
writeValue(val) {
|
|
22
39
|
this.selectedId = val;
|
|
23
40
|
this.selected = this.data.filter((item) => item?.[this.idField] === val)[0];
|
|
@@ -59,13 +76,17 @@ export class ReactiveSelectComponent {
|
|
|
59
76
|
}
|
|
60
77
|
return false;
|
|
61
78
|
}
|
|
62
|
-
|
|
63
|
-
|
|
79
|
+
openDropdown() {
|
|
80
|
+
this.isOpened = !this.isOpened;
|
|
81
|
+
this.apiService.dropDownTrigger.next(this.instanceId);
|
|
82
|
+
}
|
|
83
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ReactiveSelectComponent, deps: [{ token: i1.ClientApiService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
84
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: { idField: "idField", nameField: "nameField", label: "label", data: "data" }, host: { listeners: { "document:click": "onClick($event)" } }, providers: [SELECT_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4\">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-select .items:hover,.custom-select .tems.focus,.custom-select .items.active,.custom-select .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.custom-select .drop-list{max-height:300px;overflow:scroll}.custom-select .dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important;cursor:default;white-space:nowrap}.custom-select .text{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.custom-select .disable{pointer-events:none;background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
64
85
|
}
|
|
65
86
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: ReactiveSelectComponent, decorators: [{
|
|
66
87
|
type: Component,
|
|
67
|
-
args: [{ selector: 'lib-reactive-select', providers: [SELECT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"
|
|
68
|
-
}], propDecorators: { idField: [{
|
|
88
|
+
args: [{ selector: 'lib-reactive-select', providers: [SELECT_CONTROL_VALUE_ACCESSOR], template: "<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4\">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: [".custom-select .items:hover,.custom-select .tems.focus,.custom-select .items.active,.custom-select .camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.custom-select .drop-list{max-height:300px;overflow:scroll}.custom-select .dropselect{color:var(--Gray-500, #667085);font-family:Inter;font-size:16px;font-style:normal;font-weight:400;line-height:24px;height:45px!important;cursor:default;white-space:nowrap}.custom-select .text{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.custom-select .disable{pointer-events:none;background-color:#f9fafb!important}\n"] }]
|
|
89
|
+
}], ctorParameters: () => [{ type: i1.ClientApiService }, { type: i0.ChangeDetectorRef }], propDecorators: { idField: [{
|
|
69
90
|
type: Input
|
|
70
91
|
}], nameField: [{
|
|
71
92
|
type: Input
|
|
@@ -77,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
77
98
|
type: HostListener,
|
|
78
99
|
args: ['document:click', ['$event']]
|
|
79
100
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvcmVhY3RpdmUtc2VsZWN0L3JlYWN0aXZlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL3JlYWN0aXZlLXNlbGVjdC9yZWFjdGl2ZS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUd6RSxNQUFNLDZCQUE2QixHQUFhO0lBQzlDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztJQUN0RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFRRixNQUFNLE9BQU8sdUJBQXVCO0lBZWQ7SUFBc0M7SUFibEQsU0FBUyxDQUFXO0lBQ3BCLFNBQVMsQ0FBVztJQUNsQixVQUFVLENBQVU7SUFDckIsT0FBTyxDQUFRO0lBQ2YsU0FBUyxDQUFRO0lBQ2pCLEtBQUssQ0FBUTtJQUNiLElBQUksQ0FBSztJQUNSLFFBQVEsR0FBWSxLQUFLLENBQUE7SUFDekIsUUFBUSxHQUErQixJQUFJLENBQUE7SUFDM0MsVUFBVSxDQUFpQjtJQUNyQyxVQUFVLENBQVM7SUFHbkIsWUFBb0IsVUFBNEIsRUFBVSxFQUFxQjtRQUEzRCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO0lBRS9F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QUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQThDTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkluaXQsIFByb3ZpZGVyLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ2xpZW50QXBpU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsaWVudC1hcGkuc2VydmljZSc7XHJcblxyXG5jb25zdCBTRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmVhY3RpdmVTZWxlY3RDb21wb25lbnQpLFxyXG4gIG11bHRpOiB0cnVlLFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItcmVhY3RpdmUtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vcmVhY3RpdmUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcclxuICBwcm92aWRlcnM6IFtTRUxFQ1RfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJlYWN0aXZlU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgb25Ub3VjaGVkOiBGdW5jdGlvbjtcclxuICBwcml2YXRlIG9uQ2hhbmdlZDogRnVuY3Rpb247XHJcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaWRGaWVsZDogc3RyaW5nXHJcbiAgQElucHV0KCkgbmFtZUZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nXHJcbiAgQElucHV0KCkgZGF0YTogYW55XHJcbiAgcHJvdGVjdGVkIGlzT3BlbmVkOiBib29sZWFuID0gZmFsc2VcclxuICBwcm90ZWN0ZWQgc2VsZWN0ZWQ6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBudWxsID0gbnVsbFxyXG4gIHByb3RlY3RlZCBzZWxlY3RlZElkOiBzdHJpbmcgfCBudW1iZXJcclxuICBpbnN0YW5jZUlkOiBzdHJpbmc7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgaWYgKGUgIT09IHRoaXMuaW5zdGFuY2VJZCkge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWw6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZElkID0gdmFsXHJcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5kYXRhLmZpbHRlcigoaXRlbTogUmVjb3JkPHN0cmluZywgYW55PikgPT4gaXRlbT8uW3RoaXMuaWRGaWVsZF0gPT09IHZhbClbMF1cclxuICB9XHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlZCA9IGZuXHJcbiAgfVxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cclxuICB9XHJcbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZFxyXG5cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0KGl0ZW06IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuICAgIHRoaXMub25Ub3VjaGVkKClcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBpdGVtXHJcbiAgICB0aGlzLnNlbGVjdGVkSWQgPSBpdGVtPy5bdGhpcy5pZEZpZWxkXVxyXG4gICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlXHJcbiAgICB0aGlzLm9uQ2hhbmdlZCh0aGlzLnNlbGVjdGVkSWQpXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzRGlzYWJsZWQpIHtcclxuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgaWYgKCF0aGlzLmlzQ29tcG9uZW50Q2xpY2tlZCh0YXJnZXRFbGVtZW50KSkge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNDb21wb25lbnRDbGlja2VkKHRhcmdldEVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXJlbnRFbGVtZW50ID0gdGFyZ2V0RWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgaWYgKHBhcmVudEVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgY2xpY2tlZE9uQ29tcG9uZW50ID0gcGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2N1c3RvbS1zZWxlY3QnKTtcclxuICAgICAgaWYgKGNsaWNrZWRPbkNvbXBvbmVudCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29tcG9uZW50Q2xpY2tlZChwYXJlbnRFbGVtZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgb3BlbkRyb3Bkb3duKCl7XHJcbiAgICB0aGlzLmlzT3BlbmVkID0gIXRoaXMuaXNPcGVuZWQ7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuZHJvcERvd25UcmlnZ2VyLm5leHQodGhpcy5pbnN0YW5jZUlkKVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjdXN0b20tc2VsZWN0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCAqbmdJZj1cImxhYmVsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3tsYWJlbH19PC9sYWJlbD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwib3BlbkRyb3Bkb3duKClcIiBbbmdDbGFzc109XCJpc0Rpc2FibGVkID8gJ2Rpc2FibGUnIDogJydcIiBjbGFzcz1cImZvcm0tc2VsZWN0IGRyb3BzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWQ/LltuYW1lRmllbGRdfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzT3BlbmVkXCIgY2xhc3M9XCJjYXJkIHB5LTIgdy0xMDAgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgei0xIGRyb3AtbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIiAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpdGVtPy5baWRGaWVsZF0gPT09IHNlbGVjdGVkPy5baWRGaWVsZF0gPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0IHB4LTUgaXRlbXMgY3Vyc29yLXBvaW50ZXIgcHktNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW0/LltuYW1lRmllbGRdfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -18,6 +18,7 @@ export class ClientApiService {
|
|
|
18
18
|
clientId = new BehaviorSubject('');
|
|
19
19
|
clientData = new BehaviorSubject(null);
|
|
20
20
|
clientFormData = new BehaviorSubject({ value: null, type: null, form: null });
|
|
21
|
+
dropDownTrigger = new BehaviorSubject(null);
|
|
21
22
|
constructor(http, gs) {
|
|
22
23
|
this.http = http;
|
|
23
24
|
this.gs = gs;
|
|
@@ -148,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
|
148
149
|
providedIn: 'root'
|
|
149
150
|
}]
|
|
150
151
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQzs7OztBQUd4QyxNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLGdCQUFnQjtJQWdCUDtJQUF5QjtJQWQ3QyxZQUFZLENBQU87SUFDbkIsZ0JBQWdCLENBQVE7SUFDeEIsV0FBVyxDQUFTO0lBQ3BCLFlBQVksQ0FBUztJQUNyQixVQUFVLENBQVM7SUFDbkIsYUFBYSxDQUFRO0lBSXJCLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFDM0MsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFNLEVBQUMsS0FBSyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJLEVBQUMsQ0FBQyxDQUFBO0lBRzdFLFlBQW9CLElBQWUsRUFBVSxFQUFxQjtRQUE5QyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDaEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBSyxFQUFDLEVBQUU7WUFBQyxJQUFHLENBQUMsRUFBQztnQkFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMs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LENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsNkJBQTZCLEVBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEYsQ0FBQztJQUVBLGNBQWMsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDM0MsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDckQsQ0FBQzt1R0FsS1UsZ0JBQWdCOzJHQUFoQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktZ2xvYmFsJztcclxuY29uc3QgRVhDRUxfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcclxuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWVudEFwaVNlcnZpY2Uge1xyXG5cclxuICBjbGllbnRBcGlVcmw6c3RyaW5nXHJcbiAgbWlkZGxld2FyZUFwaVVybDpzdHJpbmc7XHJcbiAgc3RvcmVBcGlVcmw6IHN0cmluZztcclxuICByZXBvcnRBcGlVcmw6IHN0cmluZztcclxuICB1c2VyQXBpVXJsOiBzdHJpbmc7XHJcbiAgdGlja2V0c0FwaVVybDpzdHJpbmc7XHJcblxyXG5cclxuXHJcbiAgY2xpZW50SWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpXHJcbiAgY2xpZW50RGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKVxyXG4gIGNsaWVudEZvcm1EYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KHt2YWx1ZTpudWxsLCB0eXBlOm51bGwsIGZvcm06bnVsbH0pXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6SHR0cENsaWVudCwgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlOmFueSk9PntpZihlKXtcclxuICAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSBlLmNsaWVudEFwaVVybDtcclxuICAgICAgdGhpcy5taWRkbGV3YXJlQXBpVXJsID0gZS5taWRkbGV3YXJlQXBpVXJsO1xyXG4gICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZS5zdG9yZUFwaVVybDtcclxuICAgICAgdGhpcy5yZXBvcnRBcGlVcmwgPSBlLnJlcG9ydEFwaVVybDtcclxuICAgICAgdGhpcy51c2VyQXBpVXJsID0gZS51c2VyQXBpVXJsO1xyXG4gICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlLnRpY2tldHNBcGlVcmw7XHJcbiAgICB9fSlcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUuc3Vic2NyaWJlKChlOmFueSk9PnsgICAgICBcclxuICAgICAgaWYoZSl7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZC5uZXh0KGUuY2xpZW50KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICB9XHJcblxyXG4gIGdldEJyYW5kRGV0YWlscyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9jbGllbnQtZGV0YWlscy8ke2lkfWApXHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5Q29kZXMoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1pZGRsZXdhcmVBcGlVcmx9L2NvdW50cnktY29kZWAsKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQnJhbmRJbmZvKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2JyYW5kLWluZm8vJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVCaWxsaW5nRGV0YWlscyhpZDpzdHJpbmcsIGZyb21kYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9iaWxsaW5nLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTaWduYXRvcnlEZXRhaWxzKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3NpZ25hdG9yeS1kZXRhaWxzLyR7aWR9YCwgZnJvbWRhdGEgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0Q29uZmlndXJhdGlvbihpZDpzdHJpbmcsIGZyb21kYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS90aWNrZXQtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZlYXR1cmVDb25maWd1cmF0aW9uKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2ZlYXR1cmUtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24oaWQ6c3RyaW5nLCBmcm9tZGF0YTphbnkpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vZG9tYWluLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG4gIHVwZGF0ZVVzZXJDb25maWd1cmF0aW9uKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3VzZXItY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcbiAgdXBkYXRlRG9jdW1lbnRzKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2RvY3VtZW50cy8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcbiAgZ2V0U3RvcmVMaXN0KGlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXN0b3Jlcz9jbGllbnRJZD0ke2lkfWApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVhdWRpdENvbmZpZ3VyYXRpb24oZnJvbWRhdGE6YW55LCBpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2F1ZGl0LWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICBnZXRBdWRpdENvbmZpZyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9hdWRpdC1jb25maWd1cmF0aW9uLyR7aWR9YClcclxuICB9XHJcblxyXG4gIGFkZFJlcG9ydChpZDpzdHJpbmcsIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2NyZWF0ZS1yZXBvcnQvJHtpZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50UmVwb3J0cyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmVwb3J0QXBpVXJsfS9nZXQtY2xpZW50LXJlcG9ydHMvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0U2luZ2xlUmVwb3J0KGlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2dldC1yZXBvcnQvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVwb3J0KGlkOnN0cmluZywgZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMucmVwb3J0QXBpVXJsfS91cGRhdGUtcmVwb3J0LyR7aWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENzbVVzZXJzKCk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtY3NtLXVzZXJzYCApXHJcbiAgfVxyXG5cclxuICBnZXRPcHNVc2VycygpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LW9wcy11c2Vyc2AgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRyaWVzKCk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWlkZGxld2FyZUFwaVVybH0vZ2V0LWNvdW50cmllc2AgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RhdGVzKGNvdW50cnk6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9nZXQtY291bnRyeS1zdGF0ZXM/Y291bnRyeT0ke2NvdW50cnl9YCApXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDaXRpZXMoY291bnRyeTpzdHJpbmcsIHN0YXRlOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWlkZGxld2FyZUFwaVVybH0vZ2V0LXN0YXRlLWNpdGllcz9jb3VudHJ5PSR7Y291bnRyeX0mc3RhdGU9JHtzdGF0ZX1gIClcclxuICB9XHJcblxyXG4gIHNwb2NUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MtbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBzcG9jVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zcG9jLWxpc3RgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBzcG9jSWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MvJHtzdG9yZUlkfWAsIHtzcG9jSWQ6c3BvY0lkfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBzcG9jSWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZGVsZXRlLXNwb2MvJHtzdG9yZUlkfWAsIHtzcG9jSWQ6c3BvY0lkfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3VwZGF0ZS1zcG9jLyR7c3RvcmVJZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZpdHlMb2dzKGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2FjdGl2aXR5LWxvZ2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBhc3NpZ25Dc20oZGF0YTphbnkpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51c2VyQXBpVXJsfS9hc3NpZ24tY2xpZW50YCwgZGF0YSApXHJcbiAgfVxyXG5cclxuICBnZXRBc3NpZ25lZFVzZXJzKGNsaWVudElkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWFzc2lnbi1jbGllbnQ/Y2xpZW50SWQ9JHtjbGllbnRJZH1gIClcclxuICB9XHJcbiAgXHJcbiAgZW1haWxVc2VyTGlzdChkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2VtYWlsVXNlckxpc3RgLGRhdGEpXHJcbiAgfVxyXG5cclxuICBzYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3NhdmVJbmZyYUVtYWlsQ29uZmlnYCxkYXRhKVxyXG4gIH1cclxuXHJcbiAgIHNhdmVBc1RlbXBsYXRlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcbiAgXHJcbn1cclxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXNldHRpbmdzL3NyYy9saWIvc2VydmljZXMvY2xpZW50LWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQzs7OztBQUd4QyxNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLGdCQUFnQjtJQWtCUDtJQUF5QjtJQWhCN0MsWUFBWSxDQUFPO0lBQ25CLGdCQUFnQixDQUFRO0lBQ3hCLFdBQVcsQ0FBUztJQUNwQixZQUFZLENBQVM7SUFDckIsVUFBVSxDQUFTO0lBQ25CLGFBQWEsQ0FBUTtJQUlyQixRQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFDLENBQUE7SUFDMUMsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBQzNDLGNBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBTSxFQUFDLEtBQUssRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQTtJQUM3RSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFJaEQsWUFBb0IsSUFBZSxFQUFVLEVBQXFCO1FBQTlDLFNBQUksR0FBSixJQUFJLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFLLEVBQUMsRUFBRTtZQUFDLElBQUcs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SUFFRCxvQkFBb0IsQ0FBQyxJQUFRO1FBQzNCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSw2QkFBNkIsRUFBQyxJQUFJLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBRUEsY0FBYyxDQUFDLE1BQVcsRUFBRSxRQUFnQjtRQUMzQyxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsR0FBRyxlQUFlLENBQUMsQ0FBQztJQUNyRCxDQUFDO3VHQXBLVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07OzJGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSAneGxzeCc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xyXG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpZW50QXBpU2VydmljZSB7XHJcblxyXG4gIGNsaWVudEFwaVVybDpzdHJpbmdcclxuICBtaWRkbGV3YXJlQXBpVXJsOnN0cmluZztcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIHJlcG9ydEFwaVVybDogc3RyaW5nO1xyXG4gIHVzZXJBcGlVcmw6IHN0cmluZztcclxuICB0aWNrZXRzQXBpVXJsOnN0cmluZztcclxuXHJcblxyXG5cclxuICBjbGllbnRJZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJylcclxuICBjbGllbnREYXRhID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY2xpZW50Rm9ybURhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oe3ZhbHVlOm51bGwsIHR5cGU6bnVsbCwgZm9ybTpudWxsfSlcclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6SHR0cENsaWVudCwgcHJpdmF0ZSBnczpHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlOmFueSk9PntpZihlKXtcclxuICAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSBlLmNsaWVudEFwaVVybDtcclxuICAgICAgdGhpcy5taWRkbGV3YXJlQXBpVXJsID0gZS5taWRkbGV3YXJlQXBpVXJsO1xyXG4gICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZS5zdG9yZUFwaVVybDtcclxuICAgICAgdGhpcy5yZXBvcnRBcGlVcmwgPSBlLnJlcG9ydEFwaVVybDtcclxuICAgICAgdGhpcy51c2VyQXBpVXJsID0gZS51c2VyQXBpVXJsO1xyXG4gICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlLnRpY2tldHNBcGlVcmw7XHJcbiAgICB9fSlcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUuc3Vic2NyaWJlKChlOmFueSk9PnsgICAgICBcclxuICAgICAgaWYoZSl7XHJcbiAgICAgICAgdGhpcy5jbGllbnRJZC5uZXh0KGUuY2xpZW50KVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICB9XHJcblxyXG4gIGdldEJyYW5kRGV0YWlscyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9jbGllbnQtZGV0YWlscy8ke2lkfWApXHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJ5Q29kZXMoKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLm1pZGRsZXdhcmVBcGlVcmx9L2NvdW50cnktY29kZWAsKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQnJhbmRJbmZvKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2JyYW5kLWluZm8vJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVCaWxsaW5nRGV0YWlscyhpZDpzdHJpbmcsIGZyb21kYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9iaWxsaW5nLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVTaWduYXRvcnlEZXRhaWxzKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3NpZ25hdG9yeS1kZXRhaWxzLyR7aWR9YCwgZnJvbWRhdGEgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGlja2V0Q29uZmlndXJhdGlvbihpZDpzdHJpbmcsIGZyb21kYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMuY2xpZW50QXBpVXJsfS90aWNrZXQtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZlYXR1cmVDb25maWd1cmF0aW9uKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2ZlYXR1cmUtY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcblxyXG4gIHVwZGF0ZURvbWFpbkRldGFpbENvbmZpZ3VyYXRpb24oaWQ6c3RyaW5nLCBmcm9tZGF0YTphbnkpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dChgJHt0aGlzLmNsaWVudEFwaVVybH0vZG9tYWluLWRldGFpbHMvJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG4gIHVwZGF0ZVVzZXJDb25maWd1cmF0aW9uKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L3VzZXItY29uZmlndXJhdGlvbi8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcbiAgdXBkYXRlRG9jdW1lbnRzKGlkOnN0cmluZywgZnJvbWRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2RvY3VtZW50cy8ke2lkfWAsIGZyb21kYXRhIClcclxuICB9XHJcbiAgZ2V0U3RvcmVMaXN0KGlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXN0b3Jlcz9jbGllbnRJZD0ke2lkfWApXHJcbiAgfVxyXG5cclxuICB1cGRhdGVhdWRpdENvbmZpZ3VyYXRpb24oZnJvbWRhdGE6YW55LCBpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2F1ZGl0LWNvbmZpZ3VyYXRpb24vJHtpZH1gLCBmcm9tZGF0YSApXHJcbiAgfVxyXG5cclxuICBnZXRBdWRpdENvbmZpZyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9hdWRpdC1jb25maWd1cmF0aW9uLyR7aWR9YClcclxuICB9XHJcblxyXG4gIGFkZFJlcG9ydChpZDpzdHJpbmcsIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2NyZWF0ZS1yZXBvcnQvJHtpZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2xpZW50UmVwb3J0cyhpZDpzdHJpbmcpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMucmVwb3J0QXBpVXJsfS9nZXQtY2xpZW50LXJlcG9ydHMvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgZ2V0U2luZ2xlUmVwb3J0KGlkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXBvcnRBcGlVcmx9L2dldC1yZXBvcnQvJHtpZH1gKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmVwb3J0KGlkOnN0cmluZywgZGF0YTphbnkpOk9ic2VydmFibGU8YW55PntcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KGAke3RoaXMucmVwb3J0QXBpVXJsfS91cGRhdGUtcmVwb3J0LyR7aWR9YCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldENzbVVzZXJzKCk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuY2xpZW50QXBpVXJsfS9nZXQtY3NtLXVzZXJzYCApXHJcbiAgfVxyXG5cclxuICBnZXRPcHNVc2VycygpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vZ2V0LW9wcy11c2Vyc2AgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsQ291bnRyaWVzKCk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWlkZGxld2FyZUFwaVVybH0vZ2V0LWNvdW50cmllc2AgKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RhdGVzKGNvdW50cnk6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57IFxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5taWRkbGV3YXJlQXBpVXJsfS9nZXQtY291bnRyeS1zdGF0ZXM/Y291bnRyeT0ke2NvdW50cnl9YCApXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDaXRpZXMoY291bnRyeTpzdHJpbmcsIHN0YXRlOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMubWlkZGxld2FyZUFwaVVybH0vZ2V0LXN0YXRlLWNpdGllcz9jb3VudHJ5PSR7Y291bnRyeX0mc3RhdGU9JHtzdGF0ZX1gIClcclxuICB9XHJcblxyXG4gIHNwb2NUYWJsZURhdGEoIGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MtbGlzdGAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBzcG9jVGFibGVEYXRhRXhwb3J0KCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2dldC1zcG9jLWxpc3RgLCBkYXRhLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBzcG9jSWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZ2V0LXNwb2MvJHtzdG9yZUlkfWAsIHtzcG9jSWQ6c3BvY0lkfSlcclxuICB9XHJcblxyXG4gIGRlbGV0ZVNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBzcG9jSWQ6c3RyaW5nKTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vZGVsZXRlLXNwb2MvJHtzdG9yZUlkfWAsIHtzcG9jSWQ6c3BvY0lkfSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNwb2NEZXRhaWxzKHN0b3JlSWQ6c3RyaW5nLCBkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3VwZGF0ZS1zcG9jLyR7c3RvcmVJZH1gLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZpdHlMb2dzKGRhdGE6YW55KTpPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2FjdGl2aXR5LWxvZ2AsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBhc3NpZ25Dc20oZGF0YTphbnkpOk9ic2VydmFibGU8YW55PnsgXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51c2VyQXBpVXJsfS9hc3NpZ24tY2xpZW50YCwgZGF0YSApXHJcbiAgfVxyXG5cclxuICBnZXRBc3NpZ25lZFVzZXJzKGNsaWVudElkOnN0cmluZyk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWFzc2lnbi1jbGllbnQ/Y2xpZW50SWQ9JHtjbGllbnRJZH1gIClcclxuICB9XHJcbiAgXHJcbiAgZW1haWxVc2VyTGlzdChkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2VtYWlsVXNlckxpc3RgLGRhdGEpXHJcbiAgfVxyXG5cclxuICBzYXZlSW5mcmFFbWFpbENvbmZpZyhkYXRhOmFueSk6T2JzZXJ2YWJsZTxhbnk+eyBcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3NhdmVJbmZyYUVtYWlsQ29uZmlnYCxkYXRhKVxyXG4gIH1cclxuXHJcbiAgIHNhdmVBc1RlbXBsYXRlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRVxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcbiAgXHJcbn1cclxuIl19
|