vcomply-workflow-engine 6.1.25 → 6.1.26

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.
@@ -64,11 +64,11 @@ export class FloatingBarComponent {
64
64
  this.workflowTypeChanged.emit(event);
65
65
  }
66
66
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatingBarComponent, selector: "app-floating-bar", inputs: { selectedData: "selectedData", selectedGroups: "selectedGroups", displayElementKey: "displayElementKey", elementId: "elementId", singularText: "singularText", pluralText: "pluralText", showNextButton: "showNextButton", showFrequencyText: "showFrequencyText", showWorkflow: "showWorkflow", workflowText: "workflowText", currentFrequency: "currentFrequency", isDisabled: "isDisabled", workflowList: "workflowList", selectedWorkflow: "selectedWorkflow", workflowPlaceHolder: "workflowPlaceHolder", mode: "mode", defaultSelectedValue: ["defaultSelected", "defaultSelectedValue"], groupsEnabled: "groupsEnabled", isResponsibility: "isResponsibility", nonRemovableUsersList: "nonRemovableUsersList", removePosition: "removePosition" }, outputs: { closeEvent: "closeEvent", deleteEvent: "deleteEvent", closeList: "closeList", deleteGroupEvent: "deleteGroupEvent", workflowTypeChanged: "workflowTypeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n >&#xe9ae;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ element[displayElementKey] }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n element[displayElementKey]\n | slice : element[displayElementKey].length - 1\n }}</span\n >\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n >&#xe9ae;</i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span *ngIf=\"selectedData?.length === 1\">{{\n singularText\n }}</span>\n <span *ngIf=\"selectedData?.length > 1\">{{\n pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\">&#xe91f;</i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\">&#xe90d;</i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\">&#xe90d;</i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.DataTypePipe, name: "dataType" }] }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatingBarComponent, selector: "app-floating-bar", inputs: { selectedData: "selectedData", selectedGroups: "selectedGroups", displayElementKey: "displayElementKey", elementId: "elementId", singularText: "singularText", pluralText: "pluralText", showNextButton: "showNextButton", showFrequencyText: "showFrequencyText", showWorkflow: "showWorkflow", workflowText: "workflowText", currentFrequency: "currentFrequency", isDisabled: "isDisabled", workflowList: "workflowList", selectedWorkflow: "selectedWorkflow", workflowPlaceHolder: "workflowPlaceHolder", mode: "mode", defaultSelectedValue: ["defaultSelected", "defaultSelectedValue"], groupsEnabled: "groupsEnabled", isResponsibility: "isResponsibility", nonRemovableUsersList: "nonRemovableUsersList", removePosition: "removePosition" }, outputs: { closeEvent: "closeEvent", deleteEvent: "deleteEvent", closeList: "closeList", deleteGroupEvent: "deleteGroupEvent", workflowTypeChanged: "workflowTypeChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n >&#xe9ae;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ element[displayElementKey] }}</span\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"lastItem\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ lastItem }}\n </span>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n >&#xe9ae;</i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\">&#xe91f;</i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\">&#xe90d;</i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\">&#xe90d;</i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i3.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i5.DataTypePipe, name: "dataType" }] }); }
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatingBarComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'app-floating-bar', template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n >&#xe9ae;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ element[displayElementKey] }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n element[displayElementKey]\n | slice : element[displayElementKey].length - 1\n }}</span\n >\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n >&#xe9ae;</i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span *ngIf=\"selectedData?.length === 1\">{{\n singularText\n }}</span>\n <span *ngIf=\"selectedData?.length > 1\">{{\n pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\">&#xe91f;</i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\">&#xe90d;</i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\">&#xe90d;</i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"] }]
71
+ args: [{ selector: 'app-floating-bar', template: "<div class=\"userGroup-floating-bar\">\n <div class=\"userGroup-floating-bar-container\">\n <div class=\"left user-group-left\">\n <ng-container *ngIf=\"selectedData.length > 0 && !groupsEnabled\">\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <ng-container\n *ngFor=\"let element of selectedData?.slice(0, 1); let i = index\"\n >\n <ng-container *ngIf=\"element && !isResponsibility\">\n <i\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition != 'right'\n \"\n (click)=\"deleteSelected(element)\"\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\n >&#xe9ae;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >{{\n selectedData.length <= 2 &&\n i == selectedData.length - 1 &&\n selectedData.length > 1\n ? \"Final\"\n : i + 1\n }}</span\n >\n <span\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ element[displayElementKey] }}</span\n >\n <ng-container\n *ngIf=\"\n element[displayElementKey]\n | slice\n : element[displayElementKey].length - 1 as lastItem\n \"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt\"\n [appTooltip]=\"lastItem\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ lastItem }}\n </span>\n </ng-container>\n <i\n class=\"icons cross vx-fs-12 vx-paragraph-txt vx-ml-1\"\n *ngIf=\"\n !nonRemovableUsersList.includes(element[elementId]) &&\n removePosition == 'right'\n \"\n (click)=\"deleteSelected(element)\"\n >&#xe9ae;</i\n >\n </ng-container>\n </ng-container>\n <button\n *ngIf=\"selectedData?.length > 1 || (isResponsibility && selectedData?.length > 0)\"\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\n [class.greenBg]=\"false\"\n appPopover\n (click)=\"userPopover.popover()\"\n placement=\"left\"\n >\n {{ isResponsibility ? selectedData?.length : selectedData?.slice(1)?.length }}\n </button>\n </div>\n\n <div class=\"name\" *ngIf=\"selectedData?.length > 0\">\n <span>{{\n selectedData?.length === 1 ? singularText : pluralText\n }}</span>\n </div>\n </ng-container>\n <ng-container *ngIf=\"groupsEnabled\">\n <div class=\"user-group-chip\" *ngIf=\"selectedData?.length\">\n <i (click)=\"deleteSelected(selectedData[0])\" class=\"icons cross\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedData[0][displayElementKey] }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedData[0][displayElementKey] }}\n </div>\n <div\n class=\"counter\"\n *ngIf=\"selectedData?.length > 1\"\n appPopover\n (click)=\"UserWithFeatureFlagPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedData?.length - 1 }}\n </div>\n </div>\n <div\n class=\"name userGroup-name\"\n *ngIf=\"selectedData?.length > 0 && groupsEnabled\"\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length === 1\">\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"\"\n }}</span\n >\n <span class=\"userGroup-text\" *ngIf=\"selectedData?.length > 1\"\n >Users\n {{\n selectedGroups && selectedGroups?.length > 0 ? \" & \" : \"selected\"\n }}</span\n >\n </div>\n <div class=\"user-group-chip\" *ngIf=\"selectedGroups?.length\">\n <i\n class=\"icons cross\"\n (click)=\"deleteSelectedGroup(selectedGroups[0])\"\n >&#xe9ae;</i\n >\n <div\n class=\"user-group-name\"\n appTooltip=\"{{ selectedGroups[0]?.group_name }}\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedGroups[0]?.group_name }}\n </div>\n <div\n class=\"counter group\"\n *ngIf=\"selectedGroups.length > 1\"\n appPopover\n (click)=\"groupPopover.popover()\"\n placement=\"left\"\n >\n +{{ selectedGroups.length - 1 }}\n </div>\n </div>\n <div class=\"name userGroup-name\" *ngIf=\"selectedGroups.length > 0\">\n {{ selectedGroups?.length > 1 ? \" User Groups selected \" : \"\" }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"showFrequencyText\">\n <div class=\"name vx-ml-0\">\n <span\n >You have selected\n <span class=\"vx-fw-500 vx-label-txt\">{{ currentFrequency }}</span>\n frequency.</span\n >\n </div>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <div\n class=\"center\"\n *ngIf=\"\n (showWorkflow && mode === 'CREATE') ||\n (showWorkflow && workflowList.includes('ROUND-ROBIN'))\n \"\n >\n <label>\n {{ workflowText }}\n <span\n class=\"icon\"\n *ngIf=\"workflowText == 'Approval Workflow'\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\">&#xe91f;</i></span\n >\n </label>\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div class=\"vx-info-card-body\">\n You can select from the following three options:<br />\n <strong>Sequential:</strong> The policy would be sent for approval\n one at a time in the sequence defined by you.<br />\n <strong>Round-robin:</strong> The policy will be sent for approval\n to all approvers at the same time. However, it is mandatory for all\n approvers to take action.<br />\n <strong>Any One:</strong> The policy will be sent for approval to\n all approvers at the same time. If anyone of the approver approves\n the policy, it will be considered as approved.\n </div>\n </div>\n </popover-hover>\n <cs-select\n [(ngModel)]=\"selectedWorkflow\"\n (ngModelChange)=\"selectedWorkflowChange($event)\"\n [placeholder]=\"'Approval WorkFlow *'\"\n [setMaxWidth]=\"true\"\n >\n <cs-option *ngFor=\"let data of workflowList\" [value]=\"data\">\n {{ data }}\n </cs-option>\n </cs-select>\n </div>\n <div class=\"right\">\n <button appRipple class=\"cancel\" (click)=\"close()\">Cancel</button>\n <button\n *ngIf=\"showNextButton\"\n [disabled]=\"isDisabled\"\n (click)=\"next()\"\n appRipple\n >\n Next <i class=\"icons\">&#xe91e;</i>\n </button>\n </div>\n </div>\n</div>\n<app-popover #userPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let element of selectedData?.slice(1); let i = index\">\n <div class=\"avatar-card\">\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) !== 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n <span\n class=\"step\"\n *ngIf=\"selectedWorkflow == 'SEQUENTIAL' && showWorkflow\"\n >\n {{ i == selectedData.slice(1).length - 1 ? \"Final\" : i + 2 }}\n </span>\n {{ element[displayElementKey] }}\n </span>\n\n <span\n class=\"value\"\n *ngIf=\"(element[displayElementKey] | dataType) === 'object'\"\n [appTooltip]=\" element[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n \n >\n <i\n class=\"icons\"\n *ngIf=\"!nonRemovableUsersList.includes(element[elementId])\"\n (click)=\"deleteSelected(element)\"\n >&#xe90d;</i\n >\n {{ element[displayElementKey] }}\n </span>\n <div\n *ngIf=\"\n defaultSelected?.category_id &&\n defaultSelected?.category_id === element?.category_id\n \"\n class=\"primary-label\"\n >\n PRIMARY\n </div>\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #UserWithFeatureFlagPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedData | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data[displayElementKey]\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n ><i class=\"icons\" (click)=\"deleteSelected(data)\">&#xe90d;</i\n >{{ data[displayElementKey] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n<app-popover #groupPopover [dontCloseonClick]=\"true\">\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"let data of selectedGroups | slice : 1\">\n <div class=\"avatar-card\">\n <span class=\"value\"\n [appTooltip]=\"data['group_name']\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n ><i class=\"icons\" (click)=\"deleteSelectedGroup(data)\">&#xe90d;</i\n >{{ data[\"group_name\"] }}</span\n >\n </div>\n </li>\n </ul>\n </div>\n</app-popover>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .userGroup-floating-bar-container{height:48px;border-radius:4px;box-shadow:0 6px 12px #4681ef26;border:1px solid #f8f8f8;padding:8px 12px;display:flex;justify-content:space-between;position:relative;align-items:center;background:#fff}::ng-deep .userGroup-floating-bar-container .left{display:flex;align-items:center;width:40%}::ng-deep .userGroup-floating-bar-container .left.user-group-left{width:60%}::ng-deep .userGroup-floating-bar-container .left .chip{padding:0 5px;height:24px;display:inline-flex;color:#1e5dd3;border-radius:2px;align-items:center;background:#fff;max-width:100%;box-shadow:0 2px 6px #4681ef20}::ng-deep .userGroup-floating-bar-container .left .chip i{margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex;margin-left:4px}::ng-deep .userGroup-floating-bar-container .left .chip span{width:auto;font-size:12px;font-weight:500;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;max-width:120px}::ng-deep .userGroup-floating-bar-container .left .chip span.no-action{max-width:100%}::ng-deep .userGroup-floating-bar-container .left .chip span+i{margin-left:8px;margin-right:0}::ng-deep .userGroup-floating-bar-container .left .chip+.chip{margin-left:5px}::ng-deep .userGroup-floating-bar-container .left .counter{border-radius:20px;background:#34aa44;border:none;color:#fff;font-size:9px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;margin:0 0 0 8px;padding:0 4px;justify-content:center;line-height:16px;min-width:24px}::ng-deep .userGroup-floating-bar-container .left .counter.group{background:#1e5dd3}::ng-deep .userGroup-floating-bar-container .left .name{margin-right:4px;color:#707070;font-size:12px;line-height:18px;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .left .name b{text-transform:lowercase}::ng-deep .userGroup-floating-bar-container .left .user-group-chip{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem;display:inline-flex;align-items:center;padding:0 8px;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:8px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross{color:#747576;font-size:10px;margin-right:4px;cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .cross:hover{background:#f1f1f1}::ng-deep .userGroup-floating-bar-container .left .user-group-chip .user-group-name{color:#161b2f;font-size:11px;display:block;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:7.5rem}::ng-deep .userGroup-floating-bar-container .left .userGroup-text{margin-right:4px}::ng-deep .userGroup-floating-bar-container .center{width:40%;display:flex;justify-content:flex-start;align-items:center}::ng-deep .userGroup-floating-bar-container .center label{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:0;display:block;text-transform:uppercase;width:auto;margin-right:8px;text-align:left;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .center label .icon i{color:#1e5dd3}::ng-deep .userGroup-floating-bar-container .center cs-select{width:100%}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group{position:relative}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group input.value{background:transparent!important;height:32px!important;padding:8px 20px 8px 8px!important;border-radius:2px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .input-group:before{border:1px solid #707070;border-top:none;border-left:none;content:\"\";display:inline-block;right:8px;position:absolute;top:12px;width:5px;height:5px;transform:rotate(45deg)}::ng-deep .userGroup-floating-bar-container .center cs-select .selection-wrap .select-options cs-option .list label span.value{font-size:13px!important}::ng-deep .userGroup-floating-bar-container .right{display:flex;align-items:center}::ng-deep .userGroup-floating-bar-container .right .name{margin-left:15px;color:#707070;font-size:12px;font-weight:500;line-height:18px;display:flex;align-items:center;white-space:nowrap}::ng-deep .userGroup-floating-bar-container .right .name span.required{color:#eb2424;font-size:14px}::ng-deep .userGroup-floating-bar-container .right .name i{margin-left:3px;color:#1e5dd3;cursor:pointer}::ng-deep .userGroup-floating-bar-container .right app-cs-select{margin-left:12px;width:125px;display:flex}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box input{height:32px}::ng-deep .userGroup-floating-bar-container .right app-cs-select .input-group .custom-select-box span.arrow{bottom:6px}::ng-deep .userGroup-floating-bar-container .right button{border-radius:2px;height:24px;background:#1e5dd3!important;display:flex;justify-content:center;align-items:center;cursor:pointer;color:#fff!important;text-transform:uppercase;font-size:11px;font-weight:500;border:none!important;padding:0 8px;margin:0 0 0 8px}::ng-deep .userGroup-floating-bar-container .right button i{margin-left:8px;font-size:11px}::ng-deep .userGroup-floating-bar-container .right button:disabled{background:#f1f1f1!important;color:#747576!important;opacity:1}::ng-deep .userGroup-floating-bar-container .right button.cancel{background:transparent!important;color:#eb2424!important}::ng-deep span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}.wf-action-list ul.action-item li button .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 16px)}.wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}.wf-action-list ul.action-item li button:hover{background:#f3f3f3}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;min-width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{background:#fff;width:100%;height:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:4px}.wf-action-list ul.action-item li .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li .avatar-card i.delete-icon{color:#d93b41;cursor:pointer;font-size:14px}.wf-action-list ul.action-item li .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}.wf-action-list ul.action-item li .chip-item i{color:#747576;margin-left:7px;font-size:10px;cursor:pointer;display:inline-flex}.wf-action-list ul.action-item li .chip-item span{display:block;width:auto;width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}.wf-action-list ul.action-item li .chip-item span.id{font-size:9px}.wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}.wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}.wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}.wf-action-list ul.action-item li.multiple-program{background:#f8f8f8;margin-top:8px}.wf-action-list ul.action-item li.multiple-program .avatar-card{padding:2px 7.5px}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value{color:#747576;font-size:11px;font-weight:600;width:unset}.wf-action-list ul.action-item li.multiple-program .avatar-card span.value i.disabled{color:#dbdbdb;pointer-events:none}.wf-action-list ul.action-item li.multiple-program .avatar-card .primary-label{background:#7aa7f7;border-radius:2px;color:#fff;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 4px;line-height:12px;margin:0 4px}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}.vx-overlay{position:fixed;z-index:1;inset:0}.vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}.vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}.vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}\n"] }]
72
72
  }], ctorParameters: function () { return []; }, propDecorators: { selectedData: [{
73
73
  type: Input
74
74
  }], selectedGroups: [{
@@ -123,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
123
123
  }], workflowTypeChanged: [{
124
124
  type: Output
125
125
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZmxvYXRpbmctYmFyL2Zsb2F0aW5nLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU92QixNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixJQUE4QixvQkFBb0IsQ0FBQyxLQUFVO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBV0Q7UUEvQlMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRztZQUN0QixZQUFZO1lBQ1osd0NBQXdDO1NBQ3pDLENBQUM7UUFHTyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ2pDLG9C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T25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZsb2F0aW5nLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0YTogYW55O1xuICBASW5wdXQoKSBzZWxlY3RlZEdyb3VwczogYW55O1xuICBASW5wdXQoKSBkaXNwbGF5RWxlbWVudEtleSA9ICcnO1xuICBASW5wdXQoKSBlbGVtZW50SWQ6IGFueSA9ICcnO1xuICBASW5wdXQoKSBzaW5ndWxhclRleHQgPSAnJztcbiAgQElucHV0KCkgcGx1cmFsVGV4dCA9ICcnO1xuICBASW5wdXQoKSBzaG93TmV4dEJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGcmVxdWVuY3lUZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dXb3JrZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3JrZmxvd1RleHQgPSAnJztcbiAgQElucHV0KCkgY3VycmVudEZyZXF1ZW5jeSA9ICcnO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdvcmtmbG93TGlzdCA9IFtcbiAgICAnU0VRVUVOVElBTCcsXG4gICAgJ0FOWSBSRVZJRVdFUiBDQU4gTUFSSyBUSElTIEFTIFJFVklFV0VEJyxcbiAgXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRXb3JrZmxvdzogYW55O1xuICBASW5wdXQoKSB3b3JrZmxvd1BsYWNlSG9sZGVyOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICdDUkVBVEUnO1xuICBkZWZhdWx0U2VsZWN0ZWQ6IGFueSA9IHt9O1xuICBASW5wdXQoJ2RlZmF1bHRTZWxlY3RlZCcpIHNldCBkZWZhdWx0U2VsZWN0ZWRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWQgPSB2YWx1ZSA/IHZhbHVlIDoge307XG4gIH1cbiAgQElucHV0KCkgZ3JvdXBzRW5hYmxlZDogYW55O1xuICBASW5wdXQoKSBpc1Jlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcmVtb3ZlUG9zaXRpb246IGFueTtcbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgd29ya2Zsb3dUeXBlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZXh0KCkge1xuICAgIGxldCBzZWxlY3RlZERhdGE7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkRGF0YSA9IHsgdXNlcnM6IHRoaXMuc2VsZWN0ZWREYXRhLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZERhdGE7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KHNlbGVjdGVkRGF0YSk7XG4gIH1cblxuICBkZWxldGVTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5kZWxldGVFdmVudC5lbWl0KGluZGV4KTtcbiAgfVxuICBkZWxldGVTZWxlY3RlZEdyb3VwKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwRXZlbnQuZW1pdChpbmRleCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZUxpc3QuZW1pdCgpO1xuICB9XG4gIHNlbGVjdGVkV29ya2Zsb3dUeXBlKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICB9XG5cbiAgc2VsZWN0ZWRXb3JrZmxvd0NoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy53b3JrZmxvd1R5cGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidXNlckdyb3VwLWZsb2F0aW5nLWJhclwiPlxuICA8ZGl2IGNsYXNzPVwidXNlckdyb3VwLWZsb2F0aW5nLWJhci1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdCB1c2VyLWdyb3VwLWxlZnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZERhdGEubGVuZ3RoID4gMCAmJiAhZ3JvdXBzRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWREYXRhPy5zbGljZSgwLCAxKTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQgJiYgIWlzUmVzcG9uc2liaWxpdHlcIj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pICYmXG4gICAgICAgICAgICAgICAgICByZW1vdmVQb3NpdGlvbiAhPSAncmlnaHQnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFdvcmtmbG93ID09ICdTRVFVRU5USUFMJyAmJiBzaG93V29ya2Zsb3dcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRhLmxlbmd0aCA8PSAyICYmXG4gICAgICAgICAgICAgICAgICBpID09IHNlbGVjdGVkRGF0YS5sZW5ndGggLSAxICYmXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGEubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICA/IFwiRmluYWxcIlxuICAgICAgICAgICAgICAgICAgICA6IGkgKyAxXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpICE9PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpID09PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXG4gICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XS5sZW5ndGggLSAxXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1tbC0xXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pICYmXG4gICAgICAgICAgICAgICAgICByZW1vdmVQb3NpdGlvbiA9PSAncmlnaHQnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMSB8fCAoaXNSZXNwb25zaWJpbGl0eSAmJiBzZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDApXCJcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICBbY2xhc3MuZ3JlZW5CZ109XCJmYWxzZVwiXG4gICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAoY2xpY2spPVwidXNlclBvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGlzUmVzcG9uc2liaWxpdHkgPyBzZWxlY3RlZERhdGE/Lmxlbmd0aCA6IHNlbGVjdGVkRGF0YT8uc2xpY2UoMSk/Lmxlbmd0aCB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA9PT0gMVwiPnt7XG4gICAgICAgICAgICBzaW5ndWxhclRleHRcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiPnt7XG4gICAgICAgICAgICBwbHVyYWxUZXh0XG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZ3JvdXBzRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxpIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChzZWxlY3RlZERhdGFbMF0pXCIgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJ1c2VyLWdyb3VwLW5hbWVcIlxuICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7IHNlbGVjdGVkRGF0YVswXVtkaXNwbGF5RWxlbWVudEtleV0gfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWREYXRhWzBdW2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlclwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAoY2xpY2spPVwiVXNlcldpdGhGZWF0dXJlRmxhZ1BvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZERhdGE/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm5hbWUgdXNlckdyb3VwLW5hbWVcIlxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwICYmIGdyb3Vwc0VuYWJsZWRcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyR3JvdXAtdGV4dFwiICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPT09IDFcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwiXCJcbiAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXNlckdyb3VwLXRleHRcIiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+VXNlcnNcbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgIHNlbGVjdGVkR3JvdXBzICYmIHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAwID8gXCIgJiBcIiA6IFwic2VsZWN0ZWRcIlxuICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1ncm91cC1jaGlwXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcz8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3NcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkR3JvdXAoc2VsZWN0ZWRHcm91cHNbMF0pXCJcbiAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICBhcHBUb29sdGlwPVwie3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgc2VsZWN0ZWRHcm91cHNbMF0/Lmdyb3VwX25hbWUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImNvdW50ZXIgZ3JvdXBcIlxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJncm91cFBvcG92ZXIucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICt7eyBzZWxlY3RlZEdyb3Vwcy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiICpuZ0lmPVwic2VsZWN0ZWRHcm91cHMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIHt7IHNlbGVjdGVkR3JvdXBzPy5sZW5ndGggPiAxID8gXCIgVXNlciBHcm91cHMgc2VsZWN0ZWQgXCIgOiBcIlwiIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0ZyZXF1ZW5jeVRleHRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgdngtbWwtMFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICA+WW91IGhhdmUgc2VsZWN0ZWRcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPnt7IGN1cnJlbnRGcmVxdWVuY3kgfX08L3NwYW4+XG4gICAgICAgICAgICBmcmVxdWVuY3kuPC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY2VudGVyXCJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgbW9kZSA9PT0gJ0NSRUFURScpIHx8XG4gICAgICAgIChzaG93V29ya2Zsb3cgJiYgd29ya2Zsb3dMaXN0LmluY2x1ZGVzKCdST1VORC1ST0JJTicpKVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWw+XG4gICAgICAgIHt7IHdvcmtmbG93VGV4dCB9fVxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd1RleHQgPT0gJ0FwcHJvdmFsIFdvcmtmbG93J1wiXG4gICAgICAgICAgbGliUG9wb3ZlckhvdmVyXG4gICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiPlxuICAgICAgICAgICAgWW91IGNhbiBzZWxlY3QgZnJvbSB0aGUgZm9sbG93aW5nIHRocmVlIG9wdGlvbnM6PGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPlNlcXVlbnRpYWw6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd291bGQgYmUgc2VudCBmb3IgYXBwcm92YWxcbiAgICAgICAgICAgIG9uZSBhdCBhIHRpbWUgaW4gdGhlIHNlcXVlbmNlIGRlZmluZWQgYnkgeW91LjxiciAvPlxuICAgICAgICAgICAgPHN0cm9uZz5Sb3VuZC1yb2Jpbjo8L3N0cm9uZz4gVGhlIHBvbGljeSB3aWxsIGJlIHNlbnQgZm9yIGFwcHJvdmFsXG4gICAgICAgICAgICB0byBhbGwgYXBwcm92ZXJzIGF0IHRoZSBzYW1lIHRpbWUuIEhvd2V2ZXIsIGl0IGlzIG1hbmRhdG9yeSBmb3IgYWxsXG4gICAgICAgICAgICBhcHByb3ZlcnMgdG8gdGFrZSBhY3Rpb24uPGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPkFueSBPbmU6PC9zdHJvbmc+IFRoZSBwb2xpY3kgd2lsbCBiZSBzZW50IGZvciBhcHByb3ZhbCB0b1xuICAgICAgICAgICAgYWxsIGFwcHJvdmVycyBhdCB0aGUgc2FtZSB0aW1lLiBJZiBhbnlvbmUgb2YgdGhlIGFwcHJvdmVyIGFwcHJvdmVzXG4gICAgICAgICAgICB0aGUgcG9saWN5LCBpdCB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYXBwcm92ZWQuXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9wb3BvdmVyLWhvdmVyPlxuICAgICAgPGNzLXNlbGVjdFxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkV29ya2Zsb3dcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RlZFdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FwcHJvdmFsIFdvcmtGbG93IConXCJcbiAgICAgICAgW3NldE1heFdpZHRoXT1cInRydWVcIlxuICAgICAgPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cImxldCBkYXRhIG9mIHdvcmtmbG93TGlzdFwiIFt2YWx1ZV09XCJkYXRhXCI+XG4gICAgICAgICAge3sgZGF0YSB9fVxuICAgICAgICA8L2NzLW9wdGlvbj5cbiAgICAgIDwvY3Mtc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGJ1dHRvbiBhcHBSaXBwbGUgY2xhc3M9XCJjYW5jZWxcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInNob3dOZXh0QnV0dG9uXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwibmV4dCgpXCJcbiAgICAgICAgYXBwUmlwcGxlXG4gICAgICA+XG4gICAgICAgIE5leHQgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWU7PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48YXBwLXBvcG92ZXIgI3VzZXJQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBzZWxlY3RlZERhdGE/LnNsaWNlKDEpOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpICE9PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cInN0ZXBcIlxuICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3cgPT0gJ1NFUVVFTlRJQUwnICYmIHNob3dXb3JrZmxvd1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGkgPT0gc2VsZWN0ZWREYXRhLnNsaWNlKDEpLmxlbmd0aCAtIDEgPyBcIkZpbmFsXCIgOiBpICsgMiB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAge3sgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfX1cbiAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAqbmdJZj1cIihlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB8IGRhdGFUeXBlKSA9PT0gJ29iamVjdCdcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICpuZ0lmPVwiIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ/LmNhdGVnb3J5X2lkICYmXG4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZD8uY2F0ZWdvcnlfaWQgPT09IGVsZW1lbnQ/LmNhdGVnb3J5X2lkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgY2xhc3M9XCJwcmltYXJ5LWxhYmVsXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBQUklNQVJZXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG48YXBwLXBvcG92ZXIgI1VzZXJXaXRoRmVhdHVyZUZsYWdQb3BvdmVyIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBzZWxlY3RlZERhdGEgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YVtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZGF0YSlcIj4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgPnt7IGRhdGFbZGlzcGxheUVsZW1lbnRLZXldIH19PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L2FwcC1wb3BvdmVyPlxuPGFwcC1wb3BvdmVyICNncm91cFBvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXRhIG9mIHNlbGVjdGVkR3JvdXBzIHwgc2xpY2UgOiAxXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cImRhdGFbJ2dyb3VwX25hbWUnXVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWRHcm91cChkYXRhKVwiPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+e3sgZGF0YVtcImdyb3VwX25hbWVcIl0gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXRpbmctYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvZmxvYXRpbmctYmFyL2Zsb2F0aW5nLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Zsb2F0aW5nLWJhci9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFlBQVksR0FFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQU92QixNQUFNLE9BQU8sb0JBQW9CO0lBcUIvQixJQUE4QixvQkFBb0IsQ0FBQyxLQUFVO1FBQzNELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBV0Q7UUEvQlMsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDMUIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIscUJBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRztZQUN0QixZQUFZO1lBQ1osd0NBQXdDO1NBQ3pDLENBQUM7UUFHTyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ2pDLG9C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T25Jbml0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZsb2F0aW5nLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbG9hdGluZy1iYXIuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmxvYXRpbmdCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0YTogYW55O1xuICBASW5wdXQoKSBzZWxlY3RlZEdyb3VwczogYW55O1xuICBASW5wdXQoKSBkaXNwbGF5RWxlbWVudEtleSA9ICcnO1xuICBASW5wdXQoKSBlbGVtZW50SWQ6IGFueSA9ICcnO1xuICBASW5wdXQoKSBzaW5ndWxhclRleHQgPSAnJztcbiAgQElucHV0KCkgcGx1cmFsVGV4dCA9ICcnO1xuICBASW5wdXQoKSBzaG93TmV4dEJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dGcmVxdWVuY3lUZXh0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNob3dXb3JrZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoKSB3b3JrZmxvd1RleHQgPSAnJztcbiAgQElucHV0KCkgY3VycmVudEZyZXF1ZW5jeSA9ICcnO1xuICBASW5wdXQoKSBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdvcmtmbG93TGlzdCA9IFtcbiAgICAnU0VRVUVOVElBTCcsXG4gICAgJ0FOWSBSRVZJRVdFUiBDQU4gTUFSSyBUSElTIEFTIFJFVklFV0VEJyxcbiAgXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRXb3JrZmxvdzogYW55O1xuICBASW5wdXQoKSB3b3JrZmxvd1BsYWNlSG9sZGVyOiBhbnk7XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICdDUkVBVEUnO1xuICBkZWZhdWx0U2VsZWN0ZWQ6IGFueSA9IHt9O1xuICBASW5wdXQoJ2RlZmF1bHRTZWxlY3RlZCcpIHNldCBkZWZhdWx0U2VsZWN0ZWRWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5kZWZhdWx0U2VsZWN0ZWQgPSB2YWx1ZSA/IHZhbHVlIDoge307XG4gIH1cbiAgQElucHV0KCkgZ3JvdXBzRW5hYmxlZDogYW55O1xuICBASW5wdXQoKSBpc1Jlc3BvbnNpYmlsaXR5OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgbm9uUmVtb3ZhYmxlVXNlcnNMaXN0OiBhbnkgPSBbXTtcbiAgQElucHV0KCkgcmVtb3ZlUG9zaXRpb246IGFueTtcbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2xvc2VMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGRlbGV0ZUdyb3VwRXZlbnQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgd29ya2Zsb3dUeXBlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEdyb3VwcyA9IFtdO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBuZXh0KCkge1xuICAgIGxldCBzZWxlY3RlZERhdGE7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHNlbGVjdGVkRGF0YSA9IHsgdXNlcnM6IHRoaXMuc2VsZWN0ZWREYXRhLCBncm91cHM6IHRoaXMuc2VsZWN0ZWRHcm91cHMgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZERhdGE7XG4gICAgfVxuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KHNlbGVjdGVkRGF0YSk7XG4gIH1cblxuICBkZWxldGVTZWxlY3RlZChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5kZWxldGVFdmVudC5lbWl0KGluZGV4KTtcbiAgfVxuICBkZWxldGVTZWxlY3RlZEdyb3VwKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRlbGV0ZUdyb3VwRXZlbnQuZW1pdChpbmRleCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZUxpc3QuZW1pdCgpO1xuICB9XG4gIHNlbGVjdGVkV29ya2Zsb3dUeXBlKGV2ZW50OiBhbnkpIHtcbiAgICAvLyBkZWJ1Z2dlclxuICB9XG5cbiAgc2VsZWN0ZWRXb3JrZmxvd0NoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy53b3JrZmxvd1R5cGVDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidXNlckdyb3VwLWZsb2F0aW5nLWJhclwiPlxuICA8ZGl2IGNsYXNzPVwidXNlckdyb3VwLWZsb2F0aW5nLWJhci1jb250YWluZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdCB1c2VyLWdyb3VwLWxlZnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZERhdGEubGVuZ3RoID4gMCAmJiAhZ3JvdXBzRW5hYmxlZFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2Ygc2VsZWN0ZWREYXRhPy5zbGljZSgwLCAxKTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsZW1lbnQgJiYgIWlzUmVzcG9uc2liaWxpdHlcIj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgIW5vblJlbW92YWJsZVVzZXJzTGlzdC5pbmNsdWRlcyhlbGVtZW50W2VsZW1lbnRJZF0pICYmXG4gICAgICAgICAgICAgICAgICByZW1vdmVQb3NpdGlvbiAhPSAncmlnaHQnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwic3RlcFwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFdvcmtmbG93ID09ICdTRVFVRU5USUFMJyAmJiBzaG93V29ya2Zsb3dcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRhLmxlbmd0aCA8PSAyICYmXG4gICAgICAgICAgICAgICAgICBpID09IHNlbGVjdGVkRGF0YS5sZW5ndGggLSAxICYmXG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZERhdGEubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgICAgICA/IFwiRmluYWxcIlxuICAgICAgICAgICAgICAgICAgICA6IGkgKyAxXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpICE9PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3sgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldXG4gICAgICAgICAgICAgICAgICAgIHwgc2xpY2VcbiAgICAgICAgICAgICAgICAgICAgICA6IGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldLmxlbmd0aCAtIDEgYXMgbGFzdEl0ZW1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImxhc3RJdGVtXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGxhc3RJdGVtIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbWwtMVwiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICFub25SZW1vdmFibGVVc2Vyc0xpc3QuaW5jbHVkZXMoZWxlbWVudFtlbGVtZW50SWRdKSAmJlxuICAgICAgICAgICAgICAgICAgcmVtb3ZlUG9zaXRpb24gPT0gJ3JpZ2h0J1xuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDEgfHwgKGlzUmVzcG9uc2liaWxpdHkgJiYgc2VsZWN0ZWREYXRhPy5sZW5ndGggPiAwKVwiXG4gICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxuICAgICAgICAgICAgW2NsYXNzLmdyZWVuQmddPVwiZmFsc2VcIlxuICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgKGNsaWNrKT1cInVzZXJQb3BvdmVyLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpc1Jlc3BvbnNpYmlsaXR5ID8gc2VsZWN0ZWREYXRhPy5sZW5ndGggOiBzZWxlY3RlZERhdGE/LnNsaWNlKDEpPy5sZW5ndGggfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxzcGFuPnt7XG4gICAgICAgICAgICBzZWxlY3RlZERhdGE/Lmxlbmd0aCA9PT0gMSA/IHNpbmd1bGFyVGV4dCA6IHBsdXJhbFRleHRcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncm91cHNFbmFibGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIiAqbmdJZj1cInNlbGVjdGVkRGF0YT8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGkgKGNsaWNrKT1cImRlbGV0ZVNlbGVjdGVkKHNlbGVjdGVkRGF0YVswXSlcIiBjbGFzcz1cImljb25zIGNyb3NzXCJcbiAgICAgICAgICAgID4mI3hlOWFlOzwvaVxuICAgICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInVzZXItZ3JvdXAtbmFtZVwiXG4gICAgICAgICAgICBhcHBUb29sdGlwPVwie3sgc2VsZWN0ZWREYXRhWzBdW2Rpc3BsYXlFbGVtZW50S2V5XSB9fVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZERhdGFbMF1bZGlzcGxheUVsZW1lbnRLZXldIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJjb3VudGVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgIChjbGljayk9XCJVc2VyV2l0aEZlYXR1cmVGbGFnUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgK3t7IHNlbGVjdGVkRGF0YT8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibmFtZSB1c2VyR3JvdXAtbmFtZVwiXG4gICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA+IDAgJiYgZ3JvdXBzRW5hYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXJHcm91cC10ZXh0XCIgKm5nSWY9XCJzZWxlY3RlZERhdGE/Lmxlbmd0aCA9PT0gMVwiPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgc2VsZWN0ZWRHcm91cHMgJiYgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPyBcIiAmIFwiIDogXCJcIlxuICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyR3JvdXAtdGV4dFwiICpuZ0lmPVwic2VsZWN0ZWREYXRhPy5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgID5Vc2Vyc1xuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgc2VsZWN0ZWRHcm91cHMgJiYgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDAgPyBcIiAmIFwiIDogXCJzZWxlY3RlZFwiXG4gICAgICAgICAgICB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWdyb3VwLWNoaXBcIiAqbmdJZj1cInNlbGVjdGVkR3JvdXBzPy5sZW5ndGhcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zc1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWRHcm91cChzZWxlY3RlZEdyb3Vwc1swXSlcIlxuICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidXNlci1ncm91cC1uYW1lXCJcbiAgICAgICAgICAgIGFwcFRvb2x0aXA9XCJ7eyBzZWxlY3RlZEdyb3Vwc1swXT8uZ3JvdXBfbmFtZSB9fVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBzZWxlY3RlZEdyb3Vwc1swXT8uZ3JvdXBfbmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiY291bnRlciBncm91cFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkR3JvdXBzLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgKGNsaWNrKT1cImdyb3VwUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgK3t7IHNlbGVjdGVkR3JvdXBzLmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lIHVzZXJHcm91cC1uYW1lXCIgKm5nSWY9XCJzZWxlY3RlZEdyb3Vwcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAge3sgc2VsZWN0ZWRHcm91cHM/Lmxlbmd0aCA+IDEgPyBcIiBVc2VyIEdyb3VwcyBzZWxlY3RlZCBcIiA6IFwiXCIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RnJlcXVlbmN5VGV4dFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZSB2eC1tbC0wXCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgID5Zb3UgaGF2ZSBzZWxlY3RlZFxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+e3sgY3VycmVudEZyZXF1ZW5jeSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIGZyZXF1ZW5jeS48L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjZW50ZXJcIlxuICAgICAgKm5nSWY9XCJcbiAgICAgICAgKHNob3dXb3JrZmxvdyAmJiBtb2RlID09PSAnQ1JFQVRFJykgfHxcbiAgICAgICAgKHNob3dXb3JrZmxvdyAmJiB3b3JrZmxvd0xpc3QuaW5jbHVkZXMoJ1JPVU5ELVJPQklOJykpXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbD5cbiAgICAgICAge3sgd29ya2Zsb3dUZXh0IH19XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJpY29uXCJcbiAgICAgICAgICAqbmdJZj1cIndvcmtmbG93VGV4dCA9PSAnQXBwcm92YWwgV29ya2Zsb3cnXCJcbiAgICAgICAgICBsaWJQb3BvdmVySG92ZXJcbiAgICAgICAgICAobW91c2VvdmVyKT1cImRhdGFUb29sdGlwLnBvcG92ZXIoKVwiXG4gICAgICAgICAgKG1vdXNlbGVhdmUpPVwiZGF0YVRvb2x0aXAuY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPjwvc3BhblxuICAgICAgICA+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPHBvcG92ZXItaG92ZXIgI2RhdGFUb29sdGlwPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5mby1jYXJkXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICBZb3UgY2FuIHNlbGVjdCBmcm9tIHRoZSBmb2xsb3dpbmcgdGhyZWUgb3B0aW9uczo8YnIgLz5cbiAgICAgICAgICAgIDxzdHJvbmc+U2VxdWVudGlhbDo8L3N0cm9uZz4gVGhlIHBvbGljeSB3b3VsZCBiZSBzZW50IGZvciBhcHByb3ZhbFxuICAgICAgICAgICAgb25lIGF0IGEgdGltZSBpbiB0aGUgc2VxdWVuY2UgZGVmaW5lZCBieSB5b3UuPGJyIC8+XG4gICAgICAgICAgICA8c3Ryb25nPlJvdW5kLXJvYmluOjwvc3Ryb25nPiBUaGUgcG9saWN5IHdpbGwgYmUgc2VudCBmb3IgYXBwcm92YWxcbiAgICAgICAgICAgIHRvIGFsbCBhcHByb3ZlcnMgYXQgdGhlIHNhbWUgdGltZS4gSG93ZXZlciwgaXQgaXMgbWFuZGF0b3J5IGZvciBhbGxcbiAgICAgICAgICAgIGFwcHJvdmVycyB0byB0YWtlIGFjdGlvbi48YnIgLz5cbiAgICAgICAgICAgIDxzdHJvbmc+QW55IE9uZTo8L3N0cm9uZz4gVGhlIHBvbGljeSB3aWxsIGJlIHNlbnQgZm9yIGFwcHJvdmFsIHRvXG4gICAgICAgICAgICBhbGwgYXBwcm92ZXJzIGF0IHRoZSBzYW1lIHRpbWUuIElmIGFueW9uZSBvZiB0aGUgYXBwcm92ZXIgYXBwcm92ZXNcbiAgICAgICAgICAgIHRoZSBwb2xpY3ksIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcyBhcHByb3ZlZC5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3BvcG92ZXItaG92ZXI+XG4gICAgICA8Y3Mtc2VsZWN0XG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRXb3JrZmxvd1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNlbGVjdGVkV29ya2Zsb3dDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXBwcm92YWwgV29ya0Zsb3cgKidcIlxuICAgICAgICBbc2V0TWF4V2lkdGhdPVwidHJ1ZVwiXG4gICAgICA+XG4gICAgICAgIDxjcy1vcHRpb24gKm5nRm9yPVwibGV0IGRhdGEgb2Ygd29ya2Zsb3dMaXN0XCIgW3ZhbHVlXT1cImRhdGFcIj5cbiAgICAgICAgICB7eyBkYXRhIH19XG4gICAgICAgIDwvY3Mtb3B0aW9uPlxuICAgICAgPC9jcy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8YnV0dG9uIGFwcFJpcHBsZSBjbGFzcz1cImNhbmNlbFwiIChjbGljayk9XCJjbG9zZSgpXCI+Q2FuY2VsPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwic2hvd05leHRCdXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJuZXh0KClcIlxuICAgICAgICBhcHBSaXBwbGVcbiAgICAgID5cbiAgICAgICAgTmV4dCA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZTs8L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxhcHAtcG9wb3ZlciAjdXNlclBvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBlbGVtZW50IG9mIHNlbGVjdGVkRGF0YT8uc2xpY2UoMSk7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgICAgKm5nSWY9XCIoZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV0gfCBkYXRhVHlwZSkgIT09ICdvYmplY3QnXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIiBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XVwiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwic3RlcFwiXG4gICAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRXb3JrZmxvdyA9PSAnU0VRVUVOVElBTCcgJiYgc2hvd1dvcmtmbG93XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgaSA9PSBzZWxlY3RlZERhdGEuc2xpY2UoMSkubGVuZ3RoIC0gMSA/IFwiRmluYWxcIiA6IGkgKyAyIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB7eyBlbGVtZW50W2Rpc3BsYXlFbGVtZW50S2V5XSB9fVxuICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIHwgZGF0YVR5cGUpID09PSAnb2JqZWN0J1wiXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIgZWxlbWVudFtkaXNwbGF5RWxlbWVudEtleV1cIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICBcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhbm9uUmVtb3ZhYmxlVXNlcnNMaXN0LmluY2x1ZGVzKGVsZW1lbnRbZWxlbWVudElkXSlcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlU2VsZWN0ZWQoZWxlbWVudClcIlxuICAgICAgICAgICAgICA+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGVsZW1lbnRbZGlzcGxheUVsZW1lbnRLZXldIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZD8uY2F0ZWdvcnlfaWQgJiZcbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkPy5jYXRlZ29yeV9pZCA9PT0gZWxlbWVudD8uY2F0ZWdvcnlfaWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBjbGFzcz1cInByaW1hcnktbGFiZWxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIFBSSU1BUllcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9hcHAtcG9wb3Zlcj5cbjxhcHAtcG9wb3ZlciAjVXNlcldpdGhGZWF0dXJlRmxhZ1BvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBkYXRhIG9mIHNlbGVjdGVkRGF0YSB8IHNsaWNlIDogMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhW2Rpc3BsYXlFbGVtZW50S2V5XVwiXG4gICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVTZWxlY3RlZChkYXRhKVwiPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICA+e3sgZGF0YVtkaXNwbGF5RWxlbWVudEtleV0gfX08L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG48YXBwLXBvcG92ZXIgI2dyb3VwUG9wb3ZlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGRhdGEgb2Ygc2VsZWN0ZWRHcm91cHMgfCBzbGljZSA6IDFcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YVsnZ3JvdXBfbmFtZSddXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVTZWxlY3RlZEdyb3VwKGRhdGEpXCI+JiN4ZTkwZDs8L2lcbiAgICAgICAgICAgID57eyBkYXRhW1wiZ3JvdXBfbmFtZVwiXSB9fTwvc3BhblxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9hcHAtcG9wb3Zlcj5cbiJdfQ==
@@ -221,7 +221,7 @@ export class ProgramListComponent {
221
221
  onFilterChange() {
222
222
  if (this.selectedProgramType.length > 0) {
223
223
  const filteredItems = this.items.filter((item) => this.selectedProgramType.includes(item.type));
224
- this.paginatedItems = this.listUtils.paginate(filteredItems, this.currentPage, this.pageSize);
224
+ this.paginatedItems = [...filteredItems];
225
225
  }
226
226
  else {
227
227
  this.paginatedItems = this.items;
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
275
275
  }], itemsSelectedChange: [{
276
276
  type: Output
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC9wcm9ncmFtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wcm9ncmFtLWxpc3QvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0RCxNQUFNLGVBQWUsQ0FBQztBQUVqSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFDN0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBMkMvQixZQUNVLFNBQTJCLEVBQzNCLHFCQUE0QztRQUQ1QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBNUN0RCxpREFBaUQ7UUFDeEMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV6Qiw0REFBNEQ7UUFDbkQsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFeEMsaURBQWlEO1FBQ3hDLFFBQUcsR0FBUSxFQUFF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dXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9saXN0LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBST0dSQU1fVEFCTEVfSEVBREVSUywgUEFHSU5BVElPTl9PUFRJT05TLCBQUk9HUkFNX1RZUEVfTElTVCwgUFJPR1JBTV9OT19EQVRBIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgTGlzdFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xpc3QtdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9ncmFtTGlzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtLWxpc3QtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG4vKipcbiAqIEEgcmV1c2FibGUgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGFuZCBtYW5hZ2luZyBhIGxpc3Qgb2YgcHJvZ3JhbXMgd2l0aCBmaWx0ZXJpbmcsIHBhZ2luYXRpb24sIGFuZCBjYXRlZ29yeSB2aWV3aW5nIGNhcGFiaWxpdGllcy5cbiAqIFxuICogRmVhdHVyZXM6XG4gKiAtIFByb2dyYW0gbGlzdGluZyB3aXRoIHBhZ2luYXRpb25cbiAqIC0gU2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2l0aCBkZWJvdW5jZVxuICogLSBQcm9ncmFtIHR5cGUgZmlsdGVyaW5nXG4gKiAtIENhdGVnb3J5IHZpZXdpbmcgZm9yIHNlbGVjdGVkIHByb2dyYW1zXG4gKiAtIE11bHRpLXNlbGVjdCBjYXBhYmlsaXR5XG4gKiBcbiAqIEB0ZW1wbGF0ZSBUIEV4dGVuZHMgTGlzdEl0ZW0gaW50ZXJmYWNlIGZvciB0eXBlIHNhZmV0eSBvZiBsaXN0IGl0ZW1zXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9ncmFtLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3JhbUxpc3RDb21wb25lbnQ8VCBleHRlbmRzIExpc3RJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKiogQXJyYXkgb2YgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBsaXN0ICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBUW10gPSBbXTtcbiAgXG4gIC8qKiBPYmplY3QgY29udGFpbmluZyBzZWxlY3RlZCBpdGVtcywga2V5ZWQgYnkgcHJvZ3JhbSBJRCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnkgfCBudWxsID0ge307XG4gIFxuICAvKiogVVJMIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBBUEkgZW5kcG9pbnRzICovXG4gIEBJbnB1dCgpIHVybDogYW55ID0ge307XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkICovXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIFxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGl0ZW0gaXMgZGVzZWxlY3RlZCAqL1xuICBAT3V0cHV0KCkgaXRlbURlc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIFxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcyAqL1xuICBAT3V0cHV0KCkgaXRlbXNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIHRhYmxlSGVhZGVycyA9IFBST0dSQU1fVEFCTEVfSEVBREVSUztcbiAgY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX09QVElPTlMuREVGQVVMVF9DVVJSRU5UX1BBR0U7XG4gIHBhZ2VTaXplID0gUEFHSU5BVElPTl9PUFRJT05TLlBBR0VfU0laRTtcbiAgdG90YWxQYWdlcyA9IDA7XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgcGFnaW5hdGVkSXRlbXM6IFRbXSA9IFtdO1xuICBhY3RpdmVQcm9ncmFtOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICBwcm9ncmFtVHlwZUxpc3Q6IGFueVtdID0gUFJPR1JBTV9UWVBFX0xJU1Q7XG4gIHNlbGVjdGVkUHJvZ3JhbVR5cGU6IGFueVtdID0gW107XG4gIGxvYWRlclN0YXRlOiBhbnkgPSB7XG4gICAgcHJvZ3JhbUxpc3Q6IGZhbHNlLFxuICAgIGNhdGVnb3J5TGlzdDogZmFsc2UsXG4gIH07XG4gIGFwcGxpZWRQcm9ncmFtVHlwZTogYW55W10gPSBbXTtcbiAgUFJPR1JBTV9OT19EQVRBOiBhbnkgPSBQUk9HUkFNX05PX0RBVEE7XG4gIEFTU0VUUzogYW55ID0gQVNTRVRTO1xuXG4gIC8qKiBTdWJqZWN0IGZvciBoYW5kbGluZyBkZWJvdW5jZWQgc2VhcmNoICovXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgXG4gIC8qKiBTdWJqZWN0IGZvciBjbGVhbnVwIHN1YnNjcmlwdGlvbnMgKi9cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsaXN0VXRpbHM6IExpc3RVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9ncmFtTGlzdEFwaVNlcnZpY2U6IFByb2dyYW1MaXN0QXBpU2VydmljZVxuICApIHtcbiAgICAvLyBJbml0aWFsaXplIGRlYm91bmNlZCBzZWFyY2hcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogSW5pdGlhbGl6ZSBjb21wb25lbnQgYnkgZmV0Y2hpbmcgcHJvZ3JhbSBsaXN0ICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbUxpc3QoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2hhbmdlcyB0byBpbnB1dHMgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddIHx8IGNoYW5nZXNbJ3NlbGVjdGVkSXRlbXMnXSkge1xuICAgICAgdGhpcy5wYWdpbmF0ZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBGZXRjaCBwcm9ncmFtIGxpc3QgZnJvbSBBUEkgKi9cbiAgZ2V0UHJvZ3JhbUxpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdCA9IHRydWU7XG4gICAgdGhpcy5wcm9ncmFtTGlzdEFwaVNlcnZpY2UuZ2V0UHJvZ3JhbUxpc3QodGhpcy51cmwucHJvZ3JhbUxpc3QpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaXRlbXMgPSByZXMuZGF0YS5wcm9ncmFtcztcbiAgICAgIHRoaXMubG9hZERhdGEodGhpcy5pdGVtcyk7XG4gICAgICB0aGlzLmxvYWRlclN0YXRlLnByb2dyYW1MaXN0ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBkYXRhIGFuZCBpbml0aWFsaXplIHBhZ2luYXRpb25cbiAgICogQHBhcmFtIGRhdGEgQXJyYXkgb2YgaXRlbXMgdG8gbG9hZFxuICAgKi9cbiAgbG9hZERhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5nb1RvUGFnZSgxLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgaXRlbSBzZWxlY3Rpb24vZGVzZWxlY3Rpb25cbiAgICogQHBhcmFtIGV2ZW50IFNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gaXRlbSBJdGVtIGJlaW5nIHNlbGVjdGVkL2Rlc2VsZWN0ZWRcbiAgICovXG4gIHNlbGVjdEl0ZW0oZXZlbnQ6IGFueSwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBpZighdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLmFjdGl2ZVByb2dyYW0uaWRdLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbdGhpcy5hY3RpdmVQcm9ncmFtLmlkXS5maWx0ZXIoKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkLmlkICE9PSBpdGVtLmlkKTtcbiAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICB0aGlzLml0ZW1EZXNlbGVjdGVkLmVtaXQoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc2VsZWN0IGEgc3BlY2lmaWMgaXRlbVxuICAgKiBAcGFyYW0gaXRlbSBJdGVtIHRvIGRlc2VsZWN0XG4gICAqL1xuICBkZXNlbGVjdEl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy5pdGVtRGVzZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGl0ZW0gaXMgc2VsZWN0ZWRcbiAgICogQHBhcmFtIGl0ZW0gSXRlbSB0byBjaGVja1xuICAgKiBAcmV0dXJucyBCb29sZWFuIGluZGljYXRpbmcgaWYgaXRlbSBpcyBzZWxlY3RlZFxuICAgKi9cbiAgaXNTZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIHNwZWNpZmljIHBhZ2VcbiAgICogQHBhcmFtIHBhZ2UgUGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG9cbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBwYWdpbmF0ZVxuICAgKi9cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICB0aGlzLnBhZ2luYXRlSXRlbXMoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFycmF5IG9mIHBhZ2UgbnVtYmVycyBmb3IgcGFnaW5hdGlvblxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBwYWdlIG51bWJlcnNcbiAgICovXG4gIGdldFBhZ2VOdW1iZXJzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VXRpbHMuZ2V0UGFnZU51bWJlcnModGhpcy5pdGVtcy5sZW5ndGgsIHRoaXMucGFnZVNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhZ2luYXRlIGl0ZW1zIGFuZCB1cGRhdGUgdmlld1xuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIHBhZ2luYXRlXG4gICAqL1xuICBwYWdpbmF0ZUl0ZW1zKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbChkYXRhLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgIHRoaXMucGFnaW5hdGVkSXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gW107XG4gIH1cblxuICAvKipcbiAgICogVmlldyBjYXRlZ29yaWVzIGZvciBhIHNlbGVjdGVkIHByb2dyYW1cbiAgICogQHBhcmFtIGl0ZW0gUHJvZ3JhbSB0byB2aWV3IGNhdGVnb3JpZXMgZm9yXG4gICAqL1xuICB2aWV3Q2F0ZWdvcnkoaXRlbT86IGFueSk6IHZvaWQge1xuICAgIGlmKCFpdGVtKSByZXR1cm47XG4gICAgdGhpcy5sb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QgPSB0cnVlO1xuICAgIGNvbnN0IFVSTCA9IGAke3RoaXMudXJsLmNhdGVnb3J5TGlzdH0maWQ9JHtpdGVtLmlkfWA7XG4gICAgdGhpcy5hY3RpdmVQcm9ncmFtID0gaXRlbTtcbiAgICB0aGlzLnByb2dyYW1MaXN0QXBpU2VydmljZS5nZXRQcm9ncmFtTGlzdChVUkwpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gcmVzLmRhdGEuY2F0ZWdvcmllcztcbiAgICAgIHRoaXMubG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMuYWRkUGFyZW50VHJlZVRvQ2F0ZWdvcmllcyh0aGlzLmNhdGVnb3J5TGlzdCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHBhcmVudCB0cmVlIGluZm9ybWF0aW9uIHRvIGNhdGVnb3JpZXNcbiAgICogQHBhcmFtIGNhdGVnb3JpZXMgQXJyYXkgb2YgY2F0ZWdvcmllc1xuICAgKiBAcmV0dXJucyBDYXRlZ29yaWVzIHdpdGggcGFyZW50IHRyZWUgaW5mb3JtYXRpb25cbiAgICovXG4gIGFkZFBhcmVudFRyZWVUb0NhdGVnb3JpZXMoY2F0ZWdvcmllczogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgY2F0ZWdvcnlNYXAgPSBuZXcgTWFwKGNhdGVnb3JpZXM/Lm1hcChjYXRlZ29yeSA9PiBbY2F0ZWdvcnk/LmlkLCBjYXRlZ29yeV0pKTtcbiAgXG4gICAgZnVuY3Rpb24gZ2V0UGFyZW50VHJlZShjYXRlZ29yeTogYW55KTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcGFyZW50VHJlZTogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBjdXJyZW50UGFyZW50ID0gY2F0ZWdvcnk/LnBhcmVudDtcbiAgXG4gICAgICB3aGlsZSAoY3VycmVudFBhcmVudCkge1xuICAgICAgICBjb25zdCBwYXJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5TWFwLmdldChjdXJyZW50UGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudENhdGVnb3J5KSB7XG4gICAgICAgICAgcGFyZW50VHJlZS5wdXNoKHBhcmVudENhdGVnb3J5Lm5hbWUpO1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRDYXRlZ29yeS5wYXJlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gcGFyZW50VHJlZTtcbiAgICB9XG4gIFxuICAgIHJldHVybiBjYXRlZ29yaWVzLm1hcChjYXRlZ29yeSA9PiAoe1xuICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICBwYXJlbnRUcmVlOiBnZXRQYXJlbnRUcmVlKGNhdGVnb3J5KVxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcHJvZ3JhbSB0eXBlIGZpbHRlciBzZWxlY3Rpb25cbiAgICogQHBhcmFtIGV2ZW50IFNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gaXRlbSBQcm9ncmFtIHR5cGUgYmVpbmcgc2VsZWN0ZWQvZGVzZWxlY3RlZFxuICAgKi9cbiAgc2VsZWN0RmlsdGVyKGV2ZW50OiBhbnksIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUucHVzaChpdGVtLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlID0gdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmZpbHRlcigoc2VsZWN0ZWQ6IGFueSkgPT4gc2VsZWN0ZWQgIT09IGl0ZW0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldCBhbGwgYXBwbGllZCBmaWx0ZXJzICovXG4gIHJlc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZSA9IFtdO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKiBBcHBseSBzZWxlY3RlZCBmaWx0ZXJzIHRvIHRoZSBwcm9ncmFtIGxpc3QgKi9cbiAgb25GaWx0ZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYodGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PiB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUuaW5jbHVkZXMoaXRlbS50eXBlKSk7XG4gICAgICB0aGlzLnBhZ2luYXRlZEl0ZW1zID0gdGhpcy5saXN0VXRpbHMucGFnaW5hdGUoZmlsdGVyZWRJdGVtcywgdGhpcy5jdXJyZW50UGFnZSwgdGhpcy5wYWdlU2l6ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFnaW5hdGVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGllZFByb2dyYW1UeXBlID0gdGhpcy5wcm9ncmFtVHlwZUxpc3QuZmlsdGVyKChpdGVtOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZS5pbmNsdWRlcyhpdGVtLmlkKSk7XG4gICB0aGlzLmNoZWNrQ2F0ZWdvcnlBdmFpbGJpbGl0eSgpO1xuICAgIFxuICB9XG4gXG4gIGNoZWNrQ2F0ZWdvcnlBdmFpbGJpbGl0eSgpOiB2b2lkIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkUHJvZ3JhbUF2YWlsYWJsZSA9IHRoaXMucGFnaW5hdGVkSXRlbXMuc29tZSgoaXRlbTogYW55KSA9PiBpdGVtPy5pZCA9PT0gdGhpcy5hY3RpdmVQcm9ncmFtPy5pZCk7XG4gICAgaWYoIWlzU2VsZWN0ZWRQcm9ncmFtQXZhaWxhYmxlKSB7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IFtdO1xuICAgICAgdGhpcy5hY3RpdmVQcm9ncmFtID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKiogVHJpZ2dlciBkZWJvdW5jZWQgc2VhcmNoICovXG4gIHNlYXJjaCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dCh0aGlzLnNlYXJjaFRlcm0pO1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gc2VhcmNoIG9uIGl0ZW1zICovXG4gIHByaXZhdGUgcGVyZm9ybVNlYXJjaCgpOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT4gaXRlbT8ubmFtZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnNlYXJjaFRlcm0/LnRvTG93ZXJDYXNlKCkpKTtcbiAgICB0aGlzLnBhZ2luYXRlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcztcbiAgICB0aGlzLmNoZWNrQ2F0ZWdvcnlBdmFpbGJpbGl0eSgpO1xuICB9XG5cbiAgLyoqIENsZWFudXAgc3Vic2NyaXB0aW9ucyBvbiBjb21wb25lbnQgZGVzdHJ1Y3Rpb24gKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY2xvc2VQb3BvdmVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZihldmVudCkge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlID0gdGhpcy5hcHBsaWVkUHJvZ3JhbVR5cGUubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0/LmlkKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkeW5hbWljLWxpc3QtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXhcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYjs8L2k+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaC4uLlwiXG4gICAgICAgIChrZXl1cCk9XCJzZWFyY2goKVwiXG4gICAgICAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZHluYW1pYy1saXN0LWZpbHRlclwiXG4gICAgICBhcHBQb3BvdmVyXG4gICAgICAoY2xpY2spPVwicHJvZ3JhbVR5cGVQb3BvdmVyLnBvcG92ZXIoKVwiXG4gICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImFwcGxpZWRQcm9ncmFtVHlwZS5sZW5ndGggPT09IDA7IGVsc2Ugc2VsZWN0ZWRUeXBlRmlsdGVyXCIgY2xhc3M9XCJmaWx0ZXItdGV4dFwiPlNlbGVjdCBQcm9ncmFtIFR5cGU8L2Rpdj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRUeXBlRmlsdGVyPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGllZFByb2dyYW1UeXBlLmxlbmd0aFwiXG4gICAgICAgICAgICA+XG4gICAgICBcbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICBhcHBsaWVkUHJvZ3JhbVR5cGVbMF0/Lm5hbWVcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID57e1xuICAgICAgICAgICAgICAgICAgYXBwbGllZFByb2dyYW1UeXBlWzBdPy5uYW1lXG4gICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwbGllZFByb2dyYW1UeXBlLmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgK3t7IGFwcGxpZWRQcm9ncmFtVHlwZS5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyBmaWx0ZXItaWNvblwiPiAmI3hlOWU4OyA8L2k+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJkeW5hbWljLWxpc3QtdGFibGVcIlxuICAgICpuZ0lmPVwicGFnaW5hdGVkSXRlbXM/Lmxlbmd0aCA+IDAgfHwgIChsb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdCB8fCBsb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QpOyBlbHNlIGRlZmF1bHRUZW1wbGF0ZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWhlYWRlciB2eC1kLWZsZXhcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGhlYWRlciBvZiB0YWJsZUhlYWRlcnNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC13LTUwIHZ4LXBsLTFcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNlcmlhbE5vIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgI1xuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiaGVhZGVyVGV4dCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGhlYWRlciB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWxpc3QtYm9keSB2eC1kLWZsZXhcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclN0YXRlLnByb2dyYW1MaXN0O2Vsc2UgcHJvZ3JhbUxpc3RMb2FkZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnaW5hdGVkSXRlbXMgfCBzZWFyY2g6IHNlYXJjaFRlcm0gOiAnbmFtZSc7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwibGlzdC1yb3dcIlxuICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJhY3RpdmVQcm9ncmFtPy5pZCA9PT0gaXRlbS5pZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInZpZXdDYXRlZ29yeShpdGVtKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb2x1bW4gc2VyaWFsXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3JOb1wiPnt7IGkgKyAxIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWNvbHVtbiBuYW1lXCJcbiAgICAgICAgICAgIFtjbGFzcy53aXRoLWNvdW50XT1cInNlbGVjdGVkSXRlbXNbaXRlbS5pZF0/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyIHZ4LWZzLTEzIHZ4LXByLTJcIj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtY29sdW1uIGNvdW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRJdGVtc1tpdGVtLmlkXT8ubGVuZ3RoID4gMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LWJveCB2eC1mcy05IHZ4LWZ3LTYwMCB2eC1saC00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBzZWxlY3RlZEl0ZW1zW2l0ZW0uaWRdLmxlbmd0aCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnQtdGV4dCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTQgdngtbWwtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7c2VsZWN0ZWRJdGVtc1tpdGVtLmlkXS5sZW5ndGggPiAxID8gJ0NBVEVHT1JJRVMnIDogJ0NBVEVHT1JZJ319IFNFTEVDVEVEXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1jb2x1bW4gYWN0aW9uXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXJyb3cgdngtZnMtMTIgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiAmI3hlOTcwOyA8L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3Byb2dyYW1MaXN0TG9hZGVyPlxuICAgICAgICAgIDxhcHAtdGFibGUtbG9hZGVyPjwvYXBwLXRhYmxlLWxvYWRlcj5cblxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sdW1uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ICYmICFsb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdDtlbHNlIGNhdGVnb3J5TGlzdExvYWRlclwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXRlZ29yeUxpc3Q/Lmxlbmd0aCA+IDA7ZWxzZSBkZWZhdWx0U3ViQ2F0ZWdvcnlUZW1wbGF0ZVwiPiAgICBcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdC1yb3cgdngtcGwtMiB2eC1wci0yXCJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNhdGVnb3J5TGlzdDsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgID4gXG4gICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0/LmlkXCJcbiAgICAgICAgICAgIFtuZ1ZhbHVlXT1cIml0ZW0uaWQgfCBjaGVja1NlbGVjdGVkSXRlbXM6IHNlbGVjdGVkSXRlbXNbYWN0aXZlUHJvZ3JhbS5pZF1cIlxuICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0SXRlbSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlLWlubmVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLW5hbWUgdngtZnMtMTNcIj57eyBpdGVtPy5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXRoaW4tcGFydCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXByLTNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbT8ucGFyZW50VHJlZT8ubGVuZ3RoXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLWJveCB2eC1mcy05IHZ4LWZ3LTYwMCB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LW1yLTIgdngtbGgtM1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgV2l0aGluXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3aXRoaW4tdmFsdWUgdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dFwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJpdGVtPy5wYXJlbnRUcmVlPy5qb2luKCcgPiAnKVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGl0ZW0/LnBhcmVudFRyZWU/LmpvaW4oXCIgPiBcIikgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0U3ViQ2F0ZWdvcnlUZW1wbGF0ZT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLW5vLWRhdGFcIj5cbiAgICAgICAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiXG4gICAgICAgICAgICAgICAgQVNTRVRTLnNlYXJjaF9kYXRhXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFtub0RhdGFUZXh0XT1cIlBST0dSQU1fTk9fREFUQS5jYXRlZ29yeUxpc3RcIlxuICAgICAgICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NhdGVnb3J5TGlzdExvYWRlcj5cbiAgICAgICAgICA8YXBwLXRhYmxlLWxvYWRlcj48L2FwcC10YWJsZS1sb2FkZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgXG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LW5vLWRhdGEtY29udGFpbmVyXCI+XG4gICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgW25vRGF0YUltYWdlXT1cIlxuICAgICAgICAgIEFTU0VUUy5zZWFyY2hfZGF0YVxuICAgICAgICBcIlxuICAgICAgICBbbm9EYXRhVGV4dF09XCJzZWFyY2hUZXJtID8gUFJPR1JBTV9OT19EQVRBLnNlYXJjaCA6IFBST0dSQU1fTk9fREFUQS5wcm9ncmFtTGlzdFwiXG4gICAgICA+PC9hcHAtbm8tZGF0YT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48YXBwLXBvcG92ZXIgI3Byb2dyYW1UeXBlUG9wb3ZlciAoY2xvc2VQb3BvdmVyRXZlbnQpPVwiY2xvc2VQb3BvdmVyKCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cIm5ldy1hY3Rpb24tbGlzdFwiPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvZ3JhbS10eXBlLXRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LWdyYXktNjAgdngtbGgtMTYgdngtcC0yIHZ4LXR0LXVwcGVyY2FzZVwiXG4gICAgPlxuICAgICAgUHJvZ3JhbSBUeXBlOlxuICAgIDwvZGl2PlxuICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJvZ3JhbVR5cGVMaXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWl0ZW1cIj5cbiAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XG4gICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5pZFwiXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJzZWxlY3RlZFByb2dyYW1UeXBlLmluY2x1ZGVzKGl0ZW0uaWQpXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEZpbHRlcigkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpdGVtPy5uYW1lIH19XG4gICAgICAgICAgPC9hcHAtY3MtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicHJvZ3JhbS10eXBlLWJvdHRvbSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LXB0LTMgdngtcGItM1wiXG4gICAgPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXIoKTtwcm9ncmFtVHlwZVBvcG92ZXIuY2xvc2VQb3BvdmVyKCd0b3AnKVwiXG4gICAgICAgIGNsYXNzPVwicmVzZXQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LXBsLTIgdngtcHItMiB2eC1saC02XCJcbiAgICAgID5cbiAgICAgICAgUkVTRVRcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwib25GaWx0ZXJDaGFuZ2UoKTsgcHJvZ3JhbVR5cGVQb3BvdmVyLmNsb3NlUG9wb3ZlcigndG9wJylcIlxuICAgICAgICBjbGFzcz1cImFwcGx5LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJzZWxlY3RlZFByb2dyYW1UeXBlPy5sZW5ndGggPT09IDBcIlxuICAgICAgPlxuICAgICAgICBBUFBMWVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9hcHAtcG9wb3Zlcj5cbiJdfQ==
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC9wcm9ncmFtLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9wcm9ncmFtLWxpc3QvcHJvZ3JhbS1saXN0L3Byb2dyYW0tbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUE0RCxNQUFNLGVBQWUsQ0FBQztBQUVqSSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFDN0Q7Ozs7Ozs7Ozs7O0dBV0c7QUFNSCxNQUFNLE9BQU8sb0JBQW9CO0lBMkMvQixZQUNVLFNBQTJCLEVBQzNCLHFCQUE0QztRQUQ1QyxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBNUN0RCxpREFBaUQ7UUFDeEMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUV6Qiw0REFBNEQ7UUFDbkQsa0JBQWEsR0FBZSxFQUFFLENBQUM7UUFFeEMsaURBQWlEO1FBQ3hDLFFBQUcsR0FBUSxFQUFF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QUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsOEJBQThCO0lBQ3RCLGFBQWE7UUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNILElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxREFBcUQ7SUFDckQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBRyxLQUFLLEVBQUU7WUFDUixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0gsQ0FBQzsrR0F0UVUsb0JBQW9CO21HQUFwQixvQkFBb0IsOFFDekJqQyxpelBBNk5BOzs0RkRwTWEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjsySUFNbkIsS0FBSztzQkFBYixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csR0FBRztzQkFBWCxLQUFLO2dCQUdJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0csY0FBYztzQkFBdkIsTUFBTTtnQkFHRyxtQkFBbUI7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIE9uSW5pdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9saXN0LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBST0dSQU1fVEFCTEVfSEVBREVSUywgUEFHSU5BVElPTl9PUFRJT05TLCBQUk9HUkFNX1RZUEVfTElTVCwgUFJPR1JBTV9OT19EQVRBIH0gZnJvbSAnLi4vY29uc3RhbnQnO1xuaW1wb3J0IHsgTGlzdFV0aWxzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2xpc3QtdXRpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9ncmFtTGlzdEFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcm9ncmFtLWxpc3QtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG4vKipcbiAqIEEgcmV1c2FibGUgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGFuZCBtYW5hZ2luZyBhIGxpc3Qgb2YgcHJvZ3JhbXMgd2l0aCBmaWx0ZXJpbmcsIHBhZ2luYXRpb24sIGFuZCBjYXRlZ29yeSB2aWV3aW5nIGNhcGFiaWxpdGllcy5cbiAqIFxuICogRmVhdHVyZXM6XG4gKiAtIFByb2dyYW0gbGlzdGluZyB3aXRoIHBhZ2luYXRpb25cbiAqIC0gU2VhcmNoIGZ1bmN0aW9uYWxpdHkgd2l0aCBkZWJvdW5jZVxuICogLSBQcm9ncmFtIHR5cGUgZmlsdGVyaW5nXG4gKiAtIENhdGVnb3J5IHZpZXdpbmcgZm9yIHNlbGVjdGVkIHByb2dyYW1zXG4gKiAtIE11bHRpLXNlbGVjdCBjYXBhYmlsaXR5XG4gKiBcbiAqIEB0ZW1wbGF0ZSBUIEV4dGVuZHMgTGlzdEl0ZW0gaW50ZXJmYWNlIGZvciB0eXBlIHNhZmV0eSBvZiBsaXN0IGl0ZW1zXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1wcm9ncmFtLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZ3JhbS1saXN0LmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgUHJvZ3JhbUxpc3RDb21wb25lbnQ8VCBleHRlbmRzIExpc3RJdGVtPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKiogQXJyYXkgb2YgaXRlbXMgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBsaXN0ICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBUW10gPSBbXTtcbiAgXG4gIC8qKiBPYmplY3QgY29udGFpbmluZyBzZWxlY3RlZCBpdGVtcywga2V5ZWQgYnkgcHJvZ3JhbSBJRCAqL1xuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnkgfCBudWxsID0ge307XG4gIFxuICAvKiogVVJMIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciBBUEkgZW5kcG9pbnRzICovXG4gIEBJbnB1dCgpIHVybDogYW55ID0ge307XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkICovXG4gIEBPdXRwdXQoKSBpdGVtU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIFxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGFuIGl0ZW0gaXMgZGVzZWxlY3RlZCAqL1xuICBAT3V0cHV0KCkgaXRlbURlc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gIFxuICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3Rpb24gY2hhbmdlcyAqL1xuICBAT3V0cHV0KCkgaXRlbXNTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gIHRhYmxlSGVhZGVycyA9IFBST0dSQU1fVEFCTEVfSEVBREVSUztcbiAgY3VycmVudFBhZ2UgPSBQQUdJTkFUSU9OX09QVElPTlMuREVGQVVMVF9DVVJSRU5UX1BBR0U7XG4gIHBhZ2VTaXplID0gUEFHSU5BVElPTl9PUFRJT05TLlBBR0VfU0laRTtcbiAgdG90YWxQYWdlcyA9IDA7XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgcGFnaW5hdGVkSXRlbXM6IFRbXSA9IFtdO1xuICBhY3RpdmVQcm9ncmFtOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY2F0ZWdvcnlMaXN0OiBhbnlbXSA9IFtdO1xuICBwcm9ncmFtVHlwZUxpc3Q6IGFueVtdID0gUFJPR1JBTV9UWVBFX0xJU1Q7XG4gIHNlbGVjdGVkUHJvZ3JhbVR5cGU6IGFueVtdID0gW107XG4gIGxvYWRlclN0YXRlOiBhbnkgPSB7XG4gICAgcHJvZ3JhbUxpc3Q6IGZhbHNlLFxuICAgIGNhdGVnb3J5TGlzdDogZmFsc2UsXG4gIH07XG4gIGFwcGxpZWRQcm9ncmFtVHlwZTogYW55W10gPSBbXTtcbiAgUFJPR1JBTV9OT19EQVRBOiBhbnkgPSBQUk9HUkFNX05PX0RBVEE7XG4gIEFTU0VUUzogYW55ID0gQVNTRVRTO1xuXG4gIC8qKiBTdWJqZWN0IGZvciBoYW5kbGluZyBkZWJvdW5jZWQgc2VhcmNoICovXG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgXG4gIC8qKiBTdWJqZWN0IGZvciBjbGVhbnVwIHN1YnNjcmlwdGlvbnMgKi9cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsaXN0VXRpbHM6IExpc3RVdGlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcm9ncmFtTGlzdEFwaVNlcnZpY2U6IFByb2dyYW1MaXN0QXBpU2VydmljZVxuICApIHtcbiAgICAvLyBJbml0aWFsaXplIGRlYm91bmNlZCBzZWFyY2hcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgzMDApLFxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5wZXJmb3JtU2VhcmNoKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogSW5pdGlhbGl6ZSBjb21wb25lbnQgYnkgZmV0Y2hpbmcgcHJvZ3JhbSBsaXN0ICovXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0UHJvZ3JhbUxpc3QoKTtcbiAgfVxuXG4gIC8qKiBIYW5kbGUgY2hhbmdlcyB0byBpbnB1dHMgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddIHx8IGNoYW5nZXNbJ3NlbGVjdGVkSXRlbXMnXSkge1xuICAgICAgdGhpcy5wYWdpbmF0ZUl0ZW1zKHRoaXMuaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBGZXRjaCBwcm9ncmFtIGxpc3QgZnJvbSBBUEkgKi9cbiAgZ2V0UHJvZ3JhbUxpc3QoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdCA9IHRydWU7XG4gICAgdGhpcy5wcm9ncmFtTGlzdEFwaVNlcnZpY2UuZ2V0UHJvZ3JhbUxpc3QodGhpcy51cmwucHJvZ3JhbUxpc3QpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaXRlbXMgPSByZXMuZGF0YS5wcm9ncmFtcztcbiAgICAgIHRoaXMubG9hZERhdGEodGhpcy5pdGVtcyk7XG4gICAgICB0aGlzLmxvYWRlclN0YXRlLnByb2dyYW1MaXN0ID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCBkYXRhIGFuZCBpbml0aWFsaXplIHBhZ2luYXRpb25cbiAgICogQHBhcmFtIGRhdGEgQXJyYXkgb2YgaXRlbXMgdG8gbG9hZFxuICAgKi9cbiAgbG9hZERhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5nb1RvUGFnZSgxLCBkYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgaXRlbSBzZWxlY3Rpb24vZGVzZWxlY3Rpb25cbiAgICogQHBhcmFtIGV2ZW50IFNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gaXRlbSBJdGVtIGJlaW5nIHNlbGVjdGVkL2Rlc2VsZWN0ZWRcbiAgICovXG4gIHNlbGVjdEl0ZW0oZXZlbnQ6IGFueSwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBpZighdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0pIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc1t0aGlzLmFjdGl2ZVByb2dyYW0uaWRdLnB1c2goaXRlbSk7XG4gICAgICB0aGlzLml0ZW1zU2VsZWN0ZWRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgdGhpcy5pdGVtU2VsZWN0ZWQuZW1pdChpdGVtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zW3RoaXMuYWN0aXZlUHJvZ3JhbS5pZF0gPSB0aGlzLnNlbGVjdGVkSXRlbXNbdGhpcy5hY3RpdmVQcm9ncmFtLmlkXS5maWx0ZXIoKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkLmlkICE9PSBpdGVtLmlkKTtcbiAgICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICB0aGlzLml0ZW1EZXNlbGVjdGVkLmVtaXQoaXRlbSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlc2VsZWN0IGEgc3BlY2lmaWMgaXRlbVxuICAgKiBAcGFyYW0gaXRlbSBJdGVtIHRvIGRlc2VsZWN0XG4gICAqL1xuICBkZXNlbGVjdEl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbXNTZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgdGhpcy5pdGVtRGVzZWxlY3RlZC5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGFuIGl0ZW0gaXMgc2VsZWN0ZWRcbiAgICogQHBhcmFtIGl0ZW0gSXRlbSB0byBjaGVja1xuICAgKiBAcmV0dXJucyBCb29sZWFuIGluZGljYXRpbmcgaWYgaXRlbSBpcyBzZWxlY3RlZFxuICAgKi9cbiAgaXNTZWxlY3RlZChpdGVtOiBUKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE5hdmlnYXRlIHRvIHNwZWNpZmljIHBhZ2VcbiAgICogQHBhcmFtIHBhZ2UgUGFnZSBudW1iZXIgdG8gbmF2aWdhdGUgdG9cbiAgICogQHBhcmFtIGRhdGEgRGF0YSB0byBwYWdpbmF0ZVxuICAgKi9cbiAgZ29Ub1BhZ2UocGFnZTogbnVtYmVyLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gcGFnZTtcbiAgICB0aGlzLnBhZ2luYXRlSXRlbXMoZGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFycmF5IG9mIHBhZ2UgbnVtYmVycyBmb3IgcGFnaW5hdGlvblxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBwYWdlIG51bWJlcnNcbiAgICovXG4gIGdldFBhZ2VOdW1iZXJzKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gdGhpcy5saXN0VXRpbHMuZ2V0UGFnZU51bWJlcnModGhpcy5pdGVtcy5sZW5ndGgsIHRoaXMucGFnZVNpemUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhZ2luYXRlIGl0ZW1zIGFuZCB1cGRhdGUgdmlld1xuICAgKiBAcGFyYW0gZGF0YSBEYXRhIHRvIHBhZ2luYXRlXG4gICAqL1xuICBwYWdpbmF0ZUl0ZW1zKGRhdGE6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbChkYXRhLmxlbmd0aCAvIHRoaXMucGFnZVNpemUpO1xuICAgIHRoaXMucGFnaW5hdGVkSXRlbXMgPSBkYXRhO1xuICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gW107XG4gIH1cblxuICAvKipcbiAgICogVmlldyBjYXRlZ29yaWVzIGZvciBhIHNlbGVjdGVkIHByb2dyYW1cbiAgICogQHBhcmFtIGl0ZW0gUHJvZ3JhbSB0byB2aWV3IGNhdGVnb3JpZXMgZm9yXG4gICAqL1xuICB2aWV3Q2F0ZWdvcnkoaXRlbT86IGFueSk6IHZvaWQge1xuICAgIGlmKCFpdGVtKSByZXR1cm47XG4gICAgdGhpcy5sb2FkZXJTdGF0ZS5jYXRlZ29yeUxpc3QgPSB0cnVlO1xuICAgIGNvbnN0IFVSTCA9IGAke3RoaXMudXJsLmNhdGVnb3J5TGlzdH0maWQ9JHtpdGVtLmlkfWA7XG4gICAgdGhpcy5hY3RpdmVQcm9ncmFtID0gaXRlbTtcbiAgICB0aGlzLnByb2dyYW1MaXN0QXBpU2VydmljZS5nZXRQcm9ncmFtTGlzdChVUkwpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgIHRoaXMuY2F0ZWdvcnlMaXN0ID0gcmVzLmRhdGEuY2F0ZWdvcmllcztcbiAgICAgIHRoaXMubG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0ID0gZmFsc2U7XG4gICAgICB0aGlzLmNhdGVnb3J5TGlzdCA9IHRoaXMuYWRkUGFyZW50VHJlZVRvQ2F0ZWdvcmllcyh0aGlzLmNhdGVnb3J5TGlzdCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIHBhcmVudCB0cmVlIGluZm9ybWF0aW9uIHRvIGNhdGVnb3JpZXNcbiAgICogQHBhcmFtIGNhdGVnb3JpZXMgQXJyYXkgb2YgY2F0ZWdvcmllc1xuICAgKiBAcmV0dXJucyBDYXRlZ29yaWVzIHdpdGggcGFyZW50IHRyZWUgaW5mb3JtYXRpb25cbiAgICovXG4gIGFkZFBhcmVudFRyZWVUb0NhdGVnb3JpZXMoY2F0ZWdvcmllczogYW55W10pOiBhbnlbXSB7XG4gICAgY29uc3QgY2F0ZWdvcnlNYXAgPSBuZXcgTWFwKGNhdGVnb3JpZXM/Lm1hcChjYXRlZ29yeSA9PiBbY2F0ZWdvcnk/LmlkLCBjYXRlZ29yeV0pKTtcbiAgXG4gICAgZnVuY3Rpb24gZ2V0UGFyZW50VHJlZShjYXRlZ29yeTogYW55KTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcGFyZW50VHJlZTogc3RyaW5nW10gPSBbXTtcbiAgICAgIGxldCBjdXJyZW50UGFyZW50ID0gY2F0ZWdvcnk/LnBhcmVudDtcbiAgXG4gICAgICB3aGlsZSAoY3VycmVudFBhcmVudCkge1xuICAgICAgICBjb25zdCBwYXJlbnRDYXRlZ29yeSA9IGNhdGVnb3J5TWFwLmdldChjdXJyZW50UGFyZW50KTtcbiAgICAgICAgaWYgKHBhcmVudENhdGVnb3J5KSB7XG4gICAgICAgICAgcGFyZW50VHJlZS5wdXNoKHBhcmVudENhdGVnb3J5Lm5hbWUpO1xuICAgICAgICAgIGN1cnJlbnRQYXJlbnQgPSBwYXJlbnRDYXRlZ29yeS5wYXJlbnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICByZXR1cm4gcGFyZW50VHJlZTtcbiAgICB9XG4gIFxuICAgIHJldHVybiBjYXRlZ29yaWVzLm1hcChjYXRlZ29yeSA9PiAoe1xuICAgICAgLi4uY2F0ZWdvcnksXG4gICAgICBwYXJlbnRUcmVlOiBnZXRQYXJlbnRUcmVlKGNhdGVnb3J5KVxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcHJvZ3JhbSB0eXBlIGZpbHRlciBzZWxlY3Rpb25cbiAgICogQHBhcmFtIGV2ZW50IFNlbGVjdGlvbiBldmVudFxuICAgKiBAcGFyYW0gaXRlbSBQcm9ncmFtIHR5cGUgYmVpbmcgc2VsZWN0ZWQvZGVzZWxlY3RlZFxuICAgKi9cbiAgc2VsZWN0RmlsdGVyKGV2ZW50OiBhbnksIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUucHVzaChpdGVtLmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlID0gdGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmZpbHRlcigoc2VsZWN0ZWQ6IGFueSkgPT4gc2VsZWN0ZWQgIT09IGl0ZW0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBSZXNldCBhbGwgYXBwbGllZCBmaWx0ZXJzICovXG4gIHJlc2V0RmlsdGVyKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZSA9IFtdO1xuICAgIHRoaXMub25GaWx0ZXJDaGFuZ2UoKTtcbiAgfVxuXG4gIC8qKiBBcHBseSBzZWxlY3RlZCBmaWx0ZXJzIHRvIHRoZSBwcm9ncmFtIGxpc3QgKi9cbiAgb25GaWx0ZXJDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYodGhpcy5zZWxlY3RlZFByb2dyYW1UeXBlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PiB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUuaW5jbHVkZXMoaXRlbS50eXBlKSk7XG4gICAgICB0aGlzLnBhZ2luYXRlZEl0ZW1zID0gWy4uLmZpbHRlcmVkSXRlbXNdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRlZEl0ZW1zID0gdGhpcy5pdGVtcztcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxpZWRQcm9ncmFtVHlwZSA9IHRoaXMucHJvZ3JhbVR5cGVMaXN0LmZpbHRlcigoaXRlbTogYW55KSA9PiB0aGlzLnNlbGVjdGVkUHJvZ3JhbVR5cGUuaW5jbHVkZXMoaXRlbS5pZCkpO1xuICAgdGhpcy5jaGVja0NhdGVnb3J5QXZhaWxiaWxpdHkoKTtcbiAgICBcbiAgfVxuIFxuICBjaGVja0NhdGVnb3J5QXZhaWxiaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgaXNTZWxlY3RlZFByb2dyYW1BdmFpbGFibGUgPSB0aGlzLnBhZ2luYXRlZEl0ZW1zLnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbT8uaWQgPT09IHRoaXMuYWN0aXZlUHJvZ3JhbT8uaWQpO1xuICAgIGlmKCFpc1NlbGVjdGVkUHJvZ3JhbUF2YWlsYWJsZSkge1xuICAgICAgdGhpcy5jYXRlZ29yeUxpc3QgPSBbXTtcbiAgICAgIHRoaXMuYWN0aXZlUHJvZ3JhbSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRyaWdnZXIgZGVib3VuY2VkIHNlYXJjaCAqL1xuICBzZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQodGhpcy5zZWFyY2hUZXJtKTtcbiAgfVxuXG4gIC8qKiBQZXJmb3JtIHNlYXJjaCBvbiBpdGVtcyAqL1xuICBwcml2YXRlIHBlcmZvcm1TZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IGl0ZW0/Lm5hbWU/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGhpcy5zZWFyY2hUZXJtPy50b0xvd2VyQ2FzZSgpKSk7XG4gICAgdGhpcy5wYWdpbmF0ZWRJdGVtcyA9IGZpbHRlcmVkSXRlbXM7XG4gICAgdGhpcy5jaGVja0NhdGVnb3J5QXZhaWxiaWxpdHkoKTtcbiAgfVxuXG4gIC8qKiBDbGVhbnVwIHN1YnNjcmlwdGlvbnMgb24gY29tcG9uZW50IGRlc3RydWN0aW9uICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcihldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcm9ncmFtVHlwZSA9IHRoaXMuYXBwbGllZFByb2dyYW1UeXBlLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtPy5pZCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4XCI+XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2guLi5cIlxuICAgICAgICAoa2V5dXApPVwic2VhcmNoKClcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImR5bmFtaWMtbGlzdC1maWx0ZXJcIlxuICAgICAgYXBwUG9wb3ZlclxuICAgICAgKGNsaWNrKT1cInByb2dyYW1UeXBlUG9wb3Zlci5wb3BvdmVyKClcIlxuICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgID5cbiAgICAgIDxkaXYgKm5nSWY9XCJhcHBsaWVkUHJvZ3JhbVR5cGUubGVuZ3RoID09PSAwOyBlbHNlIHNlbGVjdGVkVHlwZUZpbHRlclwiIGNsYXNzPVwiZmlsdGVyLXRleHRcIj5TZWxlY3QgUHJvZ3JhbSBUeXBlPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGVkVHlwZUZpbHRlcj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpZWRQcm9ncmFtVHlwZS5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxuICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgYXBwbGllZFByb2dyYW1UeXBlWzBdPy5uYW1lXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgIGFwcGxpZWRQcm9ncmFtVHlwZVswXT8ubmFtZVxuICAgICAgICAgICAgICAgIH19PC9zcGFuXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImFwcGxpZWRQcm9ncmFtVHlwZS5sZW5ndGggPiAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICt7eyBhcHBsaWVkUHJvZ3JhbVR5cGUubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgZmlsdGVyLWljb25cIj4gJiN4ZTllODsgPC9pPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZHluYW1pYy1saXN0LXRhYmxlXCJcbiAgICAqbmdJZj1cInBhZ2luYXRlZEl0ZW1zPy5sZW5ndGggPiAwIHx8ICAobG9hZGVyU3RhdGUucHJvZ3JhbUxpc3QgfHwgbG9hZGVyU3RhdGUuY2F0ZWdvcnlMaXN0KTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImR5bmFtaWMtbGlzdC1oZWFkZXIgdngtZC1mbGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXJzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtdy01MCB2eC1wbC0xXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzZXJpYWxObyB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgICNcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImhlYWRlclRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBoZWFkZXIgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1saXN0LWJvZHkgdngtZC1mbGV4XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdC1jb2x1bW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFsb2FkZXJTdGF0ZS5wcm9ncmFtTGlzdDtlbHNlIHByb2dyYW1MaXN0TG9hZGVyXCI+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2luYXRlZEl0ZW1zIHwgc2VhcmNoOiBzZWFyY2hUZXJtIDogJ25hbWUnOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICBjbGFzcz1cImxpc3Qtcm93XCJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiYWN0aXZlUHJvZ3JhbT8uaWQgPT09IGl0ZW0uaWRcIlxuICAgICAgICAgIChjbGljayk9XCJ2aWV3Q2F0ZWdvcnkoaXRlbSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtY29sdW1uIHNlcmlhbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNyTm9cIj57eyBpICsgMSB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibGlzdC1jb2x1bW4gbmFtZVwiXG4gICAgICAgICAgICBbY2xhc3Mud2l0aC1jb3VudF09XCJzZWxlY3RlZEl0ZW1zW2l0ZW0uaWRdPy5sZW5ndGggPiAwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZS1pbm5lciB2eC1mcy0xMyB2eC1wci0yXCI+e3sgaXRlbS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0LWNvbHVtbiBjb3VudFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkSXRlbXNbaXRlbS5pZF0/Lmxlbmd0aCA+IDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudC1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtbGgtNCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgc2VsZWN0ZWRJdGVtc1tpdGVtLmlkXS5sZW5ndGggfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cImNvdW50LXRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1saC00IHZ4LW1sLTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7e3NlbGVjdGVkSXRlbXNbaXRlbS5pZF0ubGVuZ3RoID4gMSA/ICdDQVRFR09SSUVTJyA6ICdDQVRFR09SWSd9fSBTRUxFQ1RFRFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtY29sdW1uIGFjdGlvblwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cImFycm93IHZ4LWZzLTEyIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4gJiN4ZTk3MDsgPC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwcm9ncmFtTGlzdExvYWRlcj5cbiAgICAgICAgICA8YXBwLXRhYmxlLWxvYWRlcj48L2FwcC10YWJsZS1sb2FkZXI+XG5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0LWNvbHVtblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclN0YXRlLmNhdGVnb3J5TGlzdCAmJiAhbG9hZGVyU3RhdGUucHJvZ3JhbUxpc3Q7ZWxzZSBjYXRlZ29yeUxpc3RMb2FkZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2F0ZWdvcnlMaXN0Py5sZW5ndGggPiAwO2Vsc2UgZGVmYXVsdFN1YkNhdGVnb3J5VGVtcGxhdGVcIj4gICAgXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpc3Qtcm93IHZ4LXBsLTIgdngtcHItMlwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjYXRlZ29yeUxpc3Q7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICA+IFxuICAgICAgICAgIDxhcHAtY3MtY2hlY2tib3hcbiAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtPy5pZFwiXG4gICAgICAgICAgICBbbmdWYWx1ZV09XCJpdGVtLmlkIHwgY2hlY2tTZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zW2FjdGl2ZVByb2dyYW0uaWRdXCJcbiAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdEl0ZW0oJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZS1pbm5lclwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1uYW1lIHZ4LWZzLTEzXCI+e3sgaXRlbT8ubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2l0aGluLXBhcnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wci0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0/LnBhcmVudFRyZWU/Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIndpdGhpbi1ib3ggdngtZnMtOSB2eC1mdy02MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1tci0yIHZ4LWxoLTNcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIFdpdGhpblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwid2l0aGluLXZhbHVlIHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHRcIlxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaXRlbT8ucGFyZW50VHJlZT8uam9pbignID4gJylcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyBpdGVtPy5wYXJlbnRUcmVlPy5qb2luKFwiID4gXCIpIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFN1YkNhdGVnb3J5VGVtcGxhdGU+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1uby1kYXRhXCI+XG4gICAgICAgICAgICA8YXBwLW5vLWRhdGFcbiAgICAgICAgICAgICAgW25vRGF0YUltYWdlXT1cIlxuICAgICAgICAgICAgICAgIEFTU0VUUy5zZWFyY2hfZGF0YVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbbm9EYXRhVGV4dF09XCJQUk9HUkFNX05PX0RBVEEuY2F0ZWdvcnlMaXN0XCJcbiAgICAgICAgICAgID48L2FwcC1uby1kYXRhPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNjYXRlZ29yeUxpc3RMb2FkZXI+XG4gICAgICAgICAgPGFwcC10YWJsZS1sb2FkZXI+PC9hcHAtdGFibGUtbG9hZGVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgIFxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1uby1kYXRhLWNvbnRhaW5lclwiPlxuICAgICAgPGFwcC1uby1kYXRhXG4gICAgICAgIFtub0RhdGFJbWFnZV09XCJcbiAgICAgICAgICBBU1NFVFMuc2VhcmNoX2RhdGFcbiAgICAgICAgXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwic2VhcmNoVGVybSA/IFBST0dSQU1fTk9fREFUQS5zZWFyY2ggOiBQUk9HUkFNX05PX0RBVEEucHJvZ3JhbUxpc3RcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPGFwcC1wb3BvdmVyICNwcm9ncmFtVHlwZVBvcG92ZXIgKGNsb3NlUG9wb3ZlckV2ZW50KT1cImNsb3NlUG9wb3ZlcigkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJuZXctYWN0aW9uLWxpc3RcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS10ZXh0IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1ncmF5LTYwIHZ4LWxoLTE2IHZ4LXAtMiB2eC10dC11cHBlcmNhc2VcIlxuICAgID5cbiAgICAgIFByb2dyYW0gVHlwZTpcbiAgICA8L2Rpdj5cbiAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByb2dyYW1UeXBlTGlzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1pdGVtXCI+XG4gICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxuICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uaWRcIlxuICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRQcm9ncmFtVHlwZS5pbmNsdWRlcyhpdGVtLmlkKVwiXG4gICAgICAgICAgICAobmdWYWx1ZUNoYW5nZSk9XCJzZWxlY3RGaWx0ZXIoJGV2ZW50LCBpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaXRlbT8ubmFtZSB9fVxuICAgICAgICAgIDwvYXBwLWNzLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyYW0tdHlwZS1ib3R0b20gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1wdC0zIHZ4LXBiLTNcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cInJlc2V0RmlsdGVyKCk7cHJvZ3JhbVR5cGVQb3BvdmVyLmNsb3NlUG9wb3ZlcigndG9wJylcIlxuICAgICAgICBjbGFzcz1cInJlc2V0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0yIHZ4LXByLTIgdngtbGgtNlwiXG4gICAgICA+XG4gICAgICAgIFJFU0VUXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9uRmlsdGVyQ2hhbmdlKCk7IHByb2dyYW1UeXBlUG9wb3Zlci5jbG9zZVBvcG92ZXIoJ3RvcCcpXCJcbiAgICAgICAgY2xhc3M9XCJhcHBseS1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMiB2eC1wci0yIHZ4LWxoLTZcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwic2VsZWN0ZWRQcm9ncmFtVHlwZT8ubGVuZ3RoID09PSAwXCJcbiAgICAgID5cbiAgICAgICAgQVBQTFlcbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvYXBwLXBvcG92ZXI+XG4iXX0=