vcomply-workflow-engine 2.6.59 → 2.6.61
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/bundles/vcomply-workflow-engine.umd.js +115 -66
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/more-option/more-option.component.js +30 -26
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-compliance/workflow-compliance.component.js +3 -3
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.js +11 -2
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngfactory.js +21 -18
- package/esm2015/lib/workflow-engine-container/workflow-engine-container.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +12 -6
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +2 -2
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-program/constants.js +11 -4
- package/esm2015/lib/workflow-program/constants.ngsummary.json +1 -1
- package/esm2015/lib/workflow-program/workflow-program.component.js +25 -6
- package/esm2015/lib/workflow-program/workflow-program.component.ngfactory.js +238 -238
- package/esm2015/lib/workflow-program/workflow-program.component.ngsummary.json +1 -1
- package/esm2015/lib/workflow-services/programs.service.js +37 -27
- package/fesm2015/vcomply-workflow-engine.js +121 -66
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/more-option/more-option.component.d.ts +1 -0
- package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -0
- package/lib/workflow-policy/workflow-policy.component.d.ts +1 -0
- package/lib/workflow-program/constants.d.ts +7 -0
- package/lib/workflow-program/workflow-program.component.d.ts +13 -2
- package/package.json +1 -1
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["form",{"read":{"__symbol":2,"members":[]}}]}]}],"datePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["datePicker"]}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"showConfirmationAlert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"refreshForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"onRemovingRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"canFrameworkChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"programId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"programType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"allowedFeature":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"addToProgramDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]}]}],"noWhitespaceValidator":[{"__symbolic":"method"}],"blankArrayValidator":[{"__symbolic":"method"}],"currentUser":[{"__symbolic":"method"}],"setFormField":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"populateOptionalFields":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"formChangeListner":[{"__symbolic":"method"}],"handleFormFieldChange":[{"__symbolic":"method"}],"activateList":[{"__symbolic":"method"}],"listAction":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"removeRole":[{"__symbolic":"method"}],"setDefaultAssignee":[{"__symbolic":"method"}],"setDefaultAssigneeOnRemove":[{"__symbolic":"method"}],"setDefaultReviewer":[{"__symbolic":"method"}],"setDefaultOverseer":[{"__symbolic":"method"}],"setDefaultReviewerOnRemove":[{"__symbolic":"method"}],"setDefaultOverseerOnRemove":[{"__symbolic":"method"}],"fieldDeselector":[{"__symbolic":"method"}],"markasTouchedSelector":[{"__symbolic":"method"}],"fetchRoles":[{"__symbolic":"method"}],"fetchRC":[{"__symbolic":"method"}],"fetchUsersAssociatedWithRoles":[{"__symbolic":"method"}],"fetchGroupsAssociatedWithRoles":[{"__symbolic":"method"}],"setDefaultOwners":[{"__symbolic":"method"}],"fetchOrganizationUsers":[{"__symbolic":"method"}],"fetchOrganizationGroup":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"uploadFiles":[{"__symbolic":"method"}],"deleteAttachment":[{"__symbolic":"method"}],"selectAllRoleOwner":[{"__symbolic":"method"}],"uniqueByProp":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"saveProgram":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewPrograms":[{"__symbolic":"method"}],"resetForm":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"getProgramDetails":[{"__symbolic":"method"}],"populateMembers":[{"__symbolic":"method"}],"populateGroups":[{"__symbolic":"method"}],"resetAdditionalOption":[{"__symbolic":"method"}],"checkProgramOptionField":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-program","exportAs":null,"inputs":{"canFrameworkChange":"canFrameworkChange","mode":"mode","programId":"programId","programType":"programType","allowedFeature":"allowedFeature","addToProgramDetails":"addToProgramDetails"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","closeWorkflow":"closeWorkflow","showConfirmationAlert":"showConfirmationAlert","disconnectRefresh":"disconnectRefresh","refreshForm":"refreshForm","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","onRemovingRole":"onRemovingRole"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"form"}],"first":true,"descendants":true,"propertyName":"form","read":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"selectors":[{"value":"datePicker"}],"first":true,"descendants":true,"propertyName":"datePicker","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"form":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["form",{"read":{"__symbol":2,"members":[]}}]}]}],"datePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]},"arguments":["datePicker"]}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"showConfirmationAlert":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"refreshForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"onRemovingRole":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"disableElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]}}]}],"canFrameworkChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"programId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"programType":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"allowedFeature":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"addToProgramDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":4,"members":[]}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]},{"__symbol":9,"members":[]}]}],"noWhitespaceValidator":[{"__symbolic":"method"}],"blankArrayValidator":[{"__symbolic":"method"}],"currentUser":[{"__symbolic":"method"}],"setFormField":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"populateOptionalFields":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"formChangeListner":[{"__symbolic":"method"}],"handleFormFieldChange":[{"__symbolic":"method"}],"activateList":[{"__symbolic":"method"}],"listAction":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"removeRole":[{"__symbolic":"method"}],"setDefaultAssignee":[{"__symbolic":"method"}],"setDefaultAssigneeOnRemove":[{"__symbolic":"method"}],"setDefaultReviewer":[{"__symbolic":"method"}],"setDefaultOverseer":[{"__symbolic":"method"}],"setDefaultReviewerOnRemove":[{"__symbolic":"method"}],"setDefaultOverseerOnRemove":[{"__symbolic":"method"}],"fieldDeselector":[{"__symbolic":"method"}],"markasTouchedSelector":[{"__symbolic":"method"}],"fetchRoles":[{"__symbolic":"method"}],"fetchRC":[{"__symbolic":"method"}],"fetchUsersAssociatedWithRoles":[{"__symbolic":"method"}],"fetchGroupsAssociatedWithRoles":[{"__symbolic":"method"}],"setDefaultOwners":[{"__symbolic":"method"}],"fetchOrganizationUsers":[{"__symbolic":"method"}],"fetchOrganizationGroup":[{"__symbolic":"method"}],"selectFile":[{"__symbolic":"method"}],"uploadFiles":[{"__symbolic":"method"}],"deleteAttachment":[{"__symbolic":"method"}],"selectAllRoleOwner":[{"__symbolic":"method"}],"uniqueByProp":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"saveProgram":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewPrograms":[{"__symbolic":"method"}],"resetForm":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"getProgramDetails":[{"__symbolic":"method"}],"populateMembers":[{"__symbolic":"method"}],"populateGroups":[{"__symbolic":"method"}],"resetAdditionalOption":[{"__symbolic":"method"}],"checkProgramOptionField":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":9,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-program","exportAs":null,"inputs":{"canFrameworkChange":"canFrameworkChange","mode":"mode","programId":"programId","programType":"programType","allowedFeature":"allowedFeature","addToProgramDetails":"addToProgramDetails"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","closeWorkflow":"closeWorkflow","showConfirmationAlert":"showConfirmationAlert","disconnectRefresh":"disconnectRefresh","refreshForm":"refreshForm","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","onRemovingRole":"onRemovingRole","disableElementsFromMoreOptions":"disableElementsFromMoreOptions"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"form"}],"first":true,"descendants":true,"propertyName":"form","read":{"identifier":{"reference":{"__symbol":2,"members":[]}}}},{"selectors":[{"value":"datePicker"}],"first":true,"descendants":true,"propertyName":"datePicker","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":10,"members":[]},"rendererType":{"__symbol":11,"members":[]},"componentFactory":{"__symbol":12,"members":[]}}}],"symbols":[{"__symbol":0,"name":"WorkflowProgramComponent","filePath":"./workflow-program.component"},{"__symbol":1,"name":"ViewChild","filePath":"@angular/core"},{"__symbol":2,"name":"ElementRef","filePath":"@angular/core"},{"__symbol":3,"name":"Output","filePath":"@angular/core"},{"__symbol":4,"name":"Input","filePath":"@angular/core"},{"__symbol":5,"name":"FormBuilder","filePath":"@angular/forms"},{"__symbol":6,"name":"ProgramsService","filePath":"../workflow-services/programs.service"},{"__symbol":7,"name":"AuthService","filePath":"../workflow-services/auth.service"},{"__symbol":8,"name":"UiKitService","filePath":"../workflow-services/ui-kit.service"},{"__symbol":9,"name":"ChangeDetectorRef","filePath":"@angular/core"},{"__symbol":10,"name":"View_WorkflowProgramComponent_0","filePath":"./workflow-program.component.ngfactory"},{"__symbol":11,"name":"RenderType_WorkflowProgramComponent","filePath":"./workflow-program.component.ngfactory"},{"__symbol":12,"name":"WorkflowProgramComponentNgFactory","filePath":"./workflow-program.component.ngfactory"}]}
|
|
@@ -16,8 +16,9 @@ export class ProgramsService {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
getRoles() {
|
|
19
|
+
var _a;
|
|
19
20
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
20
|
-
return this.http.get(this.env.organizationGet + 'roles/getProgramRoles&bypass-businessCycle=true', { headers });
|
|
21
|
+
return this.http.get(((_a = this.env) === null || _a === void 0 ? void 0 : _a.organizationGet) + 'roles/getProgramRoles&bypass-businessCycle=true', { headers });
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
23
24
|
* Uploads the given file to server
|
|
@@ -33,8 +34,9 @@ export class ProgramsService {
|
|
|
33
34
|
return this.http.post(this.env.fileUploadEndPoint + ORG_PATH + '&ngsw-bypass=true', payload);
|
|
34
35
|
}
|
|
35
36
|
getResponsibilityCenterList() {
|
|
37
|
+
var _a;
|
|
36
38
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
37
|
-
return this.http.get(this.env.complianceGet + 'responsibilityCenterTree&bypass-businessCycle=true', {
|
|
39
|
+
return this.http.get(((_a = this.env) === null || _a === void 0 ? void 0 : _a.complianceGet) + 'responsibilityCenterTree&bypass-businessCycle=true', {
|
|
38
40
|
headers,
|
|
39
41
|
}).pipe(retry(2));
|
|
40
42
|
}
|
|
@@ -49,22 +51,25 @@ export class ProgramsService {
|
|
|
49
51
|
return this.http.post(this.env.organizationPost + 'roles/getUserDetails&limit=30&bypass-businessCycle=true' + queryString, { role_ids: roles !== null && roles !== void 0 ? roles : [] }, { headers }).pipe(retry(2));
|
|
50
52
|
}
|
|
51
53
|
fetchAllRoleUsers(roles) {
|
|
54
|
+
var _a;
|
|
52
55
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
53
|
-
return this.http.post(this.env.organizationPost + 'roles/getUserDetails&type=all&bypass-businessCycle=true', { role_ids: roles !== null && roles !== void 0 ? roles : [] }, { headers }).pipe(retry(2));
|
|
56
|
+
return this.http.post(((_a = this.env) === null || _a === void 0 ? void 0 : _a.organizationPost) + 'roles/getUserDetails&type=all&bypass-businessCycle=true', { role_ids: roles !== null && roles !== void 0 ? roles : [] }, { headers }).pipe(retry(2));
|
|
54
57
|
}
|
|
55
58
|
fetchAllRoleGroups(roles) {
|
|
56
59
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
57
60
|
return this.http.post(this.env.organizationPost + 'roles/getGroupDetails&type=all&bypass-businessCycle=true', { role_ids: roles !== null && roles !== void 0 ? roles : [] }, { headers }).pipe(retry(2));
|
|
58
61
|
}
|
|
59
62
|
fetchAllOrgUser() {
|
|
63
|
+
var _a;
|
|
60
64
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
61
65
|
//https://devapi.v-comply.com/organization/?mode=organisationUsersList&paginationType=small&admin=1
|
|
62
|
-
return this.http.get(this.env.organizationGet + 'organisationUsersList&paginationType=small&bypass-businessCycle=true', { headers }).pipe(retry(2));
|
|
66
|
+
return this.http.get(((_a = this.env) === null || _a === void 0 ? void 0 : _a.organizationGet) + 'organisationUsersList&paginationType=small&bypass-businessCycle=true', { headers }).pipe(retry(2));
|
|
63
67
|
}
|
|
64
68
|
fetchComplianceGroups() {
|
|
69
|
+
var _a;
|
|
65
70
|
const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
|
|
66
71
|
//https://devapi.v-comply.com/organization/?mode=groupsList&status=1&type=compliance
|
|
67
|
-
return this.http.get(this.env.organizationGet + 'groupsList&status=1&type=compliance&bypass-businessCycle=true', { headers }).pipe(retry(2));
|
|
72
|
+
return this.http.get(((_a = this.env) === null || _a === void 0 ? void 0 : _a.organizationGet) + 'groupsList&status=1&type=compliance&bypass-businessCycle=true', { headers }).pipe(retry(2));
|
|
68
73
|
}
|
|
69
74
|
getBusinessCycle() {
|
|
70
75
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -89,6 +94,7 @@ export class ProgramsService {
|
|
|
89
94
|
buildPayload(formData, instance) {
|
|
90
95
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
91
96
|
const form = formData === null || formData === void 0 ? void 0 : formData.value;
|
|
97
|
+
const option = instance.additionalOption;
|
|
92
98
|
const payload = {
|
|
93
99
|
mode: 'program',
|
|
94
100
|
name: (_a = form === null || form === void 0 ? void 0 : form.program_name.trim()) !== null && _a !== void 0 ? _a : '',
|
|
@@ -96,33 +102,37 @@ export class ProgramsService {
|
|
|
96
102
|
program_objective: { text: (_d = form === null || form === void 0 ? void 0 : form.program_objective) !== null && _d !== void 0 ? _d : '', attachments: (_e = form === null || form === void 0 ? void 0 : form.objective_attachment) !== null && _e !== void 0 ? _e : [] },
|
|
97
103
|
roles: form.program_roles.map((ele) => { return { roleId: ele === null || ele === void 0 ? void 0 : ele._id, roleName: ele === null || ele === void 0 ? void 0 : ele.roleName, licenseType: ele === null || ele === void 0 ? void 0 : ele.licenseType }; }),
|
|
98
104
|
owners: (_f = this.listToId(form === null || form === void 0 ? void 0 : form.program_owners, 'member_id')) !== null && _f !== void 0 ? _f : [],
|
|
99
|
-
owners_group: (_g = this.listToId(form === null || form === void 0 ? void 0 : form.program_owners_group, 'group_id')) !== null && _g !== void 0 ? _g : [],
|
|
100
|
-
all_user_in_role: (_h = form === null || form === void 0 ? void 0 : form.all_user_in_role) !== null && _h !== void 0 ? _h : false,
|
|
105
|
+
owners_group: (option === null || option === void 0 ? void 0 : option.ROLES) ? (_g = this.listToId(form === null || form === void 0 ? void 0 : form.program_owners_group, 'group_id')) !== null && _g !== void 0 ? _g : [] : [],
|
|
106
|
+
all_user_in_role: (option === null || option === void 0 ? void 0 : option.ROLES) ? (_h = form === null || form === void 0 ? void 0 : form.all_user_in_role) !== null && _h !== void 0 ? _h : false : false,
|
|
101
107
|
programType: (_j = form === null || form === void 0 ? void 0 : form.program_type) !== null && _j !== void 0 ? _j : 0,
|
|
102
108
|
// state:0,
|
|
103
109
|
state: (_k = form === null || form === void 0 ? void 0 : form.program_state) !== null && _k !== void 0 ? _k : 0,
|
|
104
|
-
approvers: (_l = this.listToId(form === null || form === void 0 ? void 0 : form.program_approver, 'member_id')) !== null && _l !== void 0 ? _l : [],
|
|
110
|
+
approvers: (option === null || option === void 0 ? void 0 : option.APPROVER) ? (_l = this.listToId(form === null || form === void 0 ? void 0 : form.program_approver, 'member_id')) !== null && _l !== void 0 ? _l : [] : [],
|
|
105
111
|
calculate_past_upcoming_event: (_m = form === null || form === void 0 ? void 0 : form.performance_calculation) !== null && _m !== void 0 ? _m : '',
|
|
106
|
-
program_frequency: (form === null || form === void 0 ? void 0 : form.recurring_frequency) ? 1 : 0,
|
|
107
|
-
lock_scope: (form === null || form === void 0 ? void 0 : form.lock_scope_change) ? 1 : 0,
|
|
108
|
-
rc_ids: this.listToId(form === null || form === void 0 ? void 0 : form.rc, 'item_id'),
|
|
109
|
-
assignee_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_assignee, 'member_id'),
|
|
110
|
-
assignee_group_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_assignee_group, 'group_id'),
|
|
111
|
-
default_assignee_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_assignee, 'member_id'),
|
|
112
|
-
default_assignee_group_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_assignee_group, 'group_id'),
|
|
113
|
-
default_assignee_type: form === null || form === void 0 ? void 0 : form.assignee_completion_criteria,
|
|
114
|
-
reviewers: this.listToId(form === null || form === void 0 ? void 0 : form.program_reviewer, 'member_id'),
|
|
115
|
-
reviewer_group_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_reviewer_group, 'group_id'),
|
|
116
|
-
default_reviewers: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_reviewer, 'member_id'),
|
|
117
|
-
default_reviewer_group_ids: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_reviewer_group, 'group_id'),
|
|
112
|
+
program_frequency: option.PROGRAM_FREQUENCY ? ((form === null || form === void 0 ? void 0 : form.recurring_frequency) ? 1 : 0) : 1,
|
|
113
|
+
lock_scope: option.SCOPE_CHANGES ? ((form === null || form === void 0 ? void 0 : form.lock_scope_change) ? 1 : 0) : 0,
|
|
114
|
+
rc_ids: option.RC ? this.listToId(form === null || form === void 0 ? void 0 : form.rc, 'item_id') : [],
|
|
115
|
+
assignee_ids: option.ASSIGNEES ? this.listToId(form === null || form === void 0 ? void 0 : form.program_assignee, 'member_id') : [],
|
|
116
|
+
assignee_group_ids: option.ASSIGNEES ? this.listToId(form === null || form === void 0 ? void 0 : form.program_assignee_group, 'group_id') : [],
|
|
117
|
+
default_assignee_ids: option.ASSIGNEES ? this.listToId(form === null || form === void 0 ? void 0 : form.program_default_assignee, 'member_id') : [],
|
|
118
|
+
default_assignee_group_ids: option.ASSIGNEES ? this.listToId(form === null || form === void 0 ? void 0 : form.program_default_assignee_group, 'group_id') : [],
|
|
119
|
+
default_assignee_type: option.ASSIGNEES ? form === null || form === void 0 ? void 0 : form.assignee_completion_criteria : 'ANYONE',
|
|
120
|
+
reviewers: option.REVIEWER ? this.listToId(form === null || form === void 0 ? void 0 : form.program_reviewer, 'member_id') : [],
|
|
121
|
+
reviewer_group_ids: option.REVIEWER ? this.listToId(form === null || form === void 0 ? void 0 : form.program_reviewer_group, 'group_id') : [],
|
|
122
|
+
default_reviewers: option.REVIEWER ? this.listToId(form === null || form === void 0 ? void 0 : form.program_default_reviewer, 'member_id') : [],
|
|
123
|
+
default_reviewer_group_ids: option.REVIEWER ? this.listToId(form === null || form === void 0 ? void 0 : form.program_default_reviewer_group, 'group_id') : [],
|
|
118
124
|
default_reviewers_type: form === null || form === void 0 ? void 0 : form.reviewer_completion_criteria,
|
|
119
|
-
overseers: { cc_email: this.listToId(form === null || form === void 0 ? void 0 : form.program_overseer, 'member_id'), cc_email_groups: this.listToId(form === null || form === void 0 ? void 0 : form.program_overseer_group, 'group_id'), failure_cc_email: [], failure_cc_email_groups: [] },
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
overseers: option.OVERSEER ? { cc_email: this.listToId(form === null || form === void 0 ? void 0 : form.program_overseer, 'member_id'), cc_email_groups: this.listToId(form === null || form === void 0 ? void 0 : form.program_overseer_group, 'group_id'), failure_cc_email: [], failure_cc_email_groups: [] } : { cc_email: [], cc_email_groups: [],
|
|
126
|
+
failure_cc_email: [], failure_cc_email_groups: [] },
|
|
127
|
+
default_overseers: option.OVERSEER ? { cc_email: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_overseer, 'member_id'),
|
|
128
|
+
cc_email_groups: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_overseer_group, 'group_id'),
|
|
129
|
+
failure_cc_email: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_failed_overseer, 'member_id'),
|
|
130
|
+
failure_cc_email_groups: this.listToId(form === null || form === void 0 ? void 0 : form.program_default_failed_overseer_group, 'group_id') } :
|
|
131
|
+
{ cc_email: [], cc_email_groups: [], failure_cc_email: [], failure_cc_email_groups: [] },
|
|
132
|
+
assessment: (option === null || option === void 0 ? void 0 : option.ASSESSMENT) ? this.generateAssessment(form.program_assessments) : [],
|
|
133
|
+
evidence_upload_flag: (option === null || option === void 0 ? void 0 : option.FORMATE_EVIDENCE) ? (form === null || form === void 0 ? void 0 : form.evidence_required) ? 1 : 0 : 0,
|
|
124
134
|
is_key_evidence: form === null || form === void 0 ? void 0 : form.allow_any_file_key_evidence,
|
|
125
|
-
custom_fields: (_o = form === null || form === void 0 ? void 0 : form.custom_fields) !== null && _o !== void 0 ? _o : [],
|
|
135
|
+
custom_fields: (option === null || option === void 0 ? void 0 : option.CUSTOM_FIELDS) ? (_o = form === null || form === void 0 ? void 0 : form.custom_fields) !== null && _o !== void 0 ? _o : [] : [],
|
|
126
136
|
framework: (_p = this.getFramework(form === null || form === void 0 ? void 0 : form.framework)) !== null && _p !== void 0 ? _p : [],
|
|
127
137
|
_id: instance.mode === 'EDIT' ? instance.programId : undefined,
|
|
128
138
|
};
|
|
@@ -199,4 +209,4 @@ ProgramsService.ctorParameters = () => [
|
|
|
199
209
|
{ type: AuthService },
|
|
200
210
|
{ type: Configurations, decorators: [{ type: Optional }] }
|
|
201
211
|
];
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0IsRUFBYyxNQUF1QjtRQUF2RixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDcEUsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FFN0I7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLGlEQUFpRCxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBWSxFQUFFLElBQVM7UUFDakMsSUFBSTtR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SSxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsOENBQThDLEVBQUMsRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0SixDQUFDO0lBRUQsaUJBQWlCLENBQUMsR0FBTztRQUN2QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixHQUFHLDZDQUE2QyxFQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckosQ0FBQzs7OztZQWpNQSxVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVJRLFVBQVU7WUFJVixXQUFXO1lBRFgsY0FBYyx1QkFTb0QsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb25maWd1cmF0aW9ucyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb25zJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9ncmFtc1NlcnZpY2Uge1xyXG5cclxuICBlbnYgITogYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zKSB7XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuZW52ID0gY29uZmlnLmVudkNvbmZpZztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRSb2xlcygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdyb2xlcy9nZXRQcm9ncmFtUm9sZXMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScse2hlYWRlcnN9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXHJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcclxuICAgKi9cclxuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xyXG4gICAgLy8ge1xyXG4gICAgLy8gICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIC8vICAgb2JzZXJ2ZTogJ2V2ZW50cyd9XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICArICcmbmdzdy1ieXBhc3M9dHJ1ZScsIHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcblxyXG4gIGZldGNoUm9sZVVzZXJzKHJvbGVzOmFueSxwYWdlPzphbnksIHNlYXJjaEtleT86YW55KXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSAnJztcclxuICAgIGlmKHBhZ2UpeyBxdWVyeVN0cmluZyArPSBgJnBhZ2U9JHtwYWdlfWB9O1xyXG4gICAgaWYoc2VhcmNoS2V5KXt9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgKyAncm9sZXMvZ2V0VXNlckRldGFpbHMmbGltaXQ9MzAmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScrcXVlcnlTdHJpbmcseyByb2xlX2lkcyA6cm9sZXMgPz8gW119LCB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hBbGxSb2xlVXNlcnMocm9sZXM6YW55KXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgKyAncm9sZXMvZ2V0VXNlckRldGFpbHMmdHlwZT1hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScseyByb2xlX2lkcyA6cm9sZXMgPz8gW119LCB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hBbGxSb2xlR3JvdXBzKHJvbGVzOmFueSl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICsgJ3JvbGVzL2dldEdyb3VwRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyx7IHJvbGVfaWRzIDpyb2xlcyA/PyBbXX0sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGZldGNoQWxsT3JnVXNlcigpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1vcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYWRtaW49MVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGZldGNoQ29tcGxpYW5jZUdyb3Vwcygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1ncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZSZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJywge2hlYWRlcnN9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldEJ1c2luZXNzQ3ljbGUoKXtcclxuICAgIGNvbnN0IGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiYnVzaW5lc3NDeWNsZVwiKSA/PyAne30nKTtcclxuICAgcmV0dXJuIHtcclxuICAgICAgc2VsZWN0ZWRfY3ljbGU6IGJ1c2luZXNzQ3ljbGVcclxuICAgICAgICA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgK1xyXG4gICAgICAgIFwiLVwiICtcclxuICAgICAgICBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5lbmRfZGF0ZVxyXG4gICAgICAgIDogXCJcIixcclxuICAgICAgc3RhcnRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LnN0YXJ0X2RhdGUgOiBcIlwiLFxyXG4gICAgICBlbmRfZGF0ZTogYnVzaW5lc3NDeWNsZSA/IGJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmVuZF9kYXRlIDogXCJcIixcclxuICAgICAgc2VsZWN0ZWRfY3ljbGVfYXJyOiBidXNpbmVzc0N5Y2xlXHJcbiAgICAgICAgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zZWxlY3RlZF9jeWNsZV9hcnJcclxuICAgICAgICA6IFtdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNhdmVQcm9ncmFtKHBheWxvYWQ6YW55KXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSkuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgIEpTT04uc3RyaW5naWZ5KCh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4odGhpcy5lbnYucHJvZ3JhbUVuZHBvaW50ICsgJy9jYXRlZ29yeS8/aXNCdXNpbmVzc0N5Y2xlPXRydWUnLHBheWxvYWQsIHtoZWFkZXJzfSk7XHJcbiAgfVxyXG5cclxuXHJcbiBidWlsZFBheWxvYWQoZm9ybURhdGE6YW55LGluc3RhbmNlOmFueSl7XHJcbmNvbnN0IGZvcm0gPSBmb3JtRGF0YT8udmFsdWU7XHJcbmNvbnN0IHBheWxvYWQgPSB7XHJcbiAgbW9kZTogJ3Byb2dyYW0nLFxyXG4gIG5hbWU6Zm9ybT8ucHJvZ3JhbV9uYW1lLnRyaW0oKSA/PyAnJyxcclxuICBkZXNjcmlwdGlvbjp7dGV4dDpmb3JtPy5wcm9ncmFtX2Rlc2NyaXB0aW9uID8/ICcnLGF0dGFjaG1lbnRzOmZvcm0/LnByb2dyYW1fZGVzY3JpcHRpb25fYXR0YWNobWVudHMgPz8gW119LFxyXG4gIHByb2dyYW1fb2JqZWN0aXZlIDoge3RleHQ6Zm9ybT8ucHJvZ3JhbV9vYmplY3RpdmUgPz8gJycsYXR0YWNobWVudHM6Zm9ybT8ub2JqZWN0aXZlX2F0dGFjaG1lbnQgPz8gW119LFxyXG4gIHJvbGVzOiBmb3JtLnByb2dyYW1fcm9sZXMubWFwKChlbGU6YW55KSA9PiB7cmV0dXJuIHtyb2xlSWQ6ZWxlPy5faWQscm9sZU5hbWU6ZWxlPy5yb2xlTmFtZSwgbGljZW5zZVR5cGU6ZWxlPy5saWNlbnNlVHlwZX19KSxcclxuICBvd25lcnM6dGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVycywnbWVtYmVyX2lkJykgPz8gW10sXHJcbiAgb3duZXJzX2dyb3VwOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3duZXJzX2dyb3VwLCdncm91cF9pZCcpID8/IFtdLFxyXG4gIGFsbF91c2VyX2luX3JvbGU6IGZvcm0/LmFsbF91c2VyX2luX3JvbGUgPz8gZmFsc2UsXHJcbiAgcHJvZ3JhbVR5cGU6Zm9ybT8ucHJvZ3JhbV90eXBlID8/IDAsXHJcbiAgLy8gc3RhdGU6MCxcclxuICBzdGF0ZTogZm9ybT8ucHJvZ3JhbV9zdGF0ZSA/PyAwLFxyXG4gIGFwcHJvdmVyczp0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXBwcm92ZXIsJ21lbWJlcl9pZCcpID8/IFtdLFxyXG4gIGNhbGN1bGF0ZV9wYXN0X3VwY29taW5nX2V2ZW50OiBmb3JtPy5wZXJmb3JtYW5jZV9jYWxjdWxhdGlvbiA/PyAnJyxcclxuICBwcm9ncmFtX2ZyZXF1ZW5jeSA6IGZvcm0/LnJlY3VycmluZ19mcmVxdWVuY3kgPyAxIDogMCxcclxuICBsb2NrX3Njb3BlOiBmb3JtPy5sb2NrX3Njb3BlX2NoYW5nZSA/IDEgOjAsXHJcbiAgcmNfaWRzOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnJjLCdpdGVtX2lkJyksXHJcbiAgYXNzaWduZWVfaWRzOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXNzaWduZWUsJ21lbWJlcl9pZCcpLFxyXG4gIGFzc2lnbmVlX2dyb3VwX2lkczogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2Fzc2lnbmVlX2dyb3VwLCdncm91cF9pZCcpLFxyXG4gIGRlZmF1bHRfYXNzaWduZWVfaWRzIDogIHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X2Fzc2lnbmVlLCdtZW1iZXJfaWQnKSxcclxuICBkZWZhdWx0X2Fzc2lnbmVlX2dyb3VwX2lkczogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWVfZ3JvdXAsJ2dyb3VwX2lkJyksXHJcbiAgZGVmYXVsdF9hc3NpZ25lZV90eXBlOiBmb3JtPy5hc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhLFxyXG4gIHJldmlld2Vyczp0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fcmV2aWV3ZXIsJ21lbWJlcl9pZCcpLFxyXG4gIHJldmlld2VyX2dyb3VwX2lkczogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX3Jldmlld2VyX2dyb3VwLCdncm91cF9pZCcpLFxyXG4gIGRlZmF1bHRfcmV2aWV3ZXJzOnRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyLCdtZW1iZXJfaWQnKSxcclxuICBkZWZhdWx0X3Jldmlld2VyX2dyb3VwX2lkczogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfcmV2aWV3ZXJfZ3JvdXAsJ2dyb3VwX2lkJyksXHJcbiAgZGVmYXVsdF9yZXZpZXdlcnNfdHlwZTpmb3JtPy5yZXZpZXdlcl9jb21wbGV0aW9uX2NyaXRlcmlhLFxyXG4gIG92ZXJzZWVyczoge2NjX2VtYWlsOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3ZlcnNlZXIsJ21lbWJlcl9pZCcpLGNjX2VtYWlsX2dyb3Vwczp0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fb3ZlcnNlZXJfZ3JvdXAsJ2dyb3VwX2lkJyksZmFpbHVyZV9jY19lbWFpbDogW10sZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6W119LFxyXG4gIGRlZmF1bHRfb3ZlcnNlZXJzOiB7Y2NfZW1haWw6IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyLCdtZW1iZXJfaWQnKSxjY19lbWFpbF9ncm91cHM6dGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfb3ZlcnNlZXJfZ3JvdXAsJ2dyb3VwX2lkJyksXHJcbiAgZmFpbHVyZV9jY19lbWFpbDogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyLCdtZW1iZXJfaWQnKSxmYWlsdXJlX2NjX2VtYWlsX2dyb3Vwczp0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9mYWlsZWRfb3ZlcnNlZXJfZ3JvdXAsJ2dyb3VwX2lkJyl9LFxyXG4gIGFzc2Vzc21lbnQ6IHRoaXMuZ2VuZXJhdGVBc3Nlc3NtZW50KGZvcm0ucHJvZ3JhbV9hc3Nlc3NtZW50cyksXHJcbiAgZXZpZGVuY2VfdXBsb2FkX2ZsYWc6Zm9ybT8uZXZpZGVuY2VfcmVxdWlyZWQgPyAxIDogMCxcclxuICBpc19rZXlfZXZpZGVuY2U6IGZvcm0/LmFsbG93X2FueV9maWxlX2tleV9ldmlkZW5jZSxcclxuICBjdXN0b21fZmllbGRzOmZvcm0/LmN1c3RvbV9maWVsZHMgPz8gW10sXHJcbiAgZnJhbWV3b3JrOnRoaXMuZ2V0RnJhbWV3b3JrKGZvcm0/LmZyYW1ld29yaykgPz8gW10sXHJcbiAgX2lkOiBpbnN0YW5jZS5tb2RlID09PSAnRURJVCcgPyBpbnN0YW5jZS5wcm9ncmFtSWQgOiB1bmRlZmluZWQsXHJcbn1cclxuY29uc29sZS5sb2coXCJwYXlsb2FkXCIscGF5bG9hZClcclxucmV0dXJuIHBheWxvYWQ7XHJcbiB9XHJcbiBnZW5lcmF0ZUFzc2Vzc21lbnQoYXNzZXNzbWVudDphbnkpe1xyXG4gICBpZihhc3Nlc3NtZW50ICYmIGFzc2Vzc21lbnQ/Lmxlbmd0aCl7XHJcbiAgICByZXR1cm4gYXNzZXNzbWVudC5tYXAoKGNhdDphbnkpID0+IHtyZXR1cm4gey4uLmNhdCxhc3Nlc3NtZW50SWRzIDogY2F0LmFzc2Vzc21lbnRJZHM/Lm1hcCgoYXNzZXNzOmFueSkgPT4gYXNzZXNzLmlkKX19KVxyXG4gICB9ZWxzZXtcclxuICAgICByZXR1cm4gW107XHJcbiAgIH1cclxuIH1cclxuIGdldEZyYW1ld29yayhpbnB1dDphbnkpe1xyXG4gICBpZihpbnB1dCl7XHJcbiAgICByZXR1cm4gW3tcclxuICAgICAgX2lkOmlucHV0Py5faWQsXHJcbiAgICAgIGZyYW1ld29ya19uYW1lOmlucHV0Py5uYW1lLFxyXG4gICAgICB0eXBlOiBpbnB1dD8udHlwZSxcclxuICAgICAgaW5fc2NvcGU6IGlucHV0Py5pbl9zY29wZSA/IHRoaXMubGlzdFRvSWQoaW5wdXQ/LmluX3Njb3BlLCdfaWQnKTogIFtdLFxyXG4gICAgICBvdXRfc2NvcGU6IGlucHV0Py5vdXRfc2NvcGUgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5vdXRfc2NvcGUsJ19pZCcpOiBbXVxyXG4gICAgfV1cclxuICAgfWVsc2V7XHJcbiAgICAgcmV0dXJuIFtdXHJcbiAgIH1cclxuXHJcbiB9XHJcblxyXG4gbGlzdFRvSWQobGlzdDphbnksa2V5OnN0cmluZyl7XHJcbiAgIGlmKGxpc3QgJiYgbGlzdD8ubGVuZ3RoKXtcclxuICAgIHJldHVybiBsaXN0Lm1hcCgoZWxlOmFueSkgPT4gZWxlW2tleV0pO1xyXG4gICB9ZWxzZXtcclxuICAgICByZXR1cm4gW107XHJcbiAgIH1cclxuXHJcbiB9XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIGlkIDogcHJvZ3JhbSBvYmplY3QgaWRcclxuICogQHJldHVybnNcclxuICovXHJcbiBnZXRQcm9ncmFtKGlkOmFueSl7XHJcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKS5zZXQoJ3gtYnVzaW5lc3MtY3ljbGUnLCAgSlNPTi5zdHJpbmdpZnkoKHRoaXMuZ2V0QnVzaW5lc3NDeWNsZSgpKSkpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudj8ucHJvZ3JhbUVuZHBvaW50ICsgJy8nICsgaWQgKyc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsIHtoZWFkZXJzfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBAcGFyYW0gcGF5bG9hZCBwYXlsb2FkIHdoaWNoIG5lZWQgdG8gYmUgdXBkYXRlZFxyXG4gKiBAcGFyYW0gaWQgcHJvZ3JhbSBvYmplY3QgaWRcclxuICogQHJldHVybnNcclxuICovXHJcbnVwZGF0ZVByb2dyYW0ocGF5bG9hZDphbnksIGlkOiBzdHJpbmcpe1xyXG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSkuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgIEpTT04uc3RyaW5naWZ5KCh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvY2F0ZWdvcnkvZWRpdENhdGVnb3J5LycrIGlkICArICc/aXNCdXNpbmVzc0N5Y2xlPXRydWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScscGF5bG9hZCwge2hlYWRlcnN9KTtcclxufVxyXG5cclxuXHJcbmdldE1lbWViZXJCeUlkcyhpZHM6YW55KXtcclxuICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uUG9zdCArICdtZW1iZXJEZXRhaWxzYnlJZHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScse21lbWJlcl9pZDogaWRzfSwge2hlYWRlcnN9KS5waXBlKHJldHJ5KDIpKTtcclxufVxyXG5cclxuZ2V0TWVtYmVyQnlHcm91cHMoaWRzOmFueSl7XHJcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgKyAnZ3JvdXBEZXRhaWxzYnlJZHMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScse2dyb3VwX2lkczogaWRzfSwge2hlYWRlcnN9KS5waXBlKHJldHJ5KDIpKTtcclxufVxyXG5cclxufVxyXG4iXX0=
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3JhbXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Byb2dyYW1zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLElBQWdCLEVBQVUsV0FBd0IsRUFBYyxNQUF1QjtRQUF2RixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDcEUsSUFBSSxNQUFNLEVBQUU7WUFDVixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7U0FFN0I7SUFDSCxDQUFDO0lBRUQsUUFBUTs7UUFDTixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBLE1BQUEsSUFBSSxDQUFDLEdBQUcsMENBQUUsZUFBZSxJQUFHLGlEQUFpRCxFQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxXQUFXLENBQUMsT0FBWSxFQUFFLElBQVM7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QUMsZ0JBQWdCLEdBQUcsNkNBQTZDLEVBQUMsRUFBQyxTQUFTLEVBQUUsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNySixDQUFDOzs7O1lBek1BLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBUlEsVUFBVTtZQUlWLFdBQVc7WUFEWCxjQUFjLHVCQVNvRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJldHJ5IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2dyYW1zU2VydmljZSB7XHJcblxyXG4gIGVudiAhOiBhbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJvbGVzKCl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArICdyb2xlcy9nZXRQcm9ncmFtUm9sZXMmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScse2hlYWRlcnN9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgdGhlIGdpdmVuIGZpbGUgdG8gc2VydmVyXHJcbiAgICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCBGaWxlIGRhdGEgdG8gYmUgdXBsb2FkZWRcclxuICAgKiBAcGFyYW0gcGF0aCBwYXRoIFBhdGggb2YgZmlsZSB0byBiZSB1cGxvYWRlZFxyXG4gICAqIEByZXR1cm5zIHJlc3BvbnNlIGFmdGVyIHVwbG9hZGluZyBhIGZpbGVcclxuICAgKi9cclxuICB1cGxvYWRGaWxlcyhwYXlsb2FkOiBhbnksIHBhdGg6IGFueSkge1xyXG4gICAgLy8ge1xyXG4gICAgLy8gICByZXBvcnRQcm9ncmVzczogdHJ1ZSxcclxuICAgIC8vICAgb2JzZXJ2ZTogJ2V2ZW50cyd9XHJcbiAgICBjb25zdCBPUkdfUEFUSCA9IGBvLyR7cGF0aH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIE9SR19QQVRIICArICcmbmdzdy1ieXBhc3M9dHJ1ZScsIHBheWxvYWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudj8uY29tcGxpYW5jZUdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsIHtcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG5cclxuICBmZXRjaFJvbGVVc2Vycyhyb2xlczphbnkscGFnZT86YW55LCBzZWFyY2hLZXk/OmFueSl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gJyc7XHJcbiAgICBpZihwYWdlKXsgcXVlcnlTdHJpbmcgKz0gYCZwYWdlPSR7cGFnZX1gfTtcclxuICAgIGlmKHNlYXJjaEtleSl7fVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICsgJ3JvbGVzL2dldFVzZXJEZXRhaWxzJmxpbWl0PTMwJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnK3F1ZXJ5U3RyaW5nLHsgcm9sZV9pZHMgOnJvbGVzID8/IFtdfSwge2hlYWRlcnN9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGZldGNoQWxsUm9sZVVzZXJzKHJvbGVzOmFueSl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudj8ub3JnYW5pemF0aW9uUG9zdCArICdyb2xlcy9nZXRVc2VyRGV0YWlscyZ0eXBlPWFsbCZieXBhc3MtYnVzaW5lc3NDeWNsZT10cnVlJyx7IHJvbGVfaWRzIDpyb2xlcyA/PyBbXX0sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBmZXRjaEFsbFJvbGVHcm91cHMocm9sZXM6YW55KXtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgKyAncm9sZXMvZ2V0R3JvdXBEZXRhaWxzJnR5cGU9YWxsJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLHsgcm9sZV9pZHMgOnJvbGVzID8/IFtdfSwge2hlYWRlcnN9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgZmV0Y2hBbGxPcmdVc2VyKCl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgLy9odHRwczovL2RldmFwaS52LWNvbXBseS5jb20vb3JnYW5pemF0aW9uLz9tb2RlPW9yZ2FuaXNhdGlvblVzZXJzTGlzdCZwYWdpbmF0aW9uVHlwZT1zbWFsbCZhZG1pbj0xXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnY/Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbmlzYXRpb25Vc2Vyc0xpc3QmcGFnaW5hdGlvblR5cGU9c21hbGwmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGZldGNoQ29tcGxpYW5jZUdyb3Vwcygpe1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIC8vaHR0cHM6Ly9kZXZhcGkudi1jb21wbHkuY29tL29yZ2FuaXphdGlvbi8/bW9kZT1ncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52Py5vcmdhbml6YXRpb25HZXQgKyAnZ3JvdXBzTGlzdCZzdGF0dXM9MSZ0eXBlPWNvbXBsaWFuY2UmYnlwYXNzLWJ1c2luZXNzQ3ljbGU9dHJ1ZScsIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRCdXNpbmVzc0N5Y2xlKCl7XHJcbiAgICBjb25zdCBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzQ3ljbGVcIikgPz8gJ3t9Jyk7XHJcbiAgIHJldHVybiB7XHJcbiAgICAgIHNlbGVjdGVkX2N5Y2xlOiBidXNpbmVzc0N5Y2xlXHJcbiAgICAgICAgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zdGFydF9kYXRlICtcclxuICAgICAgICBcIi1cIiArXHJcbiAgICAgICAgYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uZW5kX2RhdGVcclxuICAgICAgICA6IFwiXCIsXHJcbiAgICAgIHN0YXJ0X2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5zdGFydF9kYXRlIDogXCJcIixcclxuICAgICAgZW5kX2RhdGU6IGJ1c2luZXNzQ3ljbGUgPyBidXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5lbmRfZGF0ZSA6IFwiXCIsXHJcbiAgICAgIHNlbGVjdGVkX2N5Y2xlX2FycjogYnVzaW5lc3NDeWNsZVxyXG4gICAgICAgID8gYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uc2VsZWN0ZWRfY3ljbGVfYXJyXHJcbiAgICAgICAgOiBbXSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzYXZlUHJvZ3JhbShwYXlsb2FkOmFueSl7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpLnNldCgneC1idXNpbmVzcy1jeWNsZScsICBKU09OLnN0cmluZ2lmeSgodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52LnByb2dyYW1FbmRwb2ludCArICcvY2F0ZWdvcnkvP2lzQnVzaW5lc3NDeWNsZT10cnVlJyxwYXlsb2FkLCB7aGVhZGVyc30pO1xyXG4gIH1cclxuXHJcblxyXG4gYnVpbGRQYXlsb2FkKGZvcm1EYXRhOmFueSxpbnN0YW5jZTphbnkpe1xyXG5jb25zdCBmb3JtID0gZm9ybURhdGE/LnZhbHVlO1xyXG5jb25zdCBvcHRpb24gPSBpbnN0YW5jZS5hZGRpdGlvbmFsT3B0aW9uO1xyXG5jb25zdCBwYXlsb2FkID0ge1xyXG4gIG1vZGU6ICdwcm9ncmFtJyxcclxuICBuYW1lOmZvcm0/LnByb2dyYW1fbmFtZS50cmltKCkgPz8gJycsXHJcbiAgZGVzY3JpcHRpb246e3RleHQ6Zm9ybT8ucHJvZ3JhbV9kZXNjcmlwdGlvbiA/PyAnJyxhdHRhY2htZW50czpmb3JtPy5wcm9ncmFtX2Rlc2NyaXB0aW9uX2F0dGFjaG1lbnRzID8/IFtdfSxcclxuICBwcm9ncmFtX29iamVjdGl2ZSA6IHt0ZXh0OmZvcm0/LnByb2dyYW1fb2JqZWN0aXZlID8/ICcnLGF0dGFjaG1lbnRzOmZvcm0/Lm9iamVjdGl2ZV9hdHRhY2htZW50ID8/IFtdfSxcclxuICByb2xlczogICBmb3JtLnByb2dyYW1fcm9sZXMubWFwKChlbGU6YW55KSA9PiB7cmV0dXJuIHtyb2xlSWQ6ZWxlPy5faWQscm9sZU5hbWU6ZWxlPy5yb2xlTmFtZSwgbGljZW5zZVR5cGU6ZWxlPy5saWNlbnNlVHlwZX19KSxcclxuICBvd25lcnM6dGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVycywnbWVtYmVyX2lkJykgPz8gW10sXHJcbiAgb3duZXJzX2dyb3VwOiBvcHRpb24/LlJPTEVTID8gdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX293bmVyc19ncm91cCwnZ3JvdXBfaWQnKSA/PyBbXSA6IFtdLFxyXG4gIGFsbF91c2VyX2luX3JvbGU6IG9wdGlvbj8uUk9MRVMgICA/IGZvcm0/LmFsbF91c2VyX2luX3JvbGUgPz8gZmFsc2U6IGZhbHNlLFxyXG4gIHByb2dyYW1UeXBlOmZvcm0/LnByb2dyYW1fdHlwZSA/PyAwLFxyXG4gIC8vIHN0YXRlOjAsXHJcbiAgc3RhdGU6IGZvcm0/LnByb2dyYW1fc3RhdGUgPz8gMCxcclxuICBhcHByb3ZlcnM6IG9wdGlvbj8uQVBQUk9WRVIgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXBwcm92ZXIsJ21lbWJlcl9pZCcpID8/IFtdIDogW10sXHJcbiAgY2FsY3VsYXRlX3Bhc3RfdXBjb21pbmdfZXZlbnQ6IGZvcm0/LnBlcmZvcm1hbmNlX2NhbGN1bGF0aW9uID8/ICcnLFxyXG4gIHByb2dyYW1fZnJlcXVlbmN5IDogb3B0aW9uLlBST0dSQU1fRlJFUVVFTkNZICA/IChmb3JtPy5yZWN1cnJpbmdfZnJlcXVlbmN5ID8gMSA6IDAgKTogMSxcclxuICBsb2NrX3Njb3BlOiBvcHRpb24uU0NPUEVfQ0hBTkdFUyA/IChmb3JtPy5sb2NrX3Njb3BlX2NoYW5nZSA/IDEgOjAgKTogMCAsXHJcbiAgcmNfaWRzOiBvcHRpb24uUkMgPyAgdGhpcy5saXN0VG9JZChmb3JtPy5yYywnaXRlbV9pZCcpOltdLFxyXG4gIGFzc2lnbmVlX2lkczogb3B0aW9uLkFTU0lHTkVFUyA/ICB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fYXNzaWduZWUsJ21lbWJlcl9pZCcpIDpbXSxcclxuICBhc3NpZ25lZV9ncm91cF9pZHM6b3B0aW9uLkFTU0lHTkVFUyA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9hc3NpZ25lZV9ncm91cCwnZ3JvdXBfaWQnKTpbXSxcclxuICBkZWZhdWx0X2Fzc2lnbmVlX2lkcyA6IG9wdGlvbi5BU1NJR05FRVMgPyAgdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfYXNzaWduZWUsJ21lbWJlcl9pZCcpOltdLFxyXG4gIGRlZmF1bHRfYXNzaWduZWVfZ3JvdXBfaWRzOm9wdGlvbi5BU1NJR05FRVMgPyB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9hc3NpZ25lZV9ncm91cCwnZ3JvdXBfaWQnKTpbXSxcclxuICBkZWZhdWx0X2Fzc2lnbmVlX3R5cGU6b3B0aW9uLkFTU0lHTkVFUyA/ICBmb3JtPy5hc3NpZ25lZV9jb21wbGV0aW9uX2NyaXRlcmlhOidBTllPTkUnLFxyXG4gIHJldmlld2Vyczogb3B0aW9uLlJFVklFV0VSID8gIHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9yZXZpZXdlciwnbWVtYmVyX2lkJykgOltdLFxyXG4gIHJldmlld2VyX2dyb3VwX2lkczogIG9wdGlvbi5SRVZJRVdFUiA/IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9yZXZpZXdlcl9ncm91cCwnZ3JvdXBfaWQnKTpbXSxcclxuICBkZWZhdWx0X3Jldmlld2Vyczogb3B0aW9uLlJFVklFV0VSID90aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9yZXZpZXdlciwnbWVtYmVyX2lkJyk6W10sXHJcbiAgZGVmYXVsdF9yZXZpZXdlcl9ncm91cF9pZHM6ICBvcHRpb24uUkVWSUVXRVIgP3RoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X3Jldmlld2VyX2dyb3VwLCdncm91cF9pZCcpOltdLFxyXG4gIGRlZmF1bHRfcmV2aWV3ZXJzX3R5cGU6Zm9ybT8ucmV2aWV3ZXJfY29tcGxldGlvbl9jcml0ZXJpYSxcclxuICBvdmVyc2VlcnM6b3B0aW9uLk9WRVJTRUVSID8gIHtjY19lbWFpbDogdGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX292ZXJzZWVyLCdtZW1iZXJfaWQnKSxjY19lbWFpbF9ncm91cHM6dGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX292ZXJzZWVyX2dyb3VwLCdncm91cF9pZCcpLFxyXG4gIGZhaWx1cmVfY2NfZW1haWw6IFtdLGZhaWx1cmVfY2NfZW1haWxfZ3JvdXBzOltdfSA6IHtjY19lbWFpbDpbXSxjY19lbWFpbF9ncm91cHM6W10sXHJcbiAgZmFpbHVyZV9jY19lbWFpbDogW10sZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6W119LFxyXG5cclxuICBkZWZhdWx0X292ZXJzZWVyczogb3B0aW9uLk9WRVJTRUVSID8ge2NjX2VtYWlsOiB0aGlzLmxpc3RUb0lkKGZvcm0/LnByb2dyYW1fZGVmYXVsdF9vdmVyc2VlciwnbWVtYmVyX2lkJyksXHJcbiAgY2NfZW1haWxfZ3JvdXBzOnRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X292ZXJzZWVyX2dyb3VwLCdncm91cF9pZCcpLFxyXG4gIGZhaWx1cmVfY2NfZW1haWw6IHRoaXMubGlzdFRvSWQoZm9ybT8ucHJvZ3JhbV9kZWZhdWx0X2ZhaWxlZF9vdmVyc2VlciwnbWVtYmVyX2lkJyksXHJcbiAgZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6dGhpcy5saXN0VG9JZChmb3JtPy5wcm9ncmFtX2RlZmF1bHRfZmFpbGVkX292ZXJzZWVyX2dyb3VwLCdncm91cF9pZCcpfSA6XHJcbiAge2NjX2VtYWlsOiBbXSxjY19lbWFpbF9ncm91cHM6W10sZmFpbHVyZV9jY19lbWFpbDogW10sZmFpbHVyZV9jY19lbWFpbF9ncm91cHM6W119LFxyXG5cclxuICBhc3Nlc3NtZW50OiBvcHRpb24/LkFTU0VTU01FTlQgPyAgdGhpcy5nZW5lcmF0ZUFzc2Vzc21lbnQoZm9ybS5wcm9ncmFtX2Fzc2Vzc21lbnRzKSA6IFtdLFxyXG4gIGV2aWRlbmNlX3VwbG9hZF9mbGFnOiBvcHRpb24/LkZPUk1BVEVfRVZJREVOQ0UgPyAgZm9ybT8uZXZpZGVuY2VfcmVxdWlyZWQgPyAxIDogMCA6IDAsXHJcbiAgaXNfa2V5X2V2aWRlbmNlOiBmb3JtPy5hbGxvd19hbnlfZmlsZV9rZXlfZXZpZGVuY2UsXHJcbiAgY3VzdG9tX2ZpZWxkczogb3B0aW9uPy5DVVNUT01fRklFTERTID8gZm9ybT8uY3VzdG9tX2ZpZWxkcyA/PyBbXSA6IFtdLFxyXG4gIGZyYW1ld29yazp0aGlzLmdldEZyYW1ld29yayhmb3JtPy5mcmFtZXdvcmspID8/IFtdLFxyXG4gIF9pZDogaW5zdGFuY2UubW9kZSA9PT0gJ0VESVQnID8gaW5zdGFuY2UucHJvZ3JhbUlkIDogdW5kZWZpbmVkLFxyXG59XHJcbmNvbnNvbGUubG9nKFwicGF5bG9hZFwiLHBheWxvYWQpXHJcbnJldHVybiBwYXlsb2FkO1xyXG4gfVxyXG4gZ2VuZXJhdGVBc3Nlc3NtZW50KGFzc2Vzc21lbnQ6YW55KXtcclxuICAgaWYoYXNzZXNzbWVudCAmJiBhc3Nlc3NtZW50Py5sZW5ndGgpe1xyXG4gICAgcmV0dXJuIGFzc2Vzc21lbnQubWFwKChjYXQ6YW55KSA9PiB7cmV0dXJuIHsuLi5jYXQsYXNzZXNzbWVudElkcyA6IGNhdC5hc3Nlc3NtZW50SWRzPy5tYXAoKGFzc2VzczphbnkpID0+IGFzc2Vzcy5pZCl9fSlcclxuICAgfWVsc2V7XHJcbiAgICAgcmV0dXJuIFtdO1xyXG4gICB9XHJcbiB9XHJcbiBnZXRGcmFtZXdvcmsoaW5wdXQ6YW55KXtcclxuICAgaWYoaW5wdXQpe1xyXG4gICAgcmV0dXJuIFt7XHJcbiAgICAgIF9pZDppbnB1dD8uX2lkLFxyXG4gICAgICBmcmFtZXdvcmtfbmFtZTppbnB1dD8ubmFtZSxcclxuICAgICAgdHlwZTogaW5wdXQ/LnR5cGUsXHJcbiAgICAgIGluX3Njb3BlOiBpbnB1dD8uaW5fc2NvcGUgPyB0aGlzLmxpc3RUb0lkKGlucHV0Py5pbl9zY29wZSwnX2lkJyk6ICBbXSxcclxuICAgICAgb3V0X3Njb3BlOiBpbnB1dD8ub3V0X3Njb3BlID8gdGhpcy5saXN0VG9JZChpbnB1dD8ub3V0X3Njb3BlLCdfaWQnKTogW11cclxuICAgIH1dXHJcbiAgIH1lbHNle1xyXG4gICAgIHJldHVybiBbXVxyXG4gICB9XHJcblxyXG4gfVxyXG5cclxuIGxpc3RUb0lkKGxpc3Q6YW55LGtleTpzdHJpbmcpe1xyXG4gICBpZihsaXN0ICYmIGxpc3Q/Lmxlbmd0aCl7XHJcbiAgICByZXR1cm4gbGlzdC5tYXAoKGVsZTphbnkpID0+IGVsZVtrZXldKTtcclxuICAgfWVsc2V7XHJcbiAgICAgcmV0dXJuIFtdO1xyXG4gICB9XHJcblxyXG4gfVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBwYXJhbSBpZCA6IHByb2dyYW0gb2JqZWN0IGlkXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG4gZ2V0UHJvZ3JhbShpZDphbnkpe1xyXG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSkuc2V0KCd4LWJ1c2luZXNzLWN5Y2xlJywgIEpTT04uc3RyaW5naWZ5KCh0aGlzLmdldEJ1c2luZXNzQ3ljbGUoKSkpKTtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnY/LnByb2dyYW1FbmRwb2ludCArICcvJyArIGlkICsnP2lzQnVzaW5lc3NDeWNsZT10cnVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLCB7aGVhZGVyc30pO1xyXG59XHJcblxyXG4vKipcclxuICpcclxuICogQHBhcmFtIHBheWxvYWQgcGF5bG9hZCB3aGljaCBuZWVkIHRvIGJlIHVwZGF0ZWRcclxuICogQHBhcmFtIGlkIHByb2dyYW0gb2JqZWN0IGlkXHJcbiAqIEByZXR1cm5zXHJcbiAqL1xyXG51cGRhdGVQcm9ncmFtKHBheWxvYWQ6YW55LCBpZDogc3RyaW5nKXtcclxuICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpLnNldCgneC1idXNpbmVzcy1jeWNsZScsICBKU09OLnN0cmluZ2lmeSgodGhpcy5nZXRCdXNpbmVzc0N5Y2xlKCkpKSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5wcm9ncmFtRW5kcG9pbnQgKyAnL2NhdGVnb3J5L2VkaXRDYXRlZ29yeS8nKyBpZCAgKyAnP2lzQnVzaW5lc3NDeWNsZT10cnVlJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLHBheWxvYWQsIHtoZWFkZXJzfSk7XHJcbn1cclxuXHJcblxyXG5nZXRNZW1lYmVyQnlJZHMoaWRzOmFueSl7XHJcbiAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvblBvc3QgKyAnbWVtYmVyRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLHttZW1iZXJfaWQ6IGlkc30sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbn1cclxuXHJcbmdldE1lbWJlckJ5R3JvdXBzKGlkczphbnkpe1xyXG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25Qb3N0ICsgJ2dyb3VwRGV0YWlsc2J5SWRzJmJ5cGFzcy1idXNpbmVzc0N5Y2xlPXRydWUnLHtncm91cF9pZHM6IGlkc30sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbn1cclxuXHJcbn1cclxuIl19
|