vcomply-workflow-engine 6.1.78 → 6.1.79

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.
@@ -220,11 +220,11 @@ export class FrequencyResponsibilityListComponent {
220
220
  this.selectedResponsibilityValues = event;
221
221
  }
222
222
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, deps: [{ token: i1.FrequencyService }, { token: i2.CommonService }], target: i0.ɵɵFactoryTarget.Component }); }
223
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\">&#xe91d;</i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\">&#xe9e7;</i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> &#xe9e8;</i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.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 .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;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{width: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{width:100%;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:5px}.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: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)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i10.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i11.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i13.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo", "selectedResponsibility"], outputs: ["onCompletionChange"] }, { kind: "component", type: i14.AvatarV2Component, selector: "lib-avatar-v2", inputs: ["avatarList", "type"] }] }); }
223
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\">&#xe91d;</i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\"\n [class.resp]=\"responsibility?.assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio\n *ngIf=\"assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\">&#xe9e7;</i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> &#xe9e8;</i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.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 .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;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{width: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{width:100%;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:5px}.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: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)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i6.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i7.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i8.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i10.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i11.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i13.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo", "selectedResponsibility"], outputs: ["onCompletionChange"] }, { kind: "component", type: i14.AvatarV2Component, selector: "lib-avatar-v2", inputs: ["avatarList", "type"] }] }); }
224
224
  }
225
225
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, decorators: [{
226
226
  type: Component,
227
- args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\">&#xe91d;</i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\" [class.resp]=\"responsibility?.assigneeDetails?.length === 1\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\">&#xe9e7;</i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> &#xe9e8;</i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.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 .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;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{width: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{width:100%;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:5px}.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: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)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
227
+ args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\">&#xe91d;</i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\">&#xe90b;</i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <ng-container *ngIf=\"responsibilitiesData?.pagination as pagination\">\n <app-pagination *ngIf=\"pagination?.total_pages > 1\" [start]=\"pagination?.responsibilities_from\"\n [end]=\"pagination?.responsibilities_to\" [total]=\"pagination?.total_responsibilities\"\n [pageCount]=\"pagination?.total_pages\" [currentPage]=\"responsibilityCurrentPage\"\n (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n </ng-container>\n\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <ng-container *ngIf=\"(responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1) as srNo\">\n <div class=\"table-row\"\n [class.resp]=\"responsibility?.assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id && responsibility?.assigneeDetails?.length === 1\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n srNo \n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{srNo}}\n </div>\n <app-cs-radio\n *ngIf=\"assigneeDetails?.length === 1 || (responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType))\"\n [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5 vx-d-flex vx-align-center\">\n <div class=\"avatar-list vx-d-flex vx-align-center\">\n <lib-avatar-v2 [avatarList]=\"responsibility?.allAssignee\"\n [type]=\"'SINGLE_AVATAR'\"></lib-avatar-v2>\n </div>\n\n <span class=\"value-text vx-ml-1 resp-name\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">{{\n responsibility?.controlId }} {{\n responsibility?.title\n }}</span>\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.allRc as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container\n *ngIf=\"assigneeDetails?.length > 1 && !(responsibility?.assigneeType === 'any' && [null, 'any'].includes(responsibility?.rcType)); else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\">&#xe9e7;</i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> &#xe9e8;</i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\" [srNo]=\"srNo\" [selectedResponsibility]=\"selectedResponsibilityValues\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.resp.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list{width:2.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .avatar-list app-avatar~app-avatar{margin-left:-.5rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .resp-name{text-overflow:ellipsis;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:14rem;min-width:14rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:3rem;min-width:3rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.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 .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;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{width: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{width:100%;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:5px}.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: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)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
228
228
  }], ctorParameters: function () { return [{ type: i1.FrequencyService }, { type: i2.CommonService }]; }, propDecorators: { selectedResponsibilityDetails: [{
229
229
  type: Input
230
230
  }], backButton: [{
@@ -232,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
232
232
  }], selectedResponsibility: [{
233
233
  type: Output
234
234
  }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLG9DQUFvQztJQTRDL0MsWUFDVSxnQkFBa0MsRUFDbEMsYUFBNEI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdDN0Isa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBRXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMvQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsNkJBQXdC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QkFBb0I7cUJBQzlFLENBQUM7Z0JBQ0YsWUFBWSxFQUFFLEVBQUU7YUFDakI7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtJQUMzQyxDQUFDOytHQWxQVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyw4T0NYakQsZ25TQXVLTTs7NEZENUpPLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxtQ0FBbUM7bUlBS3BDLDZCQUE2QjtzQkFBckMsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2xpY2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsczogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGJhY2tCdXR0b24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eUxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ6IGFueSA9IFtdO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzOiBhbnk7XG4gIFxuICByZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBpc1ZhbGlkT2JqID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhY3RpdmUnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRlcm06ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnk7XG4gIGNsb3NlOiBhbnk7XG4gIG9wZW5lZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICAgIHRoaXMucG9wdWxhdGVSZXNwb25zaWJpbGl0eSgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gIH1cblxuXG4gIGdldFJlc3BvbnNpYmlsaXR5TGlzdCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSA9IHJlcz8uZGF0YTtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMuY29tbW9uU2VydmljZS5zZXRQYWdpbmF0aW9uKHJlcz8uZGF0YSk7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3BhZ2luYXRpb24nXSA9IHBhZ2luYXRpb247XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3Jlc3BvbnNpYmlsaXRpZXMnXSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdHlEYXRhKCB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhKVxuXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaGFzUmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5maW5kKChyZXNwb25zaWJpbGl0eTogYW55KSA9PiByZXNwb25zaWJpbGl0eS5pZCA9PT0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQpO1xuICAgICAgICBpZihoYXNSZXNwb25zaWJpbGl0eSkge1xuICAgICAgICAgIHRoaXMub25Ub2dnbGVSZXNwb25zaWJpbGl0eShoYXNSZXNwb25zaWJpbGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coeyBlcnJvciB9LCBcIkVycm9yIGluIGdldHRpbmcgcmVzcG9uc2liaWxpdHkgbGlzdFwiKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVzcG9uc2liaWxpdHlQYWdlQ2hhbmdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnNlYXJjaFRlcm0gPSB0aGlzLnJlc3BvbnNpYmlsaXR5U2VhcmNoVGV4dDtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICB9XG5cblxuICBkZWxldGVJdGVtKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IHt9O1xuICAgIHRoaXMuaXNWYWxpZE9iaiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkID0gW107XG4gIH1cbiAgc2F2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5iYWNrQnV0dG9uLmVtaXQoJ2JhY2tUb09uQ29tcGxldGlvbicpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eS5lbWl0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyk7XG4gIH1cblxuXG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXJtID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG4gXG4gIFxuICBvblRvZ2dsZVJlc3BvbnNpYmlsaXR5KHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcbiAgICBpZih0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LmlkKSkge1xuICAgICAgdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eSA9IHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkuZmlsdGVyKChpZDogYW55KSA9PiBpZCAhPT0gcmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LnB1c2gocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH1cbiAgfVxuXG5cbiAgICAvLyBNYWluIG1ldGhvZCBleHBvc2VkIG91dHNpZGVcbiAgICBwdWJsaWMgbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgICBpZiAoIXJlc3BvbnNpYmlsaXR5KSByZXR1cm4gW107XG4gIFxuICAgICAgY29uc3QgdXNlcnMgPSB0aGlzLm1hcFNob3J0TmFtZXMocmVzcG9uc2liaWxpdHkudXNlcnMsIHRoaXMubWFwU2hvcnROYW1lKTtcbiAgICAgIGNvbnN0IHVzZXJNYXAgPSB0aGlzLmJ1aWxkTWFwKHVzZXJzKTtcbiAgICAgIGNvbnN0IHJjTWFwID0gdGhpcy5idWlsZE1hcChyZXNwb25zaWJpbGl0eS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICBcbiAgICAgIHJldHVybiAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdGllcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHRoaXMubWFwUmVzcG9uc2liaWxpdHlJdGVtKGl0ZW0sIHVzZXJNYXAsIHJjTWFwKVxuICAgICAgKTtcbiAgICB9XG4gIFxuICAgIC8vIEhlbHBlciBtZXRob2RzIGJlbG93OlxuICBcbiAgICBwcml2YXRlIG1hcFNob3J0TmFtZXModXNlcnM6IGFueVtdLCBtYXBTaG9ydE5hbWU6IChuYW1lOiBzdHJpbmcpID0+IHN0cmluZyk6IGFueVtdIHtcbiAgICAgIHJldHVybiAodXNlcnMgfHwgW10pLm1hcCh1c2VyID0+ICh7XG4gICAgICAgIC4uLnVzZXIsXG4gICAgICAgIHNob3J0TmFtZTogbWFwU2hvcnROYW1lKHVzZXIubmFtZSksXG4gICAgICB9KSk7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIGJ1aWxkTWFwKGFycjogYW55W10pOiBNYXA8c3RyaW5nLCBhbnk+IHtcbiAgICAgIHJldHVybiBuZXcgTWFwKChhcnIgfHwgW10pLm1hcChpdGVtID0+IFtpdGVtLmlkLCBpdGVtXSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBBc3NpZ25lZVVzZXJzKGFzc2lnbmVlOiBhbnksIGFjdGl2ZVVzZXJJZHM6IHN0cmluZ1tdLCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55W10ge1xuICAgICAgaWYgKCFhc3NpZ25lZS5hc3NpZ25lZSkge1xuICAgICAgICByZXR1cm4gKGFjdGl2ZVVzZXJJZHMgfHwgW10pLm1hcChpZCA9PiB1c2VyTWFwLmdldChpZCkpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoYXNzaWduZWUuYXNzaWduZWUpID8gYXNzaWduZWUuYXNzaWduZWUgOiBbYXNzaWduZWUuYXNzaWduZWVdO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBhbnkpID0+IHVzZXJNYXAuZ2V0KChpZCkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhc3NpZ25lZTogYW55LCBpdGVtUkNJZHM6IHN0cmluZ1tdLCByY01hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUucmVzcG9uc2liaWxpdHlDZW50ZXIpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtUkNJZHMgfHwgW10pLm1hcChpZCA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSA/IGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyIDogW2Fzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5SXRlbShpdGVtOiBhbnksIHVzZXJNYXA6IE1hcDxzdHJpbmcsIGFueT4sIHJjTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55IHtcblxuICAgICAgbGV0ICBhc3NpZ25lZURldGFpbHMgPSAoaXRlbS5hc3NpZ25lZURldGFpbHMgfHwgW10pXG4gICAgICAgIC5maWx0ZXIoKGFkOiBhbnkpID0+IGFkLnN0YXR1cyAmJiBhZC5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2FjdGl2ZScpXG4gICAgICAgIGlmKGFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAwICYmIGl0ZW0/LmFzc2lnbmVlVHlwZSA9PT0gJ2FueScgJiYgW251bGwsICdhbnknXS5pbmNsdWRlcyhpdGVtPy5yY1R5cGUpKSB7XG5cbiAgICAgICAgICBhc3NpZ25lZURldGFpbHMgPSAgaXRlbS5hc3NpZ25lZXM/LmFjdGl2ZVVzZXJJZD8ubWFwKChpZDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5pdGVtLmFzc2lnbmVlRGV0YWlsc1swXSxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAgICAgICAgICAgYXNzaWduZWU6IGlkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGFzc2lnbmVlRGV0YWlscyA9ICBhc3NpZ25lZURldGFpbHMubWFwKChhZDogYW55KSA9PiAoe1xuICAgICAgICAgIC4uLmFkLFxuICAgICAgICAgIGFzc2lnbmVlSW5mbzogdGhpcy5tYXBBc3NpZ25lZVVzZXJzKGFkLCBpdGVtLmFzc2lnbmVlcz8uYWN0aXZlVXNlcklkIHx8IFtdLCB1c2VyTWFwKSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlckluZm86IHRoaXMubWFwUmVzcG9uc2liaWxpdHlDZW50ZXJzKGFkLCBpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXSwgcmNNYXApLFxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGFsbEFzc2lnbmVlID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVBc3NpZ25lZShhc3NpZ25lZURldGFpbHMpLm1hcCgoYWQ6IGFueSkgPT4gYWQuYXNzaWduZWVJbmZvWzBdKTtcbiAgICAgICAgY29uc3QgYWxsUmMgPSB0aGlzLm1hcFJjcyhpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIGNvbnRyb2xJZDogaXRlbT8uY29udHJvbElkID8gJ1tDSUQtJyArIGl0ZW0/LmNvbnRyb2xJZCArICddICcgOiAnJyxcbiAgICAgICAgYXNzaWduZWVUeXBlOiBpdGVtPy5hc3NpZ25lZVR5cGUsXG4gICAgICAgIHJjVHlwZTogaXRlbT8ucmNUeXBlLFxuICAgICAgICBhc3NpZ25lZURldGFpbHMsXG4gICAgICAgICBhbGxBc3NpZ25lZSxcbiAgICAgICAgIGFsbFJjXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJlbW92ZUR1cGxpY2F0ZUFzc2lnbmVlKGFzc2lnbmVlRGV0YWlsczogYW55KSB7XG4gICAgICBjb25zdCB1bmlxdWVNYXAgPSBuZXcgTWFwKCk7XG4gICAgICBhc3NpZ25lZURldGFpbHMuZm9yRWFjaCgob2JqOiBhbnkpID0+IHtcbiAgICAgICAgdW5pcXVlTWFwLnNldChvYmouYXNzaWduZWUsIG9iaik7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHVuaXF1ZUFycmF5ID0gQXJyYXkuZnJvbSh1bmlxdWVNYXAudmFsdWVzKCkpO1xuICAgICAgICAgIHJldHVybiB1bmlxdWVBcnJheTtcbiAgICAgICAgfVxuXG4gICAgICBtYXBSY3MocmNzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycz8uZmlsdGVyKChyYzogYW55KSA9PiByY3M/LmluY2x1ZGVzKHJjPy5pZCkpO1xuICAgICAgfVxuICBcbiAgbWFwU2hvcnROYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5hbWVBcnJheSA9IG5hbWU/LnNwbGl0KCcgJyk7XG4gICAgaWYobmFtZUFycmF5Py5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbbmFtZUFycmF5Py5sZW5ndGggLSAxXT8uY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbMF0/LmNoYXJBdCgxKT8udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzcG9uc2liaWxpdHkoKSB7XG4gICAgaWYoIXRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LmFzc2lnbmVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9ICB7XG4gICAgICBlYWNoQXNzaWduZWU6IHtcbiAgICAgICAgYXNzaWduZWU6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMuYXNzaWduZWUsXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnJlc3BvbnNpYmlsaXR5Q2VudGVyLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5OiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnRpdGxlLFxuICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5pZCxcbiAgICAgICAgYWxsUkM6IFtdLFxuICAgICAgICBhbGxBc3NpZ25lZTogW10sXG4gICAgICAgIGFzc2lnbmVlRGV0YWlsczogW3tcbiAgICAgICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5yZXNwb25zaWJpbGl0eUNlbnRlcixcbiAgICAgICAgfV0sXG4gICAgICAgIGVhY2hBc3NpZ25lZToge30sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db21wbGV0aW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSBldmVudFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWhlYWQgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTYgdngtbGFiZWwtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiYmFjaygpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtYm9keVwiPlxuICAgIDwhLS0gPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwib3RoZXJzQ291bnQgPT09IDBcIj48L2FwcC1sb2FkZXItaW5saW5lPiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJyZXNwb25zaWJpbGl0eVNlYXJjaFRleHRcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2luYXRpb24gYXMgcGFnaW5hdGlvblwiPlxuICAgICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwicGFnaW5hdGlvbj8udG90YWxfcGFnZXMgPiAxXCIgW3N0YXJ0XT1cInBhZ2luYXRpb24/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbVwiXG4gICAgICAgIFtlbmRdPVwicGFnaW5hdGlvbj8ucmVzcG9uc2liaWxpdGllc190b1wiIFt0b3RhbF09XCJwYWdpbmF0aW9uPy50b3RhbF9yZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgICAgW3BhZ2VDb3VudF09XCJwYWdpbmF0aW9uPy50b3RhbF9wYWdlc1wiIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlXCJcbiAgICAgICAgKHNlbGVjdGVkUGFnZSk9XCJyZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cInJlc3BvbnNpYmlsaXR5TG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtbWlkIHZ4LW1iLTRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIlxuICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzID4gMVxuICAgICAgXCI+XG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXG4gICAgICAgIFwiIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gRGF0YSB0byBEaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgI1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eVwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUSUVTXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPCEtLSB3aGVuIGNsaWNrIG9uIHJhZGlvIHRoZW4gYWN0aXZlIGNsYXNzIHNob3VsZCBiZSB0cnVlIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcztcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5wYWdlICogcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0IC1cbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5saW1pdCArXG4gICAgICAgICAgICBpICtcbiAgICAgICAgICAgIDEpIGFzIHNyTm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiIFtjbGFzcy5yZXNwXT1cInJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA9PT0gMVwiIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkID09PSByZXNwb25zaWJpbGl0eT8uaWQgJiYgcmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgIFwiIFtjbGFzcy53aXRoLXN1Yi1yZXNwb25zaWJpbGl0eV09XCJvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eT8uaWQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHMgYXMgYXNzaWduZWVEZXRhaWxzXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBzck5vICBcbiAgICAgICAgICAgICAgICAgICAgXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c3JOb319XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICpuZ0lmPVwiYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPT09IDFcIiBbbmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJvbkNvbXBsZXRpb25DaGFuZ2Uoe2VhY2hBc3NpZ25lZTogYXNzaWduZWVEZXRhaWxzWzBdLCByZXNwb25zaWJpbGl0eX0pXCI+PC9hcHAtY3MtcmFkaW8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eSB3aXRoLXJjXCI+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dCB2eC1wci01ICB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1saXN0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItYXZhdGFyLXYyIFthdmF0YXJMaXN0XT1cInJlc3BvbnNpYmlsaXR5Py5hbGxBc3NpZ25lZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidTSU5HTEVfQVZBVEFSJ1wiPjwvbGliLWF2YXRhci12Mj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUtdGV4dCB2eC1tbC0xIHJlc3AtbmFtZVwiIFthcHBUb29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LmNvbnRyb2xJZCB9fSB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5Py5hbGxSYyBhcyByY1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLWlubmVyIHZ4LWQtYmxvY2tcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLXZhbHVlIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCB2eC1wci01XCIgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcmNbMF0/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nXG4gICAgICAgICAgICAgICAgICAgICAgXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyByY1swXT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IFwiLS1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoIFxuICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJjPy5sZW5ndGggPiAxXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmNQb3B1cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyYW0tY291bnQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAre3sgcmM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3JjUG9wdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgb2YgcmM/LnNsaWNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiIFthcHBUb29sdGlwXT1cImRhdGE/Lm5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3sgZGF0YT8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHkpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID4gMSAmJiAhKHJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZVR5cGUgPT09ICdhbnknICYmIFtudWxsLCAnYW55J10uaW5jbHVkZXMocmVzcG9uc2liaWxpdHk/LnJjVHlwZSkpOyBlbHNlIGNsb3NlSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNsb3NlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIFwiIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOWU3OzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nsb3NlSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4gJiN4ZTllODs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxsaWItc3ViLXJlc3BvbnNpYmlsaXR5ICpuZ0lmPVwib3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpXCJcbiAgICAgICAgICAgICAgICBbcmVzcG9uc2liaWxpdHldPVwicmVzcG9uc2liaWxpdHlcIiBbc3JOb109XCJzck5vXCIgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlc1wiXG4gICAgICAgICAgICAgICAgKG9uQ29tcGxldGlvbkNoYW5nZSk9XCJvbkNvbXBsZXRpb25DaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXN1Yi1yZXNwb25zaWJpbGl0eT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtZmxvYXRpbmctYmFyIFtzZWxlY3RlZERhdGFdPVwiW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5XVwiIFtkaXNwbGF5RWxlbWVudEtleV09XCIndGl0bGUnXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiYmFjaygpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgkZXZlbnQpXCIgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkXCI+PC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLG9DQUFvQztJQTRDL0MsWUFDVSxnQkFBa0MsRUFDbEMsYUFBNEI7UUFENUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQTdDN0Isa0NBQTZCLEdBQVEsRUFBRSxDQUFDO1FBRXZDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdEQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMvQix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsNkJBQXdCLEdBQVEsRUFBRSxDQUFDO1FBR25DLDZCQUF3QixHQUFXLEVBQUUsQ0FBQztRQUN0Qyw4QkFBeUIsR0FBVyxDQUFDLENBQUM7UUFDdEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQiwwQkFBcUIsR0FBRztZQUN0QixJQUFJLEVBQUUsUUFBUTtZQUNkLGNBQWMsRUFBRSxPQUFPO1lBQ3ZCLENBQUMsRUFBRSxFQUFFO1lBQ0wsVUFBVSxFQUFFLEVBQUU7WUFDZCxVQUFVLEVBQUU7Z0JBQ1YsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLEVBQUU7Z0JBQ2Qsb0JBQW9CLEVBQUUsRUFBRTtnQkFDeEIsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsV0FBVyxFQUFFLEVBQUU7Z0JBQ2Ysc0JBQXNCLEVBQUUsRUFBRTtnQkFDMUIsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsTUFBTSxFQUFFLENBQUM7WUFDVCxPQUFPLEVBQUU7Z0JBQ1AsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLEVBQUU7YUFDVDtZQUNELFFBQVEsRUFBRSxVQUFVO1NBQ3JCLENBQUM7UUFHRix5QkFBb0IsR0FBVSxFQUFFLENBQUM7SUFNN0IsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1IsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFHRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsZ0JBQWdCO1lBQ25CLEVBQUUscUJBQXFCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDO2FBQ2xELFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO1lBQ3RDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQ3JELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQTtZQUV0RyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLGNBQW1CLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLDRCQUE0QixFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsTCxJQUFHLGlCQUFpQixFQUFFO2dCQUNwQixJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNoRDtRQUNILENBQUMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7WUFDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLHNDQUFzQyxDQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBa0I7UUFDekMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFVBQVUsQ0FBQztRQUM1QyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztRQUNuRSxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUN0RSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBR0QsVUFBVSxDQUFDLElBQVM7UUFDbEIsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLENBQUMsS0FBVTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBR0QsTUFBTTtRQUNKLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3RFLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDbkUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUlELHNCQUFzQixDQUFDLGNBQW1CO1FBQ3hDLElBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckc7YUFBTTtZQUNMLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQztJQUdDLDhCQUE4QjtJQUN2QixxQkFBcUIsQ0FBQyxjQUFtQjtRQUM5QyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRS9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRWxFLE9BQU8sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FDL0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBRUQsd0JBQXdCO0lBRWhCLGFBQWEsQ0FBQyxLQUFZLEVBQUUsWUFBc0M7UUFDeEUsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLEdBQUcsSUFBSTtZQUNQLFNBQVMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBVTtRQUN6QixPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWEsRUFBRSxhQUF1QixFQUFFLE9BQXlCO1FBQ3hGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6RTtRQUNELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2RixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxRQUFhLEVBQUUsU0FBbUIsRUFBRSxLQUF1QjtRQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLG9CQUFvQixFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRTtRQUNELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMzSCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLHFCQUFxQixDQUFDLElBQVMsRUFBRSxPQUF5QixFQUFFLEtBQXVCO1FBRXpGLElBQUssZUFBZSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7YUFDaEQsTUFBTSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssUUFBUSxDQUFDLENBQUE7UUFDdkUsSUFBRyxlQUFlLEVBQUUsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsWUFBWSxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBRXhHLGVBQWUsR0FBSSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFPLEVBQUUsRUFBRTtnQkFDL0QsT0FBTztvQkFDTCxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO29CQUMxQixNQUFNLEVBQUUsUUFBUTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7aUJBQ2IsQ0FBQTtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxlQUFlLEdBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNuRCxHQUFHLEVBQUU7WUFDTCxZQUFZLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDO1lBQ3BGLHdCQUF3QixFQUFFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUM7U0FDckcsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN4RCxPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxFQUFFLFNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEUsWUFBWSxFQUFFLElBQUksRUFBRSxZQUFZO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTTtZQUNwQixlQUFlO1lBQ2QsV0FBVztZQUNYLEtBQUs7U0FDUCxDQUFDO0lBQ0osQ0FBQztJQUVELHVCQUF1QixDQUFDLGVBQW9CO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDNUIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ25DLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVILE1BQU0sQ0FBQyxHQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFTCxZQUFZLENBQUMsSUFBWTtRQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25DLElBQUcsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEIsT0FBTyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBRyxDQUFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxRQUFRLEVBQUU7WUFDaEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLDRCQUE0QixHQUFJO1lBQ25DLFlBQVksRUFBRTtnQkFDWixRQUFRLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVE7Z0JBQ3JELG9CQUFvQixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxvQkFBb0I7YUFDOUU7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLO2dCQUMvQyxFQUFFLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEVBQUU7Z0JBQ3pDLEtBQUssRUFBRSxFQUFFO2dCQUNULFdBQVcsRUFBRSxFQUFFO2dCQUNmLGVBQWUsRUFBRSxDQUFDO3dCQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVE7d0JBQ3JELG9CQUFvQixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxvQkFBb0I7cUJBQzlFLENBQUM7Z0JBQ0YsWUFBWSxFQUFFLEVBQUU7YUFDakI7U0FDRixDQUFBO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQVU7UUFDM0IsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQTtJQUMzQyxDQUFDOytHQWxQVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyw4T0NYakQsNDNTQTJLTTs7NEZEaEtPLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxtQ0FBbUM7bUlBS3BDLDZCQUE2QjtzQkFBckMsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLHNCQUFzQjtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgc2xpY2UgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsczogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGJhY2tCdXR0b24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmVzcG9uc2liaWxpdGllc0RhdGE6IGFueSA9IHt9O1xuICByZXNwb25zaWJpbGl0eUxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ6IGFueSA9IFtdO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzOiBhbnk7XG4gIFxuICByZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBpc1ZhbGlkT2JqID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhY3RpdmUnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRlcm06ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnk7XG4gIGNsb3NlOiBhbnk7XG4gIG9wZW5lZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uID0gZmFsc2U7XG4gICAgfSwgMzAwKTtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICAgIHRoaXMucG9wdWxhdGVSZXNwb25zaWJpbGl0eSgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gIH1cblxuXG4gIGdldFJlc3BvbnNpYmlsaXR5TGlzdCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdHlMaXN0KHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0aWVzRGF0YSA9IHJlcz8uZGF0YTtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbiA9IHRoaXMuY29tbW9uU2VydmljZS5zZXRQYWdpbmF0aW9uKHJlcz8uZGF0YSk7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3BhZ2luYXRpb24nXSA9IHBhZ2luYXRpb247XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3Jlc3BvbnNpYmlsaXRpZXMnXSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdHlEYXRhKCB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhKVxuXG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgaGFzUmVzcG9uc2liaWxpdHkgPSB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5maW5kKChyZXNwb25zaWJpbGl0eTogYW55KSA9PiByZXNwb25zaWJpbGl0eS5pZCA9PT0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQpO1xuICAgICAgICBpZihoYXNSZXNwb25zaWJpbGl0eSkge1xuICAgICAgICAgIHRoaXMub25Ub2dnbGVSZXNwb25zaWJpbGl0eShoYXNSZXNwb25zaWJpbGl0eSk7XG4gICAgICAgIH1cbiAgICAgIH0sIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgY29uc29sZS5sb2coeyBlcnJvciB9LCBcIkVycm9yIGluIGdldHRpbmcgcmVzcG9uc2liaWxpdHkgbGlzdFwiKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVzcG9uc2liaWxpdHlQYWdlQ2hhbmdlKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IHBhZ2VOdW1iZXI7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlQYXlsb2FkLnNlYXJjaFRlcm0gPSB0aGlzLnJlc3BvbnNpYmlsaXR5U2VhcmNoVGV4dDtcbiAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5TGlzdCgpO1xuICB9XG5cblxuICBkZWxldGVJdGVtKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IHt9O1xuICAgIHRoaXMuaXNWYWxpZE9iaiA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkID0gW107XG4gIH1cbiAgc2F2ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5iYWNrQnV0dG9uLmVtaXQoJ2JhY2tUb09uQ29tcGxldGlvbicpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eS5lbWl0KHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyk7XG4gIH1cblxuXG4gIHNlYXJjaCgpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5zZWFyY2hUZXJtID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUxpc3QoKTtcbiAgfVxuXG4gXG4gIFxuICBvblRvZ2dsZVJlc3BvbnNpYmlsaXR5KHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcbiAgICBpZih0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LmlkKSkge1xuICAgICAgdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eSA9IHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkuZmlsdGVyKChpZDogYW55KSA9PiBpZCAhPT0gcmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5LnB1c2gocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgIH1cbiAgfVxuXG5cbiAgICAvLyBNYWluIG1ldGhvZCBleHBvc2VkIG91dHNpZGVcbiAgICBwdWJsaWMgbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgICBpZiAoIXJlc3BvbnNpYmlsaXR5KSByZXR1cm4gW107XG4gIFxuICAgICAgY29uc3QgdXNlcnMgPSB0aGlzLm1hcFNob3J0TmFtZXMocmVzcG9uc2liaWxpdHkudXNlcnMsIHRoaXMubWFwU2hvcnROYW1lKTtcbiAgICAgIGNvbnN0IHVzZXJNYXAgPSB0aGlzLmJ1aWxkTWFwKHVzZXJzKTtcbiAgICAgIGNvbnN0IHJjTWFwID0gdGhpcy5idWlsZE1hcChyZXNwb25zaWJpbGl0eS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICBcbiAgICAgIHJldHVybiAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdGllcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHRoaXMubWFwUmVzcG9uc2liaWxpdHlJdGVtKGl0ZW0sIHVzZXJNYXAsIHJjTWFwKVxuICAgICAgKTtcbiAgICB9XG4gIFxuICAgIC8vIEhlbHBlciBtZXRob2RzIGJlbG93OlxuICBcbiAgICBwcml2YXRlIG1hcFNob3J0TmFtZXModXNlcnM6IGFueVtdLCBtYXBTaG9ydE5hbWU6IChuYW1lOiBzdHJpbmcpID0+IHN0cmluZyk6IGFueVtdIHtcbiAgICAgIHJldHVybiAodXNlcnMgfHwgW10pLm1hcCh1c2VyID0+ICh7XG4gICAgICAgIC4uLnVzZXIsXG4gICAgICAgIHNob3J0TmFtZTogbWFwU2hvcnROYW1lKHVzZXIubmFtZSksXG4gICAgICB9KSk7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIGJ1aWxkTWFwKGFycjogYW55W10pOiBNYXA8c3RyaW5nLCBhbnk+IHtcbiAgICAgIHJldHVybiBuZXcgTWFwKChhcnIgfHwgW10pLm1hcChpdGVtID0+IFtpdGVtLmlkLCBpdGVtXSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBBc3NpZ25lZVVzZXJzKGFzc2lnbmVlOiBhbnksIGFjdGl2ZVVzZXJJZHM6IHN0cmluZ1tdLCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55W10ge1xuICAgICAgaWYgKCFhc3NpZ25lZS5hc3NpZ25lZSkge1xuICAgICAgICByZXR1cm4gKGFjdGl2ZVVzZXJJZHMgfHwgW10pLm1hcChpZCA9PiB1c2VyTWFwLmdldChpZCkpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoYXNzaWduZWUuYXNzaWduZWUpID8gYXNzaWduZWUuYXNzaWduZWUgOiBbYXNzaWduZWUuYXNzaWduZWVdO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBhbnkpID0+IHVzZXJNYXAuZ2V0KChpZCkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhc3NpZ25lZTogYW55LCBpdGVtUkNJZHM6IHN0cmluZ1tdLCByY01hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUucmVzcG9uc2liaWxpdHlDZW50ZXIpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtUkNJZHMgfHwgW10pLm1hcChpZCA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSA/IGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyIDogW2Fzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5SXRlbShpdGVtOiBhbnksIHVzZXJNYXA6IE1hcDxzdHJpbmcsIGFueT4sIHJjTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55IHtcblxuICAgICAgbGV0ICBhc3NpZ25lZURldGFpbHMgPSAoaXRlbS5hc3NpZ25lZURldGFpbHMgfHwgW10pXG4gICAgICAgIC5maWx0ZXIoKGFkOiBhbnkpID0+IGFkLnN0YXR1cyAmJiBhZC5zdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2FjdGl2ZScpXG4gICAgICAgIGlmKGFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAwICYmIGl0ZW0/LmFzc2lnbmVlVHlwZSA9PT0gJ2FueScgJiYgW251bGwsICdhbnknXS5pbmNsdWRlcyhpdGVtPy5yY1R5cGUpKSB7XG5cbiAgICAgICAgICBhc3NpZ25lZURldGFpbHMgPSAgaXRlbS5hc3NpZ25lZXM/LmFjdGl2ZVVzZXJJZD8ubWFwKChpZDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5pdGVtLmFzc2lnbmVlRGV0YWlsc1swXSxcbiAgICAgICAgICAgICAgc3RhdHVzOiAnYWN0aXZlJyxcbiAgICAgICAgICAgICAgYXNzaWduZWU6IGlkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGFzc2lnbmVlRGV0YWlscyA9ICBhc3NpZ25lZURldGFpbHMubWFwKChhZDogYW55KSA9PiAoe1xuICAgICAgICAgIC4uLmFkLFxuICAgICAgICAgIGFzc2lnbmVlSW5mbzogdGhpcy5tYXBBc3NpZ25lZVVzZXJzKGFkLCBpdGVtLmFzc2lnbmVlcz8uYWN0aXZlVXNlcklkIHx8IFtdLCB1c2VyTWFwKSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlckluZm86IHRoaXMubWFwUmVzcG9uc2liaWxpdHlDZW50ZXJzKGFkLCBpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyB8fCBbXSwgcmNNYXApLFxuICAgICAgICB9KSk7XG4gICAgICAgIGNvbnN0IGFsbEFzc2lnbmVlID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVBc3NpZ25lZShhc3NpZ25lZURldGFpbHMpLm1hcCgoYWQ6IGFueSkgPT4gYWQuYXNzaWduZWVJbmZvWzBdKTtcbiAgICAgICAgY29uc3QgYWxsUmMgPSB0aGlzLm1hcFJjcyhpdGVtLnJlc3BvbnNpYmlsaXR5Q2VudGVycyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIGNvbnRyb2xJZDogaXRlbT8uY29udHJvbElkID8gJ1tDSUQtJyArIGl0ZW0/LmNvbnRyb2xJZCArICddICcgOiAnJyxcbiAgICAgICAgYXNzaWduZWVUeXBlOiBpdGVtPy5hc3NpZ25lZVR5cGUsXG4gICAgICAgIHJjVHlwZTogaXRlbT8ucmNUeXBlLFxuICAgICAgICBhc3NpZ25lZURldGFpbHMsXG4gICAgICAgICBhbGxBc3NpZ25lZSxcbiAgICAgICAgIGFsbFJjXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJlbW92ZUR1cGxpY2F0ZUFzc2lnbmVlKGFzc2lnbmVlRGV0YWlsczogYW55KSB7XG4gICAgICBjb25zdCB1bmlxdWVNYXAgPSBuZXcgTWFwKCk7XG4gICAgICBhc3NpZ25lZURldGFpbHMuZm9yRWFjaCgob2JqOiBhbnkpID0+IHtcbiAgICAgICAgdW5pcXVlTWFwLnNldChvYmouYXNzaWduZWUsIG9iaik7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHVuaXF1ZUFycmF5ID0gQXJyYXkuZnJvbSh1bmlxdWVNYXAudmFsdWVzKCkpO1xuICAgICAgICAgIHJldHVybiB1bmlxdWVBcnJheTtcbiAgICAgICAgfVxuXG4gICAgICBtYXBSY3MocmNzOiBhbnkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXR5Q2VudGVycz8uZmlsdGVyKChyYzogYW55KSA9PiByY3M/LmluY2x1ZGVzKHJjPy5pZCkpO1xuICAgICAgfVxuICBcbiAgbWFwU2hvcnROYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5hbWVBcnJheSA9IG5hbWU/LnNwbGl0KCcgJyk7XG4gICAgaWYobmFtZUFycmF5Py5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbbmFtZUFycmF5Py5sZW5ndGggLSAxXT8uY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbMF0/LmNoYXJBdCgxKT8udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHBvcHVsYXRlUmVzcG9uc2liaWxpdHkoKSB7XG4gICAgaWYoIXRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LmFzc2lnbmVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9ICB7XG4gICAgICBlYWNoQXNzaWduZWU6IHtcbiAgICAgICAgYXNzaWduZWU6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMuYXNzaWduZWUsXG4gICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnJlc3BvbnNpYmlsaXR5Q2VudGVyLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5OiB7XG4gICAgICAgIHRpdGxlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzLnRpdGxlLFxuICAgICAgICBpZDogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5pZCxcbiAgICAgICAgYWxsUkM6IFtdLFxuICAgICAgICBhbGxBc3NpZ25lZTogW10sXG4gICAgICAgIGFzc2lnbmVlRGV0YWlsczogW3tcbiAgICAgICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5hc3NpZ25lZSxcbiAgICAgICAgICByZXNwb25zaWJpbGl0eUNlbnRlcjogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscy5yZXNwb25zaWJpbGl0eUNlbnRlcixcbiAgICAgICAgfV0sXG4gICAgICAgIGVhY2hBc3NpZ25lZToge30sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25Db21wbGV0aW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSBldmVudFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWhlYWQgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTYgdngtbGFiZWwtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiYmFjaygpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtYm9keVwiPlxuICAgIDwhLS0gPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwib3RoZXJzQ291bnQgPT09IDBcIj48L2FwcC1sb2FkZXItaW5saW5lPiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJyZXNwb25zaWJpbGl0eVNlYXJjaFRleHRcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2luYXRpb24gYXMgcGFnaW5hdGlvblwiPlxuICAgICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwicGFnaW5hdGlvbj8udG90YWxfcGFnZXMgPiAxXCIgW3N0YXJ0XT1cInBhZ2luYXRpb24/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbVwiXG4gICAgICAgIFtlbmRdPVwicGFnaW5hdGlvbj8ucmVzcG9uc2liaWxpdGllc190b1wiIFt0b3RhbF09XCJwYWdpbmF0aW9uPy50b3RhbF9yZXNwb25zaWJpbGl0aWVzXCJcbiAgICAgICAgW3BhZ2VDb3VudF09XCJwYWdpbmF0aW9uPy50b3RhbF9wYWdlc1wiIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlXCJcbiAgICAgICAgKHNlbGVjdGVkUGFnZSk9XCJyZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cInJlc3BvbnNpYmlsaXR5TG9hZGVyXCI+PC9hcHAtbG9hZGVyLWlubGluZT5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtbWlkIHZ4LW1iLTRcIiBbY2xhc3Mud2l0aC1wYWdpbmF0aW9uXT1cIlxuICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzID4gMVxuICAgICAgXCI+XG4gICAgICA8YXBwLW5vLWRhdGEgKm5nSWY9XCJcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoID09PSAwICYmXG4gICAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXG4gICAgICAgIFwiIFtub0RhdGFJbWFnZV09XCJBU1NFVFMuc2VhcmNoX2RhdGFcIiBbbm9EYXRhVGV4dF09XCInTm8gRGF0YSB0byBEaXNwbGF5J1wiPjwvYXBwLW5vLWRhdGE+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgI1xuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eVwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUSUVTXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPCEtLSB3aGVuIGNsaWNrIG9uIHJhZGlvIHRoZW4gYWN0aXZlIGNsYXNzIHNob3VsZCBiZSB0cnVlIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcztcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5wYWdlICogcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0IC1cbiAgICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5saW1pdCArXG4gICAgICAgICAgICBpICtcbiAgICAgICAgICAgIDEpIGFzIHNyTm9cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnJlc3BdPVwicmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxIHx8IChyZXNwb25zaWJpbGl0eT8uYXNzaWduZWVUeXBlID09PSAnYW55JyAmJiBbbnVsbCwgJ2FueSddLmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5Py5yY1R5cGUpKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQgPT09IHJlc3BvbnNpYmlsaXR5Py5pZCAmJiByZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgXCIgW2NsYXNzLndpdGgtc3ViLXJlc3BvbnNpYmlsaXR5XT1cIm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5Py5pZClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscyBhcyBhc3NpZ25lZURldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzci1ub1wiIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNyTm8gIFxuICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3tzck5vfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxIHx8IChyZXNwb25zaWJpbGl0eT8uYXNzaWduZWVUeXBlID09PSAnYW55JyAmJiBbbnVsbCwgJ2FueSddLmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5Py5yY1R5cGUpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiJ29uQ29tcGxldGlvbidcIiBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQgPT09IHJlc3BvbnNpYmlsaXR5Py5pZFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwib25Db21wbGV0aW9uQ2hhbmdlKHtlYWNoQXNzaWduZWU6IGFzc2lnbmVlRGV0YWlsc1swXSwgcmVzcG9uc2liaWxpdHl9KVwiPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHkgd2l0aC1yY1wiPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtcHItNSAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbGlzdCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLWF2YXRhci12MiBbYXZhdGFyTGlzdF09XCJyZXNwb25zaWJpbGl0eT8uYWxsQXNzaWduZWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInU0lOR0xFX0FWQVRBUidcIj48L2xpYi1hdmF0YXItdjI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlLXRleHQgdngtbWwtMSByZXNwLW5hbWVcIiBbYXBwVG9vbHRpcF09XCJyZXNwb25zaWJpbGl0eT8udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py5jb250cm9sSWQgfX0ge3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Py50aXRsZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eT8uYWxsUmMgYXMgcmNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1pbm5lciB2eC1kLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS12YWx1ZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgdngtcHItNVwiIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IHJjWzBdPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJy0tJ1xuICAgICAgICAgICAgICAgICAgICAgIFwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcmNbMF0/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcIi0tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aCBcbiAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJyYz8ubGVuZ3RoID4gMVwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJjUG9wdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWNvdW50IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtcC0wIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgK3t7IHJjPy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyY1BvcHVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhIG9mIHJjPy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbYXBwVG9vbHRpcF09XCJkYXRhPy5uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7IGRhdGE/Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZVJlc3BvbnNpYmlsaXR5KHJlc3BvbnNpYmlsaXR5KVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA+IDEgJiYgIShyZXNwb25zaWJpbGl0eT8uYXNzaWduZWVUeXBlID09PSAnYW55JyAmJiBbbnVsbCwgJ2FueSddLmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5Py5yY1R5cGUpKTsgZWxzZSBjbG9zZUljb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjbG9zZUljb25cbiAgICAgICAgICAgICAgICAgICAgICBcIiBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTllNzs8L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+ICYjeGU5ZTg7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8bGliLXN1Yi1yZXNwb25zaWJpbGl0eSAqbmdJZj1cIm9wZW5lZFJlc3BvbnNpYmlsaXR5LmluY2x1ZGVzKHJlc3BvbnNpYmlsaXR5LmlkKVwiXG4gICAgICAgICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5XT1cInJlc3BvbnNpYmlsaXR5XCIgW3NyTm9dPVwic3JOb1wiIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5XT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIChvbkNvbXBsZXRpb25DaGFuZ2UpPVwib25Db21wbGV0aW9uQ2hhbmdlKCRldmVudClcIj48L2xpYi1zdWItcmVzcG9uc2liaWxpdHk+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2VsZWN0ZWREYXRhXT1cIltzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eV1cIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiJ3RpdGxlJ1wiXG4gICAgICAoY2xvc2VMaXN0KT1cImJhY2soKVwiIChjbG9zZUV2ZW50KT1cInNhdmUoJGV2ZW50KVwiIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZFwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=