vcomply-workflow-engine 6.1.38 → 6.1.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +6 -3
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +1 -1
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +3 -3
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +1 -1
- package/fesm2022/vcomply-workflow-engine.mjs +9 -6
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
- package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +2 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -52,6 +52,7 @@ export class AssessmentListComponent {
|
|
|
52
52
|
this.searchAssessments = '';
|
|
53
53
|
this.isPreview = false;
|
|
54
54
|
this.program_ids = '';
|
|
55
|
+
this.isFullScreen = false;
|
|
55
56
|
this.onAssessmentSelect = new EventEmitter();
|
|
56
57
|
this.cancelAssessment = new EventEmitter();
|
|
57
58
|
this.dataPerPage = this.responsibilityService.dataPerPage;
|
|
@@ -186,11 +187,11 @@ export class AssessmentListComponent {
|
|
|
186
187
|
this.isDeleted = true;
|
|
187
188
|
}
|
|
188
189
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AssessmentListComponent, deps: [{ token: i1.ResponsibilityService }, { token: i2.AssessmentService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
189
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AssessmentListComponent, selector: "app-assessment-list", inputs: { isEdit: "isEdit", mode: "mode", selectedAssessment: "selectedAssessment", selectedAssessmentData: "selectedAssessmentData", program_ids: "program_ids" }, outputs: { onAssessmentSelect: "onAssessmentSelect", cancelAssessment: "cancelAssessment" }, ngImport: i0, template: "<app-preview\n *ngIf=\"isPreview\"\n [questionData]=\"previewQuestionData\"\n (previewBack)=\"previewBack()\"\n></app-preview>\n<div class=\"assessment-list\" [class.animate]=\"animation\">\n <div\n class=\"assessment-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Assessment</div>\n </div>\n <div class=\"assessment-list-body\">\n <div class=\"search-block\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchAssessments\"\n (change)=\"onAssessmentSearch($event.target.value)\"\n placeholder=\"Search Assessment Category\"\n />\n </div>\n <app-workflow-pagination\n [pageCount]=\"assessmentCategory?.totalPage\"\n [total]=\"assessmentCategory?.totalRecords\"\n [start]=\"assessmentCategory?.start_value\"\n [end]=\"assessmentCategory?.end_value\"\n [activeAlphabet]=\"''\"\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\n (selectedPage)=\"onPageSelection($event)\"\n ></app-workflow-pagination>\n <div\n *ngIf=\"\n assessmentCategory.data.length === 0 && !isLoader && searchAssessments\n \"\n class=\"assessment-list-part vx-mb-4\"\n >\n <app-no-data\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Assessments Found.'\"\n ></app-no-data>\n </div>\n <div\n *ngIf=\"assessmentCategory.data.length || isLoader\"\n class=\"assessment-list-part vx-mb-4\"\n >\n <div\n *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\"\n class=\"assessment-list-selected\"\n >\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Assessment already selected\"\n : \"Assessment already selected for this responsibility\"\n }}\n </div>\n <div class=\"assessment-list-item\">\n <div class=\"table-row\">\n <div class=\"table-column serial disabled\">\n <app-cs-radio\n [disabled]=\"true\"\n class=\"disabled\"\n [checked]=\"true\"\n [readonly]=\"true\"\n ></app-cs-radio>\n </div>\n <div class=\"table-column sub-name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.assessmentDetails?.assessment_name\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n </div>\n <div class=\"within-part\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? ' > ' +\n selectedAssessment?.category_details?.parent_tree\n : '')\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? \" > \" +\n selectedAssessment?.category_details?.parent_tree\n : \"\")\n }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button\n class=\"action-btn\"\n (click)=\"preview(selectedAssessment?.assessmentDetails)\"\n >\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ selectedAssessment?.assessmentDetails?.questions }}\n {{\n selectedAssessment?.assessmentDetails?.questions > 1\n ? \"Questions\"\n : \"Question\"\n }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Select an Assessment\"\n : \"Select an Assessment for this responsibility\"\n }}\n </div>\n\n <!--\n Assessment category list \n active class is used for highlighting opened element\n -->\n <ng-container *ngIf=\"!isLoader\">\n <div\n *ngFor=\"let data of assessmentCategory.data; let i = index\"\n class=\"assessment-list-item\"\n [class.active]=\"\n openedCategory.includes(i) ||\n data.id === selectedAssessment?.category_id\n \"\n >\n <div\n class=\"table-row main-list\"\n (click)=\"showSubList(i, data?.id)\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sr-no' + i\"\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n </div>\n </div>\n <div class=\"table-column name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"data.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.category_name }}\n </div>\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"data.parent_tree\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ data?.parent_tree }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column action\">\n <button\n [id]=\"'arrow' + i\"\n class=\"arrow\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n [disabled]=\"data?.assessmentcount < 1\"\n >\n <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\"\n ></i\n >\n <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\"></i>\n </button>\n </div>\n </div>\n\n <!-- Assessment list start from here -->\n <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n <div\n class=\"table-row\"\n *ngFor=\"let assessment of data.assessmentData; let j = index\"\n [class.active]=\"\n assessment.id === selectedAssessment?.assessment_id &&\n data.id === selectedAssessment?.category_id\n \"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sub-sr-no' + i + j\"\n class=\"sr-no\"\n appTooltip=\"{{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\n <app-cs-radio\n name=\"assessment\"\n [value]=\"assessment.id\"\n [checked]=\"\n assessment?.id === selectedAssessment?.assessment_id &&\n data?.id === selectedAssessment?.category_id\n \"\n (checkedEvent)=\"setAssessment(data, assessment)\"\n ></app-cs-radio>\n </div>\n </div>\n <div class=\"table-column sub-name\">\n <div\n class=\"value\"\n [appTooltip]=\"\n 'Mission and message, communications to external audiences'\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assessment?.assessment_name }}\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button class=\"action-btn\" (click)=\"preview(assessment)\">\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ assessment?.questions }}\n {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n </div>\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-sub-loader\n *ngIf=\"!data.assessmentData?.length\"\n ></app-assessment-list-sub-loader>\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-loader *ngIf=\"isLoader\"></app-assessment-list-loader>\n </div>\n <!-- No data image -->\n <app-no-data\n *ngIf=\"!assessmentCategory.data.length && !isLoader && !searchAssessments\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Data to Display'\"\n ></app-no-data>\n\n <app-floating-bar\n [selectedData]=\"[]\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"!selectedAssessment?.assessment_id && !isDeleted\"\n [selectedData]=\"\n selectedAssessment?.assessment_id\n ? [selectedAssessment?.assessmentDetails]\n : []\n \"\n [displayElementKey]=\"'assessment_name'\"\n [pluralText]=\"'Risk Categories selected'\"\n (closeEvent)=\"save()\"\n (deleteEvent)=\"deleteEvent($event)\"\n >\n </app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::ng-deep .assessment-list{position:fixed;inset:0 500px 0 0}::ng-deep .assessment-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .assessment-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .assessment-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .assessment-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .assessment-list-body app-workflow-pagination .pagination-sec{padding-bottom:0!important}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 242px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio .radio-item{position:absolute;left:8px;top:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;opacity:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:22px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no app-cs-radio,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no app-cs-radio{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li app-cs-radio{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li app-cs-radio .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}::ng-deep .assessment-list-body app-no-data .no-data-wrapper{height:calc(100% - 118px)}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i7.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i9.PreviewComponent, selector: "app-preview", inputs: ["questionData"], outputs: ["previewBack"] }, { kind: "component", type: i10.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: i11.WorkflowPaginationComponent, selector: "app-workflow-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "noFilter", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.AssessmentListLoaderComponent, selector: "app-assessment-list-loader" }, { kind: "component", type: i13.AssessmentListSubLoaderComponent, selector: "app-assessment-list-sub-loader" }] }); }
|
|
190
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AssessmentListComponent, selector: "app-assessment-list", inputs: { isEdit: "isEdit", mode: "mode", selectedAssessment: "selectedAssessment", selectedAssessmentData: "selectedAssessmentData", program_ids: "program_ids", isFullScreen: "isFullScreen" }, outputs: { onAssessmentSelect: "onAssessmentSelect", cancelAssessment: "cancelAssessment" }, ngImport: i0, template: "<app-preview\n *ngIf=\"isPreview\"\n [questionData]=\"previewQuestionData\"\n (previewBack)=\"previewBack()\"\n></app-preview>\n<div\n class=\"assessment-list\"\n [class.animate]=\"animation\"\n [class.full-screen]=\"isFullScreen\"\n>\n <div\n class=\"assessment-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Assessment</div>\n </div>\n <div class=\"assessment-list-body\">\n <div class=\"search-block\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchAssessments\"\n (change)=\"onAssessmentSearch($event.target.value)\"\n placeholder=\"Search Assessment Category\"\n />\n </div>\n <app-workflow-pagination\n [pageCount]=\"assessmentCategory?.totalPage\"\n [total]=\"assessmentCategory?.totalRecords\"\n [start]=\"assessmentCategory?.start_value\"\n [end]=\"assessmentCategory?.end_value\"\n [activeAlphabet]=\"''\"\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\n (selectedPage)=\"onPageSelection($event)\"\n ></app-workflow-pagination>\n <div\n *ngIf=\"\n assessmentCategory.data.length === 0 && !isLoader && searchAssessments\n \"\n class=\"assessment-list-part vx-mb-4\"\n >\n <app-no-data\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Assessments Found.'\"\n ></app-no-data>\n </div>\n <div\n *ngIf=\"assessmentCategory.data.length || isLoader\"\n class=\"assessment-list-part vx-mb-4\"\n >\n <div\n *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\"\n class=\"assessment-list-selected\"\n >\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Assessment already selected\"\n : \"Assessment already selected for this responsibility\"\n }}\n </div>\n <div class=\"assessment-list-item\">\n <div class=\"table-row\">\n <div class=\"table-column serial disabled\">\n <app-cs-radio\n [disabled]=\"true\"\n class=\"disabled\"\n [checked]=\"true\"\n [readonly]=\"true\"\n ></app-cs-radio>\n </div>\n <div class=\"table-column sub-name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.assessmentDetails?.assessment_name\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n </div>\n <div class=\"within-part\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? ' > ' +\n selectedAssessment?.category_details?.parent_tree\n : '')\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? \" > \" +\n selectedAssessment?.category_details?.parent_tree\n : \"\")\n }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button\n class=\"action-btn\"\n (click)=\"preview(selectedAssessment?.assessmentDetails)\"\n >\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ selectedAssessment?.assessmentDetails?.questions }}\n {{\n selectedAssessment?.assessmentDetails?.questions > 1\n ? \"Questions\"\n : \"Question\"\n }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Select an Assessment\"\n : \"Select an Assessment for this responsibility\"\n }}\n </div>\n\n <!--\n Assessment category list \n active class is used for highlighting opened element\n -->\n <ng-container *ngIf=\"!isLoader\">\n <div\n *ngFor=\"let data of assessmentCategory.data; let i = index\"\n class=\"assessment-list-item\"\n [class.active]=\"\n openedCategory.includes(i) ||\n data.id === selectedAssessment?.category_id\n \"\n >\n <div\n class=\"table-row main-list\"\n (click)=\"showSubList(i, data?.id)\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sr-no' + i\"\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n </div>\n </div>\n <div class=\"table-column name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"data.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.category_name }}\n </div>\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"data.parent_tree\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ data?.parent_tree }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column action\">\n <button\n [id]=\"'arrow' + i\"\n class=\"arrow\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n [disabled]=\"data?.assessmentcount < 1\"\n >\n <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\"\n ></i\n >\n <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\"></i>\n </button>\n </div>\n </div>\n\n <!-- Assessment list start from here -->\n <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n <div\n class=\"table-row\"\n *ngFor=\"let assessment of data.assessmentData; let j = index\"\n [class.active]=\"\n assessment.id === selectedAssessment?.assessment_id &&\n data.id === selectedAssessment?.category_id\n \"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sub-sr-no' + i + j\"\n class=\"sr-no\"\n appTooltip=\"{{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\n <app-cs-radio\n name=\"assessment\"\n [value]=\"assessment.id\"\n [checked]=\"\n assessment?.id === selectedAssessment?.assessment_id &&\n data?.id === selectedAssessment?.category_id\n \"\n (checkedEvent)=\"setAssessment(data, assessment)\"\n ></app-cs-radio>\n </div>\n </div>\n <div class=\"table-column sub-name\">\n <div\n class=\"value\"\n [appTooltip]=\"\n 'Mission and message, communications to external audiences'\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assessment?.assessment_name }}\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button class=\"action-btn\" (click)=\"preview(assessment)\">\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ assessment?.questions }}\n {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n </div>\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-sub-loader\n *ngIf=\"!data.assessmentData?.length\"\n ></app-assessment-list-sub-loader>\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-loader *ngIf=\"isLoader\"></app-assessment-list-loader>\n </div>\n <!-- No data image -->\n <app-no-data\n *ngIf=\"!assessmentCategory.data.length && !isLoader && !searchAssessments\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Data to Display'\"\n ></app-no-data>\n\n <app-floating-bar\n [selectedData]=\"[]\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"!selectedAssessment?.assessment_id && !isDeleted\"\n [selectedData]=\"\n selectedAssessment?.assessment_id\n ? [selectedAssessment?.assessmentDetails]\n : []\n \"\n [displayElementKey]=\"'assessment_name'\"\n [pluralText]=\"'Risk Categories selected'\"\n (closeEvent)=\"save()\"\n (deleteEvent)=\"deleteEvent($event)\"\n >\n </app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::ng-deep .assessment-list{position:fixed;inset:0 500px 0 0}::ng-deep .assessment-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .assessment-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .assessment-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .assessment-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .assessment-list-body app-workflow-pagination .pagination-sec{padding-bottom:0!important}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 242px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio .radio-item{position:absolute;left:8px;top:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;opacity:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:22px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no app-cs-radio,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no app-cs-radio{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li app-cs-radio{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li app-cs-radio .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}::ng-deep .assessment-list-body app-no-data .no-data-wrapper{height:calc(100% - 118px)}::ng-deep .assessment-list.full-screen{width:100%}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"], dependencies: [{ kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i7.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i9.PreviewComponent, selector: "app-preview", inputs: ["questionData"], outputs: ["previewBack"] }, { kind: "component", type: i10.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: i11.WorkflowPaginationComponent, selector: "app-workflow-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "noFilter", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i12.AssessmentListLoaderComponent, selector: "app-assessment-list-loader" }, { kind: "component", type: i13.AssessmentListSubLoaderComponent, selector: "app-assessment-list-sub-loader" }] }); }
|
|
190
191
|
}
|
|
191
192
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AssessmentListComponent, decorators: [{
|
|
192
193
|
type: Component,
|
|
193
|
-
args: [{ selector: 'app-assessment-list', template: "<app-preview\n *ngIf=\"isPreview\"\n [questionData]=\"previewQuestionData\"\n (previewBack)=\"previewBack()\"\n></app-preview>\n<div class=\"assessment-list\" [class.animate]=\"animation\">\n <div\n class=\"assessment-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Assessment</div>\n </div>\n <div class=\"assessment-list-body\">\n <div class=\"search-block\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchAssessments\"\n (change)=\"onAssessmentSearch($event.target.value)\"\n placeholder=\"Search Assessment Category\"\n />\n </div>\n <app-workflow-pagination\n [pageCount]=\"assessmentCategory?.totalPage\"\n [total]=\"assessmentCategory?.totalRecords\"\n [start]=\"assessmentCategory?.start_value\"\n [end]=\"assessmentCategory?.end_value\"\n [activeAlphabet]=\"''\"\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\n (selectedPage)=\"onPageSelection($event)\"\n ></app-workflow-pagination>\n <div\n *ngIf=\"\n assessmentCategory.data.length === 0 && !isLoader && searchAssessments\n \"\n class=\"assessment-list-part vx-mb-4\"\n >\n <app-no-data\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Assessments Found.'\"\n ></app-no-data>\n </div>\n <div\n *ngIf=\"assessmentCategory.data.length || isLoader\"\n class=\"assessment-list-part vx-mb-4\"\n >\n <div\n *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\"\n class=\"assessment-list-selected\"\n >\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Assessment already selected\"\n : \"Assessment already selected for this responsibility\"\n }}\n </div>\n <div class=\"assessment-list-item\">\n <div class=\"table-row\">\n <div class=\"table-column serial disabled\">\n <app-cs-radio\n [disabled]=\"true\"\n class=\"disabled\"\n [checked]=\"true\"\n [readonly]=\"true\"\n ></app-cs-radio>\n </div>\n <div class=\"table-column sub-name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.assessmentDetails?.assessment_name\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n </div>\n <div class=\"within-part\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? ' > ' +\n selectedAssessment?.category_details?.parent_tree\n : '')\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? \" > \" +\n selectedAssessment?.category_details?.parent_tree\n : \"\")\n }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button\n class=\"action-btn\"\n (click)=\"preview(selectedAssessment?.assessmentDetails)\"\n >\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ selectedAssessment?.assessmentDetails?.questions }}\n {{\n selectedAssessment?.assessmentDetails?.questions > 1\n ? \"Questions\"\n : \"Question\"\n }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Select an Assessment\"\n : \"Select an Assessment for this responsibility\"\n }}\n </div>\n\n <!--\n Assessment category list \n active class is used for highlighting opened element\n -->\n <ng-container *ngIf=\"!isLoader\">\n <div\n *ngFor=\"let data of assessmentCategory.data; let i = index\"\n class=\"assessment-list-item\"\n [class.active]=\"\n openedCategory.includes(i) ||\n data.id === selectedAssessment?.category_id\n \"\n >\n <div\n class=\"table-row main-list\"\n (click)=\"showSubList(i, data?.id)\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sr-no' + i\"\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n </div>\n </div>\n <div class=\"table-column name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"data.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.category_name }}\n </div>\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"data.parent_tree\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ data?.parent_tree }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column action\">\n <button\n [id]=\"'arrow' + i\"\n class=\"arrow\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n [disabled]=\"data?.assessmentcount < 1\"\n >\n <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\"\n ></i\n >\n <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\"></i>\n </button>\n </div>\n </div>\n\n <!-- Assessment list start from here -->\n <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n <div\n class=\"table-row\"\n *ngFor=\"let assessment of data.assessmentData; let j = index\"\n [class.active]=\"\n assessment.id === selectedAssessment?.assessment_id &&\n data.id === selectedAssessment?.category_id\n \"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sub-sr-no' + i + j\"\n class=\"sr-no\"\n appTooltip=\"{{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\n <app-cs-radio\n name=\"assessment\"\n [value]=\"assessment.id\"\n [checked]=\"\n assessment?.id === selectedAssessment?.assessment_id &&\n data?.id === selectedAssessment?.category_id\n \"\n (checkedEvent)=\"setAssessment(data, assessment)\"\n ></app-cs-radio>\n </div>\n </div>\n <div class=\"table-column sub-name\">\n <div\n class=\"value\"\n [appTooltip]=\"\n 'Mission and message, communications to external audiences'\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assessment?.assessment_name }}\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button class=\"action-btn\" (click)=\"preview(assessment)\">\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ assessment?.questions }}\n {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n </div>\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-sub-loader\n *ngIf=\"!data.assessmentData?.length\"\n ></app-assessment-list-sub-loader>\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-loader *ngIf=\"isLoader\"></app-assessment-list-loader>\n </div>\n <!-- No data image -->\n <app-no-data\n *ngIf=\"!assessmentCategory.data.length && !isLoader && !searchAssessments\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Data to Display'\"\n ></app-no-data>\n\n <app-floating-bar\n [selectedData]=\"[]\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"!selectedAssessment?.assessment_id && !isDeleted\"\n [selectedData]=\"\n selectedAssessment?.assessment_id\n ? [selectedAssessment?.assessmentDetails]\n : []\n \"\n [displayElementKey]=\"'assessment_name'\"\n [pluralText]=\"'Risk Categories selected'\"\n (closeEvent)=\"save()\"\n (deleteEvent)=\"deleteEvent($event)\"\n >\n </app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::ng-deep .assessment-list{position:fixed;inset:0 500px 0 0}::ng-deep .assessment-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .assessment-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .assessment-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .assessment-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .assessment-list-body app-workflow-pagination .pagination-sec{padding-bottom:0!important}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 242px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio .radio-item{position:absolute;left:8px;top:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;opacity:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:22px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no app-cs-radio,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no app-cs-radio{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li app-cs-radio{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li app-cs-radio .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}::ng-deep .assessment-list-body app-no-data .no-data-wrapper{height:calc(100% - 118px)}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"] }]
|
|
194
|
+
args: [{ selector: 'app-assessment-list', template: "<app-preview\n *ngIf=\"isPreview\"\n [questionData]=\"previewQuestionData\"\n (previewBack)=\"previewBack()\"\n></app-preview>\n<div\n class=\"assessment-list\"\n [class.animate]=\"animation\"\n [class.full-screen]=\"isFullScreen\"\n>\n <div\n class=\"assessment-list-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\n >\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select an Assessment</div>\n </div>\n <div class=\"assessment-list-body\">\n <div class=\"search-block\">\n <i class=\"icons\"></i>\n <input\n type=\"text\"\n [(ngModel)]=\"searchAssessments\"\n (change)=\"onAssessmentSearch($event.target.value)\"\n placeholder=\"Search Assessment Category\"\n />\n </div>\n <app-workflow-pagination\n [pageCount]=\"assessmentCategory?.totalPage\"\n [total]=\"assessmentCategory?.totalRecords\"\n [start]=\"assessmentCategory?.start_value\"\n [end]=\"assessmentCategory?.end_value\"\n [activeAlphabet]=\"''\"\n (selectedAlphabet)=\"onAlphabetSelected($event)\"\n (selectedPage)=\"onPageSelection($event)\"\n ></app-workflow-pagination>\n <div\n *ngIf=\"\n assessmentCategory.data.length === 0 && !isLoader && searchAssessments\n \"\n class=\"assessment-list-part vx-mb-4\"\n >\n <app-no-data\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Assessments Found.'\"\n ></app-no-data>\n </div>\n <div\n *ngIf=\"assessmentCategory.data.length || isLoader\"\n class=\"assessment-list-part vx-mb-4\"\n >\n <div\n *ngIf=\"isEdit && selectedAssessment?.assessmentDetails?.assessment_name\"\n class=\"assessment-list-selected\"\n >\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Assessment already selected\"\n : \"Assessment already selected for this responsibility\"\n }}\n </div>\n <div class=\"assessment-list-item\">\n <div class=\"table-row\">\n <div class=\"table-column serial disabled\">\n <app-cs-radio\n [disabled]=\"true\"\n class=\"disabled\"\n [checked]=\"true\"\n [readonly]=\"true\"\n ></app-cs-radio>\n </div>\n <div class=\"table-column sub-name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.assessmentDetails?.assessment_name\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ selectedAssessment?.assessmentDetails?.assessment_name }}\n </div>\n <div class=\"within-part\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? ' > ' +\n selectedAssessment?.category_details?.parent_tree\n : '')\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{\n selectedAssessment?.category_details?.category_name +\n (selectedAssessment?.category_details?.parent_tree\n ? \" > \" +\n selectedAssessment?.category_details?.parent_tree\n : \"\")\n }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button\n class=\"action-btn\"\n (click)=\"preview(selectedAssessment?.assessmentDetails)\"\n >\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ selectedAssessment?.assessmentDetails?.questions }}\n {{\n selectedAssessment?.assessmentDetails?.questions > 1\n ? \"Questions\"\n : \"Question\"\n }}\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"assessment-list-heading\">\n {{\n mode === \"policy\"\n ? \"Select an Assessment\"\n : \"Select an Assessment for this responsibility\"\n }}\n </div>\n\n <!--\n Assessment category list \n active class is used for highlighting opened element\n -->\n <ng-container *ngIf=\"!isLoader\">\n <div\n *ngFor=\"let data of assessmentCategory.data; let i = index\"\n class=\"assessment-list-item\"\n [class.active]=\"\n openedCategory.includes(i) ||\n data.id === selectedAssessment?.category_id\n \"\n >\n <div\n class=\"table-row main-list\"\n (click)=\"showSubList(i, data?.id)\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sr-no' + i\"\n class=\"sr-no\"\n [appTooltip]=\"i + 1\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{ dataPerPage * (assessmentPayload.page_no - 1) + (i + 1) }}\n </div>\n </div>\n <div class=\"table-column name\">\n <div class=\"name-inner\">\n <div\n class=\"value\"\n [appTooltip]=\"data.category_name\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ data?.category_name }}\n </div>\n <div class=\"within-part\" *ngIf=\"data?.parent_tree\">\n <span class=\"within-box\">Within</span>\n <span\n class=\"value\"\n [appTooltip]=\"data.parent_tree\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >{{ data?.parent_tree }}</span\n >\n </div>\n </div>\n </div>\n <div class=\"table-column action\">\n <button\n [id]=\"'arrow' + i\"\n class=\"arrow\"\n [class.disabled]=\"data?.assessmentcount < 1\"\n [disabled]=\"data?.assessmentcount < 1\"\n >\n <i *ngIf=\"!openedCategory.includes(i)\" class=\"icons\"\n ></i\n >\n <i *ngIf=\"openedCategory.includes(i)\" class=\"icons\"></i>\n </button>\n </div>\n </div>\n\n <!-- Assessment list start from here -->\n <div *ngIf=\"openedCategory.includes(i)\" class=\"sub-list\">\n <ng-container *ngIf=\"data.assessmentData?.length > 0\">\n <div\n class=\"table-row\"\n *ngFor=\"let assessment of data.assessmentData; let j = index\"\n [class.active]=\"\n assessment.id === selectedAssessment?.assessment_id &&\n data.id === selectedAssessment?.category_id\n \"\n >\n <div class=\"table-column serial\">\n <div\n [id]=\"'sub-sr-no' + i + j\"\n class=\"sr-no\"\n appTooltip=\"{{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\"\n placement=\"bottom\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n >\n {{\n dataPerPage * (assessmentPayload.page_no - 1) + (i + 1)\n }}.{{ j + 1 }}\n <app-cs-radio\n name=\"assessment\"\n [value]=\"assessment.id\"\n [checked]=\"\n assessment?.id === selectedAssessment?.assessment_id &&\n data?.id === selectedAssessment?.category_id\n \"\n (checkedEvent)=\"setAssessment(data, assessment)\"\n ></app-cs-radio>\n </div>\n </div>\n <div class=\"table-column sub-name\">\n <div\n class=\"value\"\n [appTooltip]=\"\n 'Mission and message, communications to external audiences'\n \"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n >\n {{ assessment?.assessment_name }}\n </div>\n </div>\n <div class=\"table-column question\">\n <div class=\"buttons\">\n <button class=\"action-btn\" (click)=\"preview(assessment)\">\n <i class=\"icons\"></i> Preview\n </button>\n <!-- <button class=\"action-btn\"><i class=\"icons\"></i> Edit</button> -->\n </div>\n <div class=\"label\">\n {{ assessment?.questions }}\n {{ assessment?.questions > 1 ? \"Questions\" : \"Question\" }}\n </div>\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-sub-loader\n *ngIf=\"!data.assessmentData?.length\"\n ></app-assessment-list-sub-loader>\n <!-- <app-line-loader *ngIf=\"!data.assessmentData?.length\" [loaderHeight]=\"'5'\"></app-line-loader> -->\n </div>\n </div>\n </ng-container>\n <!-- Loader loading isLoader -->\n <app-assessment-list-loader *ngIf=\"isLoader\"></app-assessment-list-loader>\n </div>\n <!-- No data image -->\n <app-no-data\n *ngIf=\"!assessmentCategory.data.length && !isLoader && !searchAssessments\"\n [noDataImage]=\"ASSETS.search_data\"\n [noDataText]=\"'No Data to Display'\"\n ></app-no-data>\n\n <app-floating-bar\n [selectedData]=\"[]\"\n (closeEvent)=\"save()\"\n (closeList)=\"close()\"\n [isDisabled]=\"!selectedAssessment?.assessment_id && !isDeleted\"\n [selectedData]=\"\n selectedAssessment?.assessment_id\n ? [selectedAssessment?.assessmentDetails]\n : []\n \"\n [displayElementKey]=\"'assessment_name'\"\n [pluralText]=\"'Risk Categories selected'\"\n (closeEvent)=\"save()\"\n (deleteEvent)=\"deleteEvent($event)\"\n >\n </app-floating-bar>\n </div>\n</div>\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.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-bottom.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/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\";::ng-deep .assessment-list{position:fixed;inset:0 500px 0 0}::ng-deep .assessment-list:before{background:#1e5dd3;content:\"\";position:absolute;top:0;left:0;right:0;width:100%;height:3px}::ng-deep .assessment-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .assessment-list-head{background:#fbfbfb;height:2.75rem;border-bottom:1px solid #f1f1f1}::ng-deep .assessment-list-body{background:#fff;height:calc(100vh - 2.75rem);padding:2rem}::ng-deep .assessment-list-body .search-block{position:relative}::ng-deep .assessment-list-body .search-block input{height:2.75rem;line-height:1.5rem;padding:.5rem 1rem .5rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .assessment-list-body .search-block input:focus{border-color:#1e5dd3}::ng-deep .assessment-list-body .search-block i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1;font-size:12px}::ng-deep .assessment-list-body app-workflow-pagination .pagination-sec{padding-bottom:0!important}::ng-deep .assessment-list-body .assessment-list-part{height:calc(100vh - 242px);overflow:auto;padding:8px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body .assessment-list-part::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-selected{margin-bottom:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-heading{color:#161b2f;font-size:12px;font-weight:600;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item{border:1px solid #f1f1f1;border-radius:2px;margin-bottom:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .main-list{cursor:pointer}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item.active{border-color:#1e5dd3;box-shadow:0 3px 6px #4681ef26}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row{display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row.disabled{pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column{color:#747576;height:48px;position:relative;width:100%;display:flex;align-items:center;padding:0 4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no{width:16px;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:10px;font-weight:500;display:flex;height:100%;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio{position:absolute;top:8px;left:0;opacity:0;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.serial .sr-no app-cs-radio .radio-item{position:absolute;left:8px;top:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name{width:calc(100% - 64px);min-width:calc(100% - 64px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.name .name-inner .value{color:#161b2f;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action{width:32px;max-width:32px;justify-content:center}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.arrow{background:transparent;border:none;border-radius:0;color:#747576;font-size:12px;padding:0;margin:0;display:flex;align-items:center;justify-content:center;height:100%;width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.action button.disabled{opacity:.5!important;pointer-events:none}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name{width:calc(100% - 232px);min-width:calc(100% - 232px)}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .name-inner{width:100%}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.sub-name .value{color:#747576;font-size:12px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;padding-right:20px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question{width:200px;max-width:200px;justify-content:flex-end}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons{display:flex;opacity:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:22px;text-transform:uppercase;padding:0 8px;display:flex;align-items:center;margin:0}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row .table-column.question .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .table-row:hover .table-column.question .buttons{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row{border-top:1px solid #f1f1f1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no{color:#f8f8f8}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row:hover .table-column.serial .sr-no app-cs-radio,::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row.active .table-column.serial .sr-no app-cs-radio{opacity:1}::ng-deep .assessment-list-body .assessment-list-part .assessment-list-item .sub-list .table-row .table-column{height:32px}::ng-deep .assessment-list-body ul{padding:0;margin:0}::ng-deep .assessment-list-body ul.assessment{max-height:calc(100vh - 240px);overflow:auto;padding:16px 12px 0 0;width:calc(100% + 12px)}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-track{background-color:#fff;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::ng-deep .assessment-list-body ul.assessment::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}::ng-deep .assessment-list-body ul.assessment li{padding:0 0 12px;list-style:none;display:flex;align-items:center;justify-content:space-between}::ng-deep .assessment-list-body ul.assessment li app-cs-radio{width:calc(100% - 260px)}::ng-deep .assessment-list-body ul.assessment li app-cs-radio .radio-item .value .name{font-size:12px;color:#161b2f;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .assessment-list-body ul.assessment li .right{display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px}::ng-deep .assessment-list-body ul.assessment li .right .buttons{display:flex;width:0;overflow:hidden;transition:all .2s ease-in-out}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn{background:#fff;border:1px solid #f1f1f1;border-radius:2px;color:#1e5dd3;font-size:11px;font-weight:500;line-height:24px;text-transform:uppercase;padding:0 8px;margin-left:12px;display:flex;align-items:center}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn i{margin-right:4px}::ng-deep .assessment-list-body ul.assessment li .right .buttons button.action-btn+button{margin-left:4px}::ng-deep .assessment-list-body ul.assessment li:hover .right .buttons{width:156px}::ng-deep .assessment-list-body app-no-data .no-data-wrapper{height:calc(100% - 118px)}::ng-deep .assessment-list.full-screen{width:100%}.within-part{display:flex;align-items:center;padding-right:12px}.within-part .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:12px;color:#747576}.within-box{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding:0 4px;margin-right:8px;line-height:12px}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n"] }]
|
|
194
195
|
}], ctorParameters: function () { return [{ type: i1.ResponsibilityService }, { type: i2.AssessmentService }, { type: i3.AuthService }]; }, propDecorators: { isEdit: [{
|
|
195
196
|
type: Input
|
|
196
197
|
}], mode: [{
|
|
@@ -201,9 +202,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
201
202
|
type: Input
|
|
202
203
|
}], program_ids: [{
|
|
203
204
|
type: Input
|
|
205
|
+
}], isFullScreen: [{
|
|
206
|
+
type: Input
|
|
204
207
|
}], onAssessmentSelect: [{
|
|
205
208
|
type: Output
|
|
206
209
|
}], cancelAssessment: [{
|
|
207
210
|
type: Output
|
|
208
211
|
}] } });
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1saXN0L2Fzc2Vzc21lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtbGlzdC9hc3Nlc3NtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sdUJBQXVCO0lBK0NsQyxZQUNVLHFCQUE0QyxFQUM1QyxpQkFBb0MsRUFDcEMsSUFBaUI7UUFGakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQWE7UUFqRDNCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ1AsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO1FBQ25DLHNCQUFpQixHQUFHO1lBQ2xCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxHQUFHO1lBQ1osS0FBSyxFQUFFLFFBQVE7WUFDZixXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFF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QUFJLENBQUM7SUFDeEIsQ0FBQzsrR0F0TVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsNFRDZHBDLHd1WEFxVEE7OzRGRHZTYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO3NLQVN0QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQXNCRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBWUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNO2dCQUVHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXNzZXNzbWVudENhdGVnb3J5TGlzdCxcbiAgQXNzZXNzbWVudExpc3QsXG59IGZyb20gJy4vc2VydmljZS9hc3Nlc3NtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4vc2VydmljZS9hc3Nlc3NtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFzc2Vzc21lbnQtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hc3Nlc3NtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hc3Nlc3NtZW50LWxpc3QuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXNzZXNzbWVudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIGFuaW1hdGlvbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGE6IGFueTtcbiAgc3ViTGlzdCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0VkaXQgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZSA9ICcnO1xuICBvcGVuZWRDYXRlZ29yeTogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICBhc3Nlc3NtZW50UGF5bG9hZCA9IHtcbiAgICBzZWFyY2hfdGl0bGU6ICcnLFxuICAgIHBhZ2Vfbm86ICcxJyxcbiAgICBzdGF0ZTogJ0FDVElWRScsXG4gICAgc2VhcmNoX3RleHQ6ICcnLFxuICAgIGFscGhhYmV0X2ZpbHRlcjogJycsXG4gIH07XG5cbiAgZGF0YVBlclBhZ2UgPSAwO1xuXG4gIGFzc2Vzc21lbnRDYXRlZ29yeTogQXNzZXNzbWVudENhdGVnb3J5TGlzdCA9IHtcbiAgICBkYXRhOiBbXSxcbiAgICB0b3RhbFBhZ2U6IDAsXG4gICAgdG90YWxSZWNvcmRzOiAwLFxuICAgIHN0YXJ0X3ZhbHVlOiAwLFxuICAgIGVuZF92YWx1ZTogMCxcbiAgICBjdXJyZW50UGFnZTogMCxcbiAgfTtcbiAgaXNMb2FkZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKSBzZWxlY3RlZEFzc2Vzc21lbnQgPSB7XG4gICAgYXNzZXNzbWVudF9pZDogJycsXG4gICAgY2F0ZWdvcnlfaWQ6ICcnLFxuICAgIGFzc2Vzc21lbnREZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgY2F0ZWdvcnlfZGV0YWlsczogdW5kZWZpbmVkLFxuICB9O1xuXG4gIGlzRGVsZXRlZCA9IGZhbHNlO1xuXG4gIHNlYXJjaEFzc2Vzc21lbnRzID0gJyc7XG4gIHByZXZpZXdRdWVzdGlvbkRhdGEhOiBhbnk7XG4gIGlzUHJldmlldyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWxlY3RlZEFzc2Vzc21lbnREYXRhOiBhbnk7XG4gIEBJbnB1dCgpIHByb2dyYW1faWRzOiBzdHJpbmcgPSAnJztcblxuICBAT3V0cHV0KCkgb25Bc3Nlc3NtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRhdGFQZXJQYWdlID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZGF0YVBlclBhZ2U7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBvbkFzc2Vzc21lbnRTZWxlY3RlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudDtcbiAgfVxuXG4gIHByZXZpZXcoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0gcmVzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZpZXdCYWNrKCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggOiBBY2NlcHQgaW5kZXggb2YgZWxlbWVudFBvc2l0aW9uXG4gICAqXG4gICAqL1xuICBzaG93U3ViTGlzdChpbmRleDogbnVtYmVyLCBpZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMub3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoKGVsZSkgPT4gZWxlICE9PSBpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpbmRleCk7XG4gICAgICB0aGlzLmdldEFzc2Vzc21lbnRMaXN0KGluZGV4LCBpZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wZW5lZENhdGVnb3J5O1xuICB9XG5cbiAgLy8gVE9ETzogUGFnaW5hdGlvblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IDogcGFnZSBudW1iZXIgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZFxuICAgKi9cbiAgb25QYWdlU2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gZXZlbnQudG9TdHJpbmcoKTtcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcbiAgfVxuXG4gIC8vIFRPRE86IFNlYXJjaFxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNlYXJjaCA6IHNlYXJjaCB0ZXh0XG4gICAqL1xuICBvbkFzc2Vzc21lbnRTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gJzEnO1xuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RpdGxlID0gc2VhcmNoO1xuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSBzZWFyY2g7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gIH1cblxuICAvLyBUT0RPOiBGaWx0ZXIgYnkgYWxwaGFiZXRcbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgZmlsdGVyIG9mIEFscGhhYmV0XG4gICAqL1xuICBvbkFscGhhYmV0U2VsZWN0ZWQoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSAnMSc7XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5hbHBoYWJldF9maWx0ZXIgPSBldmVudDtcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gJyc7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gIH1cblxuICAvLyBUT0RPOiBDYWxsIEFQSSBtZXRob2RcbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpIHtcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZVxuICAgICAgLmdldEFzc2Vzc21lbnRDYXRlZ29yeSh0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLCB0aGlzLnByb2dyYW1faWRzKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkgPSByZXM7XG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogQ2FsbCBTdWIgZGF0YSBBUEkgbWV0aG9kXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpZCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgaWRcbiAgICovXG4gIGdldEFzc2Vzc21lbnRMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgc2VhcmNoX3RpdGxlOiAnJyxcbiAgICB9O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZCwgaWQsIHRoaXMucHJvZ3JhbV9pZHMpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IEFycmF5PEFzc2Vzc21lbnRMaXN0PikgPT4ge1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyAgVE9ETzogU2VsZWN0IGRhdGFcbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjYXRlZ29yeV9pZCA6c2VsZWN0ZWQgYXNzZXNzbWVudCdzIGNhdGVnb3J5J3Mgb2JqZWN0IGlkXG4gICAqIEBwYXJhbSBhc3Nlc3NtZW50X2lkIDogU2VsZWN0ZWQgYXNzZXNzbWVudCdzIG9iamVjdCBpZFxuICAgKi9cbiAgc2V0QXNzZXNzbWVudChjYXRlZ29yeV9kZXRhaWxzOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudCA9IHtcbiAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeV9kZXRhaWxzPy5pZCxcbiAgICAgIGFzc2Vzc21lbnRfaWQ6IGFzc2Vzc21lbnREZXRhaWxzLmlkLFxuICAgICAgYXNzZXNzbWVudERldGFpbHM6IGFzc2Vzc21lbnREZXRhaWxzLFxuICAgICAgY2F0ZWdvcnlfZGV0YWlsczogY2F0ZWdvcnlfZGV0YWlscyxcbiAgICB9O1xuICB9XG5cbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xuXG4gIC8vIFRPRE86IFNlbmQgZGF0YSBpbiBwYXlsb2FkIG9mIGNyZWF0ZSBSZXNwb25zaWJpbGl0eSBmb3JtXG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLm9uQXNzZXNzbWVudFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2FuY2VsQXNzZXNzbWVudC5lbWl0KCk7XG4gIH1cblxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnQgPSB7XG4gICAgICBhc3Nlc3NtZW50X2lkOiAnJyxcbiAgICAgIGNhdGVnb3J5X2lkOiAnJyxcbiAgICAgIGFzc2Vzc21lbnREZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgICBjYXRlZ29yeV9kZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICB0aGlzLmlzRGVsZXRlZCA9IHRydWU7XG4gIH1cblxuICAvLyBUT0RPOiBwb3B1bGF0ZSBkYXRhIHdoaWxlIGVkaXRpbmcgZGF0YVxuXG4gIC8vIFRPRE86RW5hYmxlIEVESVQgVUkgdG8gaW1wcm92ZSB1c2VyIEV4cGVyaWVuY2VcblxuICAvLyAgVE9ETzogYmxvY2sgdXNlcnMgZm9yIHNlbGVjdGluZyBjaGVja3BvaW50c1xuXG4gIC8vIFRPRE86IGNoZWNrcG9pbnRzXG59XG4iLCI8YXBwLXByZXZpZXdcbiAgKm5nSWY9XCJpc1ByZXZpZXdcIlxuICBbcXVlc3Rpb25EYXRhXT1cInByZXZpZXdRdWVzdGlvbkRhdGFcIlxuICAocHJldmlld0JhY2spPVwicHJldmlld0JhY2soKVwiXG4+PC9hcHAtcHJldmlldz5cbjxkaXYgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGFuIEFzc2Vzc21lbnQ8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3QtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2tcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoQXNzZXNzbWVudHNcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQXNzZXNzbWVudFNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIEFzc2Vzc21lbnQgQ2F0ZWdvcnlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLXdvcmtmbG93LXBhZ2luYXRpb25cbiAgICAgIFtwYWdlQ291bnRdPVwiYXNzZXNzbWVudENhdGVnb3J5Py50b3RhbFBhZ2VcIlxuICAgICAgW3RvdGFsXT1cImFzc2Vzc21lbnRDYXRlZ29yeT8udG90YWxSZWNvcmRzXCJcbiAgICAgIFtzdGFydF09XCJhc3Nlc3NtZW50Q2F0ZWdvcnk/LnN0YXJ0X3ZhbHVlXCJcbiAgICAgIFtlbmRdPVwiYXNzZXNzbWVudENhdGVnb3J5Py5lbmRfdmFsdWVcIlxuICAgICAgW2FjdGl2ZUFscGhhYmV0XT1cIicnXCJcbiAgICAgIChzZWxlY3RlZEFscGhhYmV0KT1cIm9uQWxwaGFiZXRTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZFBhZ2UpPVwib25QYWdlU2VsZWN0aW9uKCRldmVudClcIlxuICAgID48L2FwcC13b3JrZmxvdy1wYWdpbmF0aW9uPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIGFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhLmxlbmd0aCA9PT0gMCAmJiAhaXNMb2FkZXIgJiYgc2VhcmNoQXNzZXNzbWVudHNcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1wYXJ0IHZ4LW1iLTRcIlxuICAgID5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIEFzc2Vzc21lbnRzIEZvdW5kLidcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggfHwgaXNMb2FkZXJcIlxuICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3QtcGFydCB2eC1tYi00XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNFZGl0ICYmIHNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudERldGFpbHM/LmFzc2Vzc21lbnRfbmFtZVwiXG4gICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LXNlbGVjdGVkXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1oZWFkaW5nXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIG1vZGUgPT09IFwicG9saWN5XCJcbiAgICAgICAgICAgICAgPyBcIkFzc2Vzc21lbnQgYWxyZWFkeSBzZWxlY3RlZFwiXG4gICAgICAgICAgICAgIDogXCJBc3Nlc3NtZW50IGFscmVhZHkgc2VsZWN0ZWQgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHNlcmlhbCBkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHN1Yi1uYW1lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpdGhpbi1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGhpbi1ib3hcIj5XaXRoaW48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9kZXRhaWxzPy5jYXRlZ29yeV9uYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9kZXRhaWxzPy5wYXJlbnRfdHJlZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnID4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfZGV0YWlscz8ucGFyZW50X3RyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJycpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFzc2Vzc21lbnQ/LmNhdGVnb3J5X2RldGFpbHM/LmNhdGVnb3J5X25hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfZGV0YWlscz8ucGFyZW50X3RyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIiA+IFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFzc2Vzc21lbnQ/LmNhdGVnb3J5X2RldGFpbHM/LnBhcmVudF90cmVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIilcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gcXVlc3Rpb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXcoc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWU1OzwvaT4gUHJldmlld1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+IEVkaXQ8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZEFzc2Vzc21lbnQ/LmFzc2Vzc21lbnREZXRhaWxzPy5xdWVzdGlvbnMgfX1cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8ucXVlc3Rpb25zID4gMVxuICAgICAgICAgICAgICAgICAgICA/IFwiUXVlc3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1oZWFkaW5nXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgbW9kZSA9PT0gXCJwb2xpY3lcIlxuICAgICAgICAgICAgPyBcIlNlbGVjdCBhbiBBc3Nlc3NtZW50XCJcbiAgICAgICAgICAgIDogXCJTZWxlY3QgYW4gQXNzZXNzbWVudCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eVwiXG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLVxuICAgICAgICAgICAgICAgICAgICBBc3Nlc3NtZW50IGNhdGVnb3J5IGxpc3QgXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZSBjbGFzcyBpcyB1c2VkIGZvciBoaWdobGlnaHRpbmcgb3BlbmVkIGVsZW1lbnRcbiAgICAgICAgICAgIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2YgYXNzZXNzbWVudENhdGVnb3J5LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWl0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICBvcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpKSB8fFxuICAgICAgICAgICAgZGF0YS5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9pZFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvdyBtYWluLWxpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dTdWJMaXN0KGksIGRhdGE/LmlkKVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGF0YT8uYXNzZXNzbWVudGNvdW50IDwgMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtpZF09XCInc3Itbm8nICsgaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ub1wiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZGF0YVBlclBhZ2UgKiAoYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyAtIDEpICsgKGkgKyAxKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBuYW1lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhLmNhdGVnb3J5X25hbWVcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZGF0YT8uY2F0ZWdvcnlfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXRoaW4tcGFydFwiICpuZ0lmPVwiZGF0YT8ucGFyZW50X3RyZWVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aGluLWJveFwiPldpdGhpbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhLnBhcmVudF90cmVlXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkYXRhPy5wYXJlbnRfdHJlZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBhY3Rpb25cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCInYXJyb3cnICsgaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcnJvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRhdGE/LmFzc2Vzc21lbnRjb3VudCA8IDFcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhPy5hc3Nlc3NtZW50Y291bnQgPCAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIW9wZW5lZENhdGVnb3J5LmluY2x1ZGVzKGkpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTk3MDs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJvcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpKVwiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWU4OzwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gQXNzZXNzbWVudCBsaXN0IHN0YXJ0IGZyb20gaGVyZSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoaSlcIiBjbGFzcz1cInN1Yi1saXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5hc3Nlc3NtZW50RGF0YT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhc3Nlc3NtZW50IG9mIGRhdGEuYXNzZXNzbWVudERhdGE7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50LmlkID09PSBzZWxlY3RlZEFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfaWQgJiZcbiAgICAgICAgICAgICAgICAgIGRhdGEuaWQgPT09IHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfaWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidzdWItc3Itbm8nICsgaSArIGpcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVBlclBhZ2UgKiAoYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyAtIDEpICsgKGkgKyAxKVxuICAgICAgICAgICAgICAgICAgICB9fS57eyBqICsgMSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFQZXJQYWdlICogKGFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gLSAxKSArIChpICsgMSlcbiAgICAgICAgICAgICAgICAgICAgfX0ue3sgaiArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhc3Nlc3NtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYXNzZXNzbWVudC5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50Py5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50X2lkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9pZFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRBc3Nlc3NtZW50KGRhdGEsIGFzc2Vzc21lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzdWItbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ01pc3Npb24gYW5kIG1lc3NhZ2UsIGNvbW11bmljYXRpb25zIHRvIGV4dGVybmFsIGF1ZGllbmNlcydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBxdWVzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIiAoY2xpY2spPVwicHJldmlldyhhc3Nlc3NtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWU1OzwvaT4gUHJldmlld1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LnF1ZXN0aW9ucyB9fVxuICAgICAgICAgICAgICAgICAgICB7eyBhc3Nlc3NtZW50Py5xdWVzdGlvbnMgPiAxID8gXCJRdWVzdGlvbnNcIiA6IFwiUXVlc3Rpb25cIiB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIExvYWRlciBsb2FkaW5nIGlzTG9hZGVyICAtLT5cbiAgICAgICAgICAgIDxhcHAtYXNzZXNzbWVudC1saXN0LXN1Yi1sb2FkZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YS5hc3Nlc3NtZW50RGF0YT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID48L2FwcC1hc3Nlc3NtZW50LWxpc3Qtc3ViLWxvYWRlcj5cbiAgICAgICAgICAgIDwhLS0gPGFwcC1saW5lLWxvYWRlciAqbmdJZj1cIiFkYXRhLmFzc2Vzc21lbnREYXRhPy5sZW5ndGhcIiBbbG9hZGVySGVpZ2h0XT1cIic1J1wiPjwvYXBwLWxpbmUtbG9hZGVyPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTG9hZGVyIGxvYWRpbmcgaXNMb2FkZXIgIC0tPlxuICAgICAgPGFwcC1hc3Nlc3NtZW50LWxpc3QtbG9hZGVyICpuZ0lmPVwiaXNMb2FkZXJcIj48L2FwcC1hc3Nlc3NtZW50LWxpc3QtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTm8gZGF0YSBpbWFnZSAgLS0+XG4gICAgPGFwcC1uby1kYXRhXG4gICAgICAqbmdJZj1cIiFhc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggJiYgIWlzTG9hZGVyICYmICFzZWFyY2hBc3Nlc3NtZW50c1wiXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgIFtub0RhdGFUZXh0XT1cIidObyBEYXRhIHRvIERpc3BsYXknXCJcbiAgICA+PC9hcHAtbm8tZGF0YT5cblxuICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cIltdXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXG4gICAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZCAmJiAhaXNEZWxldGVkXCJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwiXG4gICAgICAgIHNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZFxuICAgICAgICAgID8gW3NlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudERldGFpbHNdXG4gICAgICAgICAgOiBbXVxuICAgICAgXCJcbiAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCInYXNzZXNzbWVudF9uYW1lJ1wiXG4gICAgICBbcGx1cmFsVGV4dF09XCInUmlzayBDYXRlZ29yaWVzIHNlbGVjdGVkJ1wiXG4gICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgID5cbiAgICA8L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXNzbWVudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1saXN0L2Fzc2Vzc21lbnQtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtbGlzdC9hc3Nlc3NtZW50LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQU0xRCxNQUFNLE9BQU8sdUJBQXVCO0lBZ0RsQyxZQUNVLHFCQUE0QyxFQUM1QyxpQkFBb0MsRUFDcEMsSUFBaUI7UUFGakIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFNBQUksR0FBSixJQUFJLENBQWE7UUFsRDNCLFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ1AsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDbkIsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO1FBQ25DLHNCQUFpQixHQUFHO1lBQ2xCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxHQUFHO1lBQ1osS0FBSyxFQUFFLFFBQVE7WUFDZixXQUFXLEVBQUUsRUFBRTtZQUNmLGVBQWUsRUFBRSxFQUFF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O1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQzsrR0F2TVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsMFZDZHBDLHd4WEF5VEE7OzRGRDNTYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO3NLQVN0QixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQXNCRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBWUcsc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBRUcsZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVzcG9uc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcmVzcG9uc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQge1xuICBBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0LFxuICBBc3Nlc3NtZW50TGlzdCxcbn0gZnJvbSAnLi9zZXJ2aWNlL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL2Fzc2Vzc21lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBU1NFVFMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvYXNzZXRzLmNvbnN0YW50cyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYXNzZXNzbWVudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Fzc2Vzc21lbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Fzc2Vzc21lbnQtbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBc3Nlc3NtZW50TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgYW5pbWF0aW9uID0gZmFsc2U7XG4gIHNlbGVjdGVkRGF0YTogYW55O1xuICBzdWJMaXN0ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzRWRpdCA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlID0gJyc7XG4gIG9wZW5lZENhdGVnb3J5OiBBcnJheTxudW1iZXI+ID0gW107XG4gIGFzc2Vzc21lbnRQYXlsb2FkID0ge1xuICAgIHNlYXJjaF90aXRsZTogJycsXG4gICAgcGFnZV9ubzogJzEnLFxuICAgIHN0YXRlOiAnQUNUSVZFJyxcbiAgICBzZWFyY2hfdGV4dDogJycsXG4gICAgYWxwaGFiZXRfZmlsdGVyOiAnJyxcbiAgfTtcblxuICBkYXRhUGVyUGFnZSA9IDA7XG5cbiAgYXNzZXNzbWVudENhdGVnb3J5OiBBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0ID0ge1xuICAgIGRhdGE6IFtdLFxuICAgIHRvdGFsUGFnZTogMCxcbiAgICB0b3RhbFJlY29yZHM6IDAsXG4gICAgc3RhcnRfdmFsdWU6IDAsXG4gICAgZW5kX3ZhbHVlOiAwLFxuICAgIGN1cnJlbnRQYWdlOiAwLFxuICB9O1xuICBpc0xvYWRlciA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQXNzZXNzbWVudCA9IHtcbiAgICBhc3Nlc3NtZW50X2lkOiAnJyxcbiAgICBjYXRlZ29yeV9pZDogJycsXG4gICAgYXNzZXNzbWVudERldGFpbHM6IHVuZGVmaW5lZCxcbiAgICBjYXRlZ29yeV9kZXRhaWxzOiB1bmRlZmluZWQsXG4gIH07XG5cbiAgaXNEZWxldGVkID0gZmFsc2U7XG5cbiAgc2VhcmNoQXNzZXNzbWVudHMgPSAnJztcbiAgcHJldmlld1F1ZXN0aW9uRGF0YSE6IGFueTtcbiAgaXNQcmV2aWV3ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlbGVjdGVkQXNzZXNzbWVudERhdGE6IGFueTtcbiAgQElucHV0KCkgcHJvZ3JhbV9pZHM6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpc0Z1bGxTY3JlZW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgb25Bc3Nlc3NtZW50U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSBjYW5jZWxBc3Nlc3NtZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVzcG9uc2liaWxpdHlTZXJ2aWNlOiBSZXNwb25zaWJpbGl0eVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoOiBBdXRoU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRhdGFQZXJQYWdlID0gdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2UuZGF0YVBlclBhZ2U7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDMwMCk7XG4gIH1cblxuICBvbkFzc2Vzc21lbnRTZWxlY3RlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGEgPSBldmVudDtcbiAgfVxuXG4gIHByZXZpZXcoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnRRdWVzdGlvbnMoZXZ0Py5pZCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmF1dGgucHJldmlld1BhbmVsLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuaXNQcmV2aWV3ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0gcmVzO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByZXZpZXdCYWNrKCkge1xuICAgIHRoaXMuaXNQcmV2aWV3ID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2aWV3UXVlc3Rpb25EYXRhID0ge307XG4gICAgdGhpcy5hdXRoLnByZXZpZXdQYW5lbC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggOiBBY2NlcHQgaW5kZXggb2YgZWxlbWVudFBvc2l0aW9uXG4gICAqXG4gICAqL1xuICBzaG93U3ViTGlzdChpbmRleDogbnVtYmVyLCBpZDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMub3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoaW5kZXgpKSB7XG4gICAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gdGhpcy5vcGVuZWRDYXRlZ29yeS5maWx0ZXIoKGVsZSkgPT4gZWxlICE9PSBpbmRleCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkucHVzaChpbmRleCk7XG4gICAgICB0aGlzLmdldEFzc2Vzc21lbnRMaXN0KGluZGV4LCBpZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm9wZW5lZENhdGVnb3J5O1xuICB9XG5cbiAgLy8gVE9ETzogUGFnaW5hdGlvblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IDogcGFnZSBudW1iZXIgdGhhdCBoYXMgYmVlbiBzZWxlY3RlZFxuICAgKi9cbiAgb25QYWdlU2VsZWN0aW9uKGV2ZW50OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gZXZlbnQudG9TdHJpbmcoKTtcbiAgICB0aGlzLmdldEFzc2Vzc21lbnRDYXRlZ29yeUxpc3QoKTtcbiAgfVxuXG4gIC8vIFRPRE86IFNlYXJjaFxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHNlYXJjaCA6IHNlYXJjaCB0ZXh0XG4gICAqL1xuICBvbkFzc2Vzc21lbnRTZWFyY2goc2VhcmNoOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9wZW5lZENhdGVnb3J5ID0gW107XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5wYWdlX25vID0gJzEnO1xuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RpdGxlID0gc2VhcmNoO1xuICAgIHRoaXMuYXNzZXNzbWVudFBheWxvYWQuc2VhcmNoX3RleHQgPSBzZWFyY2g7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gIH1cblxuICAvLyBUT0RPOiBGaWx0ZXIgYnkgYWxwaGFiZXRcbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgZmlsdGVyIG9mIEFscGhhYmV0XG4gICAqL1xuICBvbkFscGhhYmV0U2VsZWN0ZWQoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMub3BlbmVkQ2F0ZWdvcnkgPSBbXTtcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gPSAnMSc7XG4gICAgdGhpcy5hc3Nlc3NtZW50UGF5bG9hZC5hbHBoYWJldF9maWx0ZXIgPSBldmVudDtcbiAgICB0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLnNlYXJjaF90ZXh0ID0gJyc7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50Q2F0ZWdvcnlMaXN0KCk7XG4gIH1cblxuICAvLyBUT0RPOiBDYWxsIEFQSSBtZXRob2RcbiAgZ2V0QXNzZXNzbWVudENhdGVnb3J5TGlzdCgpIHtcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5U2VydmljZVxuICAgICAgLmdldEFzc2Vzc21lbnRDYXRlZ29yeSh0aGlzLmFzc2Vzc21lbnRQYXlsb2FkLCB0aGlzLnByb2dyYW1faWRzKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Q2F0ZWdvcnkgPSByZXM7XG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETzogQ2FsbCBTdWIgZGF0YSBBUEkgbWV0aG9kXG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBpZCA6IEFzc2Vzc21lbnQgY2F0ZWdvcnkgaWRcbiAgICovXG4gIGdldEFzc2Vzc21lbnRMaXN0KGluZGV4OiBudW1iZXIsIGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgc2VhcmNoX3RpdGxlOiAnJyxcbiAgICB9O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICAgICAuZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZCwgaWQsIHRoaXMucHJvZ3JhbV9pZHMpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IEFycmF5PEFzc2Vzc21lbnRMaXN0PikgPT4ge1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhW2luZGV4XS5hc3Nlc3NtZW50RGF0YSA9IFsuLi5uZXcgU2V0KHJlcyldO1xuICAgICAgfSk7XG4gIH1cblxuICAvLyAgVE9ETzogU2VsZWN0IGRhdGFcbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBjYXRlZ29yeV9pZCA6c2VsZWN0ZWQgYXNzZXNzbWVudCdzIGNhdGVnb3J5J3Mgb2JqZWN0IGlkXG4gICAqIEBwYXJhbSBhc3Nlc3NtZW50X2lkIDogU2VsZWN0ZWQgYXNzZXNzbWVudCdzIG9iamVjdCBpZFxuICAgKi9cbiAgc2V0QXNzZXNzbWVudChjYXRlZ29yeV9kZXRhaWxzOiBhbnksIGFzc2Vzc21lbnREZXRhaWxzOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkQXNzZXNzbWVudCA9IHtcbiAgICAgIGNhdGVnb3J5X2lkOiBjYXRlZ29yeV9kZXRhaWxzPy5pZCxcbiAgICAgIGFzc2Vzc21lbnRfaWQ6IGFzc2Vzc21lbnREZXRhaWxzLmlkLFxuICAgICAgYXNzZXNzbWVudERldGFpbHM6IGFzc2Vzc21lbnREZXRhaWxzLFxuICAgICAgY2F0ZWdvcnlfZGV0YWlsczogY2F0ZWdvcnlfZGV0YWlscyxcbiAgICB9O1xuICB9XG5cbiAgLy8gVE9ETzogRGlzcGxheSBzZWxlY3RlZCBkYXRhIGluIGJvdHRvbSBmbG9hdGluZyBiYXIgd2l0aCBuZXh0IGVuYWJsZWQgYnV0dG9uIGhhdmluZ1xuXG4gIC8vIFRPRE86IFNlbmQgZGF0YSBpbiBwYXlsb2FkIG9mIGNyZWF0ZSBSZXNwb25zaWJpbGl0eSBmb3JtXG5cbiAgc2F2ZSgpIHtcbiAgICB0aGlzLm9uQXNzZXNzbWVudFNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50KTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuY2FuY2VsQXNzZXNzbWVudC5lbWl0KCk7XG4gIH1cblxuICBkZWxldGVFdmVudChldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEFzc2Vzc21lbnQgPSB7XG4gICAgICBhc3Nlc3NtZW50X2lkOiAnJyxcbiAgICAgIGNhdGVnb3J5X2lkOiAnJyxcbiAgICAgIGFzc2Vzc21lbnREZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgICBjYXRlZ29yeV9kZXRhaWxzOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgICB0aGlzLmlzRGVsZXRlZCA9IHRydWU7XG4gIH1cblxuICAvLyBUT0RPOiBwb3B1bGF0ZSBkYXRhIHdoaWxlIGVkaXRpbmcgZGF0YVxuXG4gIC8vIFRPRE86RW5hYmxlIEVESVQgVUkgdG8gaW1wcm92ZSB1c2VyIEV4cGVyaWVuY2VcblxuICAvLyAgVE9ETzogYmxvY2sgdXNlcnMgZm9yIHNlbGVjdGluZyBjaGVja3BvaW50c1xuXG4gIC8vIFRPRE86IGNoZWNrcG9pbnRzXG59XG4iLCI8YXBwLXByZXZpZXdcbiAgKm5nSWY9XCJpc1ByZXZpZXdcIlxuICBbcXVlc3Rpb25EYXRhXT1cInByZXZpZXdRdWVzdGlvbkRhdGFcIlxuICAocHJldmlld0JhY2spPVwicHJldmlld0JhY2soKVwiXG4+PC9hcHAtcHJldmlldz5cbjxkaXZcbiAgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3RcIlxuICBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIlxuICBbY2xhc3MuZnVsbC1zY3JlZW5dPVwiaXNGdWxsU2NyZWVuXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+U2VsZWN0IGFuIEFzc2Vzc21lbnQ8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3QtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtYmxvY2tcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBiOzwvaT5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoQXNzZXNzbWVudHNcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uQXNzZXNzbWVudFNlYXJjaCgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIEFzc2Vzc21lbnQgQ2F0ZWdvcnlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLXdvcmtmbG93LXBhZ2luYXRpb25cbiAgICAgIFtwYWdlQ291bnRdPVwiYXNzZXNzbWVudENhdGVnb3J5Py50b3RhbFBhZ2VcIlxuICAgICAgW3RvdGFsXT1cImFzc2Vzc21lbnRDYXRlZ29yeT8udG90YWxSZWNvcmRzXCJcbiAgICAgIFtzdGFydF09XCJhc3Nlc3NtZW50Q2F0ZWdvcnk/LnN0YXJ0X3ZhbHVlXCJcbiAgICAgIFtlbmRdPVwiYXNzZXNzbWVudENhdGVnb3J5Py5lbmRfdmFsdWVcIlxuICAgICAgW2FjdGl2ZUFscGhhYmV0XT1cIicnXCJcbiAgICAgIChzZWxlY3RlZEFscGhhYmV0KT1cIm9uQWxwaGFiZXRTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChzZWxlY3RlZFBhZ2UpPVwib25QYWdlU2VsZWN0aW9uKCRldmVudClcIlxuICAgID48L2FwcC13b3JrZmxvdy1wYWdpbmF0aW9uPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIGFzc2Vzc21lbnRDYXRlZ29yeS5kYXRhLmxlbmd0aCA9PT0gMCAmJiAhaXNMb2FkZXIgJiYgc2VhcmNoQXNzZXNzbWVudHNcbiAgICAgIFwiXG4gICAgICBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1wYXJ0IHZ4LW1iLTRcIlxuICAgID5cbiAgICAgIDxhcHAtbm8tZGF0YVxuICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgICAgW25vRGF0YVRleHRdPVwiJ05vIEFzc2Vzc21lbnRzIEZvdW5kLidcIlxuICAgICAgPjwvYXBwLW5vLWRhdGE+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggfHwgaXNMb2FkZXJcIlxuICAgICAgY2xhc3M9XCJhc3Nlc3NtZW50LWxpc3QtcGFydCB2eC1tYi00XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNFZGl0ICYmIHNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudERldGFpbHM/LmFzc2Vzc21lbnRfbmFtZVwiXG4gICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LXNlbGVjdGVkXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1oZWFkaW5nXCI+XG4gICAgICAgICAge3tcbiAgICAgICAgICAgIG1vZGUgPT09IFwicG9saWN5XCJcbiAgICAgICAgICAgICAgPyBcIkFzc2Vzc21lbnQgYWxyZWFkeSBzZWxlY3RlZFwiXG4gICAgICAgICAgICAgIDogXCJBc3Nlc3NtZW50IGFscmVhZHkgc2VsZWN0ZWQgZm9yIHRoaXMgcmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHNlcmlhbCBkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHN1Yi1uYW1lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF9uYW1lXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF9uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndpdGhpbi1wYXJ0XCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIndpdGhpbi1ib3hcIj5XaXRoaW48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9kZXRhaWxzPy5jYXRlZ29yeV9uYW1lICtcbiAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9kZXRhaWxzPy5wYXJlbnRfdHJlZVxuICAgICAgICAgICAgICAgICAgICAgICAgPyAnID4gJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfZGV0YWlscz8ucGFyZW50X3RyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogJycpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICA+e3tcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFzc2Vzc21lbnQ/LmNhdGVnb3J5X2RldGFpbHM/LmNhdGVnb3J5X25hbWUgK1xuICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfZGV0YWlscz8ucGFyZW50X3RyZWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIiA+IFwiICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZEFzc2Vzc21lbnQ/LmNhdGVnb3J5X2RldGFpbHM/LnBhcmVudF90cmVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJcIilcbiAgICAgICAgICAgICAgICAgICAgfX08L3NwYW5cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gcXVlc3Rpb25cIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFjdGlvbi1idG5cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXcoc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWU1OzwvaT4gUHJldmlld1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+IEVkaXQ8L2J1dHRvbj4gLS0+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICB7eyBzZWxlY3RlZEFzc2Vzc21lbnQ/LmFzc2Vzc21lbnREZXRhaWxzPy5xdWVzdGlvbnMgfX1cbiAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50RGV0YWlscz8ucXVlc3Rpb25zID4gMVxuICAgICAgICAgICAgICAgICAgICA/IFwiUXVlc3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlF1ZXN0aW9uXCJcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFzc2Vzc21lbnQtbGlzdC1oZWFkaW5nXCI+XG4gICAgICAgIHt7XG4gICAgICAgICAgbW9kZSA9PT0gXCJwb2xpY3lcIlxuICAgICAgICAgICAgPyBcIlNlbGVjdCBhbiBBc3Nlc3NtZW50XCJcbiAgICAgICAgICAgIDogXCJTZWxlY3QgYW4gQXNzZXNzbWVudCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eVwiXG4gICAgICAgIH19XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLVxuICAgICAgICAgICAgICAgICAgICBBc3Nlc3NtZW50IGNhdGVnb3J5IGxpc3QgXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZSBjbGFzcyBpcyB1c2VkIGZvciBoaWdobGlnaHRpbmcgb3BlbmVkIGVsZW1lbnRcbiAgICAgICAgICAgIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRlclwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgKm5nRm9yPVwibGV0IGRhdGEgb2YgYXNzZXNzbWVudENhdGVnb3J5LmRhdGE7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIGNsYXNzPVwiYXNzZXNzbWVudC1saXN0LWl0ZW1cIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICBvcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpKSB8fFxuICAgICAgICAgICAgZGF0YS5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9pZFxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvdyBtYWluLWxpc3RcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNob3dTdWJMaXN0KGksIGRhdGE/LmlkKVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZGF0YT8uYXNzZXNzbWVudGNvdW50IDwgMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIFtpZF09XCInc3Itbm8nICsgaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ub1wiXG4gICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgZGF0YVBlclBhZ2UgKiAoYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyAtIDEpICsgKGkgKyAxKSB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBuYW1lXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYW1lLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhLmNhdGVnb3J5X25hbWVcIlxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgZGF0YT8uY2F0ZWdvcnlfbmFtZSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aXRoaW4tcGFydFwiICpuZ0lmPVwiZGF0YT8ucGFyZW50X3RyZWVcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwid2l0aGluLWJveFwiPldpdGhpbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhLnBhcmVudF90cmVlXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgID57eyBkYXRhPy5wYXJlbnRfdHJlZSB9fTwvc3BhblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBhY3Rpb25cIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIFtpZF09XCInYXJyb3cnICsgaVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhcnJvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRhdGE/LmFzc2Vzc21lbnRjb3VudCA8IDFcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRhPy5hc3Nlc3NtZW50Y291bnQgPCAxXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIW9wZW5lZENhdGVnb3J5LmluY2x1ZGVzKGkpXCIgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgICAgICA+JiN4ZTk3MDs8L2lcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJvcGVuZWRDYXRlZ29yeS5pbmNsdWRlcyhpKVwiIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWU4OzwvaT5cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gQXNzZXNzbWVudCBsaXN0IHN0YXJ0IGZyb20gaGVyZSAtLT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwib3BlbmVkQ2F0ZWdvcnkuaW5jbHVkZXMoaSlcIiBjbGFzcz1cInN1Yi1saXN0XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5hc3Nlc3NtZW50RGF0YT8ubGVuZ3RoID4gMFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1yb3dcIlxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhc3Nlc3NtZW50IG9mIGRhdGEuYXNzZXNzbWVudERhdGE7IGxldCBqID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50LmlkID09PSBzZWxlY3RlZEFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfaWQgJiZcbiAgICAgICAgICAgICAgICAgIGRhdGEuaWQgPT09IHNlbGVjdGVkQXNzZXNzbWVudD8uY2F0ZWdvcnlfaWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzZXJpYWxcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidzdWItc3Itbm8nICsgaSArIGpcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcbiAgICAgICAgICAgICAgICAgICAgYXBwVG9vbHRpcD1cInt7XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YVBlclBhZ2UgKiAoYXNzZXNzbWVudFBheWxvYWQucGFnZV9ubyAtIDEpICsgKGkgKyAxKVxuICAgICAgICAgICAgICAgICAgICB9fS57eyBqICsgMSB9fVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFQZXJQYWdlICogKGFzc2Vzc21lbnRQYXlsb2FkLnBhZ2Vfbm8gLSAxKSArIChpICsgMSlcbiAgICAgICAgICAgICAgICAgICAgfX0ue3sgaiArIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhc3Nlc3NtZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYXNzZXNzbWVudC5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50Py5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5hc3Nlc3NtZW50X2lkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhPy5pZCA9PT0gc2VsZWN0ZWRBc3Nlc3NtZW50Py5jYXRlZ29yeV9pZFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRBc3Nlc3NtZW50KGRhdGEsIGFzc2Vzc21lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBzdWItbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgJ01pc3Npb24gYW5kIG1lc3NhZ2UsIGNvbW11bmljYXRpb25zIHRvIGV4dGVybmFsIGF1ZGllbmNlcydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LmFzc2Vzc21lbnRfbmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiBxdWVzdGlvblwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbi1idG5cIiAoY2xpY2spPVwicHJldmlldyhhc3Nlc3NtZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlYWU1OzwvaT4gUHJldmlld1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPiAtLT5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGFzc2Vzc21lbnQ/LnF1ZXN0aW9ucyB9fVxuICAgICAgICAgICAgICAgICAgICB7eyBhc3Nlc3NtZW50Py5xdWVzdGlvbnMgPiAxID8gXCJRdWVzdGlvbnNcIiA6IFwiUXVlc3Rpb25cIiB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8IS0tIExvYWRlciBsb2FkaW5nIGlzTG9hZGVyICAtLT5cbiAgICAgICAgICAgIDxhcHAtYXNzZXNzbWVudC1saXN0LXN1Yi1sb2FkZXJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YS5hc3Nlc3NtZW50RGF0YT8ubGVuZ3RoXCJcbiAgICAgICAgICAgID48L2FwcC1hc3Nlc3NtZW50LWxpc3Qtc3ViLWxvYWRlcj5cbiAgICAgICAgICAgIDwhLS0gPGFwcC1saW5lLWxvYWRlciAqbmdJZj1cIiFkYXRhLmFzc2Vzc21lbnREYXRhPy5sZW5ndGhcIiBbbG9hZGVySGVpZ2h0XT1cIic1J1wiPjwvYXBwLWxpbmUtbG9hZGVyPiAtLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwhLS0gTG9hZGVyIGxvYWRpbmcgaXNMb2FkZXIgIC0tPlxuICAgICAgPGFwcC1hc3Nlc3NtZW50LWxpc3QtbG9hZGVyICpuZ0lmPVwiaXNMb2FkZXJcIj48L2FwcC1hc3Nlc3NtZW50LWxpc3QtbG9hZGVyPlxuICAgIDwvZGl2PlxuICAgIDwhLS0gTm8gZGF0YSBpbWFnZSAgLS0+XG4gICAgPGFwcC1uby1kYXRhXG4gICAgICAqbmdJZj1cIiFhc3Nlc3NtZW50Q2F0ZWdvcnkuZGF0YS5sZW5ndGggJiYgIWlzTG9hZGVyICYmICFzZWFyY2hBc3Nlc3NtZW50c1wiXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCJcbiAgICAgIFtub0RhdGFUZXh0XT1cIidObyBEYXRhIHRvIERpc3BsYXknXCJcbiAgICA+PC9hcHAtbm8tZGF0YT5cblxuICAgIDxhcHAtZmxvYXRpbmctYmFyXG4gICAgICBbc2VsZWN0ZWREYXRhXT1cIltdXCJcbiAgICAgIChjbG9zZUV2ZW50KT1cInNhdmUoKVwiXG4gICAgICAoY2xvc2VMaXN0KT1cImNsb3NlKClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZCAmJiAhaXNEZWxldGVkXCJcbiAgICAgIFtzZWxlY3RlZERhdGFdPVwiXG4gICAgICAgIHNlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudF9pZFxuICAgICAgICAgID8gW3NlbGVjdGVkQXNzZXNzbWVudD8uYXNzZXNzbWVudERldGFpbHNdXG4gICAgICAgICAgOiBbXVxuICAgICAgXCJcbiAgICAgIFtkaXNwbGF5RWxlbWVudEtleV09XCInYXNzZXNzbWVudF9uYW1lJ1wiXG4gICAgICBbcGx1cmFsVGV4dF09XCInUmlzayBDYXRlZ29yaWVzIHNlbGVjdGVkJ1wiXG4gICAgICAoY2xvc2VFdmVudCk9XCJzYXZlKClcIlxuICAgICAgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUV2ZW50KCRldmVudClcIlxuICAgID5cbiAgICA8L2FwcC1mbG9hdGluZy1iYXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|