vcomply-workflow-engine 6.1.48 → 6.1.49
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 +3 -3
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +59 -26
- package/esm2022/lib/workflow-services/responsibility.service.mjs +2 -2
- package/fesm2022/vcomply-workflow-engine.mjs +461 -429
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +10 -1
- package/package.json +1 -1
|
@@ -9,28 +9,29 @@ import * as i4 from "../workflow-services/common-workflow-services/organization-
|
|
|
9
9
|
import * as i5 from "../report-a-case/services/report-a-case.service";
|
|
10
10
|
import * as i6 from "../services/report-case-permission.service";
|
|
11
11
|
import * as i7 from "../services/iframe.service";
|
|
12
|
-
import * as i8 from "
|
|
13
|
-
import * as i9 from "
|
|
14
|
-
import * as i10 from "../
|
|
15
|
-
import * as i11 from "../ui-kit/
|
|
16
|
-
import * as i12 from "../
|
|
17
|
-
import * as i13 from "../
|
|
18
|
-
import * as i14 from "../workflow-
|
|
19
|
-
import * as i15 from "../workflow-
|
|
20
|
-
import * as i16 from "../workflow-
|
|
21
|
-
import * as i17 from "../
|
|
22
|
-
import * as i18 from "../
|
|
23
|
-
import * as i19 from "../
|
|
24
|
-
import * as i20 from "../
|
|
25
|
-
import * as i21 from "../
|
|
26
|
-
import * as i22 from "../
|
|
27
|
-
import * as i23 from "../workflow-assessment/
|
|
28
|
-
import * as i24 from "../
|
|
29
|
-
import * as i25 from "../
|
|
30
|
-
import * as i26 from "../
|
|
31
|
-
import * as i27 from "../
|
|
12
|
+
import * as i8 from "../workflow-services/responsibility.service";
|
|
13
|
+
import * as i9 from "@angular/common";
|
|
14
|
+
import * as i10 from "../formgroup/cs-radio/cs-radio.component";
|
|
15
|
+
import * as i11 from "../ui-kit/tooltip/tooltip.directive";
|
|
16
|
+
import * as i12 from "../ui-kit/snack-bar/snack-bar.component";
|
|
17
|
+
import * as i13 from "../workflow/grc-object/grc-object-container/grc-object-container.component";
|
|
18
|
+
import * as i14 from "../report-a-case/workflow-case/workflow-case.component";
|
|
19
|
+
import * as i15 from "../workflow-risk/workflow-risk.component";
|
|
20
|
+
import * as i16 from "../workflow-compliance/workflow-compliance.component";
|
|
21
|
+
import * as i17 from "../workflow-policy/workflow-policy.component";
|
|
22
|
+
import * as i18 from "../more-option/more-option.component";
|
|
23
|
+
import * as i19 from "../add-multiple-risk/add-multiple-risk.component";
|
|
24
|
+
import * as i20 from "../confirmation-alert/confirmation-alert.component";
|
|
25
|
+
import * as i21 from "../workflow-survey-form/workflow-survey-form.component";
|
|
26
|
+
import * as i22 from "../log-an-issue/log-an-issue.component";
|
|
27
|
+
import * as i23 from "../workflow-assessment/workflow-assessment.component";
|
|
28
|
+
import * as i24 from "../workflow-assessment/import-an-assessment/import-an-assessment.component";
|
|
29
|
+
import * as i25 from "../sharedComponents/assessment-list/assessment-list.component";
|
|
30
|
+
import * as i26 from "../workflow-program/workflow-program.component";
|
|
31
|
+
import * as i27 from "../add-multiple-responsibility-container/add-multiple-responsibility-container.component";
|
|
32
|
+
import * as i28 from "../pipes/user.pipe";
|
|
32
33
|
export class WorkflowEngineContainerComponent {
|
|
33
|
-
constructor(uiKitService, snackBar, auth, orgCommonService, reportACaseService, reportCasePermissionService, iframeService) {
|
|
34
|
+
constructor(uiKitService, snackBar, auth, orgCommonService, reportACaseService, reportCasePermissionService, iframeService, responsibilityService) {
|
|
34
35
|
this.uiKitService = uiKitService;
|
|
35
36
|
this.snackBar = snackBar;
|
|
36
37
|
this.auth = auth;
|
|
@@ -38,6 +39,7 @@ export class WorkflowEngineContainerComponent {
|
|
|
38
39
|
this.reportACaseService = reportACaseService;
|
|
39
40
|
this.reportCasePermissionService = reportCasePermissionService;
|
|
40
41
|
this.iframeService = iframeService;
|
|
42
|
+
this.responsibilityService = responsibilityService;
|
|
41
43
|
this.isHostRefreshActive = true;
|
|
42
44
|
this.isRCSelected = false;
|
|
43
45
|
this.featureFlag_groups = false;
|
|
@@ -247,6 +249,7 @@ export class WorkflowEngineContainerComponent {
|
|
|
247
249
|
this.featureFlag_groups = this.feature.isFeatureEnabled('ff_responsibility_groups');
|
|
248
250
|
this.caseFeatureFlag = this.feature.isFeatureEnabled('ff_cases_enabled');
|
|
249
251
|
this.isResponsibilitySimplify();
|
|
252
|
+
this.getAssessmentDetails();
|
|
250
253
|
}
|
|
251
254
|
ngOnDestroy() {
|
|
252
255
|
this.permissionSubscription.unsubscribe();
|
|
@@ -702,13 +705,43 @@ export class WorkflowEngineContainerComponent {
|
|
|
702
705
|
this.workflowTypeList[1].workflowName = 'Add Multiple Responsibilities';
|
|
703
706
|
}
|
|
704
707
|
}
|
|
705
|
-
|
|
706
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: WorkflowEngineContainerComponent, selector: "app-vcomply-workflow-engine-container", inputs: { workflowType: "workflowType", mode: "mode", id: "id", openedFrom: "openedFrom", source: "source", allowedWorkflows: "allowedWorkflows", frameworkDetails: "frameworkDetails", selectedRC: "selectedRC", secondaryOpenPortal: "secondaryOpenPortal", defaultRiskType: "defaultRiskType", moveToRegisterMode: "moveToRegisterMode", workflowDetails: "workflowDetails", reponsibilityData: "reponsibilityData", assessmentQuestion: "assessmentQuestion", pid: "pid", programType: "programType", issueData: "issueData", entrustButtonName: "entrustButtonName", config: "config", convertFileData: "convertFileData", selectedCategory: "selectedCategory", selectedProgram: "selectedProgram", canFrameworkChange: "canFrameworkChange", addToProgramDetails: "addToProgramDetails", grcType: "grcType", isSendForAttestation: "isSendForAttestation", assessmentDetails: "assessmentDetails", templateId: "templateId", feature: "feature" }, outputs: { closeWorkflow: "closeWorkflow" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)", "window:resize": "sizeChange($event)" } }, viewQueries: [{ propertyName: "riskComponent", first: true, predicate: ["risk"], descendants: true }, { propertyName: "riskBulkUpload", first: true, predicate: ["multipleRisk"], descendants: true }, { propertyName: "responsibilityBulkUpload", first: true, predicate: ["multipleResponsibility"], descendants: true }, { propertyName: "compliance", first: true, predicate: ["responsibility"], descendants: true }, { propertyName: "moreOption", first: true, predicate: ["moreOption"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownRow", first: true, predicate: ["dropdownRow"], descendants: true }, { propertyName: "policy", first: true, predicate: ["policy"], descendants: true }, { propertyName: "logIssueComponent", first: true, predicate: ["logAnIssue"], descendants: true }, { propertyName: "workflowAssessmentComponent", first: true, predicate: ["assessment"], descendants: true }, { propertyName: "importAnAssessment", first: true, predicate: ["importAssessment"], descendants: true }, { propertyName: "program", first: true, predicate: ["program"], descendants: true }, { propertyName: "grcObject", first: true, predicate: ["grcObject"], descendants: true }, { propertyName: "reportCase", first: true, predicate: ["reportCase"], descendants: true }], ngImport: i0, template: "<app-snack-bar></app-snack-bar>\n<div class=\"workflow-engine-overlay\"></div>\n\n<app-assessment-list\n *ngIf=\"workflowType === 'ASSESSMENT'\"\n (cancelAssessment)=\"closeWorkflowEngine()\"\n [isEdit]=\"true\"\n [isFullScreen]=\"true\"\n [selectedAssessment]=\"workflowDetails?.assessment\"\n (onAssessmentSelect)=\"closeWorkflowEngine({ evt: $event, confirm: false })\"\n></app-assessment-list>\n<div\n *ngIf=\"workflowType !== 'ASSESSMENT'\"\n class=\"workflow-engine\"\n [class.animate]=\"animation\"\n [class.bg]=\"\n (!isWorkflowSelectorEnabled || riskBulkUpload?.showCategoryList) &&\n !policy?.showCreateDocuments\n \"\n>\n <div\n class=\"workflow-engine-container\"\n [ngSwitch]=\"currentWorkflow?.code\"\n [class.with-preview-assessment]=\"(auth?.previewPanel | async) === true\"\n [class.with-frequency]=\"\n compliance?.activeSelector === 'frequency' ||\n compliance?.activeSelector === 'reviewerFrequency' ||\n riskComponent?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'reviewerFrequency'\n \"\n >\n <button\n (click)=\"closeWorkflowEngine()\"\n id=\"close-workflow-engine-btn\"\n class=\"close\"\n [appTooltip]=\"'[Esc] to close'\"\n placement=\"left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n [class.disabled]=\"\n confirmationAlertConfig?.isVisible || !isWorkflowSelectorEnabled\n \"\n [class.smiley-opened]=\"\n riskComponent?.showSmiley ||\n logIssueComponent?.showSmiley ||\n compliance?.showSmiley ||\n policy?.showCreateDocuments ||\n responsibilityBulkUpload?.showSmiley ||\n responsibilityBulkUpload?.showExcel ||\n riskBulkUpload?.showSmiley ||\n riskBulkUpload?.showExcel ||\n program?.showSmiley ||\n importAnAssessment?.showSmiley\n \"\n >\n <i class=\"icons\"></i>\n </button>\n <div\n *ngIf=\"!uiKitService.isSmileyOn\"\n class=\"workflow-engine-more\"\n [hidden]=\"showMoreOption === false || policy?.showCreateDocuments\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\"\n [class.read-only]=\"uiKitService?.isLoader\"\n >\n <app-more-option\n #moreOption\n [currentWorkflow]=\"currentWorkflow?.code\"\n [isEditMode]=\"mode === 'EDIT'\"\n [isRCSelected]=\"\n isRCSelected ||\n (currentWorkflow?.code === 'GRC' &&\n grcObject?.listObject.RC.selectedData?.length > 0)\n \"\n [openedFrom]=\"openedFrom\"\n (selectedOption)=\"addMoreInfo($event)\"\n [isProgramSelected]=\"selectedProgram\"\n [allowedFeature]=\"feature\"\n [orgDetailsData]=\"orgDetails\"\n [isAttributesAvailable]=\"\n currentWorkflow?.code === 'GRC' &&\n grcObject?.selectedAttributes?.attributes?.length > 0\n \"\n >\n </app-more-option>\n </div>\n <div\n class=\"workflow-engine-form\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\"\n [class.no-shadow]=\"\n currentWorkflow?.code == 'AMR' ||\n currentWorkflow?.code == 'CMR' ||\n currentWorkflow?.code == 'AAA' ||\n uiKitService.isSmileyOn ||\n policy?.showCreateDocuments\n \"\n >\n <div class=\"container\" (scroll)=\"scrollForm()\">\n <ng-container\n *ngIf=\"\n !['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n openedFrom\n )\n \"\n >\n <div\n *ngIf=\"!(uiKitService.isSmileyOn || policy?.showCreateDocuments)\"\n class=\"form-group-row\"\n #dropdownRow\n [class.disabled]=\"\n (mode === 'EDIT' ||\n !isWorkflowSelectorEnabled ||\n disableWorkflowChange ||\n selectedProgram) &&\n currentWorkflow?.code !== 'ACTW'\n \"\n >\n <div class=\"left\" [class.checked]=\"currentWorkflow\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <div class=\"right\">\n <div class=\"vx-form-group\" #dropdown>\n <label\n *ngIf=\"currentWorkflow?.code !== 'ACTW'\"\n class=\"vx-control-panel\"\n >Select a Workflow<span class=\"required\">*</span></label\n >\n <label\n *ngIf=\"currentWorkflow?.code === 'ACTW'\"\n class=\"vx-control-panel\"\n >Assign a Case to Workflow<span class=\"required\"\n >*</span\n ></label\n >\n <div\n class=\"select\"\n *ngIf=\"!currentWorkflow && currentWorkflow?.code !== 'ACTW'\"\n (click)=\"editWorkflow()\"\n >\n <input type=\"text\" placeholder=\"Select a Workflow\" readonly />\n </div>\n <div class=\"selected first-field\" *ngIf=\"currentWorkflow\">\n <!-- {{currentWorkflow | json}} -->\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt no-width\"\n [appTooltip]=\"currentWorkflow?.workflowName\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n [innerHTML]=\"\n workflowType === 'ACTW'\n ? '<strong>Case Reported By: </strong>' +\n (reportBy | userPipe : userList)?.member_name\n : currentWorkflow?.workflowName\n \"\n >\n </span>\n </div>\n <!-- <div class=\"chip-container\">\n <span class=\"chip\" [class.disabled]=\"false\">{{currentWorkflow?.workflowName}}</span>\n </div> -->\n <button\n class=\"edit\"\n type=\"button\"\n (click)=\"editWorkflow()\"\n *ngIf=\"\n !workflowList &&\n openedFrom != 'ASSESSMENT' &&\n currentWorkflow?.code !== 'ACTW'\n \"\n >\n <i class=\"icons\"></i> Edit\n </button>\n </div>\n <div\n *ngIf=\"\n currentWorkflow?.code === 'CAPR' &&\n currentBusinessCycle &&\n !programSimplifyFlag\n \"\n class=\"program-business-cycle vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-pt-2 vx-pb-1 vx-pl-2 vx-pr-1\"\n >\n <i class=\"icons vx-fs-12 vx-mr-1\"></i> This program is\n being set-up for the business cycle:\n <span class=\"vx-fw-600 vx-ml-1\">{{\n currentBusinessCycle\n }}</span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- <app-create-documents></app-create-documents> -->\n <!-- <app-bulk-view></app-bulk-view> -->\n <!-- <app-bulk-responsibility-view></app-bulk-responsibility-view> -->\n <app-workflow-compliance\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n [orgDetails]=\"orgDetails\"\n [isEntrust]=\"entrustButtonName.toLowerCase() == 'entrust'\"\n [responsibilityId]=\"id\"\n [mode]=\"mode\"\n [frameworkDetails]=\"frameworkDetails\"\n [assessmentDetails]=\"assessmentDetails\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CAR'\"\n #responsibility\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n [selectedRC]=\"selectedRC\"\n [closeOnEsc]=\"closeOnEsc\"\n (assigneeTypeChange)=\"assigneeTypeChange($event)\"\n (onReviewerTypeChange)=\"onReviewerChange($event)\"\n [feature]=\"feature\"\n [openedFrom]=\"openedFrom\"\n (rcSelected)=\"onRcSelected($event)\"\n (resetForm)=\"onResetForm()\"\n (onRemovingCheckpoint)=\"onRemovingCheckpoint($event, false, true)\"\n (isAssessmentDisabled)=\"isAssessmentDisabled($event)\"\n (checkpointCountUpdated)=\"checkpointCount = $event\"\n [selectedProgram]=\"selectedProgram\"\n [responsibilityDetails]=\"workflowDetails\"\n ></app-workflow-compliance>\n <app-workflow-risk\n [secondaryOpenPortal]=\"secondaryOpenPortal\"\n [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AAR'\"\n #risk\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n (rcSelected)=\"onRcSelected($event)\"\n [mode]=\"mode\"\n [riskId]=\"id\"\n [feature]=\"feature\"\n ></app-workflow-risk>\n <app-workflow-policy\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'CAP'\"\n #policy\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (shiftToEditMode)=\"shiftToEditMode()\"\n [feature]=\"feature\"\n [policyId]=\"id\"\n [mode]=\"mode\"\n [templateId]=\"templateId\"\n [convertFileData]=\"convertFileData\"\n [selectedCategory]=\"selectedCategory\"\n [isSendForAttestation]=\"isSendForAttestation\"\n (populateOption)=\"populateMoreOption($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-policy>\n <app-workflow-survey-form\n *ngSwitchCase=\"'CAS'\"\n #surveyForm\n ></app-workflow-survey-form>\n <app-add-multiple-risk\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AMR'\"\n #multipleRisk\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n [feature]=\"feature\"\n ></app-add-multiple-risk>\n <!-- <app-add-multiple-responsibility (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CMR'\" #multipleResponsibility>\n </app-add-multiple-responsibility> -->\n\n <lib-add-multiple-responsibility-container\n [orgDetails]=\"orgDetails\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CMR'\"\n [feature]=\"feature\"\n #multipleResponsibility\n ></lib-add-multiple-responsibility-container>\n <!-- New Log an Issue -->\n <app-log-an-issue\n [issueDetails]=\"issueData\"\n *ngSwitchCase=\"'LAI'\"\n [reponsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [issueId]=\"id\"\n #logAnIssue\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n [(mode)]=\"mode\"\n >\n </app-log-an-issue>\n <!-- Old Log an issue -->\n <!-- <app-log-an-issue *ngSwitchCase=\"'LAI'\" [responsibilitiesData]=\"reponsibiltyData\" [openedFrom]=\"openedFrom\"\n #logAnIssue (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\">\n </app-log-an-issue> -->\n\n <app-workflow-assessment\n [assessmentId]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n [mode]=\"mode\"\n #assessment\n ></app-workflow-assessment>\n <app-import-an-assessment\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'IAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n #importAssessment\n ></app-import-an-assessment>\n <!-- <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"></app-workflow-program> -->\n <app-workflow-program\n #program\n *ngSwitchCase=\"'CAPR'\"\n [orgDetails]=\"orgDetails\"\n [allowedFeature]=\"feature\"\n (disableElementsFromMoreOptions)=\"disableMoreOptions('CAPR', $event)\"\n [programType]=\"programType\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n [mode]=\"mode\"\n [programId]=\"id\"\n [programDetails]=\"workflowDetails\"\n (onRemovingRole)=\"onRemovingRole($event)\"\n [canFrameworkChange]=\"canFrameworkChange\"\n [addToProgramDetails]=\"addToProgramDetails\"\n ></app-workflow-program>\n\n <!-- GRC Object -->\n <lib-grc-object-container\n #grcObject\n *ngSwitchCase=\"'GRC'\"\n [grcType]=\"grcType\"\n [MODE]=\"mode\"\n [ID]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (resetForm)=\"onResetGRCForm()\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n ></lib-grc-object-container>\n\n <!-- Report a Case -->\n <app-workflow-case\n *ngSwitchCase=\"'RAC'\"\n #reportCase\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [caseId]=\"id\"\n [mode]=\"mode\"\n [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\"\n [workflowType]=\"'RAC'\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-case>\n <!-- Assign case to workflow -->\n <app-workflow-case\n *ngSwitchCase=\"'ACTW'\"\n #reportCase\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [caseId]=\"id\"\n [mode]=\"mode\"\n [workflowType]=\"'ACTW'\"\n [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (populateOption)=\"populateMoreOption($event)\"\n (caseReportedBy)=\"caseReportedBy($event)\"\n (userListEmitter)=\"userListEmitter($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-case>\n </div>\n <div\n *ngIf=\"['RAC', 'ACTW'].includes(currentWorkflow?.code)\"\n class=\"vx-d-flex\"\n >\n <button\n class=\"cancel\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"closeWorkflowEngine()\"\n >\n CANCEL\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n >\n {{\n mode === \"EDIT\" && currentWorkflow?.code === \"RAC\"\n ? \"Update\"\n : \"Report\"\n }}\n </button>\n </div>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'AAR'\"\n (click)=\"submit()\"\n >\n {{\n mode === \"EDIT\" && openedFrom !== \"MOVE_TO_REGISTER\"\n ? \"Update\"\n : \"Add\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"\n !isWorkflowSelectorEnabled ||\n !riskBulkUpload?.category?.selectedCategory\n \"\n (click)=\"bulkUploadBrowse('AMR')\"\n *ngSwitchCase=\"'AMR'\"\n >\n Browse\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"bulkUploadBrowse('CMR')\"\n *ngSwitchCase=\"'CMR'\"\n >\n Browse\n </button>\n\n <!-- This has ternary operation to handle the both scenarios of how it works with compliance and program module, please don't change this. -->\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n *ngSwitchCase=\"'CAR'\"\n >\n {{\n entrustButtonName !== \"\" && mode !== \"EDIT\"\n ? entrustButtonName\n : mode === \"EDIT\" && !workflowDetails?.duplicate\n ? \"UPDATE\"\n : \"Entrust\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n *ngSwitchCase=\"'CAP'\"\n >\n {{\n mode == \"EDIT\"\n ? isSendForAttestation\n ? \"Send for attestation\"\n : \"Update\"\n : \"Continue to draft\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'CAS'\"\n >\n Continue to draft\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'LAI'\"\n (click)=\"submit()\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Add\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'AAA'\"\n (click)=\"submit()\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Continue to draft\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"bulkUploadBrowse('IAA')\"\n *ngSwitchCase=\"'IAA'\"\n >\n Browse\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\"\n (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\"\n (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" (click)=\"submit()\" *ngSwitchCase=\"'GRC'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <div\n class=\"dropdown\"\n *ngIf=\"workflowList\"\n (click)=\"closeWorkflowList()\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n >\n <ul class=\"dropdown-list\">\n <li\n *ngFor=\"let workflow of workflowTypeList\"\n (click)=\"changeWorkflow($event, workflow)\"\n >\n <app-cs-radio\n *ngIf=\"workflow?.code !== 'ACTW'\"\n [value]=\"workflow?.code\"\n [checked]=\"currentWorkflow?.code === workflow?.code\"\n >\n {{ workflow?.workflowName }}</app-cs-radio\n >\n </li>\n </ul>\n </div>\n <div\n class=\"dropdown-overlay\"\n *ngIf=\"workflowList\"\n (click)=\"closeWorkflowList()\"\n ></div>\n </div>\n <app-confirmation-alert\n id=\"confirmation-dialogue\"\n (action)=\"confirmWorkflowChange($event)\"\n *ngIf=\"confirmationAlertConfig?.isVisible\"\n [message]=\"confirmationAlertConfig?.message\"\n [config]=\"confirmationAlertConfig\"\n ></app-confirmation-alert>\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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";.dropdown-overlay{position:fixed;inset:0;z-index:2}.workflow-engine{background:#161b2fcc;position:fixed;inset:0;z-index:10}.workflow-engine button.close{position:absolute;background:transparent;cursor:pointer;border:none;font-size:16px;color:#000;top:8px;right:7px;z-index:12;display:flex;align-items:center;justify-content:center;border-radius:2px;padding:8px}.workflow-engine button.close.bulk-opened,.workflow-engine button.close.smiley-opened{z-index:10}.workflow-engine button.close:hover{background:#f1f1f1}.workflow-engine button.close.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-container{position:fixed;top:0;right:0;bottom:0;background:#fff;display:flex;z-index:10;border-top:3px solid #1E5DD3}.workflow-engine-container:before{content:\"\";height:30px;position:absolute;top:0;right:0;width:499px;z-index:11;background:linear-gradient(to bottom,#fff,#ffffffbf 66%,#ffffff6b 81%,#fff0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#00ffffff\",GradientType=0)}@media screen and (max-width: 1280px){.workflow-engine-container.with-frequency:before{display:none}.workflow-engine-container.with-frequency button.close{display:none}.workflow-engine-container.with-frequency .workflow-engine-form{right:-470px}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-risk .workflw-risk{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-policy .workflow-policy{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}}.workflow-engine-container.with-preview-assessment:before{display:none}.workflow-engine-container.with-preview-assessment button.close{display:none}.workflow-engine-container.with-preview-assessment .workflow-engine-form{right:-470px}.workflow-engine-container.with-preview-assessment .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-preview-assessment .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-more{width:318px;padding:36px 22px 36px 40px;height:100vh;overflow:auto;margin-left:-18px;scrollbar-width:none}@media screen and (max-height: 900px){.workflow-engine-more{padding:20px 22px 36px 40px}}.workflow-engine-more::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}.workflow-engine-more::-webkit-scrollbar{width:1px;height:1px;background-color:transparent;position:absolute}.workflow-engine-more::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb;position:absolute}.workflow-engine-more.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-more.read-only{pointer-events:none}.workflow-engine-form{width:500px;position:relative}.workflow-engine-form .container{height:calc(100vh - 53px);padding:35px 24px 8px 62px;overflow:hidden;overflow-y:auto;margin-left:-22px;scrollbar-width:thin}.workflow-engine-form .container.disabled{pointer-events:none}.workflow-engine-form:before{content:\"\";top:0;bottom:-50px;left:0;width:1px;background:#f1f1f1;position:absolute}.workflow-engine-form button.submit{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0}.workflow-engine-form button.submit:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.submit.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form button.cancel{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#1e5dd3;background:#fff;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0;border:none;border-top:1px solid #F1F1F1;border-left:1px solid #F1F1F1;cursor:pointer}.workflow-engine-form button.cancel:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.cancel.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-form label.browse{padding:0;margin:0;display:block;position:sticky;bottom:0}.workflow-engine-form label.browse span{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%}.workflow-engine-form label.browse input{position:absolute;width:100%;height:100%;z-index:1;inset:0;opacity:0;cursor:pointer}.workflow-engine-form .file-browsed{display:flex;align-items:center;background:#fff;border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1}.workflow-engine-form .file-browsed span{display:block;width:calc(100% - 164px);color:#161b2f;font-size:13px;font-weight:400;line-height:20px;padding:0 16px}.workflow-engine-form .file-browsed button{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:164px;bottom:0}.workflow-engine-form:after{content:\"\";height:30px;position:absolute;right:0;bottom:50px;z-index:10;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}.workflow-engine-form.no-shadow:after{display:none}.workflow-engine.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}.workflow-engine.bg{background:#fff}.program-business-cycle{background:#f2bf19;border-radius:0 0 .25rem .25rem;position:relative;top:-.25rem;z-index:1}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n", "@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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.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 .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i8.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i9.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i10.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i11.SnackBarComponent, selector: "app-snack-bar" }, { kind: "component", type: i12.GrcObjectContainerComponent, selector: "lib-grc-object-container", inputs: ["grcType", "MODE", "ID"], outputs: ["populateOption", "pickerChanged", "closeWorkflow", "disconnectRefresh", "resetForm", "hideElementsFromMoreOptions"] }, { kind: "component", type: i13.WorkflowCaseComponent, selector: "app-workflow-case", inputs: ["openedFrom", "source", "caseId", "mode", "workflowType", "responsibilityData", "assessmentQuestion", "caseTypePermission"], outputs: ["closeWorkflow", "populateOption", "caseReportedBy", "userListEmitter", "disconnectRefresh", "pickerChanged"] }, { kind: "component", type: i14.WorkflowRiskComponent, selector: "app-workflow-risk", inputs: ["feature", "mode", "riskId", "defaultRiskType", "moveToRegisterMode", "secondaryOpenPortal", "openedFrom"], outputs: ["showConfirmationAlert", "pickerChanged", "populateOption", "closeWorkflow", "disconnectRefresh", "refreshForm", "hideElementsFromMoreOptions", "rcSelected"] }, { kind: "component", type: i15.WorkflowComplianceComponent, selector: "app-workflow-compliance", inputs: ["mode", "responsibilityId", "frameworkDetails", "isEntrust", "feature", "assessmentDetails", "isDuplicate", "closeOnEsc", "orgDetails", "openedFrom", "selectedRC", "selectedProgram", "responsibilityDetails"], outputs: ["pickerChanged", "populateOption", "hideElementsFromMoreOptions", "closeWorkflow", "resetForm", "disconnectRefresh", "checkpointCountUpdated", "rcSelected", "onRemovingCheckpoint", "isAssessmentDisabled", "assigneeTypeChange", "onReviewerTypeChange"] }, { kind: "component", type: i16.WorkflowPolicyComponent, selector: "app-workflow-policy", inputs: ["mode", "policyId", "feature", "convertFileData", "selectedCategory", "isSendForAttestation", "templateId"], outputs: ["pickerChanged", "showConfirmationAlert", "populateOption", "disconnectRefresh", "shiftToEditMode"] }, { kind: "component", type: i17.MoreOptionComponent, selector: "app-more-option", inputs: ["currentWorkflow", "openedFrom", "isEditMode", "isRCSelected", "isProgramSelected", "allowedFeature", "orgDetailsData", "isAttributesAvailable"], outputs: ["selectedOption"] }, { kind: "component", type: i18.AddMultipleRiskComponent, selector: "app-add-multiple-risk", inputs: ["feature"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "disconnectRefresh"] }, { kind: "component", type: i19.ConfirmationAlertComponent, selector: "app-confirmation-alert", inputs: ["message", "config"], outputs: ["action"] }, { kind: "component", type: i20.WorkflowSurveyFormComponent, selector: "app-workflow-survey-form" }, { kind: "component", type: i21.LogAnIssueComponent, selector: "app-log-an-issue", inputs: ["openedFrom", "source", "issueId", "reponsibilityData", "assessmentQuestion", "issueDetails", "mode", "config", "responsibilitiesData"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "modeChange", "disconnectRefresh"] }, { kind: "component", type: i22.WorkflowAssessmentComponent, selector: "app-workflow-assessment", inputs: ["mode", "assessmentId", "openedFrom"], outputs: ["disconnectRefresh", "pickerChanged", "closeWorkflow"] }, { kind: "component", type: i23.ImportAnAssessmentComponent, selector: "app-import-an-assessment", outputs: ["closeWorkflow", "disconnectRefresh"] }, { kind: "component", type: i24.AssessmentListComponent, selector: "app-assessment-list", inputs: ["isEdit", "mode", "selectedAssessment", "selectedAssessmentData", "program_ids", "isFullScreen"], outputs: ["onAssessmentSelect", "cancelAssessment"] }, { kind: "component", type: i25.WorkflowProgramComponent, selector: "app-workflow-program", inputs: ["canFrameworkChange", "mode", "programId", "programType", "allowedFeature", "addToProgramDetails", "orgDetails", "programDetails"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "showConfirmationAlert", "disconnectRefresh", "refreshForm", "hideElementsFromMoreOptions", "onRemovingRole", "disableElementsFromMoreOptions"] }, { kind: "component", type: i26.AddMultipleResponsibilityContainerComponent, selector: "lib-add-multiple-responsibility-container", inputs: ["feature", "orgDetails"], outputs: ["closeWorkflow"] }, { kind: "pipe", type: i8.AsyncPipe, name: "async" }, { kind: "pipe", type: i27.UserPipe, name: "userPipe" }] }); }
|
|
708
|
+
// TODO: Populate assessment data from already selected data
|
|
709
|
+
/**
|
|
710
|
+
*
|
|
711
|
+
* @param assessmentDetails : selected assessment details like it's object id and category_id
|
|
712
|
+
*/
|
|
713
|
+
getAssessmentDetails() {
|
|
714
|
+
const id = this.workflowDetails?.assessment?.assessment_id;
|
|
715
|
+
if (id && this.workflowType === 'ASSESSMENT') {
|
|
716
|
+
this.responsibilityService
|
|
717
|
+
.getAssessmentDetailsByID(id)
|
|
718
|
+
.subscribe((res) => {
|
|
719
|
+
console.log(res, "res");
|
|
720
|
+
this.setAssessmentData(res);
|
|
721
|
+
});
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
setAssessmentData(res) {
|
|
725
|
+
const categoryDetails = res[0].category[0];
|
|
726
|
+
const assessmentData = {
|
|
727
|
+
category_id: res[0].category[0]._id,
|
|
728
|
+
assessment_id: res[0].assessment_id,
|
|
729
|
+
assessmentDetails: {
|
|
730
|
+
id: res[0].assessment_id,
|
|
731
|
+
assessment_name: res[0].assessment_name,
|
|
732
|
+
questions: res[0].questionsCount,
|
|
733
|
+
},
|
|
734
|
+
category_details: categoryDetails,
|
|
735
|
+
};
|
|
736
|
+
this.selectedAssessment = assessmentData;
|
|
737
|
+
}
|
|
738
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WorkflowEngineContainerComponent, deps: [{ token: i1.UiKitService }, { token: i2.SnackBarService }, { token: i3.AuthService }, { token: i4.OrganizationCommonService }, { token: i5.ReportACaseService }, { token: i6.ReportCasePermissionService }, { token: i7.IframeService }, { token: i8.ResponsibilityService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
739
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: WorkflowEngineContainerComponent, selector: "app-vcomply-workflow-engine-container", inputs: { workflowType: "workflowType", mode: "mode", id: "id", openedFrom: "openedFrom", source: "source", allowedWorkflows: "allowedWorkflows", frameworkDetails: "frameworkDetails", selectedRC: "selectedRC", secondaryOpenPortal: "secondaryOpenPortal", defaultRiskType: "defaultRiskType", moveToRegisterMode: "moveToRegisterMode", workflowDetails: "workflowDetails", reponsibilityData: "reponsibilityData", assessmentQuestion: "assessmentQuestion", pid: "pid", programType: "programType", issueData: "issueData", entrustButtonName: "entrustButtonName", config: "config", convertFileData: "convertFileData", selectedCategory: "selectedCategory", selectedProgram: "selectedProgram", canFrameworkChange: "canFrameworkChange", addToProgramDetails: "addToProgramDetails", grcType: "grcType", isSendForAttestation: "isSendForAttestation", assessmentDetails: "assessmentDetails", templateId: "templateId", feature: "feature" }, outputs: { closeWorkflow: "closeWorkflow" }, host: { listeners: { "document:keydown.escape": "onKeydownHandler($event)", "window:resize": "sizeChange($event)" } }, viewQueries: [{ propertyName: "riskComponent", first: true, predicate: ["risk"], descendants: true }, { propertyName: "riskBulkUpload", first: true, predicate: ["multipleRisk"], descendants: true }, { propertyName: "responsibilityBulkUpload", first: true, predicate: ["multipleResponsibility"], descendants: true }, { propertyName: "compliance", first: true, predicate: ["responsibility"], descendants: true }, { propertyName: "moreOption", first: true, predicate: ["moreOption"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "dropdownRow", first: true, predicate: ["dropdownRow"], descendants: true }, { propertyName: "policy", first: true, predicate: ["policy"], descendants: true }, { propertyName: "logIssueComponent", first: true, predicate: ["logAnIssue"], descendants: true }, { propertyName: "workflowAssessmentComponent", first: true, predicate: ["assessment"], descendants: true }, { propertyName: "importAnAssessment", first: true, predicate: ["importAssessment"], descendants: true }, { propertyName: "program", first: true, predicate: ["program"], descendants: true }, { propertyName: "grcObject", first: true, predicate: ["grcObject"], descendants: true }, { propertyName: "reportCase", first: true, predicate: ["reportCase"], descendants: true }], ngImport: i0, template: "<app-snack-bar></app-snack-bar>\n<div class=\"workflow-engine-overlay\"></div>\n\n<app-assessment-list *ngIf=\"workflowType === 'ASSESSMENT'\" (cancelAssessment)=\"closeWorkflowEngine()\" [isEdit]=\"true\"\n [isFullScreen]=\"true\" [selectedAssessment]=\"selectedAssessment\"\n (onAssessmentSelect)=\"closeWorkflowEngine({ evt: $event, confirm: false })\"></app-assessment-list>\n<div *ngIf=\"workflowType !== 'ASSESSMENT'\" class=\"workflow-engine\" [class.animate]=\"animation\" [class.bg]=\"\n (!isWorkflowSelectorEnabled || riskBulkUpload?.showCategoryList) &&\n !policy?.showCreateDocuments\n \">\n <div class=\"workflow-engine-container\" [ngSwitch]=\"currentWorkflow?.code\"\n [class.with-preview-assessment]=\"(auth?.previewPanel | async) === true\" [class.with-frequency]=\"\n compliance?.activeSelector === 'frequency' ||\n compliance?.activeSelector === 'reviewerFrequency' ||\n riskComponent?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'reviewerFrequency'\n \">\n <button (click)=\"closeWorkflowEngine()\" id=\"close-workflow-engine-btn\" class=\"close\" [appTooltip]=\"'[Esc] to close'\"\n placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"\n confirmationAlertConfig?.isVisible || !isWorkflowSelectorEnabled\n \" [class.smiley-opened]=\"\n riskComponent?.showSmiley ||\n logIssueComponent?.showSmiley ||\n compliance?.showSmiley ||\n policy?.showCreateDocuments ||\n responsibilityBulkUpload?.showSmiley ||\n responsibilityBulkUpload?.showExcel ||\n riskBulkUpload?.showSmiley ||\n riskBulkUpload?.showExcel ||\n program?.showSmiley ||\n importAnAssessment?.showSmiley\n \">\n <i class=\"icons\"></i>\n </button>\n <div *ngIf=\"!uiKitService.isSmileyOn\" class=\"workflow-engine-more\"\n [hidden]=\"showMoreOption === false || policy?.showCreateDocuments\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.read-only]=\"uiKitService?.isLoader\">\n <app-more-option #moreOption [currentWorkflow]=\"currentWorkflow?.code\" [isEditMode]=\"mode === 'EDIT'\"\n [isRCSelected]=\"\n isRCSelected ||\n (currentWorkflow?.code === 'GRC' &&\n grcObject?.listObject.RC.selectedData?.length > 0)\n \" [openedFrom]=\"openedFrom\" (selectedOption)=\"addMoreInfo($event)\" [isProgramSelected]=\"selectedProgram\"\n [allowedFeature]=\"feature\" [orgDetailsData]=\"orgDetails\" [isAttributesAvailable]=\"\n currentWorkflow?.code === 'GRC' &&\n grcObject?.selectedAttributes?.attributes?.length > 0\n \">\n </app-more-option>\n </div>\n <div class=\"workflow-engine-form\" [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.no-shadow]=\"\n currentWorkflow?.code == 'AMR' ||\n currentWorkflow?.code == 'CMR' ||\n currentWorkflow?.code == 'AAA' ||\n uiKitService.isSmileyOn ||\n policy?.showCreateDocuments\n \">\n <div class=\"container\" (scroll)=\"scrollForm()\">\n <ng-container *ngIf=\"\n !['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n openedFrom\n )\n \">\n <div *ngIf=\"!(uiKitService.isSmileyOn || policy?.showCreateDocuments)\" class=\"form-group-row\" #dropdownRow\n [class.disabled]=\"\n (mode === 'EDIT' ||\n !isWorkflowSelectorEnabled ||\n disableWorkflowChange ||\n selectedProgram) &&\n currentWorkflow?.code !== 'ACTW'\n \">\n <div class=\"left\" [class.checked]=\"currentWorkflow\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n <div class=\"right\">\n <div class=\"vx-form-group\" #dropdown>\n <label *ngIf=\"currentWorkflow?.code !== 'ACTW'\" class=\"vx-control-panel\">Select a Workflow<span\n class=\"required\">*</span></label>\n <label *ngIf=\"currentWorkflow?.code === 'ACTW'\" class=\"vx-control-panel\">Assign a Case to Workflow<span\n class=\"required\">*</span></label>\n <div class=\"select\" *ngIf=\"!currentWorkflow && currentWorkflow?.code !== 'ACTW'\"\n (click)=\"editWorkflow()\">\n <input type=\"text\" placeholder=\"Select a Workflow\" readonly />\n </div>\n <div class=\"selected first-field\" *ngIf=\"currentWorkflow\">\n <!-- {{currentWorkflow | json}} -->\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\">\n <span class=\"chipName vx-fs-11 vx-label-txt no-width\" [appTooltip]=\"currentWorkflow?.workflowName\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [innerHTML]=\"\n workflowType === 'ACTW'\n ? '<strong>Case Reported By: </strong>' +\n (reportBy | userPipe : userList)?.member_name\n : currentWorkflow?.workflowName\n \">\n </span>\n </div>\n <!-- <div class=\"chip-container\">\n <span class=\"chip\" [class.disabled]=\"false\">{{currentWorkflow?.workflowName}}</span>\n </div> -->\n <button class=\"edit\" type=\"button\" (click)=\"editWorkflow()\" *ngIf=\"\n !workflowList &&\n openedFrom != 'ASSESSMENT' &&\n currentWorkflow?.code !== 'ACTW'\n \">\n <i class=\"icons\"></i> Edit\n </button>\n </div>\n <div *ngIf=\"\n currentWorkflow?.code === 'CAPR' &&\n currentBusinessCycle &&\n !programSimplifyFlag\n \"\n class=\"program-business-cycle vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-pt-2 vx-pb-1 vx-pl-2 vx-pr-1\">\n <i class=\"icons vx-fs-12 vx-mr-1\"></i> This program is\n being set-up for the business cycle:\n <span class=\"vx-fw-600 vx-ml-1\">{{\n currentBusinessCycle\n }}</span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- <app-create-documents></app-create-documents> -->\n <!-- <app-bulk-view></app-bulk-view> -->\n <!-- <app-bulk-responsibility-view></app-bulk-responsibility-view> -->\n <app-workflow-compliance (disconnectRefresh)=\"isHostRefreshActive = $event\" [orgDetails]=\"orgDetails\"\n [isEntrust]=\"entrustButtonName.toLowerCase() == 'entrust'\" [responsibilityId]=\"id\" [mode]=\"mode\"\n [frameworkDetails]=\"frameworkDetails\" [assessmentDetails]=\"assessmentDetails\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CAR'\" #responsibility\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\" [selectedRC]=\"selectedRC\"\n [closeOnEsc]=\"closeOnEsc\" (assigneeTypeChange)=\"assigneeTypeChange($event)\"\n (onReviewerTypeChange)=\"onReviewerChange($event)\" [feature]=\"feature\" [openedFrom]=\"openedFrom\"\n (rcSelected)=\"onRcSelected($event)\" (resetForm)=\"onResetForm()\"\n (onRemovingCheckpoint)=\"onRemovingCheckpoint($event, false, true)\"\n (isAssessmentDisabled)=\"isAssessmentDisabled($event)\" (checkpointCountUpdated)=\"checkpointCount = $event\"\n [selectedProgram]=\"selectedProgram\" [responsibilityDetails]=\"workflowDetails\"></app-workflow-compliance>\n <app-workflow-risk [secondaryOpenPortal]=\"secondaryOpenPortal\" [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAR'\" #risk\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\" (refreshForm)=\"onResetForm()\"\n (rcSelected)=\"onRcSelected($event)\" [mode]=\"mode\" [riskId]=\"id\" [feature]=\"feature\"></app-workflow-risk>\n <app-workflow-policy (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'CAP'\" #policy\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (shiftToEditMode)=\"shiftToEditMode()\"\n [feature]=\"feature\" [policyId]=\"id\" [mode]=\"mode\" [templateId]=\"templateId\"\n [convertFileData]=\"convertFileData\" [selectedCategory]=\"selectedCategory\"\n [isSendForAttestation]=\"isSendForAttestation\" (populateOption)=\"populateMoreOption($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-policy>\n <app-workflow-survey-form *ngSwitchCase=\"'CAS'\" #surveyForm></app-workflow-survey-form>\n <app-add-multiple-risk (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AMR'\" #multipleRisk\n (pickerChanged)=\"decideViewMoreOption($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n [feature]=\"feature\"></app-add-multiple-risk>\n <!-- <app-add-multiple-responsibility (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CMR'\" #multipleResponsibility>\n </app-add-multiple-responsibility> -->\n\n <lib-add-multiple-responsibility-container [orgDetails]=\"orgDetails\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CMR'\" [feature]=\"feature\" #multipleResponsibility></lib-add-multiple-responsibility-container>\n <!-- New Log an Issue -->\n <app-log-an-issue [issueDetails]=\"issueData\" *ngSwitchCase=\"'LAI'\" [reponsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\" [openedFrom]=\"openedFrom\" [source]=\"source\" [issueId]=\"id\"\n #logAnIssue (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\" [(mode)]=\"mode\">\n </app-log-an-issue>\n <!-- Old Log an issue -->\n <!-- <app-log-an-issue *ngSwitchCase=\"'LAI'\" [responsibilitiesData]=\"reponsibiltyData\" [openedFrom]=\"openedFrom\"\n #logAnIssue (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\">\n </app-log-an-issue> -->\n\n <app-workflow-assessment [assessmentId]=\"id\" (pickerChanged)=\"decideViewMoreOption($event)\"\n [openedFrom]=\"openedFrom\" (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" [mode]=\"mode\" #assessment></app-workflow-assessment>\n <app-import-an-assessment (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'IAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" #importAssessment></app-import-an-assessment>\n <!-- <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"></app-workflow-program> -->\n <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" [orgDetails]=\"orgDetails\" [allowedFeature]=\"feature\"\n (disableElementsFromMoreOptions)=\"disableMoreOptions('CAPR', $event)\" [programType]=\"programType\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" [mode]=\"mode\" [programId]=\"id\" [programDetails]=\"workflowDetails\"\n (onRemovingRole)=\"onRemovingRole($event)\" [canFrameworkChange]=\"canFrameworkChange\"\n [addToProgramDetails]=\"addToProgramDetails\"></app-workflow-program>\n\n <!-- GRC Object -->\n <lib-grc-object-container #grcObject *ngSwitchCase=\"'GRC'\" [grcType]=\"grcType\" [MODE]=\"mode\" [ID]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" (resetForm)=\"onResetGRCForm()\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"></lib-grc-object-container>\n\n <!-- Report a Case -->\n <app-workflow-case *ngSwitchCase=\"'RAC'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n [mode]=\"mode\" [responsibilityData]=\"reponsibilityData\" [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\" [workflowType]=\"'RAC'\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n <!-- Assign case to workflow -->\n <app-workflow-case *ngSwitchCase=\"'ACTW'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n [mode]=\"mode\" [workflowType]=\"'ACTW'\" [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\" [caseTypePermission]=\"caseTypePermission\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n (caseReportedBy)=\"caseReportedBy($event)\" (userListEmitter)=\"userListEmitter($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n </div>\n <div *ngIf=\"['RAC', 'ACTW'].includes(currentWorkflow?.code)\" class=\"vx-d-flex\">\n <button class=\"cancel\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"closeWorkflowEngine()\">\n CANCEL\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\">\n {{\n mode === \"EDIT\" && currentWorkflow?.code === \"RAC\"\n ? \"Update\"\n : \"Report\"\n }}\n </button>\n </div>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAR'\" (click)=\"submit()\">\n {{\n mode === \"EDIT\" && openedFrom !== \"MOVE_TO_REGISTER\"\n ? \"Update\"\n : \"Add\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"\n !isWorkflowSelectorEnabled ||\n !riskBulkUpload?.category?.selectedCategory\n \" (click)=\"bulkUploadBrowse('AMR')\" *ngSwitchCase=\"'AMR'\">\n Browse\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('CMR')\"\n *ngSwitchCase=\"'CMR'\">\n Browse\n </button>\n\n <!-- This has ternary operation to handle the both scenarios of how it works with compliance and program module, please don't change this. -->\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAR'\">\n {{\n entrustButtonName !== \"\" && mode !== \"EDIT\"\n ? entrustButtonName\n : mode === \"EDIT\" && !workflowDetails?.duplicate\n ? \"UPDATE\"\n : \"Entrust\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAP'\">\n {{\n mode == \"EDIT\"\n ? isSendForAttestation\n ? \"Send for attestation\"\n : \"Update\"\n : \"Continue to draft\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'CAS'\">\n Continue to draft\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'LAI'\" (click)=\"submit()\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Add\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAA'\" (click)=\"submit()\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Continue to draft\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('IAA')\"\n *ngSwitchCase=\"'IAA'\">\n Browse\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" (click)=\"submit()\" *ngSwitchCase=\"'GRC'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <div class=\"dropdown\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\" [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\" [style.width.px]=\"dropdownWidth\">\n <ul class=\"dropdown-list\">\n <li *ngFor=\"let workflow of workflowTypeList\" (click)=\"changeWorkflow($event, workflow)\">\n <app-cs-radio *ngIf=\"workflow?.code !== 'ACTW'\" [value]=\"workflow?.code\"\n [checked]=\"currentWorkflow?.code === workflow?.code\">\n {{ workflow?.workflowName }}</app-cs-radio>\n </li>\n </ul>\n </div>\n <div class=\"dropdown-overlay\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\"></div>\n </div>\n <app-confirmation-alert id=\"confirmation-dialogue\" (action)=\"confirmWorkflowChange($event)\"\n *ngIf=\"confirmationAlertConfig?.isVisible\" [message]=\"confirmationAlertConfig?.message\"\n [config]=\"confirmationAlertConfig\"></app-confirmation-alert>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";.dropdown-overlay{position:fixed;inset:0;z-index:2}.workflow-engine{background:#161b2fcc;position:fixed;inset:0;z-index:10}.workflow-engine button.close{position:absolute;background:transparent;cursor:pointer;border:none;font-size:16px;color:#000;top:8px;right:7px;z-index:12;display:flex;align-items:center;justify-content:center;border-radius:2px;padding:8px}.workflow-engine button.close.bulk-opened,.workflow-engine button.close.smiley-opened{z-index:10}.workflow-engine button.close:hover{background:#f1f1f1}.workflow-engine button.close.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-container{position:fixed;top:0;right:0;bottom:0;background:#fff;display:flex;z-index:10;border-top:3px solid #1E5DD3}.workflow-engine-container:before{content:\"\";height:30px;position:absolute;top:0;right:0;width:499px;z-index:11;background:linear-gradient(to bottom,#fff,#ffffffbf 66%,#ffffff6b 81%,#fff0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#00ffffff\",GradientType=0)}@media screen and (max-width: 1280px){.workflow-engine-container.with-frequency:before{display:none}.workflow-engine-container.with-frequency button.close{display:none}.workflow-engine-container.with-frequency .workflow-engine-form{right:-470px}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-risk .workflw-risk{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-policy .workflow-policy{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}}.workflow-engine-container.with-preview-assessment:before{display:none}.workflow-engine-container.with-preview-assessment button.close{display:none}.workflow-engine-container.with-preview-assessment .workflow-engine-form{right:-470px}.workflow-engine-container.with-preview-assessment .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-preview-assessment .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-more{width:318px;padding:36px 22px 36px 40px;height:100vh;overflow:auto;margin-left:-18px;scrollbar-width:none}@media screen and (max-height: 900px){.workflow-engine-more{padding:20px 22px 36px 40px}}.workflow-engine-more::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}.workflow-engine-more::-webkit-scrollbar{width:1px;height:1px;background-color:transparent;position:absolute}.workflow-engine-more::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb;position:absolute}.workflow-engine-more.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-more.read-only{pointer-events:none}.workflow-engine-form{width:500px;position:relative}.workflow-engine-form .container{height:calc(100vh - 53px);padding:35px 24px 8px 62px;overflow:hidden;overflow-y:auto;margin-left:-22px;scrollbar-width:thin}.workflow-engine-form .container.disabled{pointer-events:none}.workflow-engine-form:before{content:\"\";top:0;bottom:-50px;left:0;width:1px;background:#f1f1f1;position:absolute}.workflow-engine-form button.submit{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0}.workflow-engine-form button.submit:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.submit.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form button.cancel{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#1e5dd3;background:#fff;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0;border:none;border-top:1px solid #F1F1F1;border-left:1px solid #F1F1F1;cursor:pointer}.workflow-engine-form button.cancel:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.cancel.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-form label.browse{padding:0;margin:0;display:block;position:sticky;bottom:0}.workflow-engine-form label.browse span{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%}.workflow-engine-form label.browse input{position:absolute;width:100%;height:100%;z-index:1;inset:0;opacity:0;cursor:pointer}.workflow-engine-form .file-browsed{display:flex;align-items:center;background:#fff;border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1}.workflow-engine-form .file-browsed span{display:block;width:calc(100% - 164px);color:#161b2f;font-size:13px;font-weight:400;line-height:20px;padding:0 16px}.workflow-engine-form .file-browsed button{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:164px;bottom:0}.workflow-engine-form:after{content:\"\";height:30px;position:absolute;right:0;bottom:50px;z-index:10;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}.workflow-engine-form.no-shadow:after{display:none}.workflow-engine.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}.workflow-engine.bg{background:#fff}.program-business-cycle{background:#f2bf19;border-radius:0 0 .25rem .25rem;position:relative;top:-.25rem;z-index:1}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n", "@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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.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 .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"], dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i10.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i11.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i12.SnackBarComponent, selector: "app-snack-bar" }, { kind: "component", type: i13.GrcObjectContainerComponent, selector: "lib-grc-object-container", inputs: ["grcType", "MODE", "ID"], outputs: ["populateOption", "pickerChanged", "closeWorkflow", "disconnectRefresh", "resetForm", "hideElementsFromMoreOptions"] }, { kind: "component", type: i14.WorkflowCaseComponent, selector: "app-workflow-case", inputs: ["openedFrom", "source", "caseId", "mode", "workflowType", "responsibilityData", "assessmentQuestion", "caseTypePermission"], outputs: ["closeWorkflow", "populateOption", "caseReportedBy", "userListEmitter", "disconnectRefresh", "pickerChanged"] }, { kind: "component", type: i15.WorkflowRiskComponent, selector: "app-workflow-risk", inputs: ["feature", "mode", "riskId", "defaultRiskType", "moveToRegisterMode", "secondaryOpenPortal", "openedFrom"], outputs: ["showConfirmationAlert", "pickerChanged", "populateOption", "closeWorkflow", "disconnectRefresh", "refreshForm", "hideElementsFromMoreOptions", "rcSelected"] }, { kind: "component", type: i16.WorkflowComplianceComponent, selector: "app-workflow-compliance", inputs: ["mode", "responsibilityId", "frameworkDetails", "isEntrust", "feature", "assessmentDetails", "isDuplicate", "closeOnEsc", "orgDetails", "openedFrom", "selectedRC", "selectedProgram", "responsibilityDetails"], outputs: ["pickerChanged", "populateOption", "hideElementsFromMoreOptions", "closeWorkflow", "resetForm", "disconnectRefresh", "checkpointCountUpdated", "rcSelected", "onRemovingCheckpoint", "isAssessmentDisabled", "assigneeTypeChange", "onReviewerTypeChange"] }, { kind: "component", type: i17.WorkflowPolicyComponent, selector: "app-workflow-policy", inputs: ["mode", "policyId", "feature", "convertFileData", "selectedCategory", "isSendForAttestation", "templateId"], outputs: ["pickerChanged", "showConfirmationAlert", "populateOption", "disconnectRefresh", "shiftToEditMode"] }, { kind: "component", type: i18.MoreOptionComponent, selector: "app-more-option", inputs: ["currentWorkflow", "openedFrom", "isEditMode", "isRCSelected", "isProgramSelected", "allowedFeature", "orgDetailsData", "isAttributesAvailable"], outputs: ["selectedOption"] }, { kind: "component", type: i19.AddMultipleRiskComponent, selector: "app-add-multiple-risk", inputs: ["feature"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "disconnectRefresh"] }, { kind: "component", type: i20.ConfirmationAlertComponent, selector: "app-confirmation-alert", inputs: ["message", "config"], outputs: ["action"] }, { kind: "component", type: i21.WorkflowSurveyFormComponent, selector: "app-workflow-survey-form" }, { kind: "component", type: i22.LogAnIssueComponent, selector: "app-log-an-issue", inputs: ["openedFrom", "source", "issueId", "reponsibilityData", "assessmentQuestion", "issueDetails", "mode", "config", "responsibilitiesData"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "modeChange", "disconnectRefresh"] }, { kind: "component", type: i23.WorkflowAssessmentComponent, selector: "app-workflow-assessment", inputs: ["mode", "assessmentId", "openedFrom"], outputs: ["disconnectRefresh", "pickerChanged", "closeWorkflow"] }, { kind: "component", type: i24.ImportAnAssessmentComponent, selector: "app-import-an-assessment", outputs: ["closeWorkflow", "disconnectRefresh"] }, { kind: "component", type: i25.AssessmentListComponent, selector: "app-assessment-list", inputs: ["isEdit", "mode", "selectedAssessment", "selectedAssessmentData", "program_ids", "isFullScreen"], outputs: ["onAssessmentSelect", "cancelAssessment"] }, { kind: "component", type: i26.WorkflowProgramComponent, selector: "app-workflow-program", inputs: ["canFrameworkChange", "mode", "programId", "programType", "allowedFeature", "addToProgramDetails", "orgDetails", "programDetails"], outputs: ["pickerChanged", "populateOption", "closeWorkflow", "showConfirmationAlert", "disconnectRefresh", "refreshForm", "hideElementsFromMoreOptions", "onRemovingRole", "disableElementsFromMoreOptions"] }, { kind: "component", type: i27.AddMultipleResponsibilityContainerComponent, selector: "lib-add-multiple-responsibility-container", inputs: ["feature", "orgDetails"], outputs: ["closeWorkflow"] }, { kind: "pipe", type: i9.AsyncPipe, name: "async" }, { kind: "pipe", type: i28.UserPipe, name: "userPipe" }] }); }
|
|
707
740
|
}
|
|
708
741
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: WorkflowEngineContainerComponent, decorators: [{
|
|
709
742
|
type: Component,
|
|
710
|
-
args: [{ selector: 'app-vcomply-workflow-engine-container', template: "<app-snack-bar></app-snack-bar>\n<div class=\"workflow-engine-overlay\"></div>\n\n<app-assessment-list\n *ngIf=\"workflowType === 'ASSESSMENT'\"\n (cancelAssessment)=\"closeWorkflowEngine()\"\n [isEdit]=\"true\"\n [isFullScreen]=\"true\"\n [selectedAssessment]=\"workflowDetails?.assessment\"\n (onAssessmentSelect)=\"closeWorkflowEngine({ evt: $event, confirm: false })\"\n></app-assessment-list>\n<div\n *ngIf=\"workflowType !== 'ASSESSMENT'\"\n class=\"workflow-engine\"\n [class.animate]=\"animation\"\n [class.bg]=\"\n (!isWorkflowSelectorEnabled || riskBulkUpload?.showCategoryList) &&\n !policy?.showCreateDocuments\n \"\n>\n <div\n class=\"workflow-engine-container\"\n [ngSwitch]=\"currentWorkflow?.code\"\n [class.with-preview-assessment]=\"(auth?.previewPanel | async) === true\"\n [class.with-frequency]=\"\n compliance?.activeSelector === 'frequency' ||\n compliance?.activeSelector === 'reviewerFrequency' ||\n riskComponent?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'reviewerFrequency'\n \"\n >\n <button\n (click)=\"closeWorkflowEngine()\"\n id=\"close-workflow-engine-btn\"\n class=\"close\"\n [appTooltip]=\"'[Esc] to close'\"\n placement=\"left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"true\"\n [class.disabled]=\"\n confirmationAlertConfig?.isVisible || !isWorkflowSelectorEnabled\n \"\n [class.smiley-opened]=\"\n riskComponent?.showSmiley ||\n logIssueComponent?.showSmiley ||\n compliance?.showSmiley ||\n policy?.showCreateDocuments ||\n responsibilityBulkUpload?.showSmiley ||\n responsibilityBulkUpload?.showExcel ||\n riskBulkUpload?.showSmiley ||\n riskBulkUpload?.showExcel ||\n program?.showSmiley ||\n importAnAssessment?.showSmiley\n \"\n >\n <i class=\"icons\"></i>\n </button>\n <div\n *ngIf=\"!uiKitService.isSmileyOn\"\n class=\"workflow-engine-more\"\n [hidden]=\"showMoreOption === false || policy?.showCreateDocuments\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\"\n [class.read-only]=\"uiKitService?.isLoader\"\n >\n <app-more-option\n #moreOption\n [currentWorkflow]=\"currentWorkflow?.code\"\n [isEditMode]=\"mode === 'EDIT'\"\n [isRCSelected]=\"\n isRCSelected ||\n (currentWorkflow?.code === 'GRC' &&\n grcObject?.listObject.RC.selectedData?.length > 0)\n \"\n [openedFrom]=\"openedFrom\"\n (selectedOption)=\"addMoreInfo($event)\"\n [isProgramSelected]=\"selectedProgram\"\n [allowedFeature]=\"feature\"\n [orgDetailsData]=\"orgDetails\"\n [isAttributesAvailable]=\"\n currentWorkflow?.code === 'GRC' &&\n grcObject?.selectedAttributes?.attributes?.length > 0\n \"\n >\n </app-more-option>\n </div>\n <div\n class=\"workflow-engine-form\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\"\n [class.no-shadow]=\"\n currentWorkflow?.code == 'AMR' ||\n currentWorkflow?.code == 'CMR' ||\n currentWorkflow?.code == 'AAA' ||\n uiKitService.isSmileyOn ||\n policy?.showCreateDocuments\n \"\n >\n <div class=\"container\" (scroll)=\"scrollForm()\">\n <ng-container\n *ngIf=\"\n !['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n openedFrom\n )\n \"\n >\n <div\n *ngIf=\"!(uiKitService.isSmileyOn || policy?.showCreateDocuments)\"\n class=\"form-group-row\"\n #dropdownRow\n [class.disabled]=\"\n (mode === 'EDIT' ||\n !isWorkflowSelectorEnabled ||\n disableWorkflowChange ||\n selectedProgram) &&\n currentWorkflow?.code !== 'ACTW'\n \"\n >\n <div class=\"left\" [class.checked]=\"currentWorkflow\">\n <svg\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n </div>\n <div class=\"right\">\n <div class=\"vx-form-group\" #dropdown>\n <label\n *ngIf=\"currentWorkflow?.code !== 'ACTW'\"\n class=\"vx-control-panel\"\n >Select a Workflow<span class=\"required\">*</span></label\n >\n <label\n *ngIf=\"currentWorkflow?.code === 'ACTW'\"\n class=\"vx-control-panel\"\n >Assign a Case to Workflow<span class=\"required\"\n >*</span\n ></label\n >\n <div\n class=\"select\"\n *ngIf=\"!currentWorkflow && currentWorkflow?.code !== 'ACTW'\"\n (click)=\"editWorkflow()\"\n >\n <input type=\"text\" placeholder=\"Select a Workflow\" readonly />\n </div>\n <div class=\"selected first-field\" *ngIf=\"currentWorkflow\">\n <!-- {{currentWorkflow | json}} -->\n <div\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\"\n >\n <span\n class=\"chipName vx-fs-11 vx-label-txt no-width\"\n [appTooltip]=\"currentWorkflow?.workflowName\"\n placement=\"bottom-left\"\n delay=\"0\"\n type=\"black\"\n [tooltipMandatory]=\"false\"\n [innerHTML]=\"\n workflowType === 'ACTW'\n ? '<strong>Case Reported By: </strong>' +\n (reportBy | userPipe : userList)?.member_name\n : currentWorkflow?.workflowName\n \"\n >\n </span>\n </div>\n <!-- <div class=\"chip-container\">\n <span class=\"chip\" [class.disabled]=\"false\">{{currentWorkflow?.workflowName}}</span>\n </div> -->\n <button\n class=\"edit\"\n type=\"button\"\n (click)=\"editWorkflow()\"\n *ngIf=\"\n !workflowList &&\n openedFrom != 'ASSESSMENT' &&\n currentWorkflow?.code !== 'ACTW'\n \"\n >\n <i class=\"icons\"></i> Edit\n </button>\n </div>\n <div\n *ngIf=\"\n currentWorkflow?.code === 'CAPR' &&\n currentBusinessCycle &&\n !programSimplifyFlag\n \"\n class=\"program-business-cycle vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-pt-2 vx-pb-1 vx-pl-2 vx-pr-1\"\n >\n <i class=\"icons vx-fs-12 vx-mr-1\"></i> This program is\n being set-up for the business cycle:\n <span class=\"vx-fw-600 vx-ml-1\">{{\n currentBusinessCycle\n }}</span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- <app-create-documents></app-create-documents> -->\n <!-- <app-bulk-view></app-bulk-view> -->\n <!-- <app-bulk-responsibility-view></app-bulk-responsibility-view> -->\n <app-workflow-compliance\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n [orgDetails]=\"orgDetails\"\n [isEntrust]=\"entrustButtonName.toLowerCase() == 'entrust'\"\n [responsibilityId]=\"id\"\n [mode]=\"mode\"\n [frameworkDetails]=\"frameworkDetails\"\n [assessmentDetails]=\"assessmentDetails\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CAR'\"\n #responsibility\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n [selectedRC]=\"selectedRC\"\n [closeOnEsc]=\"closeOnEsc\"\n (assigneeTypeChange)=\"assigneeTypeChange($event)\"\n (onReviewerTypeChange)=\"onReviewerChange($event)\"\n [feature]=\"feature\"\n [openedFrom]=\"openedFrom\"\n (rcSelected)=\"onRcSelected($event)\"\n (resetForm)=\"onResetForm()\"\n (onRemovingCheckpoint)=\"onRemovingCheckpoint($event, false, true)\"\n (isAssessmentDisabled)=\"isAssessmentDisabled($event)\"\n (checkpointCountUpdated)=\"checkpointCount = $event\"\n [selectedProgram]=\"selectedProgram\"\n [responsibilityDetails]=\"workflowDetails\"\n ></app-workflow-compliance>\n <app-workflow-risk\n [secondaryOpenPortal]=\"secondaryOpenPortal\"\n [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AAR'\"\n #risk\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n (rcSelected)=\"onRcSelected($event)\"\n [mode]=\"mode\"\n [riskId]=\"id\"\n [feature]=\"feature\"\n ></app-workflow-risk>\n <app-workflow-policy\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'CAP'\"\n #policy\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (shiftToEditMode)=\"shiftToEditMode()\"\n [feature]=\"feature\"\n [policyId]=\"id\"\n [mode]=\"mode\"\n [templateId]=\"templateId\"\n [convertFileData]=\"convertFileData\"\n [selectedCategory]=\"selectedCategory\"\n [isSendForAttestation]=\"isSendForAttestation\"\n (populateOption)=\"populateMoreOption($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-policy>\n <app-workflow-survey-form\n *ngSwitchCase=\"'CAS'\"\n #surveyForm\n ></app-workflow-survey-form>\n <app-add-multiple-risk\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AMR'\"\n #multipleRisk\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n [feature]=\"feature\"\n ></app-add-multiple-risk>\n <!-- <app-add-multiple-responsibility (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CMR'\" #multipleResponsibility>\n </app-add-multiple-responsibility> -->\n\n <lib-add-multiple-responsibility-container\n [orgDetails]=\"orgDetails\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CMR'\"\n [feature]=\"feature\"\n #multipleResponsibility\n ></lib-add-multiple-responsibility-container>\n <!-- New Log an Issue -->\n <app-log-an-issue\n [issueDetails]=\"issueData\"\n *ngSwitchCase=\"'LAI'\"\n [reponsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [issueId]=\"id\"\n #logAnIssue\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n [(mode)]=\"mode\"\n >\n </app-log-an-issue>\n <!-- Old Log an issue -->\n <!-- <app-log-an-issue *ngSwitchCase=\"'LAI'\" [responsibilitiesData]=\"reponsibiltyData\" [openedFrom]=\"openedFrom\"\n #logAnIssue (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\">\n </app-log-an-issue> -->\n\n <app-workflow-assessment\n [assessmentId]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'AAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n [mode]=\"mode\"\n #assessment\n ></app-workflow-assessment>\n <app-import-an-assessment\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n *ngSwitchCase=\"'IAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n #importAssessment\n ></app-import-an-assessment>\n <!-- <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"></app-workflow-program> -->\n <app-workflow-program\n #program\n *ngSwitchCase=\"'CAPR'\"\n [orgDetails]=\"orgDetails\"\n [allowedFeature]=\"feature\"\n (disableElementsFromMoreOptions)=\"disableMoreOptions('CAPR', $event)\"\n [programType]=\"programType\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\"\n [mode]=\"mode\"\n [programId]=\"id\"\n [programDetails]=\"workflowDetails\"\n (onRemovingRole)=\"onRemovingRole($event)\"\n [canFrameworkChange]=\"canFrameworkChange\"\n [addToProgramDetails]=\"addToProgramDetails\"\n ></app-workflow-program>\n\n <!-- GRC Object -->\n <lib-grc-object-container\n #grcObject\n *ngSwitchCase=\"'GRC'\"\n [grcType]=\"grcType\"\n [MODE]=\"mode\"\n [ID]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (resetForm)=\"onResetGRCForm()\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n ></lib-grc-object-container>\n\n <!-- Report a Case -->\n <app-workflow-case\n *ngSwitchCase=\"'RAC'\"\n #reportCase\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [caseId]=\"id\"\n [mode]=\"mode\"\n [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\"\n [workflowType]=\"'RAC'\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-case>\n <!-- Assign case to workflow -->\n <app-workflow-case\n *ngSwitchCase=\"'ACTW'\"\n #reportCase\n [openedFrom]=\"openedFrom\"\n [source]=\"source\"\n [caseId]=\"id\"\n [mode]=\"mode\"\n [workflowType]=\"'ACTW'\"\n [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (populateOption)=\"populateMoreOption($event)\"\n (caseReportedBy)=\"caseReportedBy($event)\"\n (userListEmitter)=\"userListEmitter($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"\n ></app-workflow-case>\n </div>\n <div\n *ngIf=\"['RAC', 'ACTW'].includes(currentWorkflow?.code)\"\n class=\"vx-d-flex\"\n >\n <button\n class=\"cancel\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"closeWorkflowEngine()\"\n >\n CANCEL\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n >\n {{\n mode === \"EDIT\" && currentWorkflow?.code === \"RAC\"\n ? \"Update\"\n : \"Report\"\n }}\n </button>\n </div>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'AAR'\"\n (click)=\"submit()\"\n >\n {{\n mode === \"EDIT\" && openedFrom !== \"MOVE_TO_REGISTER\"\n ? \"Update\"\n : \"Add\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"\n !isWorkflowSelectorEnabled ||\n !riskBulkUpload?.category?.selectedCategory\n \"\n (click)=\"bulkUploadBrowse('AMR')\"\n *ngSwitchCase=\"'AMR'\"\n >\n Browse\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"bulkUploadBrowse('CMR')\"\n *ngSwitchCase=\"'CMR'\"\n >\n Browse\n </button>\n\n <!-- This has ternary operation to handle the both scenarios of how it works with compliance and program module, please don't change this. -->\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n *ngSwitchCase=\"'CAR'\"\n >\n {{\n entrustButtonName !== \"\" && mode !== \"EDIT\"\n ? entrustButtonName\n : mode === \"EDIT\" && !workflowDetails?.duplicate\n ? \"UPDATE\"\n : \"Entrust\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"submit()\"\n *ngSwitchCase=\"'CAP'\"\n >\n {{\n mode == \"EDIT\"\n ? isSendForAttestation\n ? \"Send for attestation\"\n : \"Update\"\n : \"Continue to draft\"\n }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'CAS'\"\n >\n Continue to draft\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'LAI'\"\n (click)=\"submit()\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Add\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n *ngSwitchCase=\"'AAA'\"\n (click)=\"submit()\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Continue to draft\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled\"\n (click)=\"bulkUploadBrowse('IAA')\"\n *ngSwitchCase=\"'IAA'\"\n >\n Browse\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\"\n (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button\n class=\"submit\"\n [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\"\n (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\"\n >\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" (click)=\"submit()\" *ngSwitchCase=\"'GRC'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <div\n class=\"dropdown\"\n *ngIf=\"workflowList\"\n (click)=\"closeWorkflowList()\"\n [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\"\n [style.width.px]=\"dropdownWidth\"\n >\n <ul class=\"dropdown-list\">\n <li\n *ngFor=\"let workflow of workflowTypeList\"\n (click)=\"changeWorkflow($event, workflow)\"\n >\n <app-cs-radio\n *ngIf=\"workflow?.code !== 'ACTW'\"\n [value]=\"workflow?.code\"\n [checked]=\"currentWorkflow?.code === workflow?.code\"\n >\n {{ workflow?.workflowName }}</app-cs-radio\n >\n </li>\n </ul>\n </div>\n <div\n class=\"dropdown-overlay\"\n *ngIf=\"workflowList\"\n (click)=\"closeWorkflowList()\"\n ></div>\n </div>\n <app-confirmation-alert\n id=\"confirmation-dialogue\"\n (action)=\"confirmWorkflowChange($event)\"\n *ngIf=\"confirmationAlertConfig?.isVisible\"\n [message]=\"confirmationAlertConfig?.message\"\n [config]=\"confirmationAlertConfig\"\n ></app-confirmation-alert>\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/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";.dropdown-overlay{position:fixed;inset:0;z-index:2}.workflow-engine{background:#161b2fcc;position:fixed;inset:0;z-index:10}.workflow-engine button.close{position:absolute;background:transparent;cursor:pointer;border:none;font-size:16px;color:#000;top:8px;right:7px;z-index:12;display:flex;align-items:center;justify-content:center;border-radius:2px;padding:8px}.workflow-engine button.close.bulk-opened,.workflow-engine button.close.smiley-opened{z-index:10}.workflow-engine button.close:hover{background:#f1f1f1}.workflow-engine button.close.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-container{position:fixed;top:0;right:0;bottom:0;background:#fff;display:flex;z-index:10;border-top:3px solid #1E5DD3}.workflow-engine-container:before{content:\"\";height:30px;position:absolute;top:0;right:0;width:499px;z-index:11;background:linear-gradient(to bottom,#fff,#ffffffbf 66%,#ffffff6b 81%,#fff0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#00ffffff\",GradientType=0)}@media screen and (max-width: 1280px){.workflow-engine-container.with-frequency:before{display:none}.workflow-engine-container.with-frequency button.close{display:none}.workflow-engine-container.with-frequency .workflow-engine-form{right:-470px}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-risk .workflw-risk{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-policy .workflow-policy{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}}.workflow-engine-container.with-preview-assessment:before{display:none}.workflow-engine-container.with-preview-assessment button.close{display:none}.workflow-engine-container.with-preview-assessment .workflow-engine-form{right:-470px}.workflow-engine-container.with-preview-assessment .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-preview-assessment .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-more{width:318px;padding:36px 22px 36px 40px;height:100vh;overflow:auto;margin-left:-18px;scrollbar-width:none}@media screen and (max-height: 900px){.workflow-engine-more{padding:20px 22px 36px 40px}}.workflow-engine-more::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}.workflow-engine-more::-webkit-scrollbar{width:1px;height:1px;background-color:transparent;position:absolute}.workflow-engine-more::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb;position:absolute}.workflow-engine-more.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-more.read-only{pointer-events:none}.workflow-engine-form{width:500px;position:relative}.workflow-engine-form .container{height:calc(100vh - 53px);padding:35px 24px 8px 62px;overflow:hidden;overflow-y:auto;margin-left:-22px;scrollbar-width:thin}.workflow-engine-form .container.disabled{pointer-events:none}.workflow-engine-form:before{content:\"\";top:0;bottom:-50px;left:0;width:1px;background:#f1f1f1;position:absolute}.workflow-engine-form button.submit{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0}.workflow-engine-form button.submit:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.submit.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form button.cancel{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#1e5dd3;background:#fff;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0;border:none;border-top:1px solid #F1F1F1;border-left:1px solid #F1F1F1;cursor:pointer}.workflow-engine-form button.cancel:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.cancel.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-form label.browse{padding:0;margin:0;display:block;position:sticky;bottom:0}.workflow-engine-form label.browse span{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%}.workflow-engine-form label.browse input{position:absolute;width:100%;height:100%;z-index:1;inset:0;opacity:0;cursor:pointer}.workflow-engine-form .file-browsed{display:flex;align-items:center;background:#fff;border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1}.workflow-engine-form .file-browsed span{display:block;width:calc(100% - 164px);color:#161b2f;font-size:13px;font-weight:400;line-height:20px;padding:0 16px}.workflow-engine-form .file-browsed button{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:164px;bottom:0}.workflow-engine-form:after{content:\"\";height:30px;position:absolute;right:0;bottom:50px;z-index:10;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}.workflow-engine-form.no-shadow:after{display:none}.workflow-engine.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}.workflow-engine.bg{background:#fff}.program-business-cycle{background:#f2bf19;border-radius:0 0 .25rem .25rem;position:relative;top:-.25rem;z-index:1}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n", "@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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.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 .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
|
|
711
|
-
}], ctorParameters: function () { return [{ type: i1.UiKitService }, { type: i2.SnackBarService }, { type: i3.AuthService }, { type: i4.OrganizationCommonService }, { type: i5.ReportACaseService }, { type: i6.ReportCasePermissionService }, { type: i7.IframeService }]; }, propDecorators: { workflowType: [{
|
|
743
|
+
args: [{ selector: 'app-vcomply-workflow-engine-container', template: "<app-snack-bar></app-snack-bar>\n<div class=\"workflow-engine-overlay\"></div>\n\n<app-assessment-list *ngIf=\"workflowType === 'ASSESSMENT'\" (cancelAssessment)=\"closeWorkflowEngine()\" [isEdit]=\"true\"\n [isFullScreen]=\"true\" [selectedAssessment]=\"selectedAssessment\"\n (onAssessmentSelect)=\"closeWorkflowEngine({ evt: $event, confirm: false })\"></app-assessment-list>\n<div *ngIf=\"workflowType !== 'ASSESSMENT'\" class=\"workflow-engine\" [class.animate]=\"animation\" [class.bg]=\"\n (!isWorkflowSelectorEnabled || riskBulkUpload?.showCategoryList) &&\n !policy?.showCreateDocuments\n \">\n <div class=\"workflow-engine-container\" [ngSwitch]=\"currentWorkflow?.code\"\n [class.with-preview-assessment]=\"(auth?.previewPanel | async) === true\" [class.with-frequency]=\"\n compliance?.activeSelector === 'frequency' ||\n compliance?.activeSelector === 'reviewerFrequency' ||\n riskComponent?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'frequency' ||\n policy?.activeSelector === 'reviewerFrequency'\n \">\n <button (click)=\"closeWorkflowEngine()\" id=\"close-workflow-engine-btn\" class=\"close\" [appTooltip]=\"'[Esc] to close'\"\n placement=\"left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\" [class.disabled]=\"\n confirmationAlertConfig?.isVisible || !isWorkflowSelectorEnabled\n \" [class.smiley-opened]=\"\n riskComponent?.showSmiley ||\n logIssueComponent?.showSmiley ||\n compliance?.showSmiley ||\n policy?.showCreateDocuments ||\n responsibilityBulkUpload?.showSmiley ||\n responsibilityBulkUpload?.showExcel ||\n riskBulkUpload?.showSmiley ||\n riskBulkUpload?.showExcel ||\n program?.showSmiley ||\n importAnAssessment?.showSmiley\n \">\n <i class=\"icons\"></i>\n </button>\n <div *ngIf=\"!uiKitService.isSmileyOn\" class=\"workflow-engine-more\"\n [hidden]=\"showMoreOption === false || policy?.showCreateDocuments\"\n [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.read-only]=\"uiKitService?.isLoader\">\n <app-more-option #moreOption [currentWorkflow]=\"currentWorkflow?.code\" [isEditMode]=\"mode === 'EDIT'\"\n [isRCSelected]=\"\n isRCSelected ||\n (currentWorkflow?.code === 'GRC' &&\n grcObject?.listObject.RC.selectedData?.length > 0)\n \" [openedFrom]=\"openedFrom\" (selectedOption)=\"addMoreInfo($event)\" [isProgramSelected]=\"selectedProgram\"\n [allowedFeature]=\"feature\" [orgDetailsData]=\"orgDetails\" [isAttributesAvailable]=\"\n currentWorkflow?.code === 'GRC' &&\n grcObject?.selectedAttributes?.attributes?.length > 0\n \">\n </app-more-option>\n </div>\n <div class=\"workflow-engine-form\" [class.disabled]=\"confirmationAlertConfig?.isVisible\" [class.no-shadow]=\"\n currentWorkflow?.code == 'AMR' ||\n currentWorkflow?.code == 'CMR' ||\n currentWorkflow?.code == 'AAA' ||\n uiKitService.isSmileyOn ||\n policy?.showCreateDocuments\n \">\n <div class=\"container\" (scroll)=\"scrollForm()\">\n <ng-container *ngIf=\"\n !['VIEW_AUDIT_EXECUTION_SUMMARY', 'EXECUTE_AUDIT_PLAN'].includes(\n openedFrom\n )\n \">\n <div *ngIf=\"!(uiKitService.isSmileyOn || policy?.showCreateDocuments)\" class=\"form-group-row\" #dropdownRow\n [class.disabled]=\"\n (mode === 'EDIT' ||\n !isWorkflowSelectorEnabled ||\n disableWorkflowChange ||\n selectedProgram) &&\n currentWorkflow?.code !== 'ACTW'\n \">\n <div class=\"left\" [class.checked]=\"currentWorkflow\">\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\n </svg>\n </div>\n <div class=\"right\">\n <div class=\"vx-form-group\" #dropdown>\n <label *ngIf=\"currentWorkflow?.code !== 'ACTW'\" class=\"vx-control-panel\">Select a Workflow<span\n class=\"required\">*</span></label>\n <label *ngIf=\"currentWorkflow?.code === 'ACTW'\" class=\"vx-control-panel\">Assign a Case to Workflow<span\n class=\"required\">*</span></label>\n <div class=\"select\" *ngIf=\"!currentWorkflow && currentWorkflow?.code !== 'ACTW'\"\n (click)=\"editWorkflow()\">\n <input type=\"text\" placeholder=\"Select a Workflow\" readonly />\n </div>\n <div class=\"selected first-field\" *ngIf=\"currentWorkflow\">\n <!-- {{currentWorkflow | json}} -->\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2 vx-mr-2\">\n <span class=\"chipName vx-fs-11 vx-label-txt no-width\" [appTooltip]=\"currentWorkflow?.workflowName\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\" [innerHTML]=\"\n workflowType === 'ACTW'\n ? '<strong>Case Reported By: </strong>' +\n (reportBy | userPipe : userList)?.member_name\n : currentWorkflow?.workflowName\n \">\n </span>\n </div>\n <!-- <div class=\"chip-container\">\n <span class=\"chip\" [class.disabled]=\"false\">{{currentWorkflow?.workflowName}}</span>\n </div> -->\n <button class=\"edit\" type=\"button\" (click)=\"editWorkflow()\" *ngIf=\"\n !workflowList &&\n openedFrom != 'ASSESSMENT' &&\n currentWorkflow?.code !== 'ACTW'\n \">\n <i class=\"icons\"></i> Edit\n </button>\n </div>\n <div *ngIf=\"\n currentWorkflow?.code === 'CAPR' &&\n currentBusinessCycle &&\n !programSimplifyFlag\n \"\n class=\"program-business-cycle vx-fs-11 vx-txt-white vx-d-flex vx-align-center vx-pt-2 vx-pb-1 vx-pl-2 vx-pr-1\">\n <i class=\"icons vx-fs-12 vx-mr-1\"></i> This program is\n being set-up for the business cycle:\n <span class=\"vx-fw-600 vx-ml-1\">{{\n currentBusinessCycle\n }}</span>\n </div>\n </div>\n </div>\n </div>\n </ng-container>\n <!-- <app-create-documents></app-create-documents> -->\n <!-- <app-bulk-view></app-bulk-view> -->\n <!-- <app-bulk-responsibility-view></app-bulk-responsibility-view> -->\n <app-workflow-compliance (disconnectRefresh)=\"isHostRefreshActive = $event\" [orgDetails]=\"orgDetails\"\n [isEntrust]=\"entrustButtonName.toLowerCase() == 'entrust'\" [responsibilityId]=\"id\" [mode]=\"mode\"\n [frameworkDetails]=\"frameworkDetails\" [assessmentDetails]=\"assessmentDetails\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CAR'\" #responsibility\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\" [selectedRC]=\"selectedRC\"\n [closeOnEsc]=\"closeOnEsc\" (assigneeTypeChange)=\"assigneeTypeChange($event)\"\n (onReviewerTypeChange)=\"onReviewerChange($event)\" [feature]=\"feature\" [openedFrom]=\"openedFrom\"\n (rcSelected)=\"onRcSelected($event)\" (resetForm)=\"onResetForm()\"\n (onRemovingCheckpoint)=\"onRemovingCheckpoint($event, false, true)\"\n (isAssessmentDisabled)=\"isAssessmentDisabled($event)\" (checkpointCountUpdated)=\"checkpointCount = $event\"\n [selectedProgram]=\"selectedProgram\" [responsibilityDetails]=\"workflowDetails\"></app-workflow-compliance>\n <app-workflow-risk [secondaryOpenPortal]=\"secondaryOpenPortal\" [openedFrom]=\"openedFrom\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAR'\" #risk\n (showConfirmationAlert)=\"showConfirmationPopup($event)\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" (pickerChanged)=\"decideViewMoreOption($event)\"\n (populateOption)=\"populateMoreOption($event)\" (refreshForm)=\"onResetForm()\"\n (rcSelected)=\"onRcSelected($event)\" [mode]=\"mode\" [riskId]=\"id\" [feature]=\"feature\"></app-workflow-risk>\n <app-workflow-policy (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'CAP'\" #policy\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (shiftToEditMode)=\"shiftToEditMode()\"\n [feature]=\"feature\" [policyId]=\"id\" [mode]=\"mode\" [templateId]=\"templateId\"\n [convertFileData]=\"convertFileData\" [selectedCategory]=\"selectedCategory\"\n [isSendForAttestation]=\"isSendForAttestation\" (populateOption)=\"populateMoreOption($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-policy>\n <app-workflow-survey-form *ngSwitchCase=\"'CAS'\" #surveyForm></app-workflow-survey-form>\n <app-add-multiple-risk (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AMR'\" #multipleRisk\n (pickerChanged)=\"decideViewMoreOption($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n [feature]=\"feature\"></app-add-multiple-risk>\n <!-- <app-add-multiple-responsibility (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\" *ngSwitchCase=\"'CMR'\" #multipleResponsibility>\n </app-add-multiple-responsibility> -->\n\n <lib-add-multiple-responsibility-container [orgDetails]=\"orgDetails\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n *ngSwitchCase=\"'CMR'\" [feature]=\"feature\" #multipleResponsibility></lib-add-multiple-responsibility-container>\n <!-- New Log an Issue -->\n <app-log-an-issue [issueDetails]=\"issueData\" *ngSwitchCase=\"'LAI'\" [reponsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\" [openedFrom]=\"openedFrom\" [source]=\"source\" [issueId]=\"id\"\n #logAnIssue (disconnectRefresh)=\"isHostRefreshActive = $event\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\" [(mode)]=\"mode\">\n </app-log-an-issue>\n <!-- Old Log an issue -->\n <!-- <app-log-an-issue *ngSwitchCase=\"'LAI'\" [responsibilitiesData]=\"reponsibiltyData\" [openedFrom]=\"openedFrom\"\n #logAnIssue (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\">\n </app-log-an-issue> -->\n\n <app-workflow-assessment [assessmentId]=\"id\" (pickerChanged)=\"decideViewMoreOption($event)\"\n [openedFrom]=\"openedFrom\" (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'AAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" [mode]=\"mode\" #assessment></app-workflow-assessment>\n <app-import-an-assessment (pickerChanged)=\"decideViewMoreOption($event)\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" *ngSwitchCase=\"'IAA'\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" #importAssessment></app-import-an-assessment>\n <!-- <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"></app-workflow-program> -->\n <app-workflow-program #program *ngSwitchCase=\"'CAPR'\" [orgDetails]=\"orgDetails\" [allowedFeature]=\"feature\"\n (disableElementsFromMoreOptions)=\"disableMoreOptions('CAPR', $event)\" [programType]=\"programType\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (showConfirmationAlert)=\"showConfirmationPopup($event)\" (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (refreshForm)=\"onResetForm()\" [mode]=\"mode\" [programId]=\"id\" [programDetails]=\"workflowDetails\"\n (onRemovingRole)=\"onRemovingRole($event)\" [canFrameworkChange]=\"canFrameworkChange\"\n [addToProgramDetails]=\"addToProgramDetails\"></app-workflow-program>\n\n <!-- GRC Object -->\n <lib-grc-object-container #grcObject *ngSwitchCase=\"'GRC'\" [grcType]=\"grcType\" [MODE]=\"mode\" [ID]=\"id\"\n (pickerChanged)=\"decideViewMoreOption($event)\" (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\" (resetForm)=\"onResetGRCForm()\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\"\n (hideElementsFromMoreOptions)=\"hideElementsFromMoreOptions($event)\"></lib-grc-object-container>\n\n <!-- Report a Case -->\n <app-workflow-case *ngSwitchCase=\"'RAC'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n [mode]=\"mode\" [responsibilityData]=\"reponsibilityData\" [assessmentQuestion]=\"assessmentQuestion\"\n [caseTypePermission]=\"caseTypePermission\" [workflowType]=\"'RAC'\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n <!-- Assign case to workflow -->\n <app-workflow-case *ngSwitchCase=\"'ACTW'\" #reportCase [openedFrom]=\"openedFrom\" [source]=\"source\" [caseId]=\"id\"\n [mode]=\"mode\" [workflowType]=\"'ACTW'\" [responsibilityData]=\"reponsibilityData\"\n [assessmentQuestion]=\"assessmentQuestion\" [caseTypePermission]=\"caseTypePermission\"\n (disconnectRefresh)=\"isHostRefreshActive = $event\" (populateOption)=\"populateMoreOption($event)\"\n (caseReportedBy)=\"caseReportedBy($event)\" (userListEmitter)=\"userListEmitter($event)\"\n (closeWorkflow)=\"closeWorkflowEngine($event)\"\n (pickerChanged)=\"decideViewMoreOption($event)\"></app-workflow-case>\n </div>\n <div *ngIf=\"['RAC', 'ACTW'].includes(currentWorkflow?.code)\" class=\"vx-d-flex\">\n <button class=\"cancel\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"closeWorkflowEngine()\">\n CANCEL\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\">\n {{\n mode === \"EDIT\" && currentWorkflow?.code === \"RAC\"\n ? \"Update\"\n : \"Report\"\n }}\n </button>\n </div>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAR'\" (click)=\"submit()\">\n {{\n mode === \"EDIT\" && openedFrom !== \"MOVE_TO_REGISTER\"\n ? \"Update\"\n : \"Add\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"\n !isWorkflowSelectorEnabled ||\n !riskBulkUpload?.category?.selectedCategory\n \" (click)=\"bulkUploadBrowse('AMR')\" *ngSwitchCase=\"'AMR'\">\n Browse\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('CMR')\"\n *ngSwitchCase=\"'CMR'\">\n Browse\n </button>\n\n <!-- This has ternary operation to handle the both scenarios of how it works with compliance and program module, please don't change this. -->\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAR'\">\n {{\n entrustButtonName !== \"\" && mode !== \"EDIT\"\n ? entrustButtonName\n : mode === \"EDIT\" && !workflowDetails?.duplicate\n ? \"UPDATE\"\n : \"Entrust\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"submit()\" *ngSwitchCase=\"'CAP'\">\n {{\n mode == \"EDIT\"\n ? isSendForAttestation\n ? \"Send for attestation\"\n : \"Update\"\n : \"Continue to draft\"\n }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'CAS'\">\n Continue to draft\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'LAI'\" (click)=\"submit()\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Add\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" *ngSwitchCase=\"'AAA'\" (click)=\"submit()\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Continue to draft\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled\" (click)=\"bulkUploadBrowse('IAA')\"\n *ngSwitchCase=\"'IAA'\">\n Browse\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" [class.disabled]=\"!isWorkflowSelectorEnabled || !program?.valid\" (click)=\"submit('CAPR')\"\n *ngSwitchCase=\"'CAPR'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <button class=\"submit\" (click)=\"submit()\" *ngSwitchCase=\"'GRC'\">\n {{ mode === \"EDIT\" ? \"Update\" : \"Save\" }}\n </button>\n <div class=\"dropdown\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\" [style.top.px]=\"dropdownTop\"\n [style.left.px]=\"dropdownLeft\" [style.width.px]=\"dropdownWidth\">\n <ul class=\"dropdown-list\">\n <li *ngFor=\"let workflow of workflowTypeList\" (click)=\"changeWorkflow($event, workflow)\">\n <app-cs-radio *ngIf=\"workflow?.code !== 'ACTW'\" [value]=\"workflow?.code\"\n [checked]=\"currentWorkflow?.code === workflow?.code\">\n {{ workflow?.workflowName }}</app-cs-radio>\n </li>\n </ul>\n </div>\n <div class=\"dropdown-overlay\" *ngIf=\"workflowList\" (click)=\"closeWorkflowList()\"></div>\n </div>\n <app-confirmation-alert id=\"confirmation-dialogue\" (action)=\"confirmWorkflowChange($event)\"\n *ngIf=\"confirmationAlertConfig?.isVisible\" [message]=\"confirmationAlertConfig?.message\"\n [config]=\"confirmationAlertConfig\"></app-confirmation-alert>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";.dropdown-overlay{position:fixed;inset:0;z-index:2}.workflow-engine{background:#161b2fcc;position:fixed;inset:0;z-index:10}.workflow-engine button.close{position:absolute;background:transparent;cursor:pointer;border:none;font-size:16px;color:#000;top:8px;right:7px;z-index:12;display:flex;align-items:center;justify-content:center;border-radius:2px;padding:8px}.workflow-engine button.close.bulk-opened,.workflow-engine button.close.smiley-opened{z-index:10}.workflow-engine button.close:hover{background:#f1f1f1}.workflow-engine button.close.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-container{position:fixed;top:0;right:0;bottom:0;background:#fff;display:flex;z-index:10;border-top:3px solid #1E5DD3}.workflow-engine-container:before{content:\"\";height:30px;position:absolute;top:0;right:0;width:499px;z-index:11;background:linear-gradient(to bottom,#fff,#ffffffbf 66%,#ffffff6b 81%,#fff0);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#ffffff\",endColorstr=\"#00ffffff\",GradientType=0)}@media screen and (max-width: 1280px){.workflow-engine-container.with-frequency:before{display:none}.workflow-engine-container.with-frequency button.close{display:none}.workflow-engine-container.with-frequency .workflow-engine-form{right:-470px}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-risk .workflw-risk{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form .container ::ng-deep app-workflow-policy .workflow-policy{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-frequency .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}}.workflow-engine-container.with-preview-assessment:before{display:none}.workflow-engine-container.with-preview-assessment button.close{display:none}.workflow-engine-container.with-preview-assessment .workflow-engine-form{right:-470px}.workflow-engine-container.with-preview-assessment .workflow-engine-form .container ::ng-deep app-workflow-compliance .workflw-compliance{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-container.with-preview-assessment .workflow-engine-form button.submit{filter:grayscale(1)!important;pointer-events:none!important}.workflow-engine-more{width:318px;padding:36px 22px 36px 40px;height:100vh;overflow:auto;margin-left:-18px;scrollbar-width:none}@media screen and (max-height: 900px){.workflow-engine-more{padding:20px 22px 36px 40px}}.workflow-engine-more::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}.workflow-engine-more::-webkit-scrollbar{width:1px;height:1px;background-color:transparent;position:absolute}.workflow-engine-more::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb;position:absolute}.workflow-engine-more.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-more.read-only{pointer-events:none}.workflow-engine-form{width:500px;position:relative}.workflow-engine-form .container{height:calc(100vh - 53px);padding:35px 24px 8px 62px;overflow:hidden;overflow-y:auto;margin-left:-22px;scrollbar-width:thin}.workflow-engine-form .container.disabled{pointer-events:none}.workflow-engine-form:before{content:\"\";top:0;bottom:-50px;left:0;width:1px;background:#f1f1f1;position:absolute}.workflow-engine-form button.submit{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0}.workflow-engine-form button.submit:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.submit.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form button.cancel{position:sticky;height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:48px;letter-spacing:1.3px;color:#1e5dd3;background:#fff;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%;bottom:0;padding:0;border:none;border-top:1px solid #F1F1F1;border-left:1px solid #F1F1F1;cursor:pointer}.workflow-engine-form button.cancel:disabled{background:#f1f1f1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}.workflow-engine-form button.cancel.disabled{pointer-events:none;opacity:.3;filter:grayscale(1)}.workflow-engine-form.disabled{filter:grayscale(1);pointer-events:none}.workflow-engine-form label.browse{padding:0;margin:0;display:block;position:sticky;bottom:0}.workflow-engine-form label.browse span{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:100%}.workflow-engine-form label.browse input{position:absolute;width:100%;height:100%;z-index:1;inset:0;opacity:0;cursor:pointer}.workflow-engine-form .file-browsed{display:flex;align-items:center;background:#fff;border-top:1px solid #F1F1F1;border-bottom:1px solid #F1F1F1}.workflow-engine-form .file-browsed span{display:block;width:calc(100% - 164px);color:#161b2f;font-size:13px;font-weight:400;line-height:20px;padding:0 16px}.workflow-engine-form .file-browsed button{height:50px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:19px;letter-spacing:3.08px;color:#fff;background:#1e5dd3;cursor:pointer;border:1px solid #1e5dd3;outline:none;border-radius:0;text-transform:uppercase;font-weight:600;width:164px;bottom:0}.workflow-engine-form:after{content:\"\";height:30px;position:absolute;right:0;bottom:50px;z-index:10;background:linear-gradient(to bottom,#fff0,#ffffffbf 22%,#fff);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#00ffffff\",endColorstr=\"#ffffff\",GradientType=0)}.workflow-engine-form.no-shadow:after{display:none}.workflow-engine.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}.workflow-engine.bg{background:#fff}.program-business-cycle{background:#f2bf19;border-radius:0 0 .25rem .25rem;position:relative;top:-.25rem;z-index:1}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}\n", "@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\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .chipContainer button.countBtn.blueBg{background:#1e5dd3}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#fff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#fff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#fff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.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 .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#fff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group ::ng-deep vcomply-editor{margin-top:8px;display:block;pointer-events:auto!important;z-index:1}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group ::ng-deep vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group ::ng-deep vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#fff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item .info.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:212px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#fff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#fff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#fff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}::ng-deep dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}::ng-deep dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}::ng-deep dp-date-picker input:focus{outline:none}::ng-deep dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep dp-date-picker .dp-popup dp-day-calendar,::ng-deep dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep dp-date-picker .dp-popup dp-day-calendar button,::ng-deep dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}::ng-deep dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:#0000004d}::ng-deep .cdk-overlay-container{z-index:2147483002!important}::ng-deep .dp-popup{z-index:999;display:flex!important;align-items:center;justify-content:center;width:100vw;height:100vh;background:#0000004d!important;box-shadow:unset!important}::ng-deep .dp-popup dp-day-calendar{width:412px!important;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}::ng-deep .dp-popup dp-day-calendar,::ng-deep .dp-popup dp-month-calendar{width:100%;pointer-events:auto}::ng-deep .dp-popup dp-day-calendar button,::ng-deep .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,::ng-deep .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,::ng-deep .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}::ng-deep .dp-popup dp-day-calendar button.dp-current-location-btn:before,::ng-deep .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000;display:inline-flex}::ng-deep .dp-popup dp-day-calendar .dp-weekdays,::ng-deep .dp-popup dp-month-calendar .dp-weekdays,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}::ng-deep .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button:hover,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button:hover,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}::ng-deep .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,::ng-deep .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,::ng-deep .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}::ng-deep .dp-popup dp-day-calendar .dp-day-calendar-container,::ng-deep .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}::ng-deep .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,::ng-deep .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,::ng-deep .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,::ng-deep .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}::ng-deep .dp-popup dp-day-calendar .dp-calendar-wrapper,::ng-deep .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#fff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0% 1%,#747576 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#fff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0% 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0% 1%,#34aa44 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0% 1%,#1e5dd3 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0% 1%,#f6882f 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0% 1%,#7aa6f7 50%,#2989d800 51%,#7db9e800);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}.wf-tooltip{pointer-events:none;position:absolute;max-width:300px;font-size:12px;text-align:left;color:#fff;padding:8px 12px;background:#000;border-radius:2px;z-index:-222;top:0;opacity:0;white-space:break-spaces;word-break:break-word}.wf-tooltip *{color:#fff!important}.wf-tooltip:empty{display:none!important}.wf-tooltip.white{box-shadow:0 2px 8px #1c5bd159;color:#747576;background:#fff;text-align:left}.wf-tooltip.white b{color:#747576!important}.wf-tooltip.animate-top{animation:animate-top .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-right{animation:animate-right .3s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-bottom{animation:animate-bottom .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip.animate-left{animation:animate-left .5s cubic-bezier(.25,.46,.45,.94) both}.wf-tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-left.white:after{border-color:transparent transparent transparent #f1f1f1}.wf-tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #000000}.wf-tooltip-right.white:after{border-color:transparent #f1f1f1 transparent transparent}.wf-tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent #000000 transparent transparent}.wf-tooltip-bottom-right:after{bottom:100%;left:100%;margin-left:-20px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-right.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-bottom-left:after{bottom:100%;left:0;margin-left:10px;border-width:5px;border-color:transparent transparent #000000 transparent}.wf-tooltip-bottom-left.white:after{border-color:transparent transparent #f1f1f1 transparent}.wf-tooltip-top-left:after{top:100%;left:0;margin-left:10px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-left.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip-top-right:after{top:100%;left:100%;margin-left:-5px;border-width:5px;border-color:#000000 transparent transparent transparent}.wf-tooltip-top-right.white:after{border-color:#f1f1f1 transparent transparent transparent}.wf-tooltip:after{content:\"\";position:absolute;border-style:solid}.wf-tooltip span.within{font-size:80%;display:block;width:100%}.wf-tooltip .small{display:block;font-size:10px}.wf-tooltip .within-box{background:#f1f1f1;border-radius:2px;color:#042e7d!important;font-size:9px;font-weight:500;text-transform:uppercase;padding:0 2px;margin-right:2px}.wf-tooltip-show{pointer-events:none;opacity:1;z-index:2147483001}\n"] }]
|
|
744
|
+
}], ctorParameters: function () { return [{ type: i1.UiKitService }, { type: i2.SnackBarService }, { type: i3.AuthService }, { type: i4.OrganizationCommonService }, { type: i5.ReportACaseService }, { type: i6.ReportCasePermissionService }, { type: i7.IframeService }, { type: i8.ResponsibilityService }]; }, propDecorators: { workflowType: [{
|
|
712
745
|
type: Input
|
|
713
746
|
}], mode: [{
|
|
714
747
|
type: Input
|
|
@@ -819,4 +852,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
819
852
|
type: HostListener,
|
|
820
853
|
args: ['window:resize', ['$event']]
|
|
821
854
|
}] } });
|
|
822
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQWlCdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNN0QsTUFBTSxPQUFPLGdDQUFnQztJQVEzQyxZQUNTLFlBQTBCLEVBQ3pCLFFBQXlCLEVBQzFCLElBQWlCLEVBQ2hCLGdCQUEyQyxFQUMzQyxrQkFBc0MsRUFDdEMsMkJBQXdELEVBQ3hELGFBQTRCO1FBTjdCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQ3pCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQzFCLFNBQUksR0FBSixJQUFJLENBQWE7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUMzQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFkdEMsd0JBQW1CLEdBQUcsSUFBSSxDQUFD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QVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVGLFVBQVU7c0JBQXJELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDbkIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUN3QixXQUFXO3NCQUF2RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ3RCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDTSxpQkFBaUI7c0JBQXpDLFNBQVM7dUJBQUMsWUFBWTtnQkFFdkIsMkJBQTJCO3NCQUQxQixTQUFTO3VCQUFDLFlBQVk7Z0JBR3ZCLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRVAsT0FBTztzQkFBL0MsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUV2QyxTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFaEIsVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZO2dCQU9kLE9BQU87c0JBQWYsS0FBSztnQkFHK0MsZ0JBQWdCO3NCQUFwRSxZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRUbkQsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGVmZmVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQgfSBmcm9tICcuLi9hZGQtbXVsdGlwbGUtcmlzay9hZGQtbXVsdGlwbGUtcmlzay5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uQWxlcnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbmZpcm1hdGlvbi1hbGVydCc7XG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1hc3Nlc3NtZW50L3dvcmtmbG93LWFzc2Vzc21lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQvaW1wb3J0LWFuLWFzc2Vzc21lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93Q29tcGxpYW5jZUNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93LWNvbXBsaWFuY2Uvd29ya2Zsb3ctY29tcGxpYW5jZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dQb2xpY3lDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1wb2xpY3kvd29ya2Zsb3ctcG9saWN5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXb3JrZmxvd1Jpc2tDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1yaXNrL3dvcmtmbG93LXJpc2suY29tcG9uZW50JztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ0FuSXNzdWVDb21wb25lbnQgfSBmcm9tICcuLy4uL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50JztcbmltcG9ydCB7IE1vcmVPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLy4uL21vcmUtb3B0aW9uL21vcmUtb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXb3JrZmxvd1Byb2dyYW1Db21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1wcm9ncmFtL3dvcmtmbG93LXByb2dyYW0uY29tcG9uZW50JztcbmltcG9ydCB7IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL3dvcmtmbG93L2dyYy1vYmplY3QvZ3JjLW9iamVjdC1jb250YWluZXIvZ3JjLW9iamVjdC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy9jb21tb24td29ya2Zsb3ctc2VydmljZXMvb3JnYW5pemF0aW9uLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUmVwb3J0QUNhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3J0LWEtY2FzZS9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dDYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vcmVwb3J0LWEtY2FzZS93b3JrZmxvdy1jYXNlL3dvcmtmbG93LWNhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3JlcG9ydC1jYXNlLXBlcm1pc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaWZyYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9zdE1lc3NhZ2VFdmVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvaWZyYW1lLXR5cGUnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZjb21wbHktd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93RW5naW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgaXNIb3N0UmVmcmVzaEFjdGl2ZSA9IHRydWU7XG4gIGlzUkNTZWxlY3RlZCA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19ncm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkVG9DYXNlTW9kZSA9ICcnO1xuXG4gIHBlcm1pc3Npb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG9yZ0NvbW1vblNlcnZpY2U6IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXBvcnRBQ2FzZVNlcnZpY2U6IFJlcG9ydEFDYXNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZTogUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgaWZyYW1lU2VydmljZTogSWZyYW1lU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNoZWNrQ3VycmVudFdvcmtmbG93KCk7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuY2FzZVR5cGVMb2FkZXIubmV4dCh0cnVlKTtcbiAgICB0aGlzLmNoZWNrUGVybWlzc2lvbigpO1xuICB9XG4gIEBJbnB1dCgpIHdvcmtmbG93VHlwZSA9ICcnO1xuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XG4gIEBJbnB1dCgpIGlkID0gJyc7XG4gIEBJbnB1dCgpIG9wZW5lZEZyb20gPSAnR0xPQkFMJztcbiAgQElucHV0KCkgc291cmNlOiAnU0FQJyB8ICdXT1JLUk9PTScgfCAnJyA9ICcnO1xuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgYWxsb3dlZFdvcmtmbG93czogYW55ID0gW107XG4gIEBJbnB1dCgpIGZyYW1ld29ya0RldGFpbHM6IEFycmF5PGFueT4gPSBbXTsgLy8gb25seSBmb3IgY29tcGxpYW5jZSBwYXJ0IGZvciBmcmFtZXdvcmtcbiAgQElucHV0KCkgc2VsZWN0ZWRSQyA9ICcnO1xuICBASW5wdXQoKSBzZWNvbmRhcnlPcGVuUG9ydGFsID0gJyc7XG4gIEBJbnB1dCgpIGRlZmF1bHRSaXNrVHlwZSA9ICdOT1JNQUwnO1xuICBASW5wdXQoKSBtb3ZlVG9SZWdpc3Rlck1vZGUgPSAnJztcbiAgQElucHV0KCkgd29ya2Zsb3dEZXRhaWxzOiBhbnk7XG4gIEBJbnB1dCgpIHJlcG9uc2liaWxpdHlEYXRhID0ge1xuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcbiAgICByaWQ6IG51bGwsXG4gICAgcmVzcG9uc2liaWxpdHlOYW1lOiAnJyxcbiAgICByY0lkOiBudWxsLFxuICAgIGR1ZURhdGVJZDogJycsXG4gIH07XG4gIEBJbnB1dCgpIGFzc2Vzc21lbnRRdWVzdGlvbjogYW55ID0ge1xuICAgIHF1ZXN0aW9uTmFtZTogJycsXG4gICAgcXVlc3Rpb25OdW1iZXI6ICcnLFxuICAgIHF1ZXN0aW9uSWQ6ICcnLFxuICAgIGFzc2Vzc21lbnRJZDogJycsXG4gICAgYXVkaXRlZUlkOiBudWxsLFxuICB9O1xuICBASW5wdXQoKSBwaWQgPSAnJztcbiAgQElucHV0KCkgcHJvZ3JhbVR5cGU6IG51bWJlciA9IDE7XG4gIEBJbnB1dCgpIGlzc3VlRGF0YSA9IHtcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcbiAgICByY0lkOiBudWxsLFxuICB9O1xuICBASW5wdXQoKSBlbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xuICBASW5wdXQoKSBjb252ZXJ0RmlsZURhdGEgPSB7fTtcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeSA9ICcnO1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkUHJvZ3JhbTogYW55ID0gbnVsbDtcbiAgQElucHV0KCkgY2FuRnJhbWV3b3JrQ2hhbmdlOiBib29sZWFuID0gdHJ1ZTsgLy8gaWYgZnJhbWV3b3JrIGNhbiBFZGl0ZWQgb3Igbm90OyBGb3IgQ3JlYXRlIGEgcHJvZ3JhbVxuICBASW5wdXQoKSAvKiAgKi9cbiAgLyogICovXG4gIEBJbnB1dCgpXG4gIGFkZFRvUHJvZ3JhbURldGFpbHM6IHtcbiAgICBfaWQ6IHN0cmluZztcbiAgICBmcmFtZXdvcmtfbmFtZTogc3RyaW5nO1xuICAgIGlkPzogbnVtYmVyO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB9ID0ge1xuICAgIF9pZDogJycsXG4gICAgZnJhbWV3b3JrX25hbWU6ICcnLFxuICAgIGlkOiAwLFxuICAgIHR5cGU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgZ3JjVHlwZTogMCB8IDEgfCAyIHwgMyA9IDA7XG4gIEBJbnB1dCgpIGlzU2VuZEZvckF0dGVzdGF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREZXRhaWxzOiBhbnk7XG4gIEBJbnB1dCgpIHRlbXBsYXRlSWQ6IHN0cmluZyA9ICcnO1xuXG4gIG9yZ0RldGFpbHM6IGFueTtcbiAgcHJvZ3JhbVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Jlc3BvbnNpYmlsaXR5U2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGNhc2VGZWF0dXJlRmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGFuaW1hdGlvbiA9IHRydWU7XG4gIHdvcmtmbG93TGlzdCA9IGZhbHNlO1xuICBzaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gIGlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UhOiBib29sZWFuO1xuICBjaGVja3BvaW50Q291bnQ6IG51bWJlciA9IDA7XG4gIHJlcG9ydEJ5OiBzdHJpbmcgPSAnJztcbiAgY3VycmVudEJ1c2luZXNzQ3ljbGU6IGFueSA9ICcnO1xuICBjYXNlVHlwZVBlcm1pc3Npb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQFZpZXdDaGlsZCgncmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KSByaXNrQ29tcG9uZW50ITogV29ya2Zsb3dSaXNrQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdtdWx0aXBsZVJpc2snLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmlza0J1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmVzcG9uc2liaWxpdHknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkITogQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdyZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBjb21wbGlhbmNlITogV29ya2Zsb3dDb21wbGlhbmNlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdtb3JlT3B0aW9uJywgeyBzdGF0aWM6IGZhbHNlIH0pIG1vcmVPcHRpb24hOiBNb3JlT3B0aW9uQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duITogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZHJvcGRvd25Sb3cnLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJvcGRvd25Sb3chOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwb2xpY3knKSBwb2xpY3khOiBXb3JrZmxvd1BvbGljeUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbG9nQW5Jc3N1ZScpIGxvZ0lzc3VlQ29tcG9uZW50ITogTG9nQW5Jc3N1ZUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnYXNzZXNzbWVudCcpXG4gIHdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCE6IFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnaW1wb3J0QXNzZXNzbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBpbXBvcnRBbkFzc2Vzc21lbnQhOiBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3Byb2dyYW0nLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJvZ3JhbSE6IFdvcmtmbG93UHJvZ3JhbUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnZ3JjT2JqZWN0JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGdyY09iamVjdCE6IEdyY09iamVjdENvbnRhaW5lckNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncmVwb3J0Q2FzZScpIHJlcG9ydENhc2UhOiBXb3JrZmxvd0Nhc2VDb21wb25lbnQ7XG5cbiAgZHJvcGRvd25MZWZ0ITogYW55O1xuICBkcm9wZG93blRvcCE6IGFueTtcbiAgZHJvcGRvd25XaWR0aCE6IGFueTtcbiAgY2xvc2VPbkVzYzogYm9vbGVhbiA9IGZhbHNlO1xuICAvLyBmZWF0dXJlIGZsYWdcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBvcmdhbml6YXRpb25EZXRhaWxzOiBhbnk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XG4gICkge1xuICAgIGlmIChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcbiAgICAgIF0uaW5jbHVkZXModHJ1ZSkgfHxcbiAgICAgIHRoaXMucHJvZ3JhbT8uYWN0aXZlTGlzdCB8fFxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxuICAgICAgdGhpcy5ncmNPYmplY3Q/Lm9wZW5lZFBvcHVwXG4gICAgKSB7XG4gICAgICAvL0RvIE5vdGhpbmdcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93RW5naW5lKCk7XG4gICAgfVxuICB9XG5cbiAgdXNlckxpc3Q6IGFueSA9IFtdO1xuICBjdXJyZW50V29ya2Zsb3chOiBhbnk7XG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBSZXNwb25zaWJpbGl0eScsXG4gICAgICBjb2RlOiAnQ0FSJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVTUE9OU0lCSUxJVFknLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIE11bHRpcGxlIFJlc3BvbnNpYmlsaXRpZXMnLFxuICAgICAgY29kZTogJ0NNUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcbiAgICB9LFxuICAgIHsgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUmlzaycsIGNvZGU6ICdBQVInLCBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JJU0snIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIE11bHRpcGxlIFJpc2tzJyxcbiAgICAgIGNvZGU6ICdBTVInLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXG4gICAgICBjb2RlOiAnQ0FQJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUE9MSUNZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFN1cnZleScsXG4gICAgICBjb2RlOiAnQ0FTJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnU1VSVkVZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIEZvcm0nLFxuICAgICAgY29kZTogJ0NBRicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcbiAgICAgIGNvZGU6ICdMQUknLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJU1NVRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnQUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnQVNTRVNTTUVOVCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdJbXBvcnQgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnSUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXG4gICAgICBjb2RlOiAnQ0FQUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BST0dSQU0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgR1JDIE9iamVjdCcsXG4gICAgICBjb2RlOiAnR1JDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnR1JDX09CSkVDVFMnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnUmVwb3J0IGEgQ2FzZScsXG4gICAgICBjb2RlOiAnUkFDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVQT1JUX0FfQ0FTRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBc3NpZ24gY2FzZSB0byB3b3JrZmxvdycsXG4gICAgICBjb2RlOiAnQUNUVycsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JFUE9SVF9BX0NBU0UnLFxuICAgIH0sXG4gIF07XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbkxpc3QgPSBbXG4gICAgJ09iamVjdGl2ZScsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3J5JyxcbiAgXTtcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XG5cbiAgY2hlY2tDdXJyZW50V29ya2Zsb3coKSB7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2Uud29ya2Zsb3dDb2RlLnN1YnNjcmliZSgoY29kZSkgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09ICdBQ1cnIHx8IGNvZGUgPT09ICdBQ1RXJykge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gY29kZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgY2xvc2VXb3JrZmxvd0VuZ2luZShldnQ/OiBhbnkpIHtcbiAgICBpZiAoZXZ0Py5jb25maXJtID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0ID8gZXZ0LmV2dCA6IGV2dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VDb25maXJtKGV2dCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VDb25maXJtKGV2dDogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgbmF2aWdhdGUgYXdheSwgYW55IHVuc2F2ZWQgY2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NMT1NFJyxcbiAgICAgIGRhdGE6IGV2dCxcbiAgICB9O1xuICB9XG4gIGV4ZWN1dGVDbG9zZShldnQ6IGFueSkge1xuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoKTtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXR3b3JrTGlzdG5lcigpO1xuICAgIHRoaXMuc2V0V29ya2Zsb3codGhpcy53b3JrZmxvd1R5cGUsIHRoaXMud29ya2Zsb3dUeXBlTGlzdCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcbiAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XG4gICAgdGhpcy5mZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKTtcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcHJvZ3JhbV9zaW1wbGlmeSdcbiAgICApO1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcmVzcG9uc2liaWxpdHlfZ3JvdXBzJ1xuICAgICk7XG4gICAgdGhpcy5jYXNlRmVhdHVyZUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfY2FzZXNfZW5hYmxlZCcpO1xuICAgIHRoaXMuaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNoZWNrUGVybWlzc2lvbigpIHtcbiAgICB0aGlzLnBlcm1pc3Npb25TdWJzY3JpcHRpb24gPVxuICAgICAgdGhpcy5yZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UuaGFzUGVybWlzc2lvbi5zdWJzY3JpYmUoXG4gICAgICAgIChoYXNQZXJtaXNzaW9uKSA9PiB7XG4gICAgICAgICAgdGhpcy5jYXNlVHlwZVBlcm1pc3Npb24gPSBoYXNQZXJtaXNzaW9uO1xuICAgICAgICAgIGlmIChoYXNQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrUmVwb3J0Q2FzZVBlcm1pc3Npb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2UuY2FzZVR5cGVMb2FkZXIubmV4dChmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBzZXROZXR3b3JrTGlzdG5lcigpIHtcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvZmZsaW5lJywgKGUpID0+IHtcbiAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgJ0Nvbm5lY3Rpb24gbG9zdCE8YnI+Q2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpdml0eS4nLFxuICAgICAgICAnYWxlcnQnXG4gICAgICApO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50TGlzdGVuZXIoJ29ubGluZScsIChlKSA9PiB7XG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXCJZb3UncmUgYmFjayBvbmxpbmUhXCIsICdzdWNjZXNzJyk7XG4gICAgfSk7XG4gIH1cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdCA9IHRoaXMud29ya2Zsb3dUeXBlTGlzdC5maWx0ZXIoKHdvcmtmbG93OiBhbnkpID0+IHtcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRXb3JrZmxvd3MuaW5jbHVkZXMod29ya2Zsb3cucGVybWlzc2lvbklkZW50aWZpZXIpKSB7XG4gICAgICAgIHJldHVybiB3b3JrZmxvdztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5vcGVuZWRGcm9tID09PSAnUklTS19UUkVBVE1FTlQnKSB7XG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5kaXNhYmxlV29ya2Zsb3dDaGFuZ2UgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrUmVwb3J0Q2FzZVBlcm1pc3Npb24oKSB7XG4gICAgY29uc3QgaGFzUGVybWlzc2lvbiA9XG4gICAgICB0aGlzLnJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZS5jaGVja1JlcG9ydEFDYXNlUGVybWlzc2lvbigpO1xuICAgIGlmIChoYXNQZXJtaXNzaW9uICYmIHRoaXMuY2FzZUZlYXR1cmVGbGFnKSB7XG4gICAgICB0aGlzLmFsbG93ZWRXb3JrZmxvd3MucHVzaCgnUkVQT1JUX0FfQ0FTRScpO1xuICAgICAgdGhpcy5hbGxvd2VkV29ya2Zsb3dzID0gdGhpcy5hbGxvd2VkV29ya2Zsb3dzLmZpbHRlcihcbiAgICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93ICE9PSAnSVNTVUUnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsbG93ZWRXb3JrZmxvd3MgPSB0aGlzLmFsbG93ZWRXb3JrZmxvd3MuZmlsdGVyKFxuICAgICAgICAod29ya2Zsb3c6IGFueSkgPT4gd29ya2Zsb3cgIT09ICdSRVBPUlRfQV9DQVNFJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB1c2VyTGlzdEVtaXR0ZXIoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudXNlckxpc3QgPSBldmVudDtcbiAgfVxuXG4gIGRlY2lkZVZpZXdNb3JlT3B0aW9uKHR5cGU/OiBib29sZWFuKSB7XG4gICAgaWYgKHR5cGUpIHtcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoWydDTVInLCAnQU1SJywgJ0FBQScsICdJQUEnXS5pbmNsdWRlcyh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkpIHtcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMuYWRkVG9DYXNlTW9kZSA9PT0gJ0FDVycpIHtcbiAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgdGhpcy5zZXRXb3JrZmxvd1NlbGVjdG9yKHR5cGUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdSQUMnKSB7XG4gICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLnNldFdvcmtmbG93U2VsZWN0b3IodHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0eXBlID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbiAgc2V0V29ya2Zsb3dTZWxlY3Rvcih0eXBlPzogYm9vbGVhbil7XG4gICAgaWYgKHR5cGUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNhc2VSZXBvcnRlZEJ5KGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnJlcG9ydEJ5ID0gZXZlbnQ7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgaWYodGhpcy5hZGRUb0Nhc2VNb2RlID09PSAnQUNXJyB8fCB0aGlzLmFkZFRvQ2FzZU1vZGUgPT09ICdBQ1RXJykge1xuICAgICAgdGhpcy5yZXBvcnRDYXNlLmFkZFRvQ2FzZSgpO1xuICAgICAgdGhpcy5zdWJtaXRXb3JrZmxvdygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICBjYXNlICdBQVInOlxuICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuc3VibWl0UmlzaygpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xBSSc6XG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQuYWRkSXNzdWUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVInOlxuICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc3VibWl0UmVzcG9uc2liaWxpdHkoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVAnOlxuICAgICAgICB0aGlzLnBvbGljeS5zdWJtaXRQb2xpY3koKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBQUEnOlxuICAgICAgICB0aGlzLndvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQUic6IHtcbiAgICAgICAgdGhpcy5wcm9ncmFtLnNhdmVQcm9ncmFtKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnR1JDJzoge1xuICAgICAgICB0aGlzLmdyY09iamVjdC5zYXZlR1JDT2JqZWN0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnUkFDJzoge1xuICAgICAgICB0aGlzLnJlcG9ydENhc2UucmVwb3J0Q2FzZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIGNhc2UgJ0lBQSc6XG4gICAgICAvLyAgIHRoaXMuaW1wb3J0QW5Bc3Nlc3NtZW50LnN1Ym1pdEFzc2Vzc21lbnQoKTtcbiAgICB9XG4gICAgdGhpcy5zdWJtaXRXb3JrZmxvdygpO1xuICB9XG5cbiAgc3VibWl0V29ya2Zsb3coKSB7IFxuICAgIGNvbnN0IG1lc3NhZ2UgPSB7dHlwZTonc3VibWl0J31cbiAgICBjb25zdCB0YXJnZXRPcmlnaW4gPSB0aGlzLmdldE9yaWdpbigpO1xuICAgIHdpbmRvdy5wYXJlbnQucG9zdE1lc3NhZ2UobWVzc2FnZSwgdGFyZ2V0T3JpZ2luKTtcbiAgfSBcbiAgXG4gIHByaXZhdGUgZ2V0T3JpZ2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gIH1cblxuICBlZGl0V29ya2Zsb3coKSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSAhdGhpcy53b3JrZmxvd0xpc3Q7XG4gICAgY29uc3QgZHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5kcm9wZG93bkxlZnQgPSBkcm9wZG93bi5sZWZ0O1xuICAgIHRoaXMuZHJvcGRvd25Ub3AgPSBkcm9wZG93bi50b3AgKyBkcm9wZG93bi5oZWlnaHQ7XG4gICAgdGhpcy5kcm9wZG93bldpZHRoID0gZHJvcGRvd24ud2lkdGg7XG4gIH1cbiAgY2xvc2VXb3JrZmxvd0xpc3QoKSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcbiAgfVxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgc2l6ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy53b3JrZmxvd0xpc3QgPSBmYWxzZTtcbiAgfVxuICBjaGFuZ2VXb3JrZmxvdyhldnQ6IGFueSwgc2VsZWN0ZWRXb3JrZmxvdzogYW55KSB7XG4gICAgaWYgKHNlbGVjdGVkV29ya2Zsb3c/LmNvZGUgPT09IHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiAnSWYgeW91IGNoYW5nZSB0aGUgd29ya2Zsb3csIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nLFxuICAgICAgYWN0aW9uOiAnV09SS0ZMT1dfQ0hBTkdFJyxcbiAgICAgIGRhdGE6IHNlbGVjdGVkV29ya2Zsb3csXG4gICAgfTtcbiAgfVxuXG4gIGNvbmZpcm1Xb3JrZmxvd0NoYW5nZShldnQ6IGFueSkge1xuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xuICAgICAgdGhpcy5jbG9zZU9uRXNjID0gdHJ1ZTtcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ1dPUktGTE9XX0NIQU5HRSc6XG4gICAgICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPSBldnQ/LnBheWxvYWQ/LmRhdGEgPz8gbnVsbDtcbiAgICAgICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vcmVPcHRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLnJlc2V0QWxsKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZGVjaWRlVmlld01vcmVPcHRpb24oKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRURJVF9SSVNLJzpcbiAgICAgICAgICB0aGlzLnJpc2tDb21wb25lbnQuY3JlYXRlUmlzayh0aGlzLnJpc2tDb21wb25lbnQucmlza0Zvcm0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdXT1JLRkxPV19DTE9TRSc6XG4gICAgICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0Py5wYXlsb2FkPy5kYXRhKTtcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5pZnJhbWVTZXJ2aWNlLmdldENsb3NlV2Vidmlld01lc3NhZ2UoUG9zdE1lc3NhZ2VFdmVudC5DTE9TRV9XRUJWSUVXLCAnJyk7XG4gICAgICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnBvc3RNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjaGVja3BvaW50JzpcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fFxuICAgICAgICAgICAgICBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVtb3ZlQ2hlY2twb2ludCgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ1JPTEUnOlxuICAgICAgICAgIHRoaXMucHJvZ3JhbS5yZW1vdmUoZXZ0LnBheWxvYWQuZGF0YSwgJ1JPTEUnKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICduZXctY2hlY2twb2ludHMnOlxuICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgJiYgIWV2dC5wYXlsb2FkLmlzRGF0YVJlbW92ZWQpIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTJyAmJiAhZXZ0LnBheWxvYWQuaXNEYXRhUmVtb3ZlZCkge1xuICAgICAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGV2dC5wYXlsb2FkLmlzQ2hlY2twb2ludENoZWNrZWQgJiZcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5tb3JlT3B0aW9ucy5DSEVDS1BPSU5UU19ORVcgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZW1vdmUoJ25ldy1jaGVja3BvaW50cycpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID0gJ0FMTCc7XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMubGlzdCA9XG4gICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2Uuc2V0TGlzdChcbiAgICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLmFzc2lnbmVlc0xpc3QsXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5vcmlnaW5hbEFzc2lnbmVlLFxuICAgICAgICAgICAgICAnZW1wbG95ZWVfaWQnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGlmICh0aGlzLmZlYXR1cmVGbGFnX2dyb3Vwcykge1xuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsnYXNzaWduZWVHcm91cHMnXVsnbGlzdCddID1cbiAgICAgICAgICAgICAgW107XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYW55UmV2aWV3ZXInOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN3aXRjaCAoZXZ0LnBheWxvYWQuYWN0aW9uKSB7XG4gICAgICAgIGNhc2UgJ1BPTElDWV9QT1JUQUwnOlxuICAgICAgICAgIHRoaXMucG9saWN5LmNvbmZpcm1Qb2xpY3lQb3J0YWwoZXZ0LmFjdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fzc2lnbmVlVHlwZUNoYW5nZSc6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlc3BvbnNpYmlsaXR5Rm9ybS5hc3NpZ25lZXMud2hvQ2FuQ29tcGxldGUgPVxuICAgICAgICAgICAgJ0FOWV9PTkUnO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3NlcXVlbnRpYWwnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ3Jldmlld2VycyddW1xuICAgICAgICAgICAgJ3NlcXVlbnRpYWxXb3JrZmxvdydcbiAgICAgICAgICBdID0gZmFsc2U7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXG4gICAgICAgICAgXSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IGZhbHNlLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICBhY3Rpb246ICcnLFxuICAgICAgZGF0YTogbnVsbCxcbiAgICB9O1xuICAgIHJldHVybiBldnQ7XG4gIH1cblxuICBzZXRXb3JrZmxvdyh3b3JrRmxvd0NvZGU6IGFueSwgd29ya0Zsb3dMaXN0OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFdvcmtmbG93ID0gd29ya0Zsb3dMaXN0LmZpbmQoXG4gICAgICAoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Py5jb2RlID09PSB3b3JrRmxvd0NvZGVcbiAgICApO1xuICAgIHNlbGVjdGVkV29ya2Zsb3dcbiAgICAgID8gKHRoaXMuY3VycmVudFdvcmtmbG93ID0gc2VsZWN0ZWRXb3JrZmxvdylcbiAgICAgIDogKHRoaXMuY3VycmVudFdvcmtmbG93ID0gbnVsbCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkV29ya2Zsb3c7XG4gIH1cblxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xuICAgICAgY2FzZSAnQUFSJzpcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTEFJJzpcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1JBQyc6XG4gICAgICBjYXNlICdBQ1RXJzpcbiAgICAgICAgdGhpcy5yZXBvcnRDYXNlLmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVInOlxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnREZXRhaWxzPy5hc3Nlc3NtZW50X3R5cGU/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgJ2NvbXBsaWFuY2VfYXVkaXQnXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5tb3JlT3B0aW9uPy5tb3JlT3B0aW9uc0xpc3Q/LkNBUj8uZmluZEluZGV4KFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmNvZGUgPT09ICdBU1NFU1NNRU5UJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5jaGVja2VkID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5hZGRNb3JlSW5mbyhcbiAgICAgICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29tcGxpYW5jZT8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUCc6XG4gICAgICAgIHRoaXMucG9saWN5Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQUic6XG4gICAgICAgIHRoaXMucHJvZ3JhbT8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dSQyc6XG4gICAgICAgIHRoaXMuZ3JjT2JqZWN0Py5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHBvcHVsYXRlTW9yZU9wdGlvbihldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbikge1xuICAgICAgdGhpcy5tb3JlT3B0aW9uLnBvcHVsYXRlKGV2ZW50KTtcbiAgICB9XG4gIH1cbiAgaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLm1vcmVPcHRpb24/LmhpZGVFbGVtZW50cyhldmVudCk7XG4gIH1cblxuICBzaG93Q29uZmlybWF0aW9uUG9wdXAoY29uZmlnOiBDb25maXJtYXRpb25BbGVydCkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSBjb25maWc7XG4gIH1cblxuICBidWxrVXBsb2FkQnJvd3NlKGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdBTVInOlxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ01SJzpcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQudHJpZ2dlckJyb3dzZUZpbGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdJQUEnOlxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgb25SZXNldEZvcm0oKSB7XG4gICAgdGhpcy5tb2RlID0gJ0NSRUFURSc7XG4gICAgdGhpcy5lbnRydXN0QnV0dG9uTmFtZSA9ICdFbnRydXN0JztcbiAgfVxuXG4gIG9uUmVzZXRHUkNGb3JtKCkge1xuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xuICB9XG4gIHNoaWZ0VG9FZGl0TW9kZSgpIHtcbiAgICB0aGlzLm1vZGUgPSAnRURJVCc7XG4gIH1cbiAgc2Nyb2xsRm9ybSgpIHtcbiAgICBpZiAodGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA8IDM4KSB7XG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LmFkZCgnaGlkZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duUm93Py5uYXRpdmVFbGVtZW50Py5jbGFzc0xpc3Q/LnJlbW92ZSgnaGlkZScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZXZlbnQgd2hpY2ggbW9yZSBvcHRpb25zIHdlIGFyZSByZW1vdmluZy5cbiAgICogQHBhcmFtIGlzQ2hlY2twb2ludENoZWNrZWQgIGlzIHRydWUgaWYgdmFsdWUgY2hlY2twb2ludHMgaXMgcmVtb3ZlZCBieSBjbGlja2luZyBvbiBtb3JlIG9wdGlvbnNcbiAgICovXG4gIG9uUmVtb3ZpbmdDaGVja3BvaW50KFxuICAgIGV2ZW50OiBzdHJpbmcsXG4gICAgaXNDaGVja3BvaW50Q2hlY2tlZD86IGJvb2xlYW4sXG4gICAgaXNEYXRhUmVtb3ZlZD86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgbGV0IG1zZyA9ICcnO1xuICAgIGlmIChldmVudCA9PT0gJ25ldy1jaGVja3BvaW50cycpIHtcbiAgICAgIG1zZyA9XG4gICAgICAgICdJZiB5b3UgY2hvb3NlIHRvIHJlbW92ZSB0aGVzZSBDaGVja3BvaW50cywgdGhleSB3aWxsIGJlIGRlbGV0ZWQgYW5kIGNhbm5vdCBiZSByZXN0b3JlZC4gSG93ZXZlciwgeW91IHdpbGwgc3RpbGwgYmUgYWJsZSB0byBjcmVhdGUgbmV3IENoZWNrcG9pbnRzIG9yIGxpbmsgYW4gQXNzZXNzbWVudC4nO1xuICAgIH0gZWxzZSB7XG4gICAgICBtc2cgPVxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgY2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuJztcbiAgICB9XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGFjdGlvbjogZXZlbnQsXG4gICAgICBkYXRhOiB7IHR5cGU6ICdyZXNwb25zaWJpbGl0eUNoZWNrcG9pbnQnIH0sXG4gICAgICBpc0NoZWNrcG9pbnRDaGVja2VkOiBpc0NoZWNrcG9pbnRDaGVja2VkID8/IGZhbHNlLFxuICAgICAgaXNEYXRhUmVtb3ZlZDogaXNEYXRhUmVtb3ZlZCA/PyBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgb25SZW1vdmluZ1JvbGUoZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIG1zZyA9ICdJZiB5b3UgY2hhbmdlIHRoZSByb2xlcywgYW55IHVuc2F2ZWQgY2hhbmdlcyB3b3VsZCBiZSBsb3N0Lic7XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBtc2csXG4gICAgICBhY3Rpb246ICdST0xFJyxcbiAgICAgIGRhdGE6IGV2ZW50LFxuICAgIH07XG4gIH1cblxuICBpc0Fzc2Vzc21lbnREaXNhYmxlZChpc0Rpc2FibGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdBU1NFU1NNRU5UJyB8fCBvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XG4gICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGRpc2FibGVNb3JlT3B0aW9ucyh3b3JrZmxvd0NvZGU6IGFueSwgZGlzYWJsZWRFbGVtZW50c0NvZGU6IGFueSkge1xuICAgIGlmIChPYmplY3Qua2V5cyh0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0KS5pbmNsdWRlcyh3b3JrZmxvd0NvZGUpKSB7XG4gICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93Q29kZV0uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGRpc2FibGVkRWxlbWVudHNDb2RlLmluY2x1ZGVzKG9wdGlvbj8uY29kZSkpIHtcbiAgICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hlY2twb2ludFNlbGVjdGlvbihldmVudDogbnVtYmVyKSB7XG4gICAgdGhpcy5jaGVja3BvaW50Q291bnQgPSBldmVudDtcbiAgfVxuXG4gIG9uUmNTZWxlY3RlZChpc1JjU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzUkNTZWxlY3RlZCA9IGlzUmNTZWxlY3RlZDtcbiAgfVxuXG4gIGZldGNoT3JnYW5pemF0aW9uRGV0YWlscygpIHtcbiAgICB0aGlzLm9yZ0NvbW1vblNlcnZpY2U/LmdldE9yZ0RldGFpbHNJbmZvKCk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5vcmdEZXRhaWxzID0gcmVzO1xuICAgICAgICBpZiAocmVzPy5idXNpbmVzc19jeWNsZXNfYXJyICYmIHJlcz8uYnVzaW5lc3NfY3ljbGVzX2Fycj8ubGVuZ3RoKSB7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSByZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnIuZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LnNlbGVjdGVkXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBzcGxpdHRlZCA9IHNlbGVjdGVkWzBdLmJ1c2luZXNzX2N5Y2xlPy5zcGxpdCgnLScpO1xuICAgICAgICAgIHRoaXMuY3VycmVudEJ1c2luZXNzQ3ljbGUgPSBgJHtzcGxpdHRlZFswXT8uc2xpY2UoXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKX0gLSAke3NwbGl0dGVkWzFdPy5zbGljZSg0KX1gO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG4gIGdldFVzZXJEZXRhaWxzKCkge1xuICAgIHRoaXMub3JnQ29tbW9uU2VydmljZT8uZ2V0T3JnVXNlckluZm8oKT8uc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmF1dGgudXNlckRldGFpbHMgPSByZXM7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIG9yZ2FuaXphdGlvbiB1c2VycycsIGVycik7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgYXNzaWduZWVUeXBlQ2hhbmdlKCkge1xuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOlxuICAgICAgICAnVGhpcyBhY3Rpb24gd2lsbCByZXNldCB0aGUgY2hhbmdlcyBhbmQgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBhc3NpZ25lZS4nLFxuICAgICAgYWN0aW9uOiAnYXNzaWduZWVUeXBlQ2hhbmdlJyxcbiAgICAgIGRhdGE6IHt9LFxuICAgICAgaXNSZWRBbGVydDogdHJ1ZSxcbiAgICB9O1xuICB9XG5cbiAgLy8gZXZlbnQgPT4gJ3NlcXVlbnRpYWwnIHx8ICdhbnlSZXZpZXdlcidcbiAgb25SZXZpZXdlckNoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgY29uc3QgY29tbW9uVGV4dDogc3RyaW5nID1cbiAgICAgICdPbmNlIGNvbmZpcm1lZCwgdGhlIG5ldyByZXZpZXcgd29ya2Zsb3cgd2lsbCBiZSBhcHBsaWNhYmxlIGZvciBhbGwgY3VycmVudCBhbmQgZnV0dXJlIHJldmlldyBkdWUgZGF0ZXMuJztcbiAgICBjb25zdCBtc2cgPVxuICAgICAgY29tbW9uVGV4dCArXG4gICAgICAoZXZlbnQgPT09ICdhbnlSZXZpZXdlcidcbiAgICAgICAgPyBgSWYgYW55IHJldmlld2VyIGhhZCBjb21wbGV0ZWQgdGhlIHJldmlldywgdGhlIGN1cnJlbnQgcmV2aWV3IGR1ZSBkYXRlIHdpbGwgYmUgY2xvc2VkIGFuZCB0aGUgcmV2aWV3IHN0YXR1cyB3aWxsIGJlIHVwZGF0ZWQgdG8gJ0NvbXBsZXRlZCcuYFxuICAgICAgICA6ICcnKTtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgYWN0aW9uOiBldmVudCxcbiAgICB9O1xuICB9XG5cbiAgaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCkge1xuICAgIGlmICh0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcmVzcG9uc2liaWxpdHlfc2ltcGxpZmljYXRpb24nKSkge1xuICAgICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0WzBdLndvcmtmbG93TmFtZSA9ICdBZGQgYSBSZXNwb25zaWJpbGl0eSc7XG4gICAgICB0aGlzLndvcmtmbG93VHlwZUxpc3RbMV0ud29ya2Zsb3dOYW1lID0gJ0FkZCBNdWx0aXBsZSBSZXNwb25zaWJpbGl0aWVzJztcbiAgICB9XG4gIH1cbn1cbiIsIjxhcHAtc25hY2stYmFyPjwvYXBwLXNuYWNrLWJhcj5cbjxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtb3ZlcmxheVwiPjwvZGl2PlxuXG48YXBwLWFzc2Vzc21lbnQtbGlzdFxuICAqbmdJZj1cIndvcmtmbG93VHlwZSA9PT0gJ0FTU0VTU01FTlQnXCJcbiAgKGNhbmNlbEFzc2Vzc21lbnQpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgpXCJcbiAgW2lzRWRpdF09XCJ0cnVlXCJcbiAgW2lzRnVsbFNjcmVlbl09XCJ0cnVlXCJcbiAgW3NlbGVjdGVkQXNzZXNzbWVudF09XCJ3b3JrZmxvd0RldGFpbHM/LmFzc2Vzc21lbnRcIlxuICAob25Bc3Nlc3NtZW50U2VsZWN0KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoeyBldnQ6ICRldmVudCwgY29uZmlybTogZmFsc2UgfSlcIlxuPjwvYXBwLWFzc2Vzc21lbnQtbGlzdD5cbjxkaXZcbiAgKm5nSWY9XCJ3b3JrZmxvd1R5cGUgIT09ICdBU1NFU1NNRU5UJ1wiXG4gIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lXCJcbiAgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCJcbiAgW2NsYXNzLmJnXT1cIlxuICAgICghaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCByaXNrQnVsa1VwbG9hZD8uc2hvd0NhdGVnb3J5TGlzdCkgJiZcbiAgICAhcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXG4gIFwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1jb250YWluZXJcIlxuICAgIFtuZ1N3aXRjaF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxuICAgIFtjbGFzcy53aXRoLXByZXZpZXctYXNzZXNzbWVudF09XCIoYXV0aD8ucHJldmlld1BhbmVsIHwgYXN5bmMpID09PSB0cnVlXCJcbiAgICBbY2xhc3Mud2l0aC1mcmVxdWVuY3ldPVwiXG4gICAgICBjb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciA9PT0gJ2ZyZXF1ZW5jeScgfHxcbiAgICAgIGNvbXBsaWFuY2U/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knIHx8XG4gICAgICByaXNrQ29tcG9uZW50Py5hY3RpdmVTZWxlY3RvciA9PT0gJ2ZyZXF1ZW5jeScgfHxcbiAgICAgIHBvbGljeT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAncmV2aWV3ZXJGcmVxdWVuY3knXG4gICAgXCJcbiAgPlxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIlxuICAgICAgaWQ9XCJjbG9zZS13b3JrZmxvdy1lbmdpbmUtYnRuXCJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxuICAgICAgW2FwcFRvb2x0aXBdPVwiJ1tFc2NdIHRvIGNsb3NlJ1wiXG4gICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgICAgIGRlbGF5PVwiMFwiXG4gICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICAgIGNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGUgfHwgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcbiAgICAgIFwiXG4gICAgICBbY2xhc3Muc21pbGV5LW9wZW5lZF09XCJcbiAgICAgICAgcmlza0NvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBsb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBjb21wbGlhbmNlPy5zaG93U21pbGV5IHx8XG4gICAgICAgIHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50cyB8fFxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxuICAgICAgICBwcm9ncmFtPy5zaG93U21pbGV5IHx8XG4gICAgICAgIGltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleVxuICAgICAgXCJcbiAgICA+XG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzZjs8L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhdWlLaXRTZXJ2aWNlLmlzU21pbGV5T25cIlxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtbW9yZVwiXG4gICAgICBbaGlkZGVuXT1cInNob3dNb3JlT3B0aW9uID09PSBmYWxzZSB8fCBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcIlxuICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5pc1Zpc2libGVcIlxuICAgICAgW2NsYXNzLnJlYWQtb25seV09XCJ1aUtpdFNlcnZpY2U/LmlzTG9hZGVyXCJcbiAgICA+XG4gICAgICA8YXBwLW1vcmUtb3B0aW9uXG4gICAgICAgICNtb3JlT3B0aW9uXG4gICAgICAgIFtjdXJyZW50V29ya2Zsb3ddPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCJcbiAgICAgICAgW2lzRWRpdE1vZGVdPVwibW9kZSA9PT0gJ0VESVQnXCJcbiAgICAgICAgW2lzUkNTZWxlY3RlZF09XCJcbiAgICAgICAgICBpc1JDU2VsZWN0ZWQgfHxcbiAgICAgICAgICAoY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnR1JDJyAmJlxuICAgICAgICAgICAgZ3JjT2JqZWN0Py5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcbiAgICAgICAgXCJcbiAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgIChzZWxlY3RlZE9wdGlvbik9XCJhZGRNb3JlSW5mbygkZXZlbnQpXCJcbiAgICAgICAgW2lzUHJvZ3JhbVNlbGVjdGVkXT1cInNlbGVjdGVkUHJvZ3JhbVwiXG4gICAgICAgIFthbGxvd2VkRmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgW29yZ0RldGFpbHNEYXRhXT1cIm9yZ0RldGFpbHNcIlxuICAgICAgICBbaXNBdHRyaWJ1dGVzQXZhaWxhYmxlXT1cIlxuICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0dSQycgJiZcbiAgICAgICAgICBncmNPYmplY3Q/LnNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoID4gMFxuICAgICAgICBcIlxuICAgICAgPlxuICAgICAgPC9hcHAtbW9yZS1vcHRpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtZm9ybVwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/LmlzVmlzaWJsZVwiXG4gICAgICBbY2xhc3Mubm8tc2hhZG93XT1cIlxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FNUicgfHxcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdDTVInIHx8XG4gICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQUFBJyB8fFxuICAgICAgICB1aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiB8fFxuICAgICAgICBwb2xpY3k/LnNob3dDcmVhdGVEb2N1bWVudHNcbiAgICAgIFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiIChzY3JvbGwpPVwic2Nyb2xsRm9ybSgpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgIVsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgb3BlbmVkRnJvbVxuICAgICAgICAgICAgKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIiEodWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICAgICAgICAgICNkcm9wZG93blJvd1xuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAobW9kZSA9PT0gJ0VESVQnIHx8XG4gICAgICAgICAgICAgICAgIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHxcbiAgICAgICAgICAgICAgICBkaXNhYmxlV29ya2Zsb3dDaGFuZ2UgfHxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFByb2dyYW0pICYmXG4gICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93XCI+XG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICAgICAgY3k9XCIyNlwiXG4gICAgICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICNkcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY3VycmVudFdvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgICAgICAgICAgID5TZWxlY3QgYSBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgICAgICAgICA+QXNzaWduIGEgQ2FzZSB0byBXb3JrZmxvdzxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgICA+Kjwvc3BhblxuICAgICAgICAgICAgICAgICAgPjwvbGFiZWxcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhY3VycmVudFdvcmtmbG93ICYmIGN1cnJlbnRXb3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBXb3JrZmxvd1wiIHJlYWRvbmx5IC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkIGZpcnN0LWZpZWxkXCIgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj5cbiAgICAgICAgICAgICAgICAgIDwhLS0ge3tjdXJyZW50V29ya2Zsb3cgfCBqc29ufX0gLS0+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMiB2eC1tci0yXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBuby13aWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZmxvd1R5cGUgPT09ICdBQ1RXJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICc8c3Ryb25nPkNhc2UgUmVwb3J0ZWQgQnk6IDwvc3Ryb25nPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBvcnRCeSB8IHVzZXJQaXBlIDogdXNlckxpc3QpPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIj57e2N1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cbiAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0V29ya2Zsb3coKVwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgIXdvcmtmbG93TGlzdCAmJlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gIT0gJ0FTU0VTU01FTlQnICYmXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdDQVBSJyAmJlxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZSAmJlxuICAgICAgICAgICAgICAgICAgICAhcHJvZ3JhbVNpbXBsaWZ5RmxhZ1xuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3JhbS1idXNpbmVzcy1jeWNsZSB2eC1mcy0xMSB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wdC0yIHZ4LXBiLTEgdngtcGwtMiB2eC1wci0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LW1yLTFcIj4mI3hlOTYzOzwvaT4gVGhpcyBwcm9ncmFtIGlzXG4gICAgICAgICAgICAgICAgICBiZWluZyBzZXQtdXAgZm9yIHRoZSBidXNpbmVzcyBjeWNsZTpcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidngtZnctNjAwIHZ4LW1sLTFcIj57e1xuICAgICAgICAgICAgICAgICAgICBjdXJyZW50QnVzaW5lc3NDeWNsZVxuICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIDxhcHAtY3JlYXRlLWRvY3VtZW50cz48L2FwcC1jcmVhdGUtZG9jdW1lbnRzPiAtLT5cbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstdmlldz48L2FwcC1idWxrLXZpZXc+IC0tPlxuICAgICAgICA8IS0tIDxhcHAtYnVsay1yZXNwb25zaWJpbGl0eS12aWV3PjwvYXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz4gLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctY29tcGxpYW5jZVxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcbiAgICAgICAgICBbaXNFbnRydXN0XT1cImVudHJ1c3RCdXR0b25OYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2VudHJ1c3QnXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW2ZyYW1ld29ya0RldGFpbHNdPVwiZnJhbWV3b3JrRGV0YWlsc1wiXG4gICAgICAgICAgW2Fzc2Vzc21lbnREZXRhaWxzXT1cImFzc2Vzc21lbnREZXRhaWxzXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FSJ1wiXG4gICAgICAgICAgI3Jlc3BvbnNpYmlsaXR5XG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgICBbc2VsZWN0ZWRSQ109XCJzZWxlY3RlZFJDXCJcbiAgICAgICAgICBbY2xvc2VPbkVzY109XCJjbG9zZU9uRXNjXCJcbiAgICAgICAgICAoYXNzaWduZWVUeXBlQ2hhbmdlKT1cImFzc2lnbmVlVHlwZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAob25SZXZpZXdlclR5cGVDaGFuZ2UpPVwib25SZXZpZXdlckNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAocmNTZWxlY3RlZCk9XCJvblJjU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKHJlc2V0Rm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICAob25SZW1vdmluZ0NoZWNrcG9pbnQpPVwib25SZW1vdmluZ0NoZWNrcG9pbnQoJGV2ZW50LCBmYWxzZSwgdHJ1ZSlcIlxuICAgICAgICAgIChpc0Fzc2Vzc21lbnREaXNhYmxlZCk9XCJpc0Fzc2Vzc21lbnREaXNhYmxlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoY2hlY2twb2ludENvdW50VXBkYXRlZCk9XCJjaGVja3BvaW50Q291bnQgPSAkZXZlbnRcIlxuICAgICAgICAgIFtzZWxlY3RlZFByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlEZXRhaWxzXT1cIndvcmtmbG93RGV0YWlsc1wiXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jb21wbGlhbmNlPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2tcbiAgICAgICAgICBbc2Vjb25kYXJ5T3BlblBvcnRhbF09XCJzZWNvbmRhcnlPcGVuUG9ydGFsXCJcbiAgICAgICAgICBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcbiAgICAgICAgICAjcmlza1xuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFtyaXNrSWRdPVwiaWRcIlxuICAgICAgICAgIFtmZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcmlzaz5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1wb2xpY3lcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcbiAgICAgICAgICAjcG9saWN5XG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgW3BvbGljeUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbdGVtcGxhdGVJZF09XCJ0ZW1wbGF0ZUlkXCJcbiAgICAgICAgICBbY29udmVydEZpbGVEYXRhXT1cImNvbnZlcnRGaWxlRGF0YVwiXG4gICAgICAgICAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXG4gICAgICAgICAgW2lzU2VuZEZvckF0dGVzdGF0aW9uXT1cImlzU2VuZEZvckF0dGVzdGF0aW9uXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcG9saWN5PlxuICAgICAgICA8YXBwLXdvcmtmbG93LXN1cnZleS1mb3JtXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVMnXCJcbiAgICAgICAgICAjc3VydmV5Rm9ybVxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctc3VydmV5LWZvcm0+XG4gICAgICAgIDxhcHAtYWRkLW11bHRpcGxlLXJpc2tcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcbiAgICAgICAgICAjbXVsdGlwbGVSaXNrXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgPjwvYXBwLWFkZC1tdWx0aXBsZS1yaXNrPlxuICAgICAgICA8IS0tIDxhcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5ICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiICNtdWx0aXBsZVJlc3BvbnNpYmlsaXR5PlxuICAgICAgICAgICAgICAgIDwvYXBwLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eT4gLS0+XG5cbiAgICAgICAgPGxpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCJcbiAgICAgICAgICAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eVxuICAgICAgICA+PC9saWItYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5LWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBOZXcgTG9nIGFuIElzc3VlIC0tPlxuICAgICAgICA8YXBwLWxvZy1hbi1pc3N1ZVxuICAgICAgICAgIFtpc3N1ZURldGFpbHNdPVwiaXNzdWVEYXRhXCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxuICAgICAgICAgIFtyZXBvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbaXNzdWVJZF09XCJpZFwiXG4gICAgICAgICAgI2xvZ0FuSXNzdWVcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIFsobW9kZSldPVwibW9kZVwiXG4gICAgICAgID5cbiAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPlxuICAgICAgICA8IS0tIE9sZCBMb2cgYW4gaXNzdWUgLS0+XG4gICAgICAgIDwhLS0gPGFwcC1sb2ctYW4taXNzdWUgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCIgW3Jlc3BvbnNpYmlsaXRpZXNEYXRhXT1cInJlcG9uc2liaWx0eURhdGFcIiBbb3BlbmVkRnJvbV09XCJvcGVuZWRGcm9tXCJcbiAgICAgICAgICAgICAgICAjbG9nQW5Jc3N1ZSAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIj5cbiAgICAgICAgICAgIDwvYXBwLWxvZy1hbi1pc3N1ZT4gLS0+XG5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1hc3Nlc3NtZW50XG4gICAgICAgICAgW2Fzc2Vzc21lbnRJZF09XCJpZFwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAjYXNzZXNzbWVudFxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctYXNzZXNzbWVudD5cbiAgICAgICAgPGFwcC1pbXBvcnQtYW4tYXNzZXNzbWVudFxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0lBQSdcIlxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgI2ltcG9ydEFzc2Vzc21lbnRcbiAgICAgICAgPjwvYXBwLWltcG9ydC1hbi1hc3Nlc3NtZW50PlxuICAgICAgICA8IS0tIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbSAjcHJvZ3JhbSAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCIgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCI+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT4gLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctcHJvZ3JhbVxuICAgICAgICAgICNwcm9ncmFtXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiXG4gICAgICAgICAgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgW2FsbG93ZWRGZWF0dXJlXT1cImZlYXR1cmVcIlxuICAgICAgICAgIChkaXNhYmxlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMpPVwiZGlzYWJsZU1vcmVPcHRpb25zKCdDQVBSJywgJGV2ZW50KVwiXG4gICAgICAgICAgW3Byb2dyYW1UeXBlXT1cInByb2dyYW1UeXBlXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcHJvZ3JhbUlkXT1cImlkXCJcbiAgICAgICAgICBbcHJvZ3JhbURldGFpbHNdPVwid29ya2Zsb3dEZXRhaWxzXCJcbiAgICAgICAgICAob25SZW1vdmluZ1JvbGUpPVwib25SZW1vdmluZ1JvbGUoJGV2ZW50KVwiXG4gICAgICAgICAgW2NhbkZyYW1ld29ya0NoYW5nZV09XCJjYW5GcmFtZXdvcmtDaGFuZ2VcIlxuICAgICAgICAgIFthZGRUb1Byb2dyYW1EZXRhaWxzXT1cImFkZFRvUHJvZ3JhbURldGFpbHNcIlxuICAgICAgICA+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT5cblxuICAgICAgICA8IS0tIEdSQyBPYmplY3QgLS0+XG4gICAgICAgIDxsaWItZ3JjLW9iamVjdC1jb250YWluZXJcbiAgICAgICAgICAjZ3JjT2JqZWN0XG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCJcbiAgICAgICAgICBbZ3JjVHlwZV09XCJncmNUeXBlXCJcbiAgICAgICAgICBbTU9ERV09XCJtb2RlXCJcbiAgICAgICAgICBbSURdPVwiaWRcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocmVzZXRGb3JtKT1cIm9uUmVzZXRHUkNGb3JtKClcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgPjwvbGliLWdyYy1vYmplY3QtY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUmVwb3J0IGEgQ2FzZSAtLT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1jYXNlXG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidSQUMnXCJcbiAgICAgICAgICAjcmVwb3J0Q2FzZVxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbY2FzZUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbcmVzcG9uc2liaWxpdHlEYXRhXT1cInJlcG9uc2liaWxpdHlEYXRhXCJcbiAgICAgICAgICBbYXNzZXNzbWVudFF1ZXN0aW9uXT1cImFzc2Vzc21lbnRRdWVzdGlvblwiXG4gICAgICAgICAgW2Nhc2VUeXBlUGVybWlzc2lvbl09XCJjYXNlVHlwZVBlcm1pc3Npb25cIlxuICAgICAgICAgIFt3b3JrZmxvd1R5cGVdPVwiJ1JBQydcIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgID48L2FwcC13b3JrZmxvdy1jYXNlPlxuICAgICAgICA8IS0tIEFzc2lnbiBjYXNlIHRvIHdvcmtmbG93IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LWNhc2VcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FDVFcnXCJcbiAgICAgICAgICAjcmVwb3J0Q2FzZVxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIFtzb3VyY2VdPVwic291cmNlXCJcbiAgICAgICAgICBbY2FzZUlkXT1cImlkXCJcbiAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbd29ya2Zsb3dUeXBlXT1cIidBQ1RXJ1wiXG4gICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtjYXNlVHlwZVBlcm1pc3Npb25dPVwiY2FzZVR5cGVQZXJtaXNzaW9uXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoY2FzZVJlcG9ydGVkQnkpPVwiY2FzZVJlcG9ydGVkQnkoJGV2ZW50KVwiXG4gICAgICAgICAgKHVzZXJMaXN0RW1pdHRlcik9XCJ1c2VyTGlzdEVtaXR0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgPjwvYXBwLXdvcmtmbG93LWNhc2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJbJ1JBQycsICdBQ1RXJ10uaW5jbHVkZXMoY3VycmVudFdvcmtmbG93Py5jb2RlKVwiXG4gICAgICAgIGNsYXNzPVwidngtZC1mbGV4XCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiY2FuY2VsXCJcbiAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIlxuICAgICAgICA+XG4gICAgICAgICAgQ0FOQ0VMXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICBtb2RlID09PSBcIkVESVRcIiAmJiBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09IFwiUkFDXCJcbiAgICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXG4gICAgICAgICAgICAgIDogXCJSZXBvcnRcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBtb2RlID09PSBcIkVESVRcIiAmJiBvcGVuZWRGcm9tICE9PSBcIk1PVkVfVE9fUkVHSVNURVJcIlxuICAgICAgICAgICAgPyBcIlVwZGF0ZVwiXG4gICAgICAgICAgICA6IFwiQWRkXCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgICAgICAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fFxuICAgICAgICAgICFyaXNrQnVsa1VwbG9hZD8uY2F0ZWdvcnk/LnNlbGVjdGVkQ2F0ZWdvcnlcbiAgICAgICAgXCJcbiAgICAgICAgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0FNUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCJcbiAgICAgID5cbiAgICAgICAgQnJvd3NlXG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAoY2xpY2spPVwiYnVsa1VwbG9hZEJyb3dzZSgnQ01SJylcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NNUidcIlxuICAgICAgPlxuICAgICAgICBCcm93c2VcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8IS0tIFRoaXMgaGFzIHRlcm5hcnkgb3BlcmF0aW9uIHRvIGhhbmRsZSB0aGUgYm90aCBzY2VuYXJpb3Mgb2YgaG93IGl0IHdvcmtzIHdpdGggY29tcGxpYW5jZSBhbmQgcHJvZ3JhbSBtb2R1bGUsIHBsZWFzZSBkb24ndCBjaGFuZ2UgdGhpcy4gLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVInXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBlbnRydXN0QnV0dG9uTmFtZSAhPT0gXCJcIiAmJiBtb2RlICE9PSBcIkVESVRcIlxuICAgICAgICAgICAgPyBlbnRydXN0QnV0dG9uTmFtZVxuICAgICAgICAgICAgOiBtb2RlID09PSBcIkVESVRcIiAmJiAhd29ya2Zsb3dEZXRhaWxzPy5kdXBsaWNhdGVcbiAgICAgICAgICAgID8gXCJVUERBVEVcIlxuICAgICAgICAgICAgOiBcIkVudHJ1c3RcIlxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCJcbiAgICAgICAgKGNsaWNrKT1cInN1Ym1pdCgpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICBtb2RlID09IFwiRURJVFwiXG4gICAgICAgICAgICA/IGlzU2VuZEZvckF0dGVzdGF0aW9uXG4gICAgICAgICAgICAgID8gXCJTZW5kIGZvciBhdHRlc3RhdGlvblwiXG4gICAgICAgICAgICAgIDogXCJVcGRhdGVcIlxuICAgICAgICAgICAgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiXG4gICAgICA+XG4gICAgICAgIENvbnRpbnVlIHRvIGRyYWZ0XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkFkZFwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzdWJtaXRcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0FBQSdcIlxuICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cInN1Ym1pdFwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdJQUEnKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXG4gICAgICA+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic3VibWl0XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8ICFwcm9ncmFtPy52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzdWJtaXQoJ0NBUFInKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ0FQUidcIlxuICAgICAgPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCI+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93blwiXG4gICAgICAgICpuZ0lmPVwid29ya2Zsb3dMaXN0XCJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIlxuICAgICAgICBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIlxuICAgICAgPlxuICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1saXN0XCI+XG4gICAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dUeXBlTGlzdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlV29ya2Zsb3coJGV2ZW50LCB3b3JrZmxvdylcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtY3MtcmFkaW9cbiAgICAgICAgICAgICAgKm5nSWY9XCJ3b3JrZmxvdz8uY29kZSAhPT0gJ0FDVFcnXCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cIndvcmtmbG93Py5jb2RlXCJcbiAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiY3VycmVudFdvcmtmbG93Py5jb2RlID09PSB3b3JrZmxvdz8uY29kZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L2FwcC1jcy1yYWRpb1xuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1vdmVybGF5XCJcbiAgICAgICAgKm5nSWY9XCJ3b3JrZmxvd0xpc3RcIlxuICAgICAgICAoY2xpY2spPVwiY2xvc2VXb3JrZmxvd0xpc3QoKVwiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1jb25maXJtYXRpb24tYWxlcnRcbiAgICAgIGlkPVwiY29uZmlybWF0aW9uLWRpYWxvZ3VlXCJcbiAgICAgIChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCJcbiAgICAgIFttZXNzYWdlXT1cImNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnPy5tZXNzYWdlXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWdcIlxuICAgID48L2FwcC1jb25maXJtYXRpb24tYWxlcnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
855
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL3dvcmtmbG93LWVuZ2luZS1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQWlCdkIsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTzdELE1BQU0sT0FBTyxnQ0FBZ0M7SUFRM0MsWUFDUyxZQUEwQixFQUN6QixRQUF5QixFQUMxQixJQUFpQixFQUNoQixnQkFBMkMsRUFDM0Msa0JBQXNDLEVBQ3RDLDJCQUF3RCxFQUN4RCxhQUE0QixFQUM1QixxQkFBNEM7UUFQN0MsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDMUIsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUN4RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QiwwQkFBcUIs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RUFBRTtnQkFHdEQsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFRixVQUFVO3NCQUFyRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ25CLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFDd0IsV0FBVztzQkFBdkQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN0QixNQUFNO3NCQUExQixTQUFTO3VCQUFDLFFBQVE7Z0JBQ00saUJBQWlCO3NCQUF6QyxTQUFTO3VCQUFDLFlBQVk7Z0JBRXZCLDJCQUEyQjtzQkFEMUIsU0FBUzt1QkFBQyxZQUFZO2dCQUd2QixrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVQLE9BQU87c0JBQS9DLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFdkMsU0FBUztzQkFEUixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRWhCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFPZCxPQUFPO3NCQUFmLEtBQUs7Z0JBSStDLGdCQUFnQjtzQkFBcEUsWUFBWTt1QkFBQyx5QkFBeUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkE2VG5ELFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBlZmZlY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWRkTXVsdGlwbGVSaXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vYWRkLW11bHRpcGxlLXJpc2svYWRkLW11bHRpcGxlLXJpc2suY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1hdGlvbkFsZXJ0IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb25maXJtYXRpb24tYWxlcnQnO1xuaW1wb3J0IHsgSXNzdWVDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pc3N1ZS1kYXRhJztcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctYXNzZXNzbWVudC93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbXBvcnRBbkFzc2Vzc21lbnRDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50L2ltcG9ydC1hbi1hc3Nlc3NtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXb3JrZmxvd0NvbXBsaWFuY2VDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy1jb21wbGlhbmNlL3dvcmtmbG93LWNvbXBsaWFuY2UuY29tcG9uZW50JztcbmltcG9ydCB7IFdvcmtmbG93UG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcG9saWN5L3dvcmtmbG93LXBvbGljeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dSaXNrQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcmlzay93b3JrZmxvdy1yaXNrLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBMb2dBbklzc3VlQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9sb2ctYW4taXNzdWUvbG9nLWFuLWlzc3VlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb3JlT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi8uLi9tb3JlLW9wdGlvbi9tb3JlLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50IH0gZnJvbSAnLi4vd29ya2Zsb3ctcHJvZ3JhbS93b3JrZmxvdy1wcm9ncmFtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmNPYmplY3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi93b3JrZmxvdy9ncmMtb2JqZWN0L2dyYy1vYmplY3QtY29udGFpbmVyL2dyYy1vYmplY3QtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcmdhbml6YXRpb25Db21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvY29tbW9uLXdvcmtmbG93LXNlcnZpY2VzL29yZ2FuaXphdGlvbi1jb21tb24uc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFJlcG9ydEFDYXNlU2VydmljZSB9IGZyb20gJy4uL3JlcG9ydC1hLWNhc2Uvc2VydmljZXMvcmVwb3J0LWEtY2FzZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdvcmtmbG93Q2FzZUNvbXBvbmVudCB9IGZyb20gJy4uL3JlcG9ydC1hLWNhc2Uvd29ya2Zsb3ctY2FzZS93b3JrZmxvdy1jYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9yZXBvcnQtY2FzZS1wZXJtaXNzaW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2lmcmFtZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvc3RNZXNzYWdlRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lmcmFtZS10eXBlJztcbmltcG9ydCB7IFJlc3BvbnNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZjb21wbHktd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lci5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93RW5naW5lQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgaXNIb3N0UmVmcmVzaEFjdGl2ZSA9IHRydWU7XG4gIGlzUkNTZWxlY3RlZCA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19ncm91cHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWRkVG9DYXNlTW9kZSA9ICcnO1xuXG4gIHBlcm1pc3Npb25TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIG9yZ0NvbW1vblNlcnZpY2U6IE9yZ2FuaXphdGlvbkNvbW1vblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXBvcnRBQ2FzZVNlcnZpY2U6IFJlcG9ydEFDYXNlU2VydmljZSxcbiAgICBwcml2YXRlIHJlcG9ydENhc2VQZXJtaXNzaW9uU2VydmljZTogUmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgaWZyYW1lU2VydmljZTogSWZyYW1lU2VydmljZSxcbiAgICBwcml2YXRlIHJlc3BvbnNpYmlsaXR5U2VydmljZTogUmVzcG9uc2liaWxpdHlTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuY2hlY2tDdXJyZW50V29ya2Zsb3coKTtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5jYXNlVHlwZUxvYWRlci5uZXh0KHRydWUpO1xuICAgIHRoaXMuY2hlY2tQZXJtaXNzaW9uKCk7XG4gIH1cbiAgQElucHV0KCkgd29ya2Zsb3dUeXBlID0gJyc7XG4gIEBJbnB1dCgpIG1vZGUgPSAnQ1JFQVRFJztcbiAgQElucHV0KCkgaWQgPSAnJztcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICdHTE9CQUwnO1xuICBASW5wdXQoKSBzb3VyY2U6ICdTQVAnIHwgJ1dPUktST09NJyB8ICcnID0gJyc7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBhbGxvd2VkV29ya2Zsb3dzOiBhbnkgPSBbXTtcbiAgQElucHV0KCkgZnJhbWV3b3JrRGV0YWlsczogQXJyYXk8YW55PiA9IFtdOyAvLyBvbmx5IGZvciBjb21wbGlhbmNlIHBhcnQgZm9yIGZyYW1ld29ya1xuICBASW5wdXQoKSBzZWxlY3RlZFJDID0gJyc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeU9wZW5Qb3J0YWwgPSAnJztcbiAgQElucHV0KCkgZGVmYXVsdFJpc2tUeXBlID0gJ05PUk1BTCc7XG4gIEBJbnB1dCgpIG1vdmVUb1JlZ2lzdGVyTW9kZSA9ICcnO1xuICBASW5wdXQoKSB3b3JrZmxvd0RldGFpbHM6IGFueTtcbiAgQElucHV0KCkgcmVwb25zaWJpbGl0eURhdGEgPSB7XG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxuICAgIHJpZDogbnVsbCxcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxuICAgIHJjSWQ6IG51bGwsXG4gICAgZHVlRGF0ZUlkOiAnJyxcbiAgfTtcbiAgQElucHV0KCkgYXNzZXNzbWVudFF1ZXN0aW9uOiBhbnkgPSB7XG4gICAgcXVlc3Rpb25OYW1lOiAnJyxcbiAgICBxdWVzdGlvbk51bWJlcjogJycsXG4gICAgcXVlc3Rpb25JZDogJycsXG4gICAgYXNzZXNzbWVudElkOiAnJyxcbiAgICBhdWRpdGVlSWQ6IG51bGwsXG4gIH07XG4gIEBJbnB1dCgpIHBpZCA9ICcnO1xuICBASW5wdXQoKSBwcm9ncmFtVHlwZTogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgaXNzdWVEYXRhID0ge1xuICAgIGF1ZGl0UGxhbklkOiBudWxsLFxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxuICAgIHJjSWQ6IG51bGwsXG4gIH07XG4gIEBJbnB1dCgpIGVudHJ1c3RCdXR0b25OYW1lID0gJ0VudHJ1c3QnO1xuICBASW5wdXQoKSBjb25maWchOiBJc3N1ZUNvbmZpZ3VyYXRpb247XG4gIEBJbnB1dCgpIGNvbnZlcnRGaWxlRGF0YSA9IHt9O1xuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5ID0gJyc7XG5cbiAgQElucHV0KCkgc2VsZWN0ZWRQcm9ncmFtOiBhbnkgPSBudWxsO1xuICBASW5wdXQoKSBjYW5GcmFtZXdvcmtDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlOyAvLyBpZiBmcmFtZXdvcmsgY2FuIEVkaXRlZCBvciBub3Q7IEZvciBDcmVhdGUgYSBwcm9ncmFtXG4gIEBJbnB1dCgpIC8qICAqL1xuICAvKiAgKi9cbiAgQElucHV0KClcbiAgYWRkVG9Qcm9ncmFtRGV0YWlsczoge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIGZyYW1ld29ya19uYW1lOiBzdHJpbmc7XG4gICAgaWQ/OiBudW1iZXI7XG4gICAgdHlwZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIH0gPSB7XG4gICAgX2lkOiAnJyxcbiAgICBmcmFtZXdvcmtfbmFtZTogJycsXG4gICAgaWQ6IDAsXG4gICAgdHlwZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICB9O1xuICBASW5wdXQoKSBncmNUeXBlOiAwIHwgMSB8IDIgfCAzID0gMDtcbiAgQElucHV0KCkgaXNTZW5kRm9yQXR0ZXN0YXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXNzZXNzbWVudERldGFpbHM6IGFueTtcbiAgQElucHV0KCkgdGVtcGxhdGVJZDogc3RyaW5nID0gJyc7XG5cbiAgb3JnRGV0YWlsczogYW55O1xuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY2FzZUZlYXR1cmVGbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgYW5pbWF0aW9uID0gdHJ1ZTtcbiAgd29ya2Zsb3dMaXN0ID0gZmFsc2U7XG4gIHNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gIGRpc2FibGVXb3JrZmxvd0NoYW5nZSE6IGJvb2xlYW47XG4gIGNoZWNrcG9pbnRDb3VudDogbnVtYmVyID0gMDtcbiAgcmVwb3J0Qnk6IHN0cmluZyA9ICcnO1xuICBjdXJyZW50QnVzaW5lc3NDeWNsZTogYW55ID0gJyc7XG4gIGNhc2VUeXBlUGVybWlzc2lvbjogYm9vbGVhbiA9IGZhbHNlO1xuICBAVmlld0NoaWxkKCdyaXNrJywgeyBzdGF0aWM6IGZhbHNlIH0pIHJpc2tDb21wb25lbnQhOiBXb3JrZmxvd1Jpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ211bHRpcGxlUmlzaycsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByaXNrQnVsa1VwbG9hZCE6IEFkZE11bHRpcGxlUmlza0NvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnbXVsdGlwbGVSZXNwb25zaWJpbGl0eScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQhOiBBZGRNdWx0aXBsZVJpc2tDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3Jlc3BvbnNpYmlsaXR5JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbXBsaWFuY2UhOiBXb3JrZmxvd0NvbXBsaWFuY2VDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ21vcmVPcHRpb24nLCB7IHN0YXRpYzogZmFsc2UgfSkgbW9yZU9wdGlvbiE6IE1vcmVPcHRpb25Db21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJykgZHJvcGRvd24hOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdkcm9wZG93blJvdycsIHsgc3RhdGljOiBmYWxzZSB9KSBkcm9wZG93blJvdyE6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BvbGljeScpIHBvbGljeSE6IFdvcmtmbG93UG9saWN5Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdsb2dBbklzc3VlJykgbG9nSXNzdWVDb21wb25lbnQhOiBMb2dBbklzc3VlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdhc3Nlc3NtZW50JylcbiAgd29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50ITogV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdpbXBvcnRBc3Nlc3NtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGltcG9ydEFuQXNzZXNzbWVudCE6IEltcG9ydEFuQXNzZXNzbWVudENvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgncHJvZ3JhbScsIHsgc3RhdGljOiBmYWxzZSB9KSBwcm9ncmFtITogV29ya2Zsb3dQcm9ncmFtQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdncmNPYmplY3QnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZ3JjT2JqZWN0ITogR3JjT2JqZWN0Q29udGFpbmVyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdyZXBvcnRDYXNlJykgcmVwb3J0Q2FzZSE6IFdvcmtmbG93Q2FzZUNvbXBvbmVudDtcblxuICBkcm9wZG93bkxlZnQhOiBhbnk7XG4gIGRyb3Bkb3duVG9wITogYW55O1xuICBkcm9wZG93bldpZHRoITogYW55O1xuICBjbG9zZU9uRXNjOiBib29sZWFuID0gZmFsc2U7XG4gIC8vIGZlYXR1cmUgZmxhZ1xuICBASW5wdXQoKSBmZWF0dXJlOiBhbnk7XG4gIG9yZ2FuaXphdGlvbkRldGFpbHM6IGFueTtcbiAgc2VsZWN0ZWRBc3Nlc3NtZW50OiBhbnk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKSBvbktleWRvd25IYW5kbGVyKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50XG4gICkge1xuICAgIGlmIChcbiAgICAgIFtcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50Py5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJpc2tCdWxrVXBsb2FkPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5QnVsa1VwbG9hZD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlPy5zaG93U21pbGV5LFxuICAgICAgICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleSxcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSxcbiAgICAgIF0uaW5jbHVkZXModHJ1ZSkgfHxcbiAgICAgIHRoaXMucHJvZ3JhbT8uYWN0aXZlTGlzdCB8fFxuICAgICAgdGhpcy5jb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciB8fFxuICAgICAgdGhpcy5ncmNPYmplY3Q/Lm9wZW5lZFBvcHVwXG4gICAgKSB7XG4gICAgICAvL0RvIE5vdGhpbmdcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93RW5naW5lKCk7XG4gICAgfVxuICB9XG5cbiAgdXNlckxpc3Q6IGFueSA9IFtdO1xuICBjdXJyZW50V29ya2Zsb3chOiBhbnk7XG4gIHdvcmtmbG93VHlwZUxpc3Q6IGFueSA9IFtcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYSBSZXNwb25zaWJpbGl0eScsXG4gICAgICBjb2RlOiAnQ0FSJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVTUE9OU0lCSUxJVFknLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQ3JlYXRlIE11bHRpcGxlIFJlc3BvbnNpYmlsaXRpZXMnLFxuICAgICAgY29kZTogJ0NNUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ01VTFRJUExFX1JFU1BPTlNJQklMSVRZJyxcbiAgICB9LFxuICAgIHsgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUmlzaycsIGNvZGU6ICdBQVInLCBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JJU0snIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIE11bHRpcGxlIFJpc2tzJyxcbiAgICAgIGNvZGU6ICdBTVInLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdNVUxUSVBMRV9SSVNLJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFBvbGljeScsXG4gICAgICBjb2RlOiAnQ0FQJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUE9MSUNZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIFN1cnZleScsXG4gICAgICBjb2RlOiAnQ0FTJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnU1VSVkVZJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHdvcmtmbG93TmFtZTogJ0NyZWF0ZSBhIEZvcm0nLFxuICAgICAgY29kZTogJ0NBRicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ0ZPUk0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnTG9nIGFuIElzc3VlJyxcbiAgICAgIGNvZGU6ICdMQUknLFxuICAgICAgcGVybWlzc2lvbklkZW50aWZpZXI6ICdJU1NVRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdDcmVhdGUgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnQUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnQVNTRVNTTUVOVCcsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdJbXBvcnQgYW4gQXNzZXNzbWVudCcsXG4gICAgICBjb2RlOiAnSUFBJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnSU1QT1JUX0FTU0VTU01FTlQnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgUHJvZ3JhbScsXG4gICAgICBjb2RlOiAnQ0FQUicsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1BST0dSQU0nLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnQWRkIGEgR1JDIE9iamVjdCcsXG4gICAgICBjb2RlOiAnR1JDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnR1JDX09CSkVDVFMnLFxuICAgIH0sXG4gICAge1xuICAgICAgd29ya2Zsb3dOYW1lOiAnUmVwb3J0IGEgQ2FzZScsXG4gICAgICBjb2RlOiAnUkFDJyxcbiAgICAgIHBlcm1pc3Npb25JZGVudGlmaWVyOiAnUkVQT1JUX0FfQ0FTRScsXG4gICAgfSxcbiAgICB7XG4gICAgICB3b3JrZmxvd05hbWU6ICdBc3NpZ24gY2FzZSB0byB3b3JrZmxvdycsXG4gICAgICBjb2RlOiAnQUNUVycsXG4gICAgICBwZXJtaXNzaW9uSWRlbnRpZmllcjogJ1JFUE9SVF9BX0NBU0UnLFxuICAgIH0sXG4gIF07XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbkxpc3QgPSBbXG4gICAgJ09iamVjdGl2ZScsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgJ1Jlc3BvbnNpYmlsaXR5IENhdGVnb3J5JyxcbiAgXTtcbiAgY29uZmlybWF0aW9uQWxlcnRDb25maWc6IENvbmZpcm1hdGlvbkFsZXJ0ID0geyBpc1Zpc2libGU6IGZhbHNlIH07XG5cbiAgY2hlY2tDdXJyZW50V29ya2Zsb3coKSB7XG4gICAgdGhpcy5yZXBvcnRBQ2FzZVNlcnZpY2Uud29ya2Zsb3dDb2RlLnN1YnNjcmliZSgoY29kZSkgPT4ge1xuICAgICAgaWYgKGNvZGUgPT09ICdBQ1cnIHx8IGNvZGUgPT09ICdBQ1RXJykge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gY29kZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5hZGRUb0Nhc2VNb2RlID0gJyc7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgY2xvc2VXb3JrZmxvd0VuZ2luZShldnQ/OiBhbnkpIHtcbiAgICBpZiAoZXZ0Py5jb25maXJtID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoZXZ0ID8gZXZ0LmV2dCA6IGV2dCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xvc2VDb25maXJtKGV2dCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VDb25maXJtKGV2dDogYW55KSB7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6ICdJZiB5b3UgbmF2aWdhdGUgYXdheSwgYW55IHVuc2F2ZWQgY2hhbmdlcyB3aWxsIGJlIGxvc3QuJyxcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NMT1NFJyxcbiAgICAgIGRhdGE6IGV2dCxcbiAgICB9O1xuICB9XG4gIGV4ZWN1dGVDbG9zZShldnQ6IGFueSkge1xuICAgIGlmIChldnQuYWN0aW9uID09PSAnWUVTJykge1xuICAgICAgdGhpcy5jbG9zZVdvcmtmbG93LmVtaXQoKTtcbiAgICB9XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXROZXR3b3JrTGlzdG5lcigpO1xuICAgIHRoaXMuc2V0V29ya2Zsb3codGhpcy53b3JrZmxvd1R5cGUsIHRoaXMud29ya2Zsb3dUeXBlTGlzdCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xuICAgIH0sIDUwMCk7XG4gICAgdGhpcy5zZXRXb3JrZmxvdyh0aGlzLndvcmtmbG93VHlwZSwgdGhpcy53b3JrZmxvd1R5cGVMaXN0KTtcbiAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XG4gICAgdGhpcy5mZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKTtcbiAgICB0aGlzLmdldFVzZXJEZXRhaWxzKCk7XG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcHJvZ3JhbV9zaW1wbGlmeSdcbiAgICApO1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfZ3JvdXBzID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfcmVzcG9uc2liaWxpdHlfZ3JvdXBzJ1xuICAgICk7XG4gICAgdGhpcy5jYXNlRmVhdHVyZUZsYWcgPSB0aGlzLmZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfY2FzZXNfZW5hYmxlZCcpO1xuICAgIHRoaXMuaXNSZXNwb25zaWJpbGl0eVNpbXBsaWZ5KCk7XG4gICAgdGhpcy5nZXRBc3Nlc3NtZW50RGV0YWlscygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjaGVja1Blcm1pc3Npb24oKSB7XG4gICAgdGhpcy5wZXJtaXNzaW9uU3Vic2NyaXB0aW9uID1cbiAgICAgIHRoaXMucmVwb3J0Q2FzZVBlcm1pc3Npb25TZXJ2aWNlLmhhc1Blcm1pc3Npb24uc3Vic2NyaWJlKFxuICAgICAgICAoaGFzUGVybWlzc2lvbikgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZVR5cGVQZXJtaXNzaW9uID0gaGFzUGVybWlzc2lvbjtcbiAgICAgICAgICBpZiAoaGFzUGVybWlzc2lvbikge1xuICAgICAgICAgICAgdGhpcy5jaGVja1JlcG9ydENhc2VQZXJtaXNzaW9uKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLmNhc2VUeXBlTG9hZGVyLm5leHQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgc2V0TmV0d29ya0xpc3RuZXIoKSB7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcignb2ZmbGluZScsIChlKSA9PiB7XG4gICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICdDb25uZWN0aW9uIGxvc3QhPGJyPkNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aXZpdHkuJyxcbiAgICAgICAgJ2FsZXJ0J1xuICAgICAgKTtcbiAgICB9KTtcbiAgICBhZGRFdmVudExpc3RlbmVyKCdvbmxpbmUnLCAoZSkgPT4ge1xuICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFwiWW91J3JlIGJhY2sgb25saW5lIVwiLCAnc3VjY2VzcycpO1xuICAgIH0pO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLndvcmtmbG93VHlwZUxpc3QgPSB0aGlzLndvcmtmbG93VHlwZUxpc3QuZmlsdGVyKCh3b3JrZmxvdzogYW55KSA9PiB7XG4gICAgICBpZiAodGhpcy5hbGxvd2VkV29ya2Zsb3dzLmluY2x1ZGVzKHdvcmtmbG93LnBlcm1pc3Npb25JZGVudGlmaWVyKSkge1xuICAgICAgICByZXR1cm4gd29ya2Zsb3c7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHRoaXMub3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJykge1xuICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGlzYWJsZVdvcmtmbG93Q2hhbmdlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjaGVja1JlcG9ydENhc2VQZXJtaXNzaW9uKCkge1xuICAgIGNvbnN0IGhhc1Blcm1pc3Npb24gPVxuICAgICAgdGhpcy5yZXBvcnRDYXNlUGVybWlzc2lvblNlcnZpY2UuY2hlY2tSZXBvcnRBQ2FzZVBlcm1pc3Npb24oKTtcbiAgICBpZiAoaGFzUGVybWlzc2lvbiAmJiB0aGlzLmNhc2VGZWF0dXJlRmxhZykge1xuICAgICAgdGhpcy5hbGxvd2VkV29ya2Zsb3dzLnB1c2goJ1JFUE9SVF9BX0NBU0UnKTtcbiAgICAgIHRoaXMuYWxsb3dlZFdvcmtmbG93cyA9IHRoaXMuYWxsb3dlZFdvcmtmbG93cy5maWx0ZXIoXG4gICAgICAgICh3b3JrZmxvdzogYW55KSA9PiB3b3JrZmxvdyAhPT0gJ0lTU1VFJ1xuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hbGxvd2VkV29ya2Zsb3dzID0gdGhpcy5hbGxvd2VkV29ya2Zsb3dzLmZpbHRlcihcbiAgICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93ICE9PSAnUkVQT1JUX0FfQ0FTRSdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgdXNlckxpc3RFbWl0dGVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnVzZXJMaXN0ID0gZXZlbnQ7XG4gIH1cblxuICBkZWNpZGVWaWV3TW9yZU9wdGlvbih0eXBlPzogYm9vbGVhbikge1xuICAgIGlmICh0eXBlKSB7XG4gICAgICB0aGlzLmNsb3NlT25Fc2MgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKFsnQ01SJywgJ0FNUicsICdBQUEnLCAnSUFBJ10uaW5jbHVkZXModGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpKSB7XG4gICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmFkZFRvQ2FzZU1vZGUgPT09ICdBQ1cnKSB7XG4gICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0V29ya2Zsb3dTZWxlY3Rvcih0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnUkFDJykge1xuICAgICAgdGhpcy5zaG93TW9yZU9wdGlvbiA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRXb3JrZmxvd1NlbGVjdG9yKHR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodHlwZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuc2hvd01vcmVPcHRpb24gPSB0cnVlO1xuICAgICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNob3dNb3JlT3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgXG4gIHNldFdvcmtmbG93U2VsZWN0b3IodHlwZT86IGJvb2xlYW4pe1xuICAgIGlmICh0eXBlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjYXNlUmVwb3J0ZWRCeShldmVudDogYW55KSB7XG4gICAgdGhpcy5yZXBvcnRCeSA9IGV2ZW50O1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIGlmKHRoaXMuYWRkVG9DYXNlTW9kZSA9PT0gJ0FDVycgfHwgdGhpcy5hZGRUb0Nhc2VNb2RlID09PSAnQUNUVycpIHtcbiAgICAgIHRoaXMucmVwb3J0Q2FzZS5hZGRUb0Nhc2UoKTtcbiAgICAgIHRoaXMuc3VibWl0V29ya2Zsb3coKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoICh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xuICAgICAgY2FzZSAnQUFSJzpcbiAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50LnN1Ym1pdFJpc2soKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdMQUknOlxuICAgICAgICB0aGlzLmxvZ0lzc3VlQ29tcG9uZW50LmFkZElzc3VlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FSJzpcbiAgICAgICAgdGhpcy5jb21wbGlhbmNlLnN1Ym1pdFJlc3BvbnNpYmlsaXR5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FQJzpcbiAgICAgICAgdGhpcy5wb2xpY3kuc3VibWl0UG9saWN5KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQUFBJzpcbiAgICAgICAgdGhpcy53b3JrZmxvd0Fzc2Vzc21lbnRDb21wb25lbnQuc3VibWl0QXNzZXNzbWVudCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUFInOiB7XG4gICAgICAgIHRoaXMucHJvZ3JhbS5zYXZlUHJvZ3JhbSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ0dSQyc6IHtcbiAgICAgICAgdGhpcy5ncmNPYmplY3Quc2F2ZUdSQ09iamVjdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ1JBQyc6IHtcbiAgICAgICAgdGhpcy5yZXBvcnRDYXNlLnJlcG9ydENhc2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICAvLyBjYXNlICdJQUEnOlxuICAgICAgLy8gICB0aGlzLmltcG9ydEFuQXNzZXNzbWVudC5zdWJtaXRBc3Nlc3NtZW50KCk7XG4gICAgfVxuICAgIHRoaXMuc3VibWl0V29ya2Zsb3coKTtcbiAgfVxuXG4gIHN1Ym1pdFdvcmtmbG93KCkgeyBcbiAgICBjb25zdCBtZXNzYWdlID0ge3R5cGU6J3N1Ym1pdCd9XG4gICAgY29uc3QgdGFyZ2V0T3JpZ2luID0gdGhpcy5nZXRPcmlnaW4oKTtcbiAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIHRhcmdldE9yaWdpbik7XG4gIH0gXG4gIFxuICBwcml2YXRlIGdldE9yaWdpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICB9XG5cbiAgZWRpdFdvcmtmbG93KCkge1xuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gIXRoaXMud29ya2Zsb3dMaXN0O1xuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5kcm9wZG93bi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgIHRoaXMuZHJvcGRvd25MZWZ0ID0gZHJvcGRvd24ubGVmdDtcbiAgICB0aGlzLmRyb3Bkb3duVG9wID0gZHJvcGRvd24udG9wICsgZHJvcGRvd24uaGVpZ2h0O1xuICAgIHRoaXMuZHJvcGRvd25XaWR0aCA9IGRyb3Bkb3duLndpZHRoO1xuICB9XG4gIGNsb3NlV29ya2Zsb3dMaXN0KCkge1xuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gZmFsc2U7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIHNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMud29ya2Zsb3dMaXN0ID0gZmFsc2U7XG4gIH1cbiAgY2hhbmdlV29ya2Zsb3coZXZ0OiBhbnksIHNlbGVjdGVkV29ya2Zsb3c6IGFueSkge1xuICAgIGlmIChzZWxlY3RlZFdvcmtmbG93Py5jb2RlID09PSB0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogJ0lmIHlvdSBjaGFuZ2UgdGhlIHdvcmtmbG93LCBhbnkgdW5zYXZlZCBjaGFuZ2VzIHdvdWxkIGJlIGxvc3QuJyxcbiAgICAgIGFjdGlvbjogJ1dPUktGTE9XX0NIQU5HRScsXG4gICAgICBkYXRhOiBzZWxlY3RlZFdvcmtmbG93LFxuICAgIH07XG4gIH1cblxuICBjb25maXJtV29ya2Zsb3dDaGFuZ2UoZXZ0OiBhbnkpIHtcbiAgICBpZiAoZXZ0LmFjdGlvbiA9PT0gJ1lFUycpIHtcbiAgICAgIHRoaXMuY2xvc2VPbkVzYyA9IHRydWU7XG4gICAgICBzd2l0Y2ggKGV2dC5wYXlsb2FkLmFjdGlvbikge1xuICAgICAgICBjYXNlICdXT1JLRkxPV19DSEFOR0UnOlxuICAgICAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID0gZXZ0Py5wYXlsb2FkPy5kYXRhID8/IG51bGw7XG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93Py5jb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb3JlT3B0aW9uKSB7XG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5yZXNldEFsbCh0aGlzLmN1cnJlbnRXb3JrZmxvdz8uY29kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmRlY2lkZVZpZXdNb3JlT3B0aW9uKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VESVRfUklTSyc6XG4gICAgICAgICAgdGhpcy5yaXNrQ29tcG9uZW50LmNyZWF0ZVJpc2sodGhpcy5yaXNrQ29tcG9uZW50LnJpc2tGb3JtKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnUE9MSUNZX1BPUlRBTCc6XG4gICAgICAgICAgdGhpcy5wb2xpY3kuY29uZmlybVBvbGljeVBvcnRhbChldnQuYWN0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnV09SS0ZMT1dfQ0xPU0UnOlxuICAgICAgICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KGV2dD8ucGF5bG9hZD8uZGF0YSk7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuaWZyYW1lU2VydmljZS5nZXRDbG9zZVdlYnZpZXdNZXNzYWdlKFBvc3RNZXNzYWdlRXZlbnQuQ0xPU0VfV0VCVklFVywgJycpO1xuICAgICAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5wb3N0TWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY2hlY2twb2ludCc6XG4gICAgICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgfHxcbiAgICAgICAgICAgICAgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJ1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnJlbW92ZUNoZWNrcG9pbnQoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdST0xFJzpcbiAgICAgICAgICB0aGlzLnByb2dyYW0ucmVtb3ZlKGV2dC5wYXlsb2FkLmRhdGEsICdST0xFJyk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnbmV3LWNoZWNrcG9pbnRzJzpcbiAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKG9wdGlvbj8uY29kZSA9PT0gJ0FTU0VTU01FTlQnICYmICFldnQucGF5bG9hZC5pc0RhdGFSZW1vdmVkKSB7XG4gICAgICAgICAgICAgIG9wdGlvbi5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcHRpb24/LmNvZGUgPT09ICdDSEVDS1BPSU5UUycgJiYgIWV2dC5wYXlsb2FkLmlzRGF0YVJlbW92ZWQpIHtcbiAgICAgICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBldnQucGF5bG9hZC5pc0NoZWNrcG9pbnRDaGVja2VkICYmXG4gICAgICAgICAgICAgIG9wdGlvbj8uY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVydcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBvcHRpb24uY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UubW9yZU9wdGlvbnMuQ0hFQ0tQT0lOVFNfTkVXID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVtb3ZlKCduZXctY2hlY2twb2ludHMnKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzaWduZWVUeXBlQ2hhbmdlJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2UucmVzcG9uc2liaWxpdHlGb3JtLmFzc2lnbmVlcy53aG9DYW5Db21wbGV0ZSA9ICdBTEwnO1xuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLmxpc3QgPVxuICAgICAgICAgICAgdGhpcy5jb21wbGlhbmNlLnNldExpc3QoXG4gICAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5hc3NpZ25lZXNMaXN0LFxuICAgICAgICAgICAgICB0aGlzLmNvbXBsaWFuY2Uub3JpZ2luYWxBc3NpZ25lZSxcbiAgICAgICAgICAgICAgJ2VtcGxveWVlX2lkJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodGhpcy5mZWF0dXJlRmxhZ19ncm91cHMpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZVsncmVzcG9uc2liaWxpdHlGb3JtJ11bJ2Fzc2lnbmVlR3JvdXBzJ11bJ2xpc3QnXSA9XG4gICAgICAgICAgICAgIFtdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdzZXF1ZW50aWFsJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXG4gICAgICAgICAgXSA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2FueVJldmlld2VyJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXG4gICAgICAgICAgXSA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKGV2dC5wYXlsb2FkLmFjdGlvbikge1xuICAgICAgICBjYXNlICdQT0xJQ1lfUE9SVEFMJzpcbiAgICAgICAgICB0aGlzLnBvbGljeS5jb25maXJtUG9saWN5UG9ydGFsKGV2dC5hY3Rpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhc3NpZ25lZVR5cGVDaGFuZ2UnOlxuICAgICAgICAgIHRoaXMuY29tcGxpYW5jZS5yZXNwb25zaWJpbGl0eUZvcm0uYXNzaWduZWVzLndob0NhbkNvbXBsZXRlID1cbiAgICAgICAgICAgICdBTllfT05FJztcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlICdzZXF1ZW50aWFsJzpcbiAgICAgICAgICB0aGlzLmNvbXBsaWFuY2VbJ3Jlc3BvbnNpYmlsaXR5Rm9ybSddWydyZXZpZXdlcnMnXVtcbiAgICAgICAgICAgICdzZXF1ZW50aWFsV29ya2Zsb3cnXG4gICAgICAgICAgXSA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdhbnlSZXZpZXdlcic6XG4gICAgICAgICAgdGhpcy5jb21wbGlhbmNlWydyZXNwb25zaWJpbGl0eUZvcm0nXVsncmV2aWV3ZXJzJ11bXG4gICAgICAgICAgICAnc2VxdWVudGlhbFdvcmtmbG93J1xuICAgICAgICAgIF0gPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiBmYWxzZSxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgYWN0aW9uOiAnJyxcbiAgICAgIGRhdGE6IG51bGwsXG4gICAgfTtcbiAgICByZXR1cm4gZXZ0O1xuICB9XG5cbiAgc2V0V29ya2Zsb3cod29ya0Zsb3dDb2RlOiBhbnksIHdvcmtGbG93TGlzdDogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRXb3JrZmxvdyA9IHdvcmtGbG93TGlzdC5maW5kKFxuICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudD8uY29kZSA9PT0gd29ya0Zsb3dDb2RlXG4gICAgKTtcbiAgICBzZWxlY3RlZFdvcmtmbG93XG4gICAgICA/ICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9IHNlbGVjdGVkV29ya2Zsb3cpXG4gICAgICA6ICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9IG51bGwpO1xuICAgIHJldHVybiBzZWxlY3RlZFdvcmtmbG93O1xuICB9XG5cbiAgYWRkTW9yZUluZm8oZXZlbnQ6IGFueSkge1xuICAgIHN3aXRjaCAodGhpcy5jdXJyZW50V29ya2Zsb3c/LmNvZGUpIHtcbiAgICAgIGNhc2UgJ0FBUic6XG4gICAgICAgIHRoaXMucmlza0NvbXBvbmVudD8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0xBSSc6XG4gICAgICAgIHRoaXMubG9nSXNzdWVDb21wb25lbnQ/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdSQUMnOlxuICAgICAgY2FzZSAnQUNUVyc6XG4gICAgICAgIHRoaXMucmVwb3J0Q2FzZS5hZGRNb3JlSW5mbyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ0FSJzpcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50RGV0YWlscz8uYXNzZXNzbWVudF90eXBlPy50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICdjb21wbGlhbmNlX2F1ZGl0J1xuICAgICAgICApIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbj8ubW9yZU9wdGlvbnNMaXN0Py5DQVI/LmZpbmRJbmRleChcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5jb2RlID09PSAnQVNTRVNTTUVOVCdcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLm1vcmVPcHRpb24ubW9yZU9wdGlvbnNMaXN0LkNBUltpbmRleF0uY2hlY2tlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuY29tcGxpYW5jZT8uYWRkTW9yZUluZm8oXG4gICAgICAgICAgICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBsaWFuY2U/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdDQVAnOlxuICAgICAgICB0aGlzLnBvbGljeT8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NBUFInOlxuICAgICAgICB0aGlzLnByb2dyYW0/LmFkZE1vcmVJbmZvKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdHUkMnOlxuICAgICAgICB0aGlzLmdyY09iamVjdD8uYWRkTW9yZUluZm8oZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwb3B1bGF0ZU1vcmVPcHRpb24oZXZlbnQ6IGFueSkge1xuICAgIGlmICh0aGlzLm1vcmVPcHRpb24pIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbi5wb3B1bGF0ZShldmVudCk7XG4gICAgfVxuICB9XG4gIGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyhldmVudDogYW55KSB7XG4gICAgdGhpcy5tb3JlT3B0aW9uPy5oaWRlRWxlbWVudHMoZXZlbnQpO1xuICB9XG5cbiAgc2hvd0NvbmZpcm1hdGlvblBvcHVwKGNvbmZpZzogQ29uZmlybWF0aW9uQWxlcnQpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0gY29uZmlnO1xuICB9XG5cbiAgYnVsa1VwbG9hZEJyb3dzZShldmVudDogYW55KSB7XG4gICAgc3dpdGNoIChldmVudCkge1xuICAgICAgY2FzZSAnQU1SJzpcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC50cmlnZ2VyQnJvd3NlRmlsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0NNUic6XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkLnRyaWdnZXJCcm93c2VGaWxlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSUFBJzpcbiAgICAgICAgdGhpcy5pbXBvcnRBbkFzc2Vzc21lbnQudHJpZ2dlckJyb3dzZUZpbGUoKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG9uUmVzZXRGb3JtKCkge1xuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xuICAgIHRoaXMuZW50cnVzdEJ1dHRvbk5hbWUgPSAnRW50cnVzdCc7XG4gIH1cblxuICBvblJlc2V0R1JDRm9ybSgpIHtcbiAgICB0aGlzLm1vZGUgPSAnQ1JFQVRFJztcbiAgfVxuICBzaGlmdFRvRWRpdE1vZGUoKSB7XG4gICAgdGhpcy5tb2RlID0gJ0VESVQnO1xuICB9XG4gIHNjcm9sbEZvcm0oKSB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25Sb3c/Lm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpPy50b3AgPCAzOCkge1xuICAgICAgdGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5hZGQoJ2hpZGUnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcm9wZG93blJvdz8ubmF0aXZlRWxlbWVudD8uY2xhc3NMaXN0Py5yZW1vdmUoJ2hpZGUnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHdoaWNoIG1vcmUgb3B0aW9ucyB3ZSBhcmUgcmVtb3ZpbmcuXG4gICAqIEBwYXJhbSBpc0NoZWNrcG9pbnRDaGVja2VkICBpcyB0cnVlIGlmIHZhbHVlIGNoZWNrcG9pbnRzIGlzIHJlbW92ZWQgYnkgY2xpY2tpbmcgb24gbW9yZSBvcHRpb25zXG4gICAqL1xuICBvblJlbW92aW5nQ2hlY2twb2ludChcbiAgICBldmVudDogc3RyaW5nLFxuICAgIGlzQ2hlY2twb2ludENoZWNrZWQ/OiBib29sZWFuLFxuICAgIGlzRGF0YVJlbW92ZWQ/OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGxldCBtc2cgPSAnJztcbiAgICBpZiAoZXZlbnQgPT09ICduZXctY2hlY2twb2ludHMnKSB7XG4gICAgICBtc2cgPVxuICAgICAgICAnSWYgeW91IGNob29zZSB0byByZW1vdmUgdGhlc2UgQ2hlY2twb2ludHMsIHRoZXkgd2lsbCBiZSBkZWxldGVkIGFuZCBjYW5ub3QgYmUgcmVzdG9yZWQuIEhvd2V2ZXIsIHlvdSB3aWxsIHN0aWxsIGJlIGFibGUgdG8gY3JlYXRlIG5ldyBDaGVja3BvaW50cyBvciBsaW5rIGFuIEFzc2Vzc21lbnQuJztcbiAgICB9IGVsc2Uge1xuICAgICAgbXNnID1cbiAgICAgICAgJ0lmIHlvdSBjaG9vc2UgdG8gcmVtb3ZlIHRoZXNlIGNoZWNrcG9pbnRzLCB0aGV5IHdpbGwgYmUgZGVsZXRlZCBhbmQgY2Fubm90IGJlIHJlc3RvcmVkLic7XG4gICAgfVxuICAgIHRoaXMuY29uZmlybWF0aW9uQWxlcnRDb25maWcgPSB7XG4gICAgICBpc1Zpc2libGU6IHRydWUsXG4gICAgICBtZXNzYWdlOiBtc2csXG4gICAgICBhY3Rpb246IGV2ZW50LFxuICAgICAgZGF0YTogeyB0eXBlOiAncmVzcG9uc2liaWxpdHlDaGVja3BvaW50JyB9LFxuICAgICAgaXNDaGVja3BvaW50Q2hlY2tlZDogaXNDaGVja3BvaW50Q2hlY2tlZCA/PyBmYWxzZSxcbiAgICAgIGlzRGF0YVJlbW92ZWQ6IGlzRGF0YVJlbW92ZWQgPz8gZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIG9uUmVtb3ZpbmdSb2xlKGV2ZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgbXNnID0gJyc7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICBtc2cgPSAnSWYgeW91IGNoYW5nZSB0aGUgcm9sZXMsIGFueSB1bnNhdmVkIGNoYW5nZXMgd291bGQgYmUgbG9zdC4nO1xuICAgIH1cbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTogbXNnLFxuICAgICAgYWN0aW9uOiAnUk9MRScsXG4gICAgICBkYXRhOiBldmVudCxcbiAgICB9O1xuICB9XG5cbiAgaXNBc3Nlc3NtZW50RGlzYWJsZWQoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMubW9yZU9wdGlvbi5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICBpZiAob3B0aW9uPy5jb2RlID09PSAnQVNTRVNTTUVOVCcgfHwgb3B0aW9uPy5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xuICAgICAgICBvcHRpb24uaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkaXNhYmxlTW9yZU9wdGlvbnMod29ya2Zsb3dDb2RlOiBhbnksIGRpc2FibGVkRWxlbWVudHNDb2RlOiBhbnkpIHtcbiAgICBpZiAoT2JqZWN0LmtleXModGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdCkuaW5jbHVkZXMod29ya2Zsb3dDb2RlKSkge1xuICAgICAgdGhpcy5tb3JlT3B0aW9uLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd0NvZGVdLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZEVsZW1lbnRzQ29kZS5pbmNsdWRlcyhvcHRpb24/LmNvZGUpKSB7XG4gICAgICAgICAgb3B0aW9uLmlzRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvbkNoZWNrcG9pbnRTZWxlY3Rpb24oZXZlbnQ6IG51bWJlcikge1xuICAgIHRoaXMuY2hlY2twb2ludENvdW50ID0gZXZlbnQ7XG4gIH1cblxuICBvblJjU2VsZWN0ZWQoaXNSY1NlbGVjdGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc1JDU2VsZWN0ZWQgPSBpc1JjU2VsZWN0ZWQ7XG4gIH1cblxuICBmZXRjaE9yZ2FuaXphdGlvbkRldGFpbHMoKSB7XG4gICAgdGhpcy5vcmdDb21tb25TZXJ2aWNlPy5nZXRPcmdEZXRhaWxzSW5mbygpPy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMub3JnRGV0YWlscyA9IHJlcztcbiAgICAgICAgaWYgKHJlcz8uYnVzaW5lc3NfY3ljbGVzX2FyciAmJiByZXM/LmJ1c2luZXNzX2N5Y2xlc19hcnI/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gcmVzPy5idXNpbmVzc19jeWNsZXNfYXJyLmZpbHRlcihcbiAgICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5zZWxlY3RlZFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3Qgc3BsaXR0ZWQgPSBzZWxlY3RlZFswXS5idXNpbmVzc19jeWNsZT8uc3BsaXQoJy0nKTtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRCdXNpbmVzc0N5Y2xlID0gYCR7c3BsaXR0ZWRbMF0/LnNsaWNlKFxuICAgICAgICAgICAgMlxuICAgICAgICAgICl9IC0gJHtzcGxpdHRlZFsxXT8uc2xpY2UoNCl9YDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICBnZXRVc2VyRGV0YWlscygpIHtcbiAgICB0aGlzLm9yZ0NvbW1vblNlcnZpY2U/LmdldE9yZ1VzZXJJbmZvKCk/LnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hdXRoLnVzZXJEZXRhaWxzID0gcmVzO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBvcmdhbml6YXRpb24gdXNlcnMnLCBlcnIpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzc2lnbmVlVHlwZUNoYW5nZSgpIHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbkFsZXJ0Q29uZmlnID0ge1xuICAgICAgaXNWaXNpYmxlOiB0cnVlLFxuICAgICAgbWVzc2FnZTpcbiAgICAgICAgJ1RoaXMgYWN0aW9uIHdpbGwgcmVzZXQgdGhlIGNoYW5nZXMgYW5kIGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgYmFjayB0byB0aGUgb3JpZ2luYWwgYXNzaWduZWUuJyxcbiAgICAgIGFjdGlvbjogJ2Fzc2lnbmVlVHlwZUNoYW5nZScsXG4gICAgICBkYXRhOiB7fSxcbiAgICAgIGlzUmVkQWxlcnQ6IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIC8vIGV2ZW50ID0+ICdzZXF1ZW50aWFsJyB8fCAnYW55UmV2aWV3ZXInXG4gIG9uUmV2aWV3ZXJDaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIGNvbnN0IGNvbW1vblRleHQ6IHN0cmluZyA9XG4gICAgICAnT25jZSBjb25maXJtZWQsIHRoZSBuZXcgcmV2aWV3IHdvcmtmbG93IHdpbGwgYmUgYXBwbGljYWJsZSBmb3IgYWxsIGN1cnJlbnQgYW5kIGZ1dHVyZSByZXZpZXcgZHVlIGRhdGVzLic7XG4gICAgY29uc3QgbXNnID1cbiAgICAgIGNvbW1vblRleHQgK1xuICAgICAgKGV2ZW50ID09PSAnYW55UmV2aWV3ZXInXG4gICAgICAgID8gYElmIGFueSByZXZpZXdlciBoYWQgY29tcGxldGVkIHRoZSByZXZpZXcsIHRoZSBjdXJyZW50IHJldmlldyBkdWUgZGF0ZSB3aWxsIGJlIGNsb3NlZCBhbmQgdGhlIHJldmlldyBzdGF0dXMgd2lsbCBiZSB1cGRhdGVkIHRvICdDb21wbGV0ZWQnLmBcbiAgICAgICAgOiAnJyk7XG4gICAgdGhpcy5jb25maXJtYXRpb25BbGVydENvbmZpZyA9IHtcbiAgICAgIGlzVmlzaWJsZTogdHJ1ZSxcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGFjdGlvbjogZXZlbnQsXG4gICAgfTtcbiAgfVxuXG4gIGlzUmVzcG9uc2liaWxpdHlTaW1wbGlmeSgpIHtcbiAgICBpZiAodGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Jlc3BvbnNpYmlsaXR5X3NpbXBsaWZpY2F0aW9uJykpIHtcbiAgICAgIHRoaXMud29ya2Zsb3dUeXBlTGlzdFswXS53b3JrZmxvd05hbWUgPSAnQWRkIGEgUmVzcG9uc2liaWxpdHknO1xuICAgICAgdGhpcy53b3JrZmxvd1R5cGVMaXN0WzFdLndvcmtmbG93TmFtZSA9ICdBZGQgTXVsdGlwbGUgUmVzcG9uc2liaWxpdGllcyc7XG4gICAgfVxuICB9XG5cbiAgIC8vIFRPRE86IFBvcHVsYXRlIGFzc2Vzc21lbnQgZGF0YSBmcm9tIGFscmVhZHkgc2VsZWN0ZWQgZGF0YVxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGFzc2Vzc21lbnREZXRhaWxzIDogc2VsZWN0ZWQgYXNzZXNzbWVudCBkZXRhaWxzIGxpa2UgaXQncyBvYmplY3QgaWQgYW5kIGNhdGVnb3J5X2lkXG4gICAqL1xuICBnZXRBc3Nlc3NtZW50RGV0YWlscygpIHtcbiAgICBjb25zdCBpZCA9IHRoaXMud29ya2Zsb3dEZXRhaWxzPy5hc3Nlc3NtZW50Py5hc3Nlc3NtZW50X2lkOyBcbiAgICBpZihpZCAmJiB0aGlzLndvcmtmbG93VHlwZSA9PT0gJ0FTU0VTU01FTlQnKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVNlcnZpY2VcbiAgICAgIC5nZXRBc3Nlc3NtZW50RGV0YWlsc0J5SUQoaWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhyZXMsIFwicmVzXCIpO1xuICAgICAgICB0aGlzLnNldEFzc2Vzc21lbnREYXRhKHJlcyk7XG4gICAgICB9KTtcbiAgfVxufVxuXG4gIHNldEFzc2Vzc21lbnREYXRhKHJlczogYW55KSB7XG4gICAgICAgIGNvbnN0IGNhdGVnb3J5RGV0YWlscyA9IHJlc1swXS5jYXRlZ29yeVswXVxuICAgICAgICBjb25zdCBhc3Nlc3NtZW50RGF0YSA9IHtcbiAgICAgICAgICBjYXRlZ29yeV9pZDogcmVzWzBdLmNhdGVnb3J5WzBdLl9pZCxcbiAgICAgICAgICBhc3Nlc3NtZW50X2lkOiByZXNbMF0uYXNzZXNzbWVudF9pZCxcbiAgICAgICAgICBhc3Nlc3NtZW50RGV0YWlsczoge1xuICAgICAgICAgICAgaWQ6IHJlc1swXS5hc3Nlc3NtZW50X2lkLFxuICAgICAgICAgICAgYXNzZXNzbWVudF9uYW1lOiByZXNbMF0uYXNzZXNzbWVudF9uYW1lLFxuICAgICAgICAgICAgcXVlc3Rpb25zOiByZXNbMF0ucXVlc3Rpb25zQ291bnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjYXRlZ29yeV9kZXRhaWxzOiBjYXRlZ29yeURldGFpbHMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBc3Nlc3NtZW50ID0gYXNzZXNzbWVudERhdGE7XG4gIFxufVxufVxuIiwiPGFwcC1zbmFjay1iYXI+PC9hcHAtc25hY2stYmFyPlxuPGRpdiBjbGFzcz1cIndvcmtmbG93LWVuZ2luZS1vdmVybGF5XCI+PC9kaXY+XG5cbjxhcHAtYXNzZXNzbWVudC1saXN0ICpuZ0lmPVwid29ya2Zsb3dUeXBlID09PSAnQVNTRVNTTUVOVCdcIiAoY2FuY2VsQXNzZXNzbWVudCk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIiBbaXNFZGl0XT1cInRydWVcIlxuICBbaXNGdWxsU2NyZWVuXT1cInRydWVcIiBbc2VsZWN0ZWRBc3Nlc3NtZW50XT1cInNlbGVjdGVkQXNzZXNzbWVudFwiXG4gIChvbkFzc2Vzc21lbnRTZWxlY3QpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSh7IGV2dDogJGV2ZW50LCBjb25maXJtOiBmYWxzZSB9KVwiPjwvYXBwLWFzc2Vzc21lbnQtbGlzdD5cbjxkaXYgKm5nSWY9XCJ3b3JrZmxvd1R5cGUgIT09ICdBU1NFU1NNRU5UJ1wiIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lXCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCIgW2NsYXNzLmJnXT1cIlxuICAgICghaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCByaXNrQnVsa1VwbG9hZD8uc2hvd0NhdGVnb3J5TGlzdCkgJiZcbiAgICAhcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXG4gIFwiPlxuICA8ZGl2IGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLWNvbnRhaW5lclwiIFtuZ1N3aXRjaF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGVcIlxuICAgIFtjbGFzcy53aXRoLXByZXZpZXctYXNzZXNzbWVudF09XCIoYXV0aD8ucHJldmlld1BhbmVsIHwgYXN5bmMpID09PSB0cnVlXCIgW2NsYXNzLndpdGgtZnJlcXVlbmN5XT1cIlxuICAgICAgY29tcGxpYW5jZT8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBjb21wbGlhbmNlPy5hY3RpdmVTZWxlY3RvciA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5JyB8fFxuICAgICAgcmlza0NvbXBvbmVudD8uYWN0aXZlU2VsZWN0b3IgPT09ICdmcmVxdWVuY3knIHx8XG4gICAgICBwb2xpY3k/LmFjdGl2ZVNlbGVjdG9yID09PSAnZnJlcXVlbmN5JyB8fFxuICAgICAgcG9saWN5Py5hY3RpdmVTZWxlY3RvciA9PT0gJ3Jldmlld2VyRnJlcXVlbmN5J1xuICAgIFwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoKVwiIGlkPVwiY2xvc2Utd29ya2Zsb3ctZW5naW5lLWJ0blwiIGNsYXNzPVwiY2xvc2VcIiBbYXBwVG9vbHRpcF09XCInW0VzY10gdG8gY2xvc2UnXCJcbiAgICAgIHBsYWNlbWVudD1cImxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCIgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgICBjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlIHx8ICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXG4gICAgICBcIiBbY2xhc3Muc21pbGV5LW9wZW5lZF09XCJcbiAgICAgICAgcmlza0NvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBsb2dJc3N1ZUNvbXBvbmVudD8uc2hvd1NtaWxleSB8fFxuICAgICAgICBjb21wbGlhbmNlPy5zaG93U21pbGV5IHx8XG4gICAgICAgIHBvbGljeT8uc2hvd0NyZWF0ZURvY3VtZW50cyB8fFxuICAgICAgICByZXNwb25zaWJpbGl0eUJ1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmVzcG9uc2liaWxpdHlCdWxrVXBsb2FkPy5zaG93RXhjZWwgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dTbWlsZXkgfHxcbiAgICAgICAgcmlza0J1bGtVcGxvYWQ/LnNob3dFeGNlbCB8fFxuICAgICAgICBwcm9ncmFtPy5zaG93U21pbGV5IHx8XG4gICAgICAgIGltcG9ydEFuQXNzZXNzbWVudD8uc2hvd1NtaWxleVxuICAgICAgXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkzZjs8L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiAqbmdJZj1cIiF1aUtpdFNlcnZpY2UuaXNTbWlsZXlPblwiIGNsYXNzPVwid29ya2Zsb3ctZW5naW5lLW1vcmVcIlxuICAgICAgW2hpZGRlbl09XCJzaG93TW9yZU9wdGlvbiA9PT0gZmFsc2UgfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXCJcbiAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCIgW2NsYXNzLnJlYWQtb25seV09XCJ1aUtpdFNlcnZpY2U/LmlzTG9hZGVyXCI+XG4gICAgICA8YXBwLW1vcmUtb3B0aW9uICNtb3JlT3B0aW9uIFtjdXJyZW50V29ya2Zsb3ddPVwiY3VycmVudFdvcmtmbG93Py5jb2RlXCIgW2lzRWRpdE1vZGVdPVwibW9kZSA9PT0gJ0VESVQnXCJcbiAgICAgICAgW2lzUkNTZWxlY3RlZF09XCJcbiAgICAgICAgICBpc1JDU2VsZWN0ZWQgfHxcbiAgICAgICAgICAoY3VycmVudFdvcmtmbG93Py5jb2RlID09PSAnR1JDJyAmJlxuICAgICAgICAgICAgZ3JjT2JqZWN0Py5saXN0T2JqZWN0LlJDLnNlbGVjdGVkRGF0YT8ubGVuZ3RoID4gMClcbiAgICAgICAgXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiIChzZWxlY3RlZE9wdGlvbik9XCJhZGRNb3JlSW5mbygkZXZlbnQpXCIgW2lzUHJvZ3JhbVNlbGVjdGVkXT1cInNlbGVjdGVkUHJvZ3JhbVwiXG4gICAgICAgIFthbGxvd2VkRmVhdHVyZV09XCJmZWF0dXJlXCIgW29yZ0RldGFpbHNEYXRhXT1cIm9yZ0RldGFpbHNcIiBbaXNBdHRyaWJ1dGVzQXZhaWxhYmxlXT1cIlxuICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0dSQycgJiZcbiAgICAgICAgICBncmNPYmplY3Q/LnNlbGVjdGVkQXR0cmlidXRlcz8uYXR0cmlidXRlcz8ubGVuZ3RoID4gMFxuICAgICAgICBcIj5cbiAgICAgIDwvYXBwLW1vcmUtb3B0aW9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1lbmdpbmUtZm9ybVwiIFtjbGFzcy5kaXNhYmxlZF09XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCIgW2NsYXNzLm5vLXNoYWRvd109XCJcbiAgICAgICAgY3VycmVudFdvcmtmbG93Py5jb2RlID09ICdBTVInIHx8XG4gICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PSAnQ01SJyB8fFxuICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT0gJ0FBQScgfHxcbiAgICAgICAgdWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHxcbiAgICAgICAgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzXG4gICAgICBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIiAoc2Nyb2xsKT1cInNjcm9sbEZvcm0oKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgICAhWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxuICAgICAgICAgICAgICBvcGVuZWRGcm9tXG4gICAgICAgICAgICApXG4gICAgICAgICAgXCI+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiEodWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gfHwgcG9saWN5Py5zaG93Q3JlYXRlRG9jdW1lbnRzKVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAjZHJvcGRvd25Sb3dcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKG1vZGUgPT09ICdFRElUJyB8fFxuICAgICAgICAgICAgICAgICFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkIHx8XG4gICAgICAgICAgICAgICAgZGlzYWJsZVdvcmtmbG93Q2hhbmdlIHx8XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRQcm9ncmFtKSAmJlxuICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgIT09ICdBQ1RXJ1xuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImN1cnJlbnRXb3JrZmxvd1wiPlxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICNkcm9wZG93bj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgIT09ICdBQ1RXJ1wiIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIFdvcmtmbG93PHNwYW5cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09ICdBQ1RXJ1wiIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkFzc2lnbiBhIENhc2UgdG8gV29ya2Zsb3c8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cIiFjdXJyZW50V29ya2Zsb3cgJiYgY3VycmVudFdvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRXb3JrZmxvdygpXCI+XG4gICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIFdvcmtmbG93XCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWQgZmlyc3QtZmllbGRcIiAqbmdJZj1cImN1cnJlbnRXb3JrZmxvd1wiPlxuICAgICAgICAgICAgICAgICAgPCEtLSB7e2N1cnJlbnRXb3JrZmxvdyB8IGpzb259fSAtLT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHQgbm8td2lkdGhcIiBbYXBwVG9vbHRpcF09XCJjdXJyZW50V29ya2Zsb3c/LndvcmtmbG93TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB3b3JrZmxvd1R5cGUgPT09ICdBQ1RXJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICA/ICc8c3Ryb25nPkNhc2UgUmVwb3J0ZWQgQnk6IDwvc3Ryb25nPicgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXBvcnRCeSB8IHVzZXJQaXBlIDogdXNlckxpc3QpPy5tZW1iZXJfbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRXb3JrZmxvdz8ud29ya2Zsb3dOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPnt7Y3VycmVudFdvcmtmbG93Py53b3JrZmxvd05hbWV9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImVkaXRXb3JrZmxvdygpXCIgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAhd29ya2Zsb3dMaXN0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgb3BlbmVkRnJvbSAhPSAnQVNTRVNTTUVOVCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3c/LmNvZGUgIT09ICdBQ1RXJ1xuICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gJ0NBUFInICYmXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlICYmXG4gICAgICAgICAgICAgICAgICAgICFwcm9ncmFtU2ltcGxpZnlGbGFnXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWJ1c2luZXNzLWN5Y2xlIHZ4LWZzLTExIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXB0LTIgdngtcGItMSB2eC1wbC0yIHZ4LXByLTFcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTIgdngtbXItMVwiPiYjeGU5NjM7PC9pPiBUaGlzIHByb2dyYW0gaXNcbiAgICAgICAgICAgICAgICAgIGJlaW5nIHNldC11cCBmb3IgdGhlIGJ1c2luZXNzIGN5Y2xlOlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2eC1mdy02MDAgdngtbWwtMVwiPnt7XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRCdXNpbmVzc0N5Y2xlXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSA8YXBwLWNyZWF0ZS1kb2N1bWVudHM+PC9hcHAtY3JlYXRlLWRvY3VtZW50cz4gLS0+XG4gICAgICAgIDwhLS0gPGFwcC1idWxrLXZpZXc+PC9hcHAtYnVsay12aWV3PiAtLT5cbiAgICAgICAgPCEtLSA8YXBwLWJ1bGstcmVzcG9uc2liaWxpdHktdmlldz48L2FwcC1idWxrLXJlc3BvbnNpYmlsaXR5LXZpZXc+IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LWNvbXBsaWFuY2UgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiBbb3JnRGV0YWlsc109XCJvcmdEZXRhaWxzXCJcbiAgICAgICAgICBbaXNFbnRydXN0XT1cImVudHJ1c3RCdXR0b25OYW1lLnRvTG93ZXJDYXNlKCkgPT0gJ2VudHJ1c3QnXCIgW3Jlc3BvbnNpYmlsaXR5SWRdPVwiaWRcIiBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICBbZnJhbWV3b3JrRGV0YWlsc109XCJmcmFtZXdvcmtEZXRhaWxzXCIgW2Fzc2Vzc21lbnREZXRhaWxzXT1cImFzc2Vzc21lbnREZXRhaWxzXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIiAjcmVzcG9uc2liaWxpdHlcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKHBvcHVsYXRlT3B0aW9uKT1cInBvcHVsYXRlTW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCIgW3NlbGVjdGVkUkNdPVwic2VsZWN0ZWRSQ1wiXG4gICAgICAgICAgW2Nsb3NlT25Fc2NdPVwiY2xvc2VPbkVzY1wiIChhc3NpZ25lZVR5cGVDaGFuZ2UpPVwiYXNzaWduZWVUeXBlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChvblJldmlld2VyVHlwZUNoYW5nZSk9XCJvblJldmlld2VyQ2hhbmdlKCRldmVudClcIiBbZmVhdHVyZV09XCJmZWF0dXJlXCIgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIiAocmVzZXRGb3JtKT1cIm9uUmVzZXRGb3JtKClcIlxuICAgICAgICAgIChvblJlbW92aW5nQ2hlY2twb2ludCk9XCJvblJlbW92aW5nQ2hlY2twb2ludCgkZXZlbnQsIGZhbHNlLCB0cnVlKVwiXG4gICAgICAgICAgKGlzQXNzZXNzbWVudERpc2FibGVkKT1cImlzQXNzZXNzbWVudERpc2FibGVkKCRldmVudClcIiAoY2hlY2twb2ludENvdW50VXBkYXRlZCk9XCJjaGVja3BvaW50Q291bnQgPSAkZXZlbnRcIlxuICAgICAgICAgIFtzZWxlY3RlZFByb2dyYW1dPVwic2VsZWN0ZWRQcm9ncmFtXCIgW3Jlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJ3b3JrZmxvd0RldGFpbHNcIj48L2FwcC13b3JrZmxvdy1jb21wbGlhbmNlPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXJpc2sgW3NlY29uZGFyeU9wZW5Qb3J0YWxdPVwic2Vjb25kYXJ5T3BlblBvcnRhbFwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCIgI3Jpc2tcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCJcbiAgICAgICAgICAoaGlkZUVsZW1lbnRzRnJvbU1vcmVPcHRpb25zKT1cImhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucygkZXZlbnQpXCJcbiAgICAgICAgICAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIiAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIiAocmVmcmVzaEZvcm0pPVwib25SZXNldEZvcm0oKVwiXG4gICAgICAgICAgKHJjU2VsZWN0ZWQpPVwib25SY1NlbGVjdGVkKCRldmVudClcIiBbbW9kZV09XCJtb2RlXCIgW3Jpc2tJZF09XCJpZFwiIFtmZWF0dXJlXT1cImZlYXR1cmVcIj48L2FwcC13b3JrZmxvdy1yaXNrPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXBvbGljeSAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICpuZ1N3aXRjaENhc2U9XCInQ0FQJ1wiICNwb2xpY3lcbiAgICAgICAgICAoc2hvd0NvbmZpcm1hdGlvbkFsZXJ0KT1cInNob3dDb25maXJtYXRpb25Qb3B1cCgkZXZlbnQpXCIgKHNoaWZ0VG9FZGl0TW9kZSk9XCJzaGlmdFRvRWRpdE1vZGUoKVwiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiIFtwb2xpY3lJZF09XCJpZFwiIFttb2RlXT1cIm1vZGVcIiBbdGVtcGxhdGVJZF09XCJ0ZW1wbGF0ZUlkXCJcbiAgICAgICAgICBbY29udmVydEZpbGVEYXRhXT1cImNvbnZlcnRGaWxlRGF0YVwiIFtzZWxlY3RlZENhdGVnb3J5XT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxuICAgICAgICAgIFtpc1NlbmRGb3JBdHRlc3RhdGlvbl09XCJpc1NlbmRGb3JBdHRlc3RhdGlvblwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiPjwvYXBwLXdvcmtmbG93LXBvbGljeT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybSAqbmdTd2l0Y2hDYXNlPVwiJ0NBUydcIiAjc3VydmV5Rm9ybT48L2FwcC13b3JrZmxvdy1zdXJ2ZXktZm9ybT5cbiAgICAgICAgPGFwcC1hZGQtbXVsdGlwbGUtcmlzayAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICpuZ1N3aXRjaENhc2U9XCInQU1SJ1wiICNtdWx0aXBsZVJpc2tcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICBbZmVhdHVyZV09XCJmZWF0dXJlXCI+PC9hcHAtYWRkLW11bHRpcGxlLXJpc2s+XG4gICAgICAgIDwhLS0gPGFwcC1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHkgIChkaXNjb25uZWN0UmVmcmVzaCk9XCJpc0hvc3RSZWZyZXNoQWN0aXZlID0gJGV2ZW50XCIgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCIgI211bHRpcGxlUmVzcG9uc2liaWxpdHk+XG4gICAgICAgICAgICAgICAgPC9hcHAtYWRkLW11bHRpcGxlLXJlc3BvbnNpYmlsaXR5PiAtLT5cblxuICAgICAgICA8bGliLWFkZC1tdWx0aXBsZS1yZXNwb25zaWJpbGl0eS1jb250YWluZXIgW29yZ0RldGFpbHNdPVwib3JnRGV0YWlsc1wiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInQ01SJ1wiIFtmZWF0dXJlXT1cImZlYXR1cmVcIiAjbXVsdGlwbGVSZXNwb25zaWJpbGl0eT48L2xpYi1hZGQtbXVsdGlwbGUtcmVzcG9uc2liaWxpdHktY29udGFpbmVyPlxuICAgICAgICA8IS0tIE5ldyBMb2cgYW4gSXNzdWUgLS0+XG4gICAgICAgIDxhcHAtbG9nLWFuLWlzc3VlIFtpc3N1ZURldGFpbHNdPVwiaXNzdWVEYXRhXCIgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCIgW3JlcG9uc2liaWxpdHlEYXRhXT1cInJlcG9uc2liaWxpdHlEYXRhXCJcbiAgICAgICAgICBbYXNzZXNzbWVudFF1ZXN0aW9uXT1cImFzc2Vzc21lbnRRdWVzdGlvblwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIiBbc291cmNlXT1cInNvdXJjZVwiIFtpc3N1ZUlkXT1cImlkXCJcbiAgICAgICAgICAjbG9nQW5Jc3N1ZSAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiIFsobW9kZSldPVwibW9kZVwiPlxuICAgICAgICA8L2FwcC1sb2ctYW4taXNzdWU+XG4gICAgICAgIDwhLS0gT2xkIExvZyBhbiBpc3N1ZSAtLT5cbiAgICAgICAgPCEtLSA8YXBwLWxvZy1hbi1pc3N1ZSAqbmdTd2l0Y2hDYXNlPVwiJ0xBSSdcIiBbcmVzcG9uc2liaWxpdGllc0RhdGFdPVwicmVwb25zaWJpbHR5RGF0YVwiIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIlxuICAgICAgICAgICAgICAgICNsb2dBbklzc3VlIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPC9hcHAtbG9nLWFuLWlzc3VlPiAtLT5cblxuICAgICAgICA8YXBwLXdvcmtmbG93LWFzc2Vzc21lbnQgW2Fzc2Vzc21lbnRJZF09XCJpZFwiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIiBbbW9kZV09XCJtb2RlXCIgI2Fzc2Vzc21lbnQ+PC9hcHAtd29ya2Zsb3ctYXNzZXNzbWVudD5cbiAgICAgICAgPGFwcC1pbXBvcnQtYW4tYXNzZXNzbWVudCAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiXG4gICAgICAgICAgKHNob3dDb25maXJtYXRpb25BbGVydCk9XCJzaG93Q29uZmlybWF0aW9uUG9wdXAoJGV2ZW50KVwiIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKHJlZnJlc2hGb3JtKT1cIm9uUmVzZXRGb3JtKClcIiAjaW1wb3J0QXNzZXNzbWVudD48L2FwcC1pbXBvcnQtYW4tYXNzZXNzbWVudD5cbiAgICAgICAgPCEtLSA8YXBwLXdvcmtmbG93LXByb2dyYW0gI3Byb2dyYW0gKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiPjwvYXBwLXdvcmtmbG93LXByb2dyYW0+IC0tPlxuICAgICAgICA8YXBwLXdvcmtmbG93LXByb2dyYW0gI3Byb2dyYW0gKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiIFtvcmdEZXRhaWxzXT1cIm9yZ0RldGFpbHNcIiBbYWxsb3dlZEZlYXR1cmVdPVwiZmVhdHVyZVwiXG4gICAgICAgICAgKGRpc2FibGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJkaXNhYmxlTW9yZU9wdGlvbnMoJ0NBUFInLCAkZXZlbnQpXCIgW3Byb2dyYW1UeXBlXT1cInByb2dyYW1UeXBlXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCIgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIlxuICAgICAgICAgIChzaG93Q29uZmlybWF0aW9uQWxlcnQpPVwic2hvd0NvbmZpcm1hdGlvblBvcHVwKCRldmVudClcIiAoY2xvc2VXb3JrZmxvdyk9XCJjbG9zZVdvcmtmbG93RW5naW5lKCRldmVudClcIlxuICAgICAgICAgIChwaWNrZXJDaGFuZ2VkKT1cImRlY2lkZVZpZXdNb3JlT3B0aW9uKCRldmVudClcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChyZWZyZXNoRm9ybSk9XCJvblJlc2V0Rm9ybSgpXCIgW21vZGVdPVwibW9kZVwiIFtwcm9ncmFtSWRdPVwiaWRcIiBbcHJvZ3JhbURldGFpbHNdPVwid29ya2Zsb3dEZXRhaWxzXCJcbiAgICAgICAgICAob25SZW1vdmluZ1JvbGUpPVwib25SZW1vdmluZ1JvbGUoJGV2ZW50KVwiIFtjYW5GcmFtZXdvcmtDaGFuZ2VdPVwiY2FuRnJhbWV3b3JrQ2hhbmdlXCJcbiAgICAgICAgICBbYWRkVG9Qcm9ncmFtRGV0YWlsc109XCJhZGRUb1Byb2dyYW1EZXRhaWxzXCI+PC9hcHAtd29ya2Zsb3ctcHJvZ3JhbT5cblxuICAgICAgICA8IS0tIEdSQyBPYmplY3QgLS0+XG4gICAgICAgIDxsaWItZ3JjLW9iamVjdC1jb250YWluZXIgI2dyY09iamVjdCAqbmdTd2l0Y2hDYXNlPVwiJ0dSQydcIiBbZ3JjVHlwZV09XCJncmNUeXBlXCIgW01PREVdPVwibW9kZVwiIFtJRF09XCJpZFwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiIChwb3B1bGF0ZU9wdGlvbik9XCJwb3B1bGF0ZU1vcmVPcHRpb24oJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCIgKHJlc2V0Rm9ybSk9XCJvblJlc2V0R1JDRm9ybSgpXCJcbiAgICAgICAgICAoZGlzY29ubmVjdFJlZnJlc2gpPVwiaXNIb3N0UmVmcmVzaEFjdGl2ZSA9ICRldmVudFwiXG4gICAgICAgICAgKGhpZGVFbGVtZW50c0Zyb21Nb3JlT3B0aW9ucyk9XCJoaWRlRWxlbWVudHNGcm9tTW9yZU9wdGlvbnMoJGV2ZW50KVwiPjwvbGliLWdyYy1vYmplY3QtY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUmVwb3J0IGEgQ2FzZSAtLT5cbiAgICAgICAgPGFwcC13b3JrZmxvdy1jYXNlICpuZ1N3aXRjaENhc2U9XCInUkFDJ1wiICNyZXBvcnRDYXNlIFtvcGVuZWRGcm9tXT1cIm9wZW5lZEZyb21cIiBbc291cmNlXT1cInNvdXJjZVwiIFtjYXNlSWRdPVwiaWRcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIiBbcmVzcG9uc2liaWxpdHlEYXRhXT1cInJlcG9uc2liaWxpdHlEYXRhXCIgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIlxuICAgICAgICAgIFtjYXNlVHlwZVBlcm1pc3Npb25dPVwiY2FzZVR5cGVQZXJtaXNzaW9uXCIgW3dvcmtmbG93VHlwZV09XCInUkFDJ1wiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjbG9zZVdvcmtmbG93KT1cImNsb3NlV29ya2Zsb3dFbmdpbmUoJGV2ZW50KVwiXG4gICAgICAgICAgKHBpY2tlckNoYW5nZWQpPVwiZGVjaWRlVmlld01vcmVPcHRpb24oJGV2ZW50KVwiPjwvYXBwLXdvcmtmbG93LWNhc2U+XG4gICAgICAgIDwhLS0gQXNzaWduIGNhc2UgdG8gd29ya2Zsb3cgLS0+XG4gICAgICAgIDxhcHAtd29ya2Zsb3ctY2FzZSAqbmdTd2l0Y2hDYXNlPVwiJ0FDVFcnXCIgI3JlcG9ydENhc2UgW29wZW5lZEZyb21dPVwib3BlbmVkRnJvbVwiIFtzb3VyY2VdPVwic291cmNlXCIgW2Nhc2VJZF09XCJpZFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiIFt3b3JrZmxvd1R5cGVdPVwiJ0FDVFcnXCIgW3Jlc3BvbnNpYmlsaXR5RGF0YV09XCJyZXBvbnNpYmlsaXR5RGF0YVwiXG4gICAgICAgICAgW2Fzc2Vzc21lbnRRdWVzdGlvbl09XCJhc3Nlc3NtZW50UXVlc3Rpb25cIiBbY2FzZVR5cGVQZXJtaXNzaW9uXT1cImNhc2VUeXBlUGVybWlzc2lvblwiXG4gICAgICAgICAgKGRpc2Nvbm5lY3RSZWZyZXNoKT1cImlzSG9zdFJlZnJlc2hBY3RpdmUgPSAkZXZlbnRcIiAocG9wdWxhdGVPcHRpb24pPVwicG9wdWxhdGVNb3JlT3B0aW9uKCRldmVudClcIlxuICAgICAgICAgIChjYXNlUmVwb3J0ZWRCeSk9XCJjYXNlUmVwb3J0ZWRCeSgkZXZlbnQpXCIgKHVzZXJMaXN0RW1pdHRlcik9XCJ1c2VyTGlzdEVtaXR0ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgKGNsb3NlV29ya2Zsb3cpPVwiY2xvc2VXb3JrZmxvd0VuZ2luZSgkZXZlbnQpXCJcbiAgICAgICAgICAocGlja2VyQ2hhbmdlZCk9XCJkZWNpZGVWaWV3TW9yZU9wdGlvbigkZXZlbnQpXCI+PC9hcHAtd29ya2Zsb3ctY2FzZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIlsnUkFDJywgJ0FDVFcnXS5pbmNsdWRlcyhjdXJyZW50V29ya2Zsb3c/LmNvZGUpXCIgY2xhc3M9XCJ2eC1kLWZsZXhcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNhbmNlbFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiIChjbGljayk9XCJjbG9zZVdvcmtmbG93RW5naW5lKClcIj5cbiAgICAgICAgICBDQU5DRUxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIj5cbiAgICAgICAgICB7e1xuICAgICAgICAgIG1vZGUgPT09IFwiRURJVFwiICYmIGN1cnJlbnRXb3JrZmxvdz8uY29kZSA9PT0gXCJSQUNcIlxuICAgICAgICAgID8gXCJVcGRhdGVcIlxuICAgICAgICAgIDogXCJSZXBvcnRcIlxuICAgICAgICAgIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKm5nU3dpdGNoQ2FzZT1cIidBQVInXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgIHt7XG4gICAgICAgIG1vZGUgPT09IFwiRURJVFwiICYmIG9wZW5lZEZyb20gIT09IFwiTU9WRV9UT19SRUdJU1RFUlwiXG4gICAgICAgID8gXCJVcGRhdGVcIlxuICAgICAgICA6IFwiQWRkXCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgICAgICAhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fFxuICAgICAgICAgICFyaXNrQnVsa1VwbG9hZD8uY2F0ZWdvcnk/LnNlbGVjdGVkQ2F0ZWdvcnlcbiAgICAgICAgXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0FNUicpXCIgKm5nU3dpdGNoQ2FzZT1cIidBTVInXCI+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKGNsaWNrKT1cImJ1bGtVcGxvYWRCcm93c2UoJ0NNUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDTVInXCI+XG4gICAgICAgIEJyb3dzZVxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDwhLS0gVGhpcyBoYXMgdGVybmFyeSBvcGVyYXRpb24gdG8gaGFuZGxlIHRoZSBib3RoIHNjZW5hcmlvcyBvZiBob3cgaXQgd29ya3Mgd2l0aCBjb21wbGlhbmNlIGFuZCBwcm9ncmFtIG1vZHVsZSwgcGxlYXNlIGRvbid0IGNoYW5nZSB0aGlzLiAtLT5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWRcIiAoY2xpY2spPVwic3VibWl0KClcIiAqbmdTd2l0Y2hDYXNlPVwiJ0NBUidcIj5cbiAgICAgICAge3tcbiAgICAgICAgZW50cnVzdEJ1dHRvbk5hbWUgIT09IFwiXCIgJiYgbW9kZSAhPT0gXCJFRElUXCJcbiAgICAgICAgPyBlbnRydXN0QnV0dG9uTmFtZVxuICAgICAgICA6IG1vZGUgPT09IFwiRURJVFwiICYmICF3b3JrZmxvd0RldGFpbHM/LmR1cGxpY2F0ZVxuICAgICAgICA/IFwiVVBEQVRFXCJcbiAgICAgICAgOiBcIkVudHJ1c3RcIlxuICAgICAgICB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nU3dpdGNoQ2FzZT1cIidDQVAnXCI+XG4gICAgICAgIHt7XG4gICAgICAgIG1vZGUgPT0gXCJFRElUXCJcbiAgICAgICAgPyBpc1NlbmRGb3JBdHRlc3RhdGlvblxuICAgICAgICA/IFwiU2VuZCBmb3IgYXR0ZXN0YXRpb25cIlxuICAgICAgICA6IFwiVXBkYXRlXCJcbiAgICAgICAgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCJcbiAgICAgICAgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiICpuZ1N3aXRjaENhc2U9XCInQ0FTJ1wiPlxuICAgICAgICBDb250aW51ZSB0byBkcmFmdFxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgW2NsYXNzLmRpc2FibGVkXT1cIiFpc1dvcmtmbG93U2VsZWN0b3JFbmFibGVkXCIgKm5nU3dpdGNoQ2FzZT1cIidMQUknXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiQWRkXCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiICpuZ1N3aXRjaENhc2U9XCInQUFBJ1wiIChjbGljayk9XCJzdWJtaXQoKVwiPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIkNvbnRpbnVlIHRvIGRyYWZ0XCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZFwiIChjbGljayk9XCJidWxrVXBsb2FkQnJvd3NlKCdJQUEnKVwiXG4gICAgICAgICpuZ1N3aXRjaENhc2U9XCInSUFBJ1wiPlxuICAgICAgICBCcm93c2VcbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInN1Ym1pdFwiIFtjbGFzcy5kaXNhYmxlZF09XCIhaXNXb3JrZmxvd1NlbGVjdG9yRW5hYmxlZCB8fCAhcHJvZ3JhbT8udmFsaWRcIiAoY2xpY2spPVwic3VibWl0KCdDQVBSJylcIlxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ0NBUFInXCI+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJzdWJtaXRcIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWlzV29ya2Zsb3dTZWxlY3RvckVuYWJsZWQgfHwgIXByb2dyYW0/LnZhbGlkXCIgKGNsaWNrKT1cInN1Ym1pdCgnQ0FQUicpXCJcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIidDQVBSJ1wiPlxuICAgICAgICB7eyBtb2RlID09PSBcIkVESVRcIiA/IFwiVXBkYXRlXCIgOiBcIlNhdmVcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic3VibWl0XCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgKm5nU3dpdGNoQ2FzZT1cIidHUkMnXCI+XG4gICAgICAgIHt7IG1vZGUgPT09IFwiRURJVFwiID8gXCJVcGRhdGVcIiA6IFwiU2F2ZVwiIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiICpuZ0lmPVwid29ya2Zsb3dMaXN0XCIgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIiBbc3R5bGUudG9wLnB4XT1cImRyb3Bkb3duVG9wXCJcbiAgICAgICAgW3N0eWxlLmxlZnQucHhdPVwiZHJvcGRvd25MZWZ0XCIgW3N0eWxlLndpZHRoLnB4XT1cImRyb3Bkb3duV2lkdGhcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiZHJvcGRvd24tbGlzdFwiPlxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgd29ya2Zsb3cgb2Ygd29ya2Zsb3dUeXBlTGlzdFwiIChjbGljayk9XCJjaGFuZ2VXb3JrZmxvdygkZXZlbnQsIHdvcmtmbG93KVwiPlxuICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyAqbmdJZj1cIndvcmtmbG93Py5jb2RlICE9PSAnQUNUVydcIiBbdmFsdWVdPVwid29ya2Zsb3c/LmNvZGVcIlxuICAgICAgICAgICAgICBbY2hlY2tlZF09XCJjdXJyZW50V29ya2Zsb3c/LmNvZGUgPT09IHdvcmtmbG93Py5jb2RlXCI+XG4gICAgICAgICAgICAgIHt7IHdvcmtmbG93Py53b3JrZmxvd05hbWUgfX08L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tb3ZlcmxheVwiICpuZ0lmPVwid29ya2Zsb3dMaXN0XCIgKGNsaWNrKT1cImNsb3NlV29ya2Zsb3dMaXN0KClcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWNvbmZpcm1hdGlvbi1hbGVydCBpZD1cImNvbmZpcm1hdGlvbi1kaWFsb2d1ZVwiIChhY3Rpb24pPVwiY29uZmlybVdvcmtmbG93Q2hhbmdlKCRldmVudClcIlxuICAgICAgKm5nSWY9XCJjb25maXJtYXRpb25BbGVydENvbmZpZz8uaXNWaXNpYmxlXCIgW21lc3NhZ2VdPVwiY29uZmlybWF0aW9uQWxlcnRDb25maWc/Lm1lc3NhZ2VcIlxuICAgICAgW2NvbmZpZ109XCJjb25maXJtYXRpb25BbGVydENvbmZpZ1wiPjwvYXBwLWNvbmZpcm1hdGlvbi1hbGVydD5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|