vcomply-workflow-engine 4.0.0 → 4.0.2
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/constants/template.constant.mjs +6 -0
- package/esm2022/lib/link-related-policies/constants.mjs +3 -2
- package/esm2022/lib/link-related-policies/link-related-policies.component.mjs +16 -7
- package/esm2022/lib/more-option/more-option.component.mjs +2 -2
- package/esm2022/lib/services/auth.service.mjs +172 -0
- package/esm2022/lib/sharedComponents/document-section/document-section.component.mjs +59 -24
- package/esm2022/lib/sharedComponents/policy-template/constants/template.constant.mjs +3 -0
- package/esm2022/lib/sharedComponents/policy-template/policy-template.module.mjs +65 -0
- package/esm2022/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.mjs +208 -0
- package/esm2022/lib/sharedComponents/policy-template/services/template.service.mjs +67 -0
- package/esm2022/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.mjs +42 -0
- package/esm2022/lib/sharedComponents/policy-template/template-pipes/get-template-category.pipe.mjs +19 -0
- package/esm2022/lib/sharedComponents/policy-template/template-pipes/search-template.pipe.mjs +59 -0
- package/esm2022/lib/sharedComponents/policy-template/template-pipes/template-pipes.module.mjs +19 -0
- package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.mjs +93 -0
- package/esm2022/lib/sharedComponents/policy-template/view-policy/view-policy.module.mjs +19 -0
- package/esm2022/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.mjs +203 -0
- package/esm2022/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.mjs +31 -0
- package/esm2022/lib/ui-kit/multi-select/multi-select.module.mjs +37 -0
- package/esm2022/lib/ui-kit/multi-select/multi-select.service.mjs +16 -0
- package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +6 -3
- package/esm2022/lib/workflow-engine.module.mjs +11 -3
- package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +60 -20
- package/fesm2022/vcomply-workflow-engine.mjs +938 -42
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/constants/template.constant.d.ts +5 -0
- package/lib/link-related-policies/constants.d.ts +1 -0
- package/lib/link-related-policies/link-related-policies.component.d.ts +4 -2
- package/lib/services/auth.service.d.ts +39 -0
- package/lib/sharedComponents/document-section/document-section.component.d.ts +5 -1
- package/lib/sharedComponents/policy-template/constants/template.constant.d.ts +2 -0
- package/lib/sharedComponents/policy-template/policy-template.module.d.ts +20 -0
- package/lib/sharedComponents/policy-template/select-template-list/select-template-list.component.d.ts +49 -0
- package/lib/sharedComponents/policy-template/services/template.service.d.ts +19 -0
- package/lib/sharedComponents/policy-template/template-list-table/template-list-table.component.d.ts +14 -0
- package/lib/sharedComponents/policy-template/template-pipes/get-template-category.pipe.d.ts +7 -0
- package/lib/sharedComponents/policy-template/template-pipes/search-template.pipe.d.ts +37 -0
- package/lib/sharedComponents/policy-template/template-pipes/template-pipes.module.d.ts +9 -0
- package/lib/sharedComponents/policy-template/view-policy/view-policy/view-policy.component.d.ts +25 -0
- package/lib/sharedComponents/policy-template/view-policy/view-policy.module.d.ts +9 -0
- package/lib/ui-kit/multi-select/cs-multiselect/cs-multiselect.component.d.ts +69 -0
- package/lib/ui-kit/multi-select/cs-multiselect-option/cs-multiselect-option.component.d.ts +12 -0
- package/lib/ui-kit/multi-select/multi-select.module.d.ts +11 -0
- package/lib/ui-kit/multi-select/multi-select.service.d.ts +7 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +2 -1
- package/lib/workflow-engine.module.d.ts +3 -1
- package/lib/workflow-policy/workflow-policy.component.d.ts +7 -1
- package/package.json +1 -1
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export const APIs = {
|
|
2
|
+
fetchTemplates: 'templates/list',
|
|
3
|
+
default_categories: `default/getDefaultCategories`,
|
|
4
|
+
fetch_content: 'fetchTemplateContent?id=',
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9jb25zdGFudHMvdGVtcGxhdGUuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHO0lBQ2xCLGNBQWMsRUFBRSxnQkFBZ0I7SUFDaEMsa0JBQWtCLEVBQUUsOEJBQThCO0lBQ2xELGFBQWEsRUFBRSwwQkFBMEI7Q0FDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBUElzID0ge1xyXG4gIGZldGNoVGVtcGxhdGVzOiAndGVtcGxhdGVzL2xpc3QnLFxyXG4gIGRlZmF1bHRfY2F0ZWdvcmllczogYGRlZmF1bHQvZ2V0RGVmYXVsdENhdGVnb3JpZXNgLFxyXG4gIGZldGNoX2NvbnRlbnQ6ICdmZXRjaFRlbXBsYXRlQ29udGVudD9pZD0nLFxyXG59O1xyXG4iXX0=
|
|
@@ -3,6 +3,7 @@ export const CONSTANTS = {
|
|
|
3
3
|
PAGE_IN_SINGLE_VIEW: 5,
|
|
4
4
|
NO_DATA_IMAGE_TEXT: 'No data to display.',
|
|
5
5
|
LINK_POLICY: 'isLinkedPolices',
|
|
6
|
-
LINK_POLICY_HELP_TEXT: 'If enabled, all the related policies will be visible when this policy is published on the Policy Portal.'
|
|
6
|
+
LINK_POLICY_HELP_TEXT: 'If enabled, all the related policies will be visible when this policy is published on the Policy Portal.',
|
|
7
|
+
POLICY_ID: 'policyId',
|
|
7
8
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbGluay1yZWxhdGVkLXBvbGljaWVzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUU7SUFDdEIsbUJBQW1CLEVBQUUsQ0FBQztJQUN0QixtQkFBbUIsRUFBRSxDQUFDO0lBQ3RCLGtCQUFrQixFQUFDLHFCQUFxQjtJQUN4QyxXQUFXLEVBQUcsaUJBQWlCO0lBQy9CLHFCQUFxQixFQUFHLDBHQUEwRztJQUNsSSxTQUFTLEVBQUUsVUFBVTtDQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENPTlNUQU5UUyA9e1xyXG4gIERFRkFVTFRfUEFHRV9OVU1CRVI6IDEsXHJcbiAgUEFHRV9JTl9TSU5HTEVfVklFVzogNSxcclxuICBOT19EQVRBX0lNQUdFX1RFWFQ6J05vIGRhdGEgdG8gZGlzcGxheS4nLFxyXG4gIExJTktfUE9MSUNZIDogJ2lzTGlua2VkUG9saWNlcycsXHJcbiAgTElOS19QT0xJQ1lfSEVMUF9URVhUOiAgJ0lmIGVuYWJsZWQsIGFsbCB0aGUgcmVsYXRlZCBwb2xpY2llcyB3aWxsIGJlIHZpc2libGUgd2hlbiB0aGlzIHBvbGljeSBpcyBwdWJsaXNoZWQgb24gdGhlIFBvbGljeSBQb3J0YWwuJyxcclxuICBQT0xJQ1lfSUQ6ICdwb2xpY3lJZCcsXHJcbn07XHJcblxyXG5cclxuIl19
|
|
@@ -38,9 +38,11 @@ export class LinkRelatedPoliciesComponent {
|
|
|
38
38
|
totalRecords: 0,
|
|
39
39
|
data: [],
|
|
40
40
|
};
|
|
41
|
+
this.selectedPolicies = [];
|
|
42
|
+
this.mode = 'CREATE';
|
|
43
|
+
this.policyId = '';
|
|
41
44
|
this.closeLinkPolicyList = new EventEmitter();
|
|
42
45
|
this.selectedList = new EventEmitter();
|
|
43
|
-
this.selectedPolicies = [];
|
|
44
46
|
this.recentPage = CONSTANTS.DEFAULT_PAGE_NUMBER;
|
|
45
47
|
}
|
|
46
48
|
ngOnInit() {
|
|
@@ -89,6 +91,9 @@ export class LinkRelatedPoliciesComponent {
|
|
|
89
91
|
if (data?.sort) {
|
|
90
92
|
params = params.append('sortBy', this.policySortBy);
|
|
91
93
|
}
|
|
94
|
+
if (this.mode === 'EDIT') {
|
|
95
|
+
params = params.append(CONSTANTS.POLICY_ID, this.policyId);
|
|
96
|
+
}
|
|
92
97
|
return params;
|
|
93
98
|
}
|
|
94
99
|
getPagePolicyList(res) {
|
|
@@ -155,16 +160,20 @@ export class LinkRelatedPoliciesComponent {
|
|
|
155
160
|
this.selectedItems();
|
|
156
161
|
}
|
|
157
162
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LinkRelatedPoliciesComponent, deps: [{ token: i1.PolicyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
158
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LinkRelatedPoliciesComponent, selector: "app-link-related-policies", inputs: { selectedPolicies: "selectedPolicies" }, outputs: { closeLinkPolicyList: "closeLinkPolicyList", selectedList: "selectedList" }, ngImport: i0, template: "<div class=\"link-policy\" [class.animate]=\"animation\">\r\n <ng-container>\r\n <div\r\n class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Policies to link with\r\n </div>\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"back-btn vx-fs-14 vx-fw-500 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> BACK\r\n </button>\r\n </div>\r\n <div class=\"link-policy-body vx-p-4 vx-pb-3\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search Policies\"\r\n (keyup.enter)=\"searchBy($event.target.value)\"\r\n />\r\n </div>\r\n <vui-pagination\r\n *ngIf=\"\r\n !loader && policiesList.totalPage > CONSTANTS.DEFAULT_PAGE_NUMBER\r\n \"\r\n [from]=\"policiesList.from\"\r\n [to]=\"policiesList.to\"\r\n [total]=\"policiesList.totalRecords\"\r\n [showPageDetail]=\"true\"\r\n [totalPage]=\"policiesList.totalPage\"\r\n [currentPage]=\"policiesList.currentPage\"\r\n [pageInSingleView]=\"CONSTANTS.PAGE_IN_SINGLE_VIEW\"\r\n (pageChanged)=\"changePage($event)\"\r\n >\r\n </vui-pagination>\r\n <div\r\n class=\"link-policy-table\"\r\n [class.with-pagination]=\"!loader && policiesList.totalPage > 1\"\r\n >\r\n <ng-container *ngIf=\"!loader && policiesList?.data?.length > 0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies\"\r\n >\r\n POLICIES\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n CATEGORIES\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n [class.active]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n *ngFor=\"let policy of policiesList?.data; let i = index\"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no\"\r\n [appTooltip]=\"i + policiesList.from\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + policiesList.from }}\r\n </div>\r\n <app-cs-checkbox\r\n class=\"check-box\"\r\n [value]=\"policy?.contract_id\"\r\n [ngValue]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n (ngValueChange)=\"selectPolicy($event, policy)\"\r\n ></app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies column-body clickable\"\r\n >\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n (click)=\"\r\n selectPolicy(\r\n !selectedControlIds?.includes(policy?.contract_id),\r\n policy\r\n )\r\n \"\r\n >\r\n {{\r\n policy?.control_id\r\n ? \"[POLID - \" + policy.control_id + \"] \"\r\n : \"\"\r\n }}{{ policy?.contract_name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n <ng-container *ngIf=\"policy?.childCat?.length\">\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.childCat[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ policy?.childCat[0]?.category_name }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"policy?.childCat?.length > 1\">\r\n <button\r\n class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"top\"\r\n >\r\n +{{ policy?.childCat?.length - 1 }}\r\n </button>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let childCategory of policy?.childCat\r\n | slice : 0 : 1\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">{{\r\n childCategory?.category_name\r\n }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-no-data\r\n *ngIf=\"!loader && policiesList?.data?.length === 0\"\r\n [noDataImage]=\"LINKS.linkPolicyNoDataImage\"\r\n [noDataText]=\"CONSTANTS.NO_DATA_IMAGE_TEXT\"\r\n ></app-no-data>\r\n </div>\r\n\r\n <div\r\n class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\r\n >\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"selected\" *ngIf=\"selectedPolicyList?.length > 0\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"let policy of selectedPolicyList | slice : 0 : 1\"\r\n >\r\n <i\r\n (click)=\"deleteItem(policy)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policy?.contract_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"selectedPolicyList.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"relatedPolicy.popover()\"\r\n placement=\"left\"\r\n >\r\n +{{ selectedPolicyList?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let policy of selectedPolicyList | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem(policy)\"></i>\r\n {{ policy?.contract_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"saveChanges()\"\r\n class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\r\n >\r\n NEXT <i class=\"icons vx-ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .link-policy{position:fixed;inset:0 500px 0 0}::ng-deep .link-policy.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .link-policy-head{background:#f8f8f8;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #F1F1F1;height:2.75rem}::ng-deep .link-policy-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .link-policy-search{position:relative}::ng-deep .link-policy-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .link-policy-search input::placeholder{color:#747576;opacity:1}::ng-deep .link-policy-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .link-policy-table{overflow:hidden;overflow-y:auto;height:calc(100vh - 14rem)}::ng-deep .link-policy-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .link-policy-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .link-policy-table .table-header .table-row{border:none!important;border-radius:0!important}::ng-deep .link-policy-table .table-header .table-row .table-column{line-height:1rem!important;min-height:1.5rem!important}::ng-deep .link-policy-table .table-row{border:1px solid #F1F1F1;border-radius:.25rem;display:flex;justify-content:space-between;position:relative;margin-bottom:.25rem}::ng-deep .link-policy-table .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .link-policy-table .table-row.active .table-column.serial app-cs-checkbox{opacity:1}::ng-deep .link-policy-table .table-row .table-column{min-height:2.5rem;position:relative;width:100%}::ng-deep .link-policy-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .link-policy-table .table-row .table-column.serial .sr-no{width:1.25rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox{background:#fff;border-radius:.125rem;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.policies{width:calc(100% - 28rem);min-width:calc(100% - 28rem)}::ng-deep .link-policy-table .table-row .table-column.policies .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-table .table-row .table-column.categories{width:26rem;min-width:26rem}::ng-deep .link-policy-table .table-row .table-column.categories .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 1rem)}::ng-deep .link-policy-table .table-row .table-column.categories button.count{background:#1e5dd3;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-table .table-row .table-column.category-name{width:calc(100% - 2rem);min-width:calc(100% - 2rem)}::ng-deep .link-policy-table .table-row .table-column.category-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-floating-bar{background:#fff;border-radius:.25rem;box-shadow:0 2px 12px #4681ef40}::ng-deep .link-policy-floating-bar-left .counter{background:#34aa44;border-radius:.125rem;min-width:1.75rem}::ng-deep .link-policy-floating-bar-left .chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a;height:1.5rem;display:block;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .link-policy-floating-bar-left .chip i{position:relative;top:.0625rem;cursor:pointer}::ng-deep .link-policy-floating-bar-left button.count{background:#34aa44;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button{background:transparent;border:none;border-radius:.125rem;padding:0 .5rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button.next-btn{background:#1e5dd3}::ng-deep .link-policy-floating-bar-right button.next-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep app-popover .wf-action-list ul.action-item li .avatar-card .cross-btn{cursor:pointer}.wf-action-list .action-item li .count-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.column-body{position:relative;left:10px}.clickable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value", "readonly", "oneLine"], outputs: ["ngValueChange"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i7.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i9.PaginationComponent, selector: "vui-pagination", inputs: ["from", "to", "total", "showPageDetail", "totalPage", "currentPage", "pageInSingleView"], outputs: ["pageChanged"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] }); }
|
|
163
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: LinkRelatedPoliciesComponent, selector: "app-link-related-policies", inputs: { selectedPolicies: "selectedPolicies", mode: "mode", policyId: "policyId" }, outputs: { closeLinkPolicyList: "closeLinkPolicyList", selectedList: "selectedList" }, ngImport: i0, template: "<div class=\"link-policy\" [class.animate]=\"animation\">\r\n <ng-container>\r\n <div\r\n class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Policies to link with\r\n </div>\r\n </div>\r\n <div class=\"link-policy-body vx-p-4 vx-pb-3\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search Policies\"\r\n (keyup.enter)=\"searchBy($event.target.value)\"\r\n />\r\n </div>\r\n <vui-pagination\r\n *ngIf=\"\r\n !loader && policiesList.totalPage > CONSTANTS.DEFAULT_PAGE_NUMBER\r\n \"\r\n [from]=\"policiesList.from\"\r\n [to]=\"policiesList.to\"\r\n [total]=\"policiesList.totalRecords\"\r\n [showPageDetail]=\"true\"\r\n [totalPage]=\"policiesList.totalPage\"\r\n [currentPage]=\"policiesList.currentPage\"\r\n [pageInSingleView]=\"CONSTANTS.PAGE_IN_SINGLE_VIEW\"\r\n (pageChanged)=\"changePage($event)\"\r\n >\r\n </vui-pagination>\r\n <div\r\n class=\"link-policy-table\"\r\n [class.with-pagination]=\"!loader && policiesList.totalPage > 1\"\r\n >\r\n <ng-container *ngIf=\"!loader && policiesList?.data?.length > 0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies\"\r\n >\r\n POLICIES\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n CATEGORIES\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n [class.active]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n *ngFor=\"let policy of policiesList?.data; let i = index\"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no\"\r\n [appTooltip]=\"i + policiesList.from\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + policiesList.from }}\r\n </div>\r\n <app-cs-checkbox\r\n class=\"check-box\"\r\n [value]=\"policy?.contract_id\"\r\n [ngValue]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n (ngValueChange)=\"selectPolicy($event, policy)\"\r\n ></app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies column-body clickable\"\r\n >\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n (click)=\"\r\n selectPolicy(\r\n !selectedControlIds?.includes(policy?.contract_id),\r\n policy\r\n )\r\n \"\r\n >\r\n {{\r\n policy?.control_id\r\n ? \"[POLID - \" + policy.control_id + \"] \"\r\n : \"\"\r\n }}{{ policy?.contract_name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n <ng-container *ngIf=\"policy?.childCat?.length\">\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.childCat[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ policy?.childCat[0]?.category_name }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"policy?.childCat?.length > 1\">\r\n <button\r\n class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"top\"\r\n >\r\n +{{ policy?.childCat?.length - 1 }}\r\n </button>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let childCategory of policy?.childCat\r\n | slice : 1\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">{{\r\n childCategory?.category_name\r\n }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-no-data\r\n *ngIf=\"!loader && policiesList?.data?.length === 0\"\r\n [noDataImage]=\"LINKS.linkPolicyNoDataImage\"\r\n [noDataText]=\"CONSTANTS.NO_DATA_IMAGE_TEXT\"\r\n ></app-no-data>\r\n </div>\r\n\r\n <div\r\n class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\r\n >\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"selected\" *ngIf=\"selectedPolicyList?.length > 0\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"let policy of selectedPolicyList | slice : 0 : 1\"\r\n >\r\n <i\r\n (click)=\"deleteItem(policy)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policy?.contract_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"selectedPolicyList.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"relatedPolicy.popover()\"\r\n placement=\"left\"\r\n >\r\n +{{ selectedPolicyList?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let policy of selectedPolicyList | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem(policy)\"></i>\r\n {{ policy?.contract_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"saveChanges()\"\r\n class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\r\n >\r\n NEXT <i class=\"icons vx-ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .link-policy{position:fixed;inset:0 500px 0 0}::ng-deep .link-policy.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .link-policy-head{background:#f8f8f8;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #F1F1F1;height:2.75rem}::ng-deep .link-policy-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .link-policy-search{position:relative}::ng-deep .link-policy-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .link-policy-search input::placeholder{color:#747576;opacity:1}::ng-deep .link-policy-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .link-policy-table{overflow:hidden;overflow-y:auto;height:calc(100vh - 14rem)}::ng-deep .link-policy-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .link-policy-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .link-policy-table .table-header .table-row{border:none!important;border-radius:0!important}::ng-deep .link-policy-table .table-header .table-row .table-column{line-height:1rem!important;min-height:1.5rem!important}::ng-deep .link-policy-table .table-row{border:1px solid #F1F1F1;border-radius:.25rem;display:flex;justify-content:space-between;position:relative;margin-bottom:.25rem}::ng-deep .link-policy-table .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .link-policy-table .table-row.active .table-column.serial app-cs-checkbox{opacity:1}::ng-deep .link-policy-table .table-row .table-column{min-height:2.5rem;position:relative;width:100%}::ng-deep .link-policy-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .link-policy-table .table-row .table-column.serial .sr-no{width:1.25rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox{background:#fff;border-radius:.125rem;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.policies{width:calc(100% - 28rem);min-width:calc(100% - 28rem)}::ng-deep .link-policy-table .table-row .table-column.policies .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-table .table-row .table-column.categories{width:26rem;min-width:26rem}::ng-deep .link-policy-table .table-row .table-column.categories .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 1rem)}::ng-deep .link-policy-table .table-row .table-column.categories button.count{background:#1e5dd3;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-table .table-row .table-column.category-name{width:calc(100% - 2rem);min-width:calc(100% - 2rem)}::ng-deep .link-policy-table .table-row .table-column.category-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-floating-bar{background:#fff;border-radius:.25rem;box-shadow:0 2px 12px #4681ef40}::ng-deep .link-policy-floating-bar-left .counter{background:#34aa44;border-radius:.125rem;min-width:1.75rem}::ng-deep .link-policy-floating-bar-left .chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a;height:1.5rem;display:block;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .link-policy-floating-bar-left .chip i{position:relative;top:.0625rem;cursor:pointer}::ng-deep .link-policy-floating-bar-left button.count{background:#34aa44;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button{background:transparent;border:none;border-radius:.125rem;padding:0 .5rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button.next-btn{background:#1e5dd3}::ng-deep .link-policy-floating-bar-right button.next-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep app-popover .wf-action-list ul.action-item li .avatar-card .cross-btn{cursor:pointer}.wf-action-list .action-item li .count-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.column-body{position:relative;left:10px}.clickable{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CsCheckboxComponent, selector: "app-cs-checkbox", inputs: ["disabled", "ngValue", "value", "readonly", "oneLine"], outputs: ["ngValueChange"] }, { kind: "directive", type: i4.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i5.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i7.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i8.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i9.PaginationComponent, selector: "vui-pagination", inputs: ["from", "to", "total", "showPageDetail", "totalPage", "currentPage", "pageInSingleView"], outputs: ["pageChanged"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] }); }
|
|
159
164
|
}
|
|
160
165
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LinkRelatedPoliciesComponent, decorators: [{
|
|
161
166
|
type: Component,
|
|
162
|
-
args: [{ selector: 'app-link-related-policies', template: "<div class=\"link-policy\" [class.animate]=\"animation\">\r\n <ng-container>\r\n <div\r\n class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Policies to link with\r\n </div>\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"back-btn vx-fs-14 vx-fw-500 vx-label-txt vx-tt-uppercase vx-p-0 vx-m-0 vx-d-flex vx-align-center\"\r\n >\r\n <i class=\"icons vx-mr-1\"></i> BACK\r\n </button>\r\n </div>\r\n <div class=\"link-policy-body vx-p-4 vx-pb-3\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search Policies\"\r\n (keyup.enter)=\"searchBy($event.target.value)\"\r\n />\r\n </div>\r\n <vui-pagination\r\n *ngIf=\"\r\n !loader && policiesList.totalPage > CONSTANTS.DEFAULT_PAGE_NUMBER\r\n \"\r\n [from]=\"policiesList.from\"\r\n [to]=\"policiesList.to\"\r\n [total]=\"policiesList.totalRecords\"\r\n [showPageDetail]=\"true\"\r\n [totalPage]=\"policiesList.totalPage\"\r\n [currentPage]=\"policiesList.currentPage\"\r\n [pageInSingleView]=\"CONSTANTS.PAGE_IN_SINGLE_VIEW\"\r\n (pageChanged)=\"changePage($event)\"\r\n >\r\n </vui-pagination>\r\n <div\r\n class=\"link-policy-table\"\r\n [class.with-pagination]=\"!loader && policiesList.totalPage > 1\"\r\n >\r\n <ng-container *ngIf=\"!loader && policiesList?.data?.length > 0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies\"\r\n >\r\n POLICIES\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n CATEGORIES\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n [class.active]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n *ngFor=\"let policy of policiesList?.data; let i = index\"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no\"\r\n [appTooltip]=\"i + policiesList.from\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + policiesList.from }}\r\n </div>\r\n <app-cs-checkbox\r\n class=\"check-box\"\r\n [value]=\"policy?.contract_id\"\r\n [ngValue]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n (ngValueChange)=\"selectPolicy($event, policy)\"\r\n ></app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies column-body clickable\"\r\n >\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n (click)=\"\r\n selectPolicy(\r\n !selectedControlIds?.includes(policy?.contract_id),\r\n policy\r\n )\r\n \"\r\n >\r\n {{\r\n policy?.control_id\r\n ? \"[POLID - \" + policy.control_id + \"] \"\r\n : \"\"\r\n }}{{ policy?.contract_name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n <ng-container *ngIf=\"policy?.childCat?.length\">\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.childCat[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ policy?.childCat[0]?.category_name }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"policy?.childCat?.length > 1\">\r\n <button\r\n class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"top\"\r\n >\r\n +{{ policy?.childCat?.length - 1 }}\r\n </button>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let childCategory of policy?.childCat\r\n | slice : 0 : 1\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">{{\r\n childCategory?.category_name\r\n }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-no-data\r\n *ngIf=\"!loader && policiesList?.data?.length === 0\"\r\n [noDataImage]=\"LINKS.linkPolicyNoDataImage\"\r\n [noDataText]=\"CONSTANTS.NO_DATA_IMAGE_TEXT\"\r\n ></app-no-data>\r\n </div>\r\n\r\n <div\r\n class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\r\n >\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"selected\" *ngIf=\"selectedPolicyList?.length > 0\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"let policy of selectedPolicyList | slice : 0 : 1\"\r\n >\r\n <i\r\n (click)=\"deleteItem(policy)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policy?.contract_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"selectedPolicyList.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"relatedPolicy.popover()\"\r\n placement=\"left\"\r\n >\r\n +{{ selectedPolicyList?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let policy of selectedPolicyList | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem(policy)\"></i>\r\n {{ policy?.contract_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"saveChanges()\"\r\n class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\r\n >\r\n NEXT <i class=\"icons vx-ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .link-policy{position:fixed;inset:0 500px 0 0}::ng-deep .link-policy.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .link-policy-head{background:#f8f8f8;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #F1F1F1;height:2.75rem}::ng-deep .link-policy-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .link-policy-search{position:relative}::ng-deep .link-policy-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .link-policy-search input::placeholder{color:#747576;opacity:1}::ng-deep .link-policy-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .link-policy-table{overflow:hidden;overflow-y:auto;height:calc(100vh - 14rem)}::ng-deep .link-policy-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .link-policy-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .link-policy-table .table-header .table-row{border:none!important;border-radius:0!important}::ng-deep .link-policy-table .table-header .table-row .table-column{line-height:1rem!important;min-height:1.5rem!important}::ng-deep .link-policy-table .table-row{border:1px solid #F1F1F1;border-radius:.25rem;display:flex;justify-content:space-between;position:relative;margin-bottom:.25rem}::ng-deep .link-policy-table .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .link-policy-table .table-row.active .table-column.serial app-cs-checkbox{opacity:1}::ng-deep .link-policy-table .table-row .table-column{min-height:2.5rem;position:relative;width:100%}::ng-deep .link-policy-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .link-policy-table .table-row .table-column.serial .sr-no{width:1.25rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox{background:#fff;border-radius:.125rem;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.policies{width:calc(100% - 28rem);min-width:calc(100% - 28rem)}::ng-deep .link-policy-table .table-row .table-column.policies .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-table .table-row .table-column.categories{width:26rem;min-width:26rem}::ng-deep .link-policy-table .table-row .table-column.categories .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 1rem)}::ng-deep .link-policy-table .table-row .table-column.categories button.count{background:#1e5dd3;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-table .table-row .table-column.category-name{width:calc(100% - 2rem);min-width:calc(100% - 2rem)}::ng-deep .link-policy-table .table-row .table-column.category-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-floating-bar{background:#fff;border-radius:.25rem;box-shadow:0 2px 12px #4681ef40}::ng-deep .link-policy-floating-bar-left .counter{background:#34aa44;border-radius:.125rem;min-width:1.75rem}::ng-deep .link-policy-floating-bar-left .chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a;height:1.5rem;display:block;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .link-policy-floating-bar-left .chip i{position:relative;top:.0625rem;cursor:pointer}::ng-deep .link-policy-floating-bar-left button.count{background:#34aa44;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button{background:transparent;border:none;border-radius:.125rem;padding:0 .5rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button.next-btn{background:#1e5dd3}::ng-deep .link-policy-floating-bar-right button.next-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep app-popover .wf-action-list ul.action-item li .avatar-card .cross-btn{cursor:pointer}.wf-action-list .action-item li .count-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.column-body{position:relative;left:10px}.clickable{cursor:pointer}\n"] }]
|
|
163
|
-
}], ctorParameters: function () { return [{ type: i1.PolicyService }]; }, propDecorators: {
|
|
167
|
+
args: [{ selector: 'app-link-related-policies', template: "<div class=\"link-policy\" [class.animate]=\"animation\">\r\n <ng-container>\r\n <div\r\n class=\"link-policy-head vx-d-flex vx-align-center vx-justify-between vx-pl-4 vx-pr-4\"\r\n >\r\n <div class=\"page-title vx-fs-14 vx-fw-500 vx-label-txt\">\r\n Select Policies to link with\r\n </div>\r\n </div>\r\n <div class=\"link-policy-body vx-p-4 vx-pb-3\">\r\n <div class=\"link-policy-search vx-mb-2\">\r\n <i class=\"icons vx-fs-12\"></i>\r\n <input\r\n type=\"text\"\r\n placeholder=\"Search Policies\"\r\n (keyup.enter)=\"searchBy($event.target.value)\"\r\n />\r\n </div>\r\n <vui-pagination\r\n *ngIf=\"\r\n !loader && policiesList.totalPage > CONSTANTS.DEFAULT_PAGE_NUMBER\r\n \"\r\n [from]=\"policiesList.from\"\r\n [to]=\"policiesList.to\"\r\n [total]=\"policiesList.totalRecords\"\r\n [showPageDetail]=\"true\"\r\n [totalPage]=\"policiesList.totalPage\"\r\n [currentPage]=\"policiesList.currentPage\"\r\n [pageInSingleView]=\"CONSTANTS.PAGE_IN_SINGLE_VIEW\"\r\n (pageChanged)=\"changePage($event)\"\r\n >\r\n </vui-pagination>\r\n <div\r\n class=\"link-policy-table\"\r\n [class.with-pagination]=\"!loader && policiesList.totalPage > 1\"\r\n >\r\n <ng-container *ngIf=\"!loader && policiesList?.data?.length > 0\">\r\n <div class=\"table-header\">\r\n <div class=\"table-row\">\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n #\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies\"\r\n >\r\n POLICIES\r\n </div>\r\n <div\r\n class=\"table-column vx-fs-10 vx-fw-500 vx-label-txt vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n CATEGORIES\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-body\">\r\n <div\r\n class=\"table-row\"\r\n [class.active]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n *ngFor=\"let policy of policiesList?.data; let i = index\"\r\n >\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\"\r\n >\r\n <div\r\n class=\"sr-no\"\r\n [appTooltip]=\"i + policiesList.from\"\r\n placement=\"bottom\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"true\"\r\n >\r\n {{ i + policiesList.from }}\r\n </div>\r\n <app-cs-checkbox\r\n class=\"check-box\"\r\n [value]=\"policy?.contract_id\"\r\n [ngValue]=\"selectedControlIds?.includes(policy?.contract_id)\"\r\n (ngValueChange)=\"selectPolicy($event, policy)\"\r\n ></app-cs-checkbox>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center policies column-body clickable\"\r\n >\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n (click)=\"\r\n selectPolicy(\r\n !selectedControlIds?.includes(policy?.contract_id),\r\n policy\r\n )\r\n \"\r\n >\r\n {{\r\n policy?.control_id\r\n ? \"[POLID - \" + policy.control_id + \"] \"\r\n : \"\"\r\n }}{{ policy?.contract_name }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center categories\"\r\n >\r\n <ng-container *ngIf=\"policy?.childCat?.length\">\r\n <div\r\n class=\"value vx-fs-12 vx-label-txt\"\r\n [appTooltip]=\"policy?.childCat[0]?.category_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >\r\n {{ policy?.childCat[0]?.category_name }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"policy?.childCat?.length > 1\">\r\n <button\r\n class=\"count vx-fs-12 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-ml-1 vx-d-flex vx-align-center vx-justify-center\"\r\n appPopover\r\n (click)=\"category.popover()\"\r\n placement=\"top\"\r\n >\r\n +{{ policy?.childCat?.length - 1 }}\r\n </button>\r\n <app-popover #category [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let childCategory of policy?.childCat\r\n | slice : 1\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">{{\r\n childCategory?.category_name\r\n }}</span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-no-data\r\n *ngIf=\"!loader && policiesList?.data?.length === 0\"\r\n [noDataImage]=\"LINKS.linkPolicyNoDataImage\"\r\n [noDataText]=\"CONSTANTS.NO_DATA_IMAGE_TEXT\"\r\n ></app-no-data>\r\n </div>\r\n\r\n <div\r\n class=\"link-policy-floating-bar vx-d-flex vx-align-center vx-justify-between vx-p-3 vx-mt-1\"\r\n >\r\n <div class=\"link-policy-floating-bar-left vx-d-flex vx-align-center\">\r\n <div class=\"selected\" *ngIf=\"selectedPolicyList?.length > 0\">\r\n <div\r\n class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\"\r\n >\r\n <ng-container\r\n *ngFor=\"let policy of selectedPolicyList | slice : 0 : 1\"\r\n >\r\n <i\r\n (click)=\"deleteItem(policy)\"\r\n class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\"\r\n ></i\r\n >\r\n <span\r\n class=\"chipName vx-fs-11 vx-label-txt\"\r\n [appTooltip]=\"policy?.contract_name\"\r\n placement=\"bottom-left\"\r\n delay=\"0\"\r\n type=\"black\"\r\n [tooltipMandatory]=\"false\"\r\n >{{ policy?.contract_name }}</span\r\n >\r\n </ng-container>\r\n <button\r\n class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\"\r\n *ngIf=\"selectedPolicyList.length > 1\"\r\n type=\"button\"\r\n appPopover\r\n (click)=\"relatedPolicy.popover()\"\r\n placement=\"left\"\r\n >\r\n +{{ selectedPolicyList?.length - 1 }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n <app-popover #relatedPolicy [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li\r\n *ngFor=\"\r\n let policy of selectedPolicyList | slice : 1;\r\n let j = index\r\n \"\r\n >\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem(policy)\"></i>\r\n {{ policy?.contract_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <div class=\"link-policy-floating-bar-right vx-d-flex vx-align-center\">\r\n <button\r\n (click)=\"goBack()\"\r\n class=\"cancel-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-red\"\r\n >\r\n CANCEL\r\n </button>\r\n <button\r\n (click)=\"saveChanges()\"\r\n class=\"next-btn vx-fs-11 vx-fw-500 vx-tt-uppercase vx-d-flex vx-align-center vx-justify-center vx-txt-white\"\r\n >\r\n NEXT <i class=\"icons vx-ml-2\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n</div>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::ng-deep .link-policy{position:fixed;inset:0 500px 0 0}::ng-deep .link-policy.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both;z-index:-1}::ng-deep .link-policy-head{background:#f8f8f8;border-radius:.125rem .125rem 0 0;border-bottom:1px solid #F1F1F1;height:2.75rem}::ng-deep .link-policy-head button.back-btn{background:transparent;border-radius:0;border:none}::ng-deep .link-policy-search{position:relative}::ng-deep .link-policy-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763f;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .link-policy-search input::placeholder{color:#747576;opacity:1}::ng-deep .link-policy-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .link-policy-table{overflow:hidden;overflow-y:auto;height:calc(100vh - 14rem)}::ng-deep .link-policy-table::-webkit-scrollbar-track{background-color:transparent}::ng-deep .link-policy-table .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .link-policy-table .table-header .table-row{border:none!important;border-radius:0!important}::ng-deep .link-policy-table .table-header .table-row .table-column{line-height:1rem!important;min-height:1.5rem!important}::ng-deep .link-policy-table .table-row{border:1px solid #F1F1F1;border-radius:.25rem;display:flex;justify-content:space-between;position:relative;margin-bottom:.25rem}::ng-deep .link-policy-table .table-row:hover .table-column.serial app-cs-checkbox,::ng-deep .link-policy-table .table-row.active .table-column.serial app-cs-checkbox{opacity:1}::ng-deep .link-policy-table .table-row .table-column{min-height:2.5rem;position:relative;width:100%}::ng-deep .link-policy-table .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .link-policy-table .table-row .table-column.serial .sr-no{width:1.25rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox{background:#fff;border-radius:.125rem;position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkbox,::ng-deep .link-policy-table .table-row .table-column.serial app-cs-checkbox .checkbox-item .checkmark{position:absolute;top:0}::ng-deep .link-policy-table .table-row .table-column.policies{width:calc(100% - 28rem);min-width:calc(100% - 28rem)}::ng-deep .link-policy-table .table-row .table-column.policies .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-table .table-row .table-column.categories{width:26rem;min-width:26rem}::ng-deep .link-policy-table .table-row .table-column.categories .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 1rem)}::ng-deep .link-policy-table .table-row .table-column.categories button.count{background:#1e5dd3;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-table .table-row .table-column.category-name{width:calc(100% - 2rem);min-width:calc(100% - 2rem)}::ng-deep .link-policy-table .table-row .table-column.category-name .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:calc(100% - 5rem)}::ng-deep .link-policy-floating-bar{background:#fff;border-radius:.25rem;box-shadow:0 2px 12px #4681ef40}::ng-deep .link-policy-floating-bar-left .counter{background:#34aa44;border-radius:.125rem;min-width:1.75rem}::ng-deep .link-policy-floating-bar-left .chip{background:#fff;border-radius:.125rem;box-shadow:0 2px 4px #1e5dd31a;height:1.5rem;display:block;max-width:13rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .link-policy-floating-bar-left .chip i{position:relative;top:.0625rem;cursor:pointer}::ng-deep .link-policy-floating-bar-left button.count{background:#34aa44;border:none;border-radius:.125rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button{background:transparent;border:none;border-radius:.125rem;padding:0 .5rem;height:1.5rem}::ng-deep .link-policy-floating-bar-right button.next-btn{background:#1e5dd3}::ng-deep .link-policy-floating-bar-right button.next-btn.disabled{background:#f1f1f1!important;color:#747576!important;pointer-events:none!important}::ng-deep app-popover .wf-action-list ul.action-item li .avatar-card .cross-btn{cursor:pointer}.wf-action-list .action-item li .count-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@keyframes animate-right{0%{transform:translate(100%)}to{transform:translate(0)}}.column-body{position:relative;left:10px}.clickable{cursor:pointer}\n"] }]
|
|
168
|
+
}], ctorParameters: function () { return [{ type: i1.PolicyService }]; }, propDecorators: { selectedPolicies: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], mode: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], policyId: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], closeLinkPolicyList: [{
|
|
164
175
|
type: Output
|
|
165
176
|
}], selectedList: [{
|
|
166
177
|
type: Output
|
|
167
|
-
}], selectedPolicies: [{
|
|
168
|
-
type: Input
|
|
169
178
|
}] } });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1yZWxhdGVkLXBvbGljaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xpbmstcmVsYXRlZC1wb2xpY2llcy9saW5rLXJlbGF0ZWQtcG9saWNpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbGluay1yZWxhdGVkLXBvbGljaWVzL2xpbmstcmVsYXRlZC1wb2xpY2llcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7O0FBV3RFLE1BQU0sT0FBTyw0QkFBNEI7SUEwQnZDLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBekJoRCxjQUFTLEdBQVEsU0FBUyxDQUFDO1FBQzNCLFVBQUssR0FBUSxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBbUIsTUFBTSxDQUFDO1FBQ3RDLHVCQUFrQixHQUFlLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBZSxFQUFFLENBQUM7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TTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi93b3JrZmxvdy9zaGFyZWQvY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcclxuaW1wb3J0IHsgQVBJX1VSTFMgfSBmcm9tICcuLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL2FwaS1jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIHBvbGljeUxpc3QsXHJcbiAgc2VhcmNoVGV4dCxcclxufSBmcm9tICcuLi9zaGFyZWRDb21wb25lbnRzL2ZyYW1ld29yay1saXN0L2ZyYW1ld29yay1pbnRlZ3JhdGlvbi1pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWxpbmstcmVsYXRlZC1wb2xpY2llcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstcmVsYXRlZC1wb2xpY2llcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1yZWxhdGVkLXBvbGljaWVzLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5rUmVsYXRlZFBvbGljaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBDT05TVEFOVFM6IGFueSA9IENPTlNUQU5UUztcclxuICBMSU5LUzogYW55ID0gTElOS1M7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHBvbGljeVNvcnRCeTogJ2Rlc2MnIHwgJ2FzYycgPSAnZGVzYyc7XHJcbiAgc2VsZWN0ZWRDb250cm9sSWRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgc2VsZWN0ZWRQb2xpY3lMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcbiAgZGVsZXRlZExpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICBzZWFyY2hUZXh0OiBzZWFyY2hUZXh0ID0ge1xyXG4gICAgcG9saWN5OiAnJyxcclxuICB9O1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlY2VudFBhZ2U6IG51bWJlciA9IENPTlNUQU5UUy5ERUZBVUxUX1BBR0VfTlVNQkVSO1xyXG4gIHBvbGljaWVzTGlzdDogcG9saWN5TGlzdCA9IHtcclxuICAgIGZyb206IDEsXHJcbiAgICB0bzogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgdG90YWxQYWdlOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgZGF0YTogW10sXHJcbiAgfTtcclxuICBAT3V0cHV0KCkgY2xvc2VMaW5rUG9saWN5TGlzdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkUG9saWNpZXM6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb2xpY3lTZXJ2aWNlOiBQb2xpY3lTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnJlY2VudFBhZ2UgPSBDT05TVEFOVFMuREVGQVVMVF9QQUdFX05VTUJFUjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeUxpc3QgPSBbLi4ubmV3IFNldCh0aGlzLnNlbGVjdGVkUG9saWNpZXMpXTtcclxuICAgIHRoaXMuYW5pbWF0aW9uID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmFuaW1hdGlvbiA9IGZhbHNlO1xyXG4gICAgfSwgMzAwKTtcclxuICAgIHRoaXMuZ2V0UG9saWNpZXMoKTtcclxuICB9XHJcblxyXG4gIGdvQmFjaygpIHtcclxuICAgIHRoaXMuY2xvc2VMaW5rUG9saWN5TGlzdC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEl0ZW1zKCkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRDb250cmFjdElkcyA9IHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0Py5tYXAoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtPy5jb250cmFjdF9pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRDb250cm9sSWRzID0gdGhpcy5wb2xpY3lTZXJ2aWNlPy5saW5rUmVsYXRlUG9saWNpZXNbXHJcbiAgICAgIHRoaXMucmVjZW50UGFnZSAtIDFcclxuICAgIF0/LmRhdGFcclxuICAgICAgLmZpbHRlcihcclxuICAgICAgICAoZWxlbWVudDogYW55KSA9PlxyXG4gICAgICAgICAgc2VsZWN0ZWRDb250cmFjdElkcz8uaW5jbHVkZXMoZWxlbWVudD8uY29udHJhY3RfaWQpXHJcbiAgICAgIClcclxuICAgICAgLm1hcCgoZWxlbWVudDogYW55KSA9PiBlbGVtZW50Py5jb250cmFjdF9pZCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hCeShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXh0Py5wb2xpY3kgIT0gZXZlbnQpIHtcclxuICAgICAgdGhpcy5zZWFyY2hUZXh0LnBvbGljeSA9IGV2ZW50O1xyXG4gICAgICB0aGlzLmdldFBvbGljaWVzKHsgc2VhcmNoOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFldmVudCkge1xyXG4gICAgICB0aGlzLnJlY2VudFBhZ2UgPSBDT05TVEFOVFMuREVGQVVMVF9QQUdFX05VTUJFUjtcclxuICAgICAgdGhpcy5nZXRQb2xpY2llcyh7IHNlYXJjaDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VQYWdlKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVjZW50UGFnZSA9IGV2ZW50O1xyXG4gICAgaWYgKHRoaXMucG9saWN5U2VydmljZT8ubGlua1JlbGF0ZVBvbGljaWVzW2V2ZW50IC0gMV0pIHtcclxuICAgICAgdGhpcy5wb2xpY2llc0xpc3QgPSB0aGlzLnBvbGljeVNlcnZpY2U/LmxpbmtSZWxhdGVQb2xpY2llc1tldmVudCAtIDFdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRQb2xpY2llcygpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRQYXJhbShkYXRhPzogYW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2luYXRpb25UeXBlJywgJ3NtYWxsJyk7XHJcbiAgICBpZiAoZGF0YT8uc2VhcmNoKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NlYXJjaFRleHQnLCB0aGlzLnNlYXJjaFRleHQucG9saWN5KTtcclxuICAgIH1cclxuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3BhZ2VObycsIHRoaXMucmVjZW50UGFnZSk7XHJcbiAgICBpZiAoZGF0YT8uc29ydCkge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzb3J0QnknLCB0aGlzLnBvbGljeVNvcnRCeSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnZVBvbGljeUxpc3QocmVzOiBhbnkpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZyb206IHJlcz8uZnJvbSA/PyAxLFxyXG4gICAgICB0bzogcmVzPy50byA/PyAwLFxyXG4gICAgICBjdXJyZW50UGFnZTogdGhpcy5yZWNlbnRQYWdlLFxyXG4gICAgICB0b3RhbFBhZ2U6IHJlcz8udG90YWxfcGFnZXMgPz8gMCxcclxuICAgICAgdG90YWxSZWNvcmRzOiByZXM/LmFsbF9yZWNvcmRzID8/IDAsXHJcbiAgICAgIGRhdGE6IFsuLi5uZXcgU2V0KHJlcz8uZGF0YSldLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGdldFBvbGljaWVzKGRhdGE/OiBhbnkpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5wb2xpY3lTZXJ2aWNlPy5saW5rUmVsYXRlUG9saWNpZXNbdGhpcy5yZWNlbnRQYWdlIC0gMV0gJiZcclxuICAgICAgIWRhdGE/LnNlYXJjaFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucG9saWNpZXNMaXN0ID1cclxuICAgICAgICB0aGlzLnBvbGljeVNlcnZpY2UubGlua1JlbGF0ZVBvbGljaWVzW3RoaXMucmVjZW50UGFnZSAtIDFdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VsZWN0ZWRQYXJhbShkYXRhKTtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuXHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICBtZXRob2Q6ICdnZXQnLFxyXG4gICAgICBhY3Rpb246ICcvcG9saWN5JyxcclxuICAgICAgbW9kZTogQVBJX1VSTFMuZmV0Y2hQb2xpY3lMaXN0LFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMucG9saWN5U2VydmljZVxyXG4gICAgICAuZ2V0UG9saWN5TGlzdChyZXF1ZXN0KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucG9saWNpZXNMaXN0ID0gdGhpcy5nZXRQYWdlUG9saWN5TGlzdChyZXMpO1xyXG5cclxuICAgICAgICAgIGlmICghdGhpcy5wb2xpY3lTZXJ2aWNlPy5saW5rUmVsYXRlUG9saWNpZXNbdGhpcy5yZWNlbnRQYWdlIC0gMV0pIHtcclxuICAgICAgICAgICAgdGhpcy5wb2xpY3lTZXJ2aWNlLmxpbmtSZWxhdGVQb2xpY2llc1t0aGlzLnJlY2VudFBhZ2UgLSAxXSA9XHJcbiAgICAgICAgICAgICAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnBvbGljaWVzTGlzdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFBvbGljeShldmVudDogYW55LCBkYXRhOiBhbnkpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29udHJvbElkcy5wdXNoKGRhdGE/LmNvbnRyYWN0X2lkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBvbGljeUxpc3QucHVzaChkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb250cm9sSWRzID0gdGhpcy5zZWxlY3RlZENvbnRyb2xJZHM/LmZpbHRlcihcclxuICAgICAgICAoaWQpID0+IGlkICE9PSBkYXRhPy5jb250cmFjdF9pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCA9IHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0Py5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0/LmNvbnRyYWN0X2lkICE9PSBkYXRhPy5jb250cmFjdF9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlzdC5lbWl0KHtcclxuICAgICAgc2VsZWN0ZWRQb2xpY3lMaXN0OiB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCA9IHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0Py5maWx0ZXIoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtPy5jb250cmFjdF9pZCAhPT0gZXZlbnQ/LmNvbnRyYWN0X2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeVwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgICAgU2VsZWN0IFBvbGljaWVzIHRvIGxpbmsgd2l0aFxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXHJcbiAgICAgICAgY2xhc3M9XCJiYWNrLWJ0biB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkxZDs8L2k+IEJBQ0tcclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1ib2R5IHZ4LXAtNCB2eC1wYi0zXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeS1zZWFyY2ggdngtbWItMlwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VhcmNoIFBvbGljaWVzXCJcclxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJzZWFyY2hCeSgkZXZlbnQudGFyZ2V0LnZhbHVlKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx2dWktcGFnaW5hdGlvblxyXG4gICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAhbG9hZGVyICYmIHBvbGljaWVzTGlzdC50b3RhbFBhZ2UgPiBDT05TVEFOVFMuREVGQVVMVF9QQUdFX05VTUJFUlxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgW2Zyb21dPVwicG9saWNpZXNMaXN0LmZyb21cIlxyXG4gICAgICAgIFt0b109XCJwb2xpY2llc0xpc3QudG9cIlxyXG4gICAgICAgIFt0b3RhbF09XCJwb2xpY2llc0xpc3QudG90YWxSZWNvcmRzXCJcclxuICAgICAgICBbc2hvd1BhZ2VEZXRhaWxdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3RvdGFsUGFnZV09XCJwb2xpY2llc0xpc3QudG90YWxQYWdlXCJcclxuICAgICAgICBbY3VycmVudFBhZ2VdPVwicG9saWNpZXNMaXN0LmN1cnJlbnRQYWdlXCJcclxuICAgICAgICBbcGFnZUluU2luZ2xlVmlld109XCJDT05TVEFOVFMuUEFHRV9JTl9TSU5HTEVfVklFV1wiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2VkKT1cImNoYW5nZVBhZ2UoJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgPC92dWktcGFnaW5hdGlvbj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktdGFibGVcIlxyXG4gICAgICAgIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiIWxvYWRlciAmJiBwb2xpY2llc0xpc3QudG90YWxQYWdlID4gMVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlciAmJiBwb2xpY2llc0xpc3Q/LmRhdGE/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1oZWFkZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAjXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBwb2xpY2llc1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgUE9MSUNJRVNcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIENBVEVHT1JJRVNcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLXJvd1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZENvbnRyb2xJZHM/LmluY2x1ZGVzKHBvbGljeT8uY29udHJhY3RfaWQpXCJcclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHBvbGljaWVzTGlzdD8uZGF0YTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzci1ub1wiXHJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImkgKyBwb2xpY2llc0xpc3QuZnJvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBpICsgcG9saWNpZXNMaXN0LmZyb20gfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1jcy1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrLWJveFwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJwb2xpY3k/LmNvbnRyYWN0X2lkXCJcclxuICAgICAgICAgICAgICAgICAgW25nVmFsdWVdPVwic2VsZWN0ZWRDb250cm9sSWRzPy5pbmNsdWRlcyhwb2xpY3k/LmNvbnRyYWN0X2lkKVwiXHJcbiAgICAgICAgICAgICAgICAgIChuZ1ZhbHVlQ2hhbmdlKT1cInNlbGVjdFBvbGljeSgkZXZlbnQsIHBvbGljeSlcIlxyXG4gICAgICAgICAgICAgICAgPjwvYXBwLWNzLWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHBvbGljaWVzIGNvbHVtbi1ib2R5IGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInBvbGljeT8uY29udHJhY3RfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0UG9saWN5KFxyXG4gICAgICAgICAgICAgICAgICAgICAgIXNlbGVjdGVkQ29udHJvbElkcz8uaW5jbHVkZXMocG9saWN5Py5jb250cmFjdF9pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgcG9saWN5Py5jb250cm9sX2lkXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiW1BPTElEIC0gXCIgKyBwb2xpY3kuY29udHJvbF9pZCArIFwiXSBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlwiXHJcbiAgICAgICAgICAgICAgICAgIH19e3sgcG9saWN5Py5jb250cmFjdF9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBjYXRlZ29yaWVzXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9saWN5Py5jaGlsZENhdD8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicG9saWN5Py5jaGlsZENhdFswXT8uY2F0ZWdvcnlfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwb2xpY3k/LmNoaWxkQ2F0WzBdPy5jYXRlZ29yeV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9saWN5Py5jaGlsZENhdD8ubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudCB2eC1mcy0xMiB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LW1sLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjYXRlZ29yeS5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAre3sgcG9saWN5Py5jaGlsZENhdD8ubGVuZ3RoIC0gMSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNjYXRlZ29yeSBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjaGlsZENhdGVnb3J5IG9mIHBvbGljeT8uY2hpbGRDYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDAgOiAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQ2F0ZWdvcnk/LmNhdGVnb3J5X25hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8YXBwLW5vLWRhdGFcclxuICAgICAgICAgICpuZ0lmPVwiIWxvYWRlciAmJiBwb2xpY2llc0xpc3Q/LmRhdGE/Lmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICBbbm9EYXRhSW1hZ2VdPVwiTElOS1MubGlua1BvbGljeU5vRGF0YUltYWdlXCJcclxuICAgICAgICAgIFtub0RhdGFUZXh0XT1cIkNPTlNUQU5UUy5OT19EQVRBX0lNQUdFX1RFWFRcIlxyXG4gICAgICAgID48L2FwcC1uby1kYXRhPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wLTMgdngtbXQtMVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJzZWxlY3RlZFBvbGljeUxpc3Q/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHNlbGVjdGVkUG9saWN5TGlzdCB8IHNsaWNlIDogMCA6IDFcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWxldGVJdGVtKHBvbGljeSlcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJwb2xpY3k/LmNvbnRyYWN0X25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IHBvbGljeT8uY29udHJhY3RfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkUG9saWN5TGlzdC5sZW5ndGggPiAxXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbGF0ZWRQb2xpY3kucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImxlZnRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICt7eyBzZWxlY3RlZFBvbGljeUxpc3Q/Lmxlbmd0aCAtIDEgfX1cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YXBwLXBvcG92ZXIgI3JlbGF0ZWRQb2xpY3kgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgbGV0IHBvbGljeSBvZiBzZWxlY3RlZFBvbGljeUxpc3QgfCBzbGljZSA6IDE7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0ocG9saWN5KVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBvbGljeT8uY29udHJhY3RfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGluay1wb2xpY3ktZmxvYXRpbmctYmFyLXJpZ2h0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJjYW5jZWwtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtcmVkXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgQ0FOQ0VMXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKGNsaWNrKT1cInNhdmVDaGFuZ2VzKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cIm5leHQtYnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC10eHQtd2hpdGVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICBORVhUIDxpIGNsYXNzPVwiaWNvbnMgdngtbWwtMlwiPiYjeGU5MWU7PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1yZWxhdGVkLXBvbGljaWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xpbmstcmVsYXRlZC1wb2xpY2llcy9saW5rLXJlbGF0ZWQtcG9saWNpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbGluay1yZWxhdGVkLXBvbGljaWVzL2xpbmstcmVsYXRlZC1wb2xpY2llcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7Ozs7O0FBV3RFLE1BQU0sT0FBTyw0QkFBNEI7SUE0QnZDLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBM0JoRCxjQUFTLEdBQVEsU0FBUyxDQUFDO1FBQzNCLFVBQUssR0FBUSxLQUFLLENBQUM7UUFDbkIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUIsaUJBQVksR0FBbUIsTUFBTSxDQUFDO1FBQ3RDLHVCQUFrQixHQUFlLEVBQUUsQ0FBQztRQUNwQyx1QkFBa0IsR0FBZSxFQUFFLENBQUM7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QUFLLEtBQUssRUFBRSxXQUFXLENBQ25ELENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzsrR0EzS1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIsOE9DakJ6QyxrdlRBK09BOzs0RkQ5TmEsNEJBQTRCO2tCQUx4QyxTQUFTOytCQUNFLDJCQUEyQjtvR0EwQjVCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxtQkFBbUI7c0JBQTVCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENPTlNUQU5UUyB9IGZyb20gJy4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgTElOS1MgfSBmcm9tICcuLi93b3JrZmxvdy9zaGFyZWQvY29uc3RhbnRzL2Nkbi1saW5rLmNvbnN0YW50JztcclxuaW1wb3J0IHsgQVBJX1VSTFMgfSBmcm9tICcuLi93b3JrZmxvdy1lbmdpbmUtY29udGFpbmVyL2FwaS1jb25zdGFudHMnO1xyXG5pbXBvcnQge1xyXG4gIHBvbGljeUxpc3QsXHJcbiAgc2VhcmNoVGV4dCxcclxufSBmcm9tICcuLi9zaGFyZWRDb21wb25lbnRzL2ZyYW1ld29yay1saXN0L2ZyYW1ld29yay1pbnRlZ3JhdGlvbi1pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWxpbmstcmVsYXRlZC1wb2xpY2llcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstcmVsYXRlZC1wb2xpY2llcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1yZWxhdGVkLXBvbGljaWVzLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaW5rUmVsYXRlZFBvbGljaWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBDT05TVEFOVFM6IGFueSA9IENPTlNUQU5UUztcclxuICBMSU5LUzogYW55ID0gTElOS1M7XHJcbiAgYW5pbWF0aW9uID0gZmFsc2U7XHJcbiAgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHBvbGljeVNvcnRCeTogJ2Rlc2MnIHwgJ2FzYycgPSAnZGVzYyc7XHJcbiAgc2VsZWN0ZWRDb250cm9sSWRzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgc2VsZWN0ZWRQb2xpY3lMaXN0OiBBcnJheTxhbnk+ID0gW107XHJcbiAgZGVsZXRlZExpc3Q6IEFycmF5PGFueT4gPSBbXTtcclxuICBzZWFyY2hUZXh0OiBzZWFyY2hUZXh0ID0ge1xyXG4gICAgcG9saWN5OiAnJyxcclxuICB9O1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlY2VudFBhZ2U6IG51bWJlciA9IENPTlNUQU5UUy5ERUZBVUxUX1BBR0VfTlVNQkVSO1xyXG4gIHBvbGljaWVzTGlzdDogcG9saWN5TGlzdCA9IHtcclxuICAgIGZyb206IDEsXHJcbiAgICB0bzogMCxcclxuICAgIGN1cnJlbnRQYWdlOiAxLFxyXG4gICAgdG90YWxQYWdlOiAwLFxyXG4gICAgdG90YWxSZWNvcmRzOiAwLFxyXG4gICAgZGF0YTogW10sXHJcbiAgfTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFBvbGljaWVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgcG9saWN5SWQ6IHN0cmluZyA9ICcnO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUxpbmtQb2xpY3lMaXN0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZExpc3QgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZSkge1xyXG4gICAgdGhpcy5yZWNlbnRQYWdlID0gQ09OU1RBTlRTLkRFRkFVTFRfUEFHRV9OVU1CRVI7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0ID0gWy4uLm5ldyBTZXQodGhpcy5zZWxlY3RlZFBvbGljaWVzKV07XHJcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcclxuICAgIH0sIDMwMCk7XHJcbiAgICB0aGlzLmdldFBvbGljaWVzKCk7XHJcbiAgfVxyXG5cclxuICBnb0JhY2soKSB7XHJcbiAgICB0aGlzLmNsb3NlTGlua1BvbGljeUxpc3QuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRJdGVtcygpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQ29udHJhY3RJZHMgPSB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdD8ubWFwKFxyXG4gICAgICAoaXRlbSkgPT4gaXRlbT8uY29udHJhY3RfaWRcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ29udHJvbElkcyA9IHRoaXMucG9saWN5U2VydmljZT8ubGlua1JlbGF0ZVBvbGljaWVzW1xyXG4gICAgICB0aGlzLnJlY2VudFBhZ2UgLSAxXHJcbiAgICBdPy5kYXRhXHJcbiAgICAgIC5maWx0ZXIoKGVsZW1lbnQ6IGFueSkgPT5cclxuICAgICAgICBzZWxlY3RlZENvbnRyYWN0SWRzPy5pbmNsdWRlcyhlbGVtZW50Py5jb250cmFjdF9pZClcclxuICAgICAgKVxyXG4gICAgICAubWFwKChlbGVtZW50OiBhbnkpID0+IGVsZW1lbnQ/LmNvbnRyYWN0X2lkKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaEJ5KGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaFRleHQ/LnBvbGljeSAhPSBldmVudCkge1xyXG4gICAgICB0aGlzLnNlYXJjaFRleHQucG9saWN5ID0gZXZlbnQ7XHJcbiAgICAgIHRoaXMuZ2V0UG9saWNpZXMoeyBzZWFyY2g6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWV2ZW50KSB7XHJcbiAgICAgIHRoaXMucmVjZW50UGFnZSA9IENPTlNUQU5UUy5ERUZBVUxUX1BBR0VfTlVNQkVSO1xyXG4gICAgICB0aGlzLmdldFBvbGljaWVzKHsgc2VhcmNoOiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZVBhZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZWNlbnRQYWdlID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5wb2xpY3lTZXJ2aWNlPy5saW5rUmVsYXRlUG9saWNpZXNbZXZlbnQgLSAxXSkge1xyXG4gICAgICB0aGlzLnBvbGljaWVzTGlzdCA9IHRoaXMucG9saWN5U2VydmljZT8ubGlua1JlbGF0ZVBvbGljaWVzW2V2ZW50IC0gMV07XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmdldFBvbGljaWVzKCk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFBhcmFtKGRhdGE/OiBhbnkpIHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xyXG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnaW5hdGlvblR5cGUnLCAnc21hbGwnKTtcclxuICAgIGlmIChkYXRhPy5zZWFyY2gpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2VhcmNoVGV4dCcsIHRoaXMuc2VhcmNoVGV4dC5wb2xpY3kpO1xyXG4gICAgfVxyXG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgncGFnZU5vJywgdGhpcy5yZWNlbnRQYWdlKTtcclxuICAgIGlmIChkYXRhPy5zb3J0KSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ3NvcnRCeScsIHRoaXMucG9saWN5U29ydEJ5KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKENPTlNUQU5UUy5QT0xJQ1lfSUQsIHRoaXMucG9saWN5SWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcblxyXG4gIGdldFBhZ2VQb2xpY3lMaXN0KHJlczogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBmcm9tOiByZXM/LmZyb20gPz8gMSxcclxuICAgICAgdG86IHJlcz8udG8gPz8gMCxcclxuICAgICAgY3VycmVudFBhZ2U6IHRoaXMucmVjZW50UGFnZSxcclxuICAgICAgdG90YWxQYWdlOiByZXM/LnRvdGFsX3BhZ2VzID8/IDAsXHJcbiAgICAgIHRvdGFsUmVjb3JkczogcmVzPy5hbGxfcmVjb3JkcyA/PyAwLFxyXG4gICAgICBkYXRhOiBbLi4ubmV3IFNldChyZXM/LmRhdGEpXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRQb2xpY2llcyhkYXRhPzogYW55KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucG9saWN5U2VydmljZT8ubGlua1JlbGF0ZVBvbGljaWVzW3RoaXMucmVjZW50UGFnZSAtIDFdICYmXHJcbiAgICAgICFkYXRhPy5zZWFyY2hcclxuICAgICkge1xyXG4gICAgICB0aGlzLnBvbGljaWVzTGlzdCA9XHJcbiAgICAgICAgdGhpcy5wb2xpY3lTZXJ2aWNlLmxpbmtSZWxhdGVQb2xpY2llc1t0aGlzLnJlY2VudFBhZ2UgLSAxXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlbGVjdGVkUGFyYW0oZGF0YSk7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcblxyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgbWV0aG9kOiAnZ2V0JyxcclxuICAgICAgYWN0aW9uOiAnL3BvbGljeScsXHJcbiAgICAgIG1vZGU6IEFQSV9VUkxTLmZldGNoUG9saWN5TGlzdCxcclxuICAgICAgcGFyYW1zLFxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnBvbGljeVNlcnZpY2VcclxuICAgICAgLmdldFBvbGljeUxpc3QocmVxdWVzdClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnBvbGljaWVzTGlzdCA9IHRoaXMuZ2V0UGFnZVBvbGljeUxpc3QocmVzKTtcclxuXHJcbiAgICAgICAgICBpZiAoIXRoaXMucG9saWN5U2VydmljZT8ubGlua1JlbGF0ZVBvbGljaWVzW3RoaXMucmVjZW50UGFnZSAtIDFdKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9saWN5U2VydmljZS5saW5rUmVsYXRlUG9saWNpZXNbdGhpcy5yZWNlbnRQYWdlIC0gMV0gPVxyXG4gICAgICAgICAgICAgIEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5wb2xpY2llc0xpc3QpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFBvbGljeShldmVudDogYW55LCBkYXRhOiBhbnkpIHtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ29udHJvbElkcy5wdXNoKGRhdGE/LmNvbnRyYWN0X2lkKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFBvbGljeUxpc3QucHVzaChkYXRhKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb250cm9sSWRzID0gdGhpcy5zZWxlY3RlZENvbnRyb2xJZHM/LmZpbHRlcihcclxuICAgICAgICAoaWQpID0+IGlkICE9PSBkYXRhPy5jb250cmFjdF9pZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCA9IHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0Py5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0/LmNvbnRyYWN0X2lkICE9PSBkYXRhPy5jb250cmFjdF9pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2F2ZUNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlzdC5lbWl0KHtcclxuICAgICAgc2VsZWN0ZWRQb2xpY3lMaXN0OiB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUG9saWN5TGlzdCA9IHRoaXMuc2VsZWN0ZWRQb2xpY3lMaXN0Py5maWx0ZXIoXHJcbiAgICAgIChpdGVtKSA9PiBpdGVtPy5jb250cmFjdF9pZCAhPT0gZXZlbnQ/LmNvbnRyYWN0X2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaW5rLXBvbGljeVwiIFtjbGFzcy5hbmltYXRlXT1cImFuaW1hdGlvblwiPlxyXG4gIDxuZy1jb250YWluZXI+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwibGluay1wb2xpY3ktaGVhZCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC1wbC00IHZ4LXByLTRcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB2eC1mcy0xNCB2eC1mdy01MDAgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgICAgU2VsZWN0IFBvbGljaWVzIHRvIGxpbmsgd2l0aFxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWJvZHkgdngtcC00IHZ4LXBiLTNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LXNlYXJjaCB2eC1tYi0yXCI+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUG9saWNpZXNcIlxyXG4gICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlYXJjaEJ5KCRldmVudC50YXJnZXQudmFsdWUpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHZ1aS1wYWdpbmF0aW9uXHJcbiAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICFsb2FkZXIgJiYgcG9saWNpZXNMaXN0LnRvdGFsUGFnZSA+IENPTlNUQU5UUy5ERUZBVUxUX1BBR0VfTlVNQkVSXHJcbiAgICAgICAgXCJcclxuICAgICAgICBbZnJvbV09XCJwb2xpY2llc0xpc3QuZnJvbVwiXHJcbiAgICAgICAgW3RvXT1cInBvbGljaWVzTGlzdC50b1wiXHJcbiAgICAgICAgW3RvdGFsXT1cInBvbGljaWVzTGlzdC50b3RhbFJlY29yZHNcIlxyXG4gICAgICAgIFtzaG93UGFnZURldGFpbF09XCJ0cnVlXCJcclxuICAgICAgICBbdG90YWxQYWdlXT1cInBvbGljaWVzTGlzdC50b3RhbFBhZ2VcIlxyXG4gICAgICAgIFtjdXJyZW50UGFnZV09XCJwb2xpY2llc0xpc3QuY3VycmVudFBhZ2VcIlxyXG4gICAgICAgIFtwYWdlSW5TaW5nbGVWaWV3XT1cIkNPTlNUQU5UUy5QQUdFX0lOX1NJTkdMRV9WSUVXXCJcclxuICAgICAgICAocGFnZUNoYW5nZWQpPVwiY2hhbmdlUGFnZSgkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICA8L3Z1aS1wYWdpbmF0aW9uPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS10YWJsZVwiXHJcbiAgICAgICAgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCIhbG9hZGVyICYmIHBvbGljaWVzTGlzdC50b3RhbFBhZ2UgPiAxXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyICYmIHBvbGljaWVzTGlzdD8uZGF0YT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTAgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBzZXJpYWxcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICNcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMCB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHBvbGljaWVzXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICBQT0xJQ0lFU1xyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTEwIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgY2F0ZWdvcmllc1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQ0FURUdPUklFU1xyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtcm93XCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkQ29udHJvbElkcz8uaW5jbHVkZXMocG9saWN5Py5jb250cmFjdF9pZClcIlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBwb2xpY3kgb2YgcG9saWNpZXNMaXN0Py5kYXRhOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIHBvbGljaWVzTGlzdC5mcm9tXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGkgKyBwb2xpY2llc0xpc3QuZnJvbSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWNzLWNoZWNrYm94XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2stYm94XCJcclxuICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInBvbGljeT8uY29udHJhY3RfaWRcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdWYWx1ZV09XCJzZWxlY3RlZENvbnRyb2xJZHM/LmluY2x1ZGVzKHBvbGljeT8uY29udHJhY3RfaWQpXCJcclxuICAgICAgICAgICAgICAgICAgKG5nVmFsdWVDaGFuZ2UpPVwic2VsZWN0UG9saWN5KCRldmVudCwgcG9saWN5KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY3MtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcG9saWNpZXMgY29sdW1uLWJvZHkgY2xpY2thYmxlXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicG9saWN5Py5jb250cmFjdF9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJcclxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RQb2xpY3koXHJcbiAgICAgICAgICAgICAgICAgICAgICAhc2VsZWN0ZWRDb250cm9sSWRzPy5pbmNsdWRlcyhwb2xpY3k/LmNvbnRyYWN0X2lkKSxcclxuICAgICAgICAgICAgICAgICAgICAgIHBvbGljeVxyXG4gICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICBwb2xpY3k/LmNvbnRyb2xfaWRcclxuICAgICAgICAgICAgICAgICAgICAgID8gXCJbUE9MSUQgLSBcIiArIHBvbGljeS5jb250cm9sX2lkICsgXCJdIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiXCJcclxuICAgICAgICAgICAgICAgICAgfX17eyBwb2xpY3k/LmNvbnRyYWN0X25hbWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGNhdGVnb3JpZXNcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2xpY3k/LmNoaWxkQ2F0Py5sZW5ndGhcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJwb2xpY3k/LmNoaWxkQ2F0WzBdPy5jYXRlZ29yeV9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHBvbGljeT8uY2hpbGRDYXRbMF0/LmNhdGVnb3J5X25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2xpY3k/LmNoaWxkQ2F0Py5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50IHZ4LWZzLTEyIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtcC0wIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtbWwtMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhdGVnb3J5LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICt7eyBwb2xpY3k/LmNoaWxkQ2F0Py5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI2NhdGVnb3J5IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkQ2F0ZWdvcnkgb2YgcG9saWN5Py5jaGlsZENhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZENhdGVnb3J5Py5jYXRlZ29yeV9uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICAgICAqbmdJZj1cIiFsb2FkZXIgJiYgcG9saWNpZXNMaXN0Py5kYXRhPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgW25vRGF0YUltYWdlXT1cIkxJTktTLmxpbmtQb2xpY3lOb0RhdGFJbWFnZVwiXHJcbiAgICAgICAgICBbbm9EYXRhVGV4dF09XCJDT05TVEFOVFMuTk9fREFUQV9JTUFHRV9URVhUXCJcclxuICAgICAgICA+PC9hcHAtbm8tZGF0YT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJsaW5rLXBvbGljeS1mbG9hdGluZy1iYXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcC0zIHZ4LW10LTFcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1sZWZ0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lMaXN0Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHBvbGljeSBvZiBzZWxlY3RlZFBvbGljeUxpc3QgfCBzbGljZSA6IDAgOiAxXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlSXRlbShwb2xpY3kpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicG9saWN5Py5jb250cmFjdF9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgID57eyBwb2xpY3k/LmNvbnRyYWN0X25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFBvbGljeUxpc3QubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZWxhdGVkUG9saWN5LnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJsZWZ0XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAre3sgc2VsZWN0ZWRQb2xpY3lMaXN0Py5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGFwcC1wb3BvdmVyICNyZWxhdGVkUG9saWN5IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgIGxldCBwb2xpY3kgb2Ygc2VsZWN0ZWRQb2xpY3lMaXN0IHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XHJcbiAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKHBvbGljeSlcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICB7eyBwb2xpY3k/LmNvbnRyYWN0X25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpbmstcG9saWN5LWZsb2F0aW5nLWJhci1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXJlZFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIENBTkNFTFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzYXZlQ2hhbmdlcygpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJuZXh0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtdHh0LXdoaXRlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgTkVYVCA8aSBjbGFzcz1cImljb25zIHZ4LW1sLTJcIj4mI3hlOTFlOzwvaT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48L2Rpdj5cclxuIl19
|