vcomply-workflow-engine 6.1.6 → 6.1.8

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.
Files changed (171) hide show
  1. package/esm2022/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.mjs +7 -34
  2. package/esm2022/lib/constants/api.constants.mjs +6 -1
  3. package/esm2022/lib/constants/assets.constants.mjs +1 -2
  4. package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
  5. package/esm2022/lib/interfaces/iframe-type.mjs +7 -0
  6. package/esm2022/lib/interfaces/responsibilty.interface.mjs +1 -1
  7. package/esm2022/lib/more-option/more-option.component.mjs +26 -191
  8. package/esm2022/lib/report-a-case/services/report-a-case.service.mjs +3 -2
  9. package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +12 -7
  10. package/esm2022/lib/services/common.service.mjs +40 -1
  11. package/esm2022/lib/services/iframe.service.mjs +14 -1
  12. package/esm2022/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -6
  13. package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +7 -7
  14. package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection.module.mjs +27 -4
  15. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +10 -21
  16. package/esm2022/lib/sharedComponents/frequency/frequency-annual/frequency-annual.component.mjs +5 -1
  17. package/esm2022/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +5 -1
  18. package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +5 -5
  19. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
  20. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +6 -2
  21. package/esm2022/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +3 -2
  22. package/esm2022/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +3 -1
  23. package/esm2022/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +5 -1
  24. package/esm2022/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +9 -2
  25. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +4 -2
  26. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +267 -5
  27. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +5 -2
  28. package/esm2022/lib/sharedComponents/link-responsibility/link-responsibility.component.mjs +47 -16
  29. package/esm2022/lib/sharedComponents/list-container/list-container.component.mjs +52 -0
  30. package/esm2022/lib/sharedComponents/program-list/constant.mjs +27 -0
  31. package/esm2022/lib/sharedComponents/program-list/interfaces/data-source.interface.mjs +2 -0
  32. package/esm2022/lib/sharedComponents/program-list/interfaces/list-item.interface.mjs +2 -0
  33. package/esm2022/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.mjs +23 -0
  34. package/esm2022/lib/sharedComponents/program-list/program-list/program-list.component.mjs +273 -0
  35. package/esm2022/lib/sharedComponents/program-list/program-list.module.mjs +51 -0
  36. package/esm2022/lib/sharedComponents/program-list/services/list-utils.service.mjs +27 -0
  37. package/esm2022/lib/sharedComponents/program-list/services/program-list-api.service.mjs +32 -0
  38. package/esm2022/lib/ui-kit/loaders/loaders.module.mjs +24 -0
  39. package/esm2022/lib/ui-kit/loaders/table-loader/table-loader.component.mjs +19 -0
  40. package/esm2022/lib/workflow/grc-object/grc-object-container/grc-object-container.component.mjs +45 -17
  41. package/esm2022/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.mjs +13 -10
  42. package/esm2022/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.mjs +62 -35
  43. package/esm2022/lib/workflow/shared/services/grc.service.mjs +15 -2
  44. package/esm2022/lib/workflow/shared/workflow-pipes/get-user-details.pipe.mjs +26 -0
  45. package/esm2022/lib/workflow/shared/workflow-pipes/workflow-pipes.module.mjs +8 -3
  46. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +316 -467
  47. package/esm2022/lib/workflow-engine-container/api-constants.mjs +3 -2
  48. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +32 -53
  49. package/esm2022/lib/workflow-engine.module.mjs +11 -16
  50. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +46 -29
  51. package/esm2022/lib/workflow-program/constants.mjs +3 -11
  52. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/pipes/tooltip-message.pipe.mjs +1 -7
  53. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +13 -11
  54. package/esm2022/lib/workflow-program/workflow-program.component.mjs +340 -311
  55. package/esm2022/lib/workflow-services/policy.service.mjs +8 -9
  56. package/esm2022/lib/workflow-services/programs.service.mjs +26 -114
  57. package/esm2022/lib/workflow-services/responsibility.service.mjs +68 -57
  58. package/fesm2022/vcomply-workflow-engine.mjs +10070 -9540
  59. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  60. package/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.d.ts +0 -1
  61. package/lib/add-multiple-responsibility-with-tab/add-multiple-responsibility-with-tab.component.d.ts +0 -3
  62. package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +0 -1
  63. package/lib/constants/api.constants.d.ts +5 -0
  64. package/lib/constants/assets.constants.d.ts +0 -1
  65. package/lib/interfaces/frequency.interface.d.ts +37 -0
  66. package/lib/interfaces/iframe-type.d.ts +5 -0
  67. package/lib/interfaces/responsibilty.interface.d.ts +14 -13
  68. package/lib/log-an-issue/log-an-issue.component.d.ts +0 -1
  69. package/lib/more-option/more-option.component.d.ts +0 -1
  70. package/lib/report-a-case/components/assignee/assignee.component.d.ts +0 -1
  71. package/lib/report-a-case/components/case-assignees/case-assignees.component.d.ts +0 -1
  72. package/lib/report-a-case/components/case-category/case-category.component.d.ts +0 -1
  73. package/lib/report-a-case/components/case-details/case-details.component.d.ts +0 -1
  74. package/lib/report-a-case/components/case-owners/case-owners.component.d.ts +0 -1
  75. package/lib/report-a-case/components/case-priority/case-priority.component.d.ts +0 -1
  76. package/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.d.ts +0 -1
  77. package/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.d.ts +0 -1
  78. package/lib/report-a-case/components/due-date/due-date.component.d.ts +0 -1
  79. package/lib/report-a-case/components/field-holder/field-holder.component.d.ts +0 -1
  80. package/lib/report-a-case/components/linked assessment/linked-assessment.component.d.ts +0 -1
  81. package/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.d.ts +0 -1
  82. package/lib/report-a-case/components/rc-details/rc-details.component.d.ts +0 -1
  83. package/lib/report-a-case/components/report-date/report-date.component.d.ts +0 -1
  84. package/lib/report-a-case/workflow-case/workflow-case.component.d.ts +1 -1
  85. package/lib/services/common.service.d.ts +28 -0
  86. package/lib/services/iframe.service.d.ts +6 -0
  87. package/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.d.ts +0 -1
  88. package/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.d.ts +0 -1
  89. package/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.d.ts +0 -1
  90. package/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.d.ts +0 -1
  91. package/lib/sharedComponents/assessment-editor/components/logic/logic.component.d.ts +0 -1
  92. package/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.d.ts +0 -1
  93. package/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.d.ts +0 -1
  94. package/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.d.ts +0 -1
  95. package/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.d.ts +0 -1
  96. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +0 -1
  97. package/lib/sharedComponents/audit-category-list/audit-category-list.component.d.ts +0 -1
  98. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +0 -6
  99. package/lib/sharedComponents/category-list/category-list.component.d.ts +0 -1
  100. package/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.d.ts +0 -1
  101. package/lib/sharedComponents/category-list-selection/category-list-selection.module.d.ts +5 -5
  102. package/lib/sharedComponents/category-multiselect/category-multi-select.component.d.ts +0 -1
  103. package/lib/sharedComponents/checkbox-list/checkbox-list.component.d.ts +0 -1
  104. package/lib/sharedComponents/format-and-evidence/format-and-evidence.component.d.ts +1 -5
  105. package/lib/sharedComponents/framework-list/framework-list.component.d.ts +0 -1
  106. package/lib/sharedComponents/frequency/frequency-random/frequency-random.component.d.ts +1 -0
  107. package/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.d.ts +0 -1
  108. package/lib/sharedComponents/frequency/frequency.service.d.ts +92 -2
  109. package/lib/sharedComponents/group-users-list/group-users-list.component.d.ts +0 -1
  110. package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +0 -1
  111. package/lib/sharedComponents/link-responsibility/link-responsibility.component.d.ts +2 -1
  112. package/lib/sharedComponents/list-container/list-container.component.d.ts +9 -0
  113. package/lib/sharedComponents/owner-list/owner-list.component.d.ts +0 -1
  114. package/lib/sharedComponents/policy-access/policy-access.component.d.ts +0 -1
  115. package/lib/sharedComponents/program-list/constant.d.ts +20 -0
  116. package/lib/sharedComponents/program-list/interfaces/data-source.interface.d.ts +4 -0
  117. package/lib/sharedComponents/program-list/interfaces/list-item.interface.d.ts +5 -0
  118. package/lib/sharedComponents/program-list/pipes/check-selected-items.pipes.d.ts +7 -0
  119. package/lib/sharedComponents/program-list/program-list/program-list.component.d.ts +126 -0
  120. package/lib/sharedComponents/program-list/program-list.module.d.ts +15 -0
  121. package/lib/sharedComponents/program-list/services/list-utils.service.d.ts +7 -0
  122. package/lib/sharedComponents/program-list/services/program-list-api.service.d.ts +14 -0
  123. package/lib/sharedComponents/program-listing/program-listing.component.d.ts +0 -1
  124. package/lib/sharedComponents/radio-list/radio-list.component.d.ts +0 -1
  125. package/lib/sharedComponents/radio-list-with-pagination/radio-list.component.d.ts +0 -1
  126. package/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.d.ts +0 -1
  127. package/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.d.ts +0 -1
  128. package/lib/sharedComponents/review-frequency/review-frequency.component.d.ts +0 -1
  129. package/lib/sharedComponents/roles-list/roles-list.component.d.ts +0 -1
  130. package/lib/sharedComponents/select-approvers/select-approvers.component.d.ts +0 -1
  131. package/lib/sharedComponents/users-radio-list/users-radio-list.component.d.ts +0 -1
  132. package/lib/ui-kit/loaders/loaders.module.d.ts +8 -0
  133. package/lib/ui-kit/loaders/table-loader/table-loader.component.d.ts +9 -0
  134. package/lib/ui-kit/pagination/pagination/pagination.component.d.ts +0 -1
  135. package/lib/workflow/grc-object/grc-object-container/grc-object-container.component.d.ts +5 -1
  136. package/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.d.ts +0 -1
  137. package/lib/workflow/shared/components/grc-category-listing/grc-category-listing.component.d.ts +3 -1
  138. package/lib/workflow/shared/components/program-responsibility-listing/program-responsibility-listing.component.d.ts +6 -2
  139. package/lib/workflow/shared/services/grc.service.d.ts +1 -0
  140. package/lib/workflow/shared/workflow-pipes/get-user-details.pipe.d.ts +7 -0
  141. package/lib/workflow/shared/workflow-pipes/workflow-pipes.module.d.ts +3 -2
  142. package/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.d.ts +0 -1
  143. package/lib/workflow-assessment/workflow-assessment.component.d.ts +0 -1
  144. package/lib/workflow-compliance/workflow-compliance.component.d.ts +32 -12
  145. package/lib/workflow-engine-container/api-constants.d.ts +1 -0
  146. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +5 -2
  147. package/lib/workflow-engine.module.d.ts +3 -2
  148. package/lib/workflow-policy/workflow-policy.component.d.ts +9 -1
  149. package/lib/workflow-program/constants.d.ts +0 -3
  150. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +0 -1
  151. package/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.d.ts +0 -1
  152. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +0 -1
  153. package/lib/workflow-program/create-program-ui/role-list/role-list.component.d.ts +0 -1
  154. package/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.d.ts +0 -1
  155. package/lib/workflow-program/workflow-program.component.d.ts +9 -11
  156. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -2
  157. package/lib/workflow-services/policy.service.d.ts +1 -1
  158. package/lib/workflow-services/programs.service.d.ts +13 -54
  159. package/lib/workflow-services/responsibility.service.d.ts +67 -6
  160. package/lib/workflow-survey-form/workflow-survey-form.component.d.ts +0 -1
  161. package/package.json +1 -1
  162. package/esm2022/lib/constants/policy.constant.mjs +0 -6
  163. package/esm2022/lib/constants/regix.constants.mjs +0 -4
  164. package/esm2022/lib/constants/responsibility.mjs +0 -8
  165. package/esm2022/lib/interfaces/policy.interface.mjs +0 -2
  166. package/esm2022/lib/sharedComponents/pipes/risk-class.pipe.mjs +0 -19
  167. package/lib/constants/policy.constant.d.ts +0 -2
  168. package/lib/constants/regix.constants.d.ts +0 -3
  169. package/lib/constants/responsibility.d.ts +0 -7
  170. package/lib/interfaces/policy.interface.d.ts +0 -5
  171. package/lib/sharedComponents/pipes/risk-class.pipe.d.ts +0 -7
@@ -77,7 +77,8 @@ export class ReportACaseService {
77
77
  }
78
78
  reportACase(payload) {
79
79
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
80
- return this.http.post(this.env.case, payload, {
80
+ const caseEndpoint = this.env.case + '?serviceType=1';
81
+ return this.http.post(caseEndpoint, payload, {
81
82
  headers,
82
83
  });
83
84
  }
@@ -130,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
130
131
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.Configurations, decorators: [{
131
132
  type: Optional
132
133
  }] }]; } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWEtY2FzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFNdEQsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBakIxQixpQkFBWSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNwRSxzQkFBaUIsR0FBeUIsSUFBSSxlQUFlLENBQ25FLElBQUksQ0FDTCxDQUFDO1FBQ00sc0JBQWlCLEdBQXlCLElBQUksZUFBZSxDQUNuRSxJQUFJLENBQ0wsQ0FBQztRQUNNLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDekQsY0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsaUJBQVksR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN0RCxvQkFBZSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzNE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QUMsQ0FBQztJQUNMLENBQUM7K0dBeEtVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQW9CSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi8uLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBBUElfVVJMUyB9IGZyb20gJy4uL2NvbnN0YW50cy9hcGkuY29uc3RhbnRzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEFDYXNlU2VydmljZSB7XG4gIHByaXZhdGUgZ2V0QWxsVHlwZXMkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHJpdmF0ZSBnZXRBbGxQcmlvcml0aWVzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oXG4gICAgbnVsbFxuICApO1xuICBwcml2YXRlIGdldEFsbENhdGVnb3JpZXMkOiBCZWhhdmlvclN1YmplY3Q8YW55PiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihcbiAgICBudWxsXG4gICk7XG4gIHByaXZhdGUgd29ya2Zsb3dTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICB3b3JrZmxvdyQgPSB0aGlzLndvcmtmbG93U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHdvcmtmbG93Q29kZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVzZXRNb3JlT3B0aW9uOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgcHVibGljIGNhc2VUeXBlTG9hZGVyOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBlbnY6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnNcbiAgKSB7XG4gICAgdGhpcy5lbnYgPSBjb25maWc/LmVudkNvbmZpZztcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBbGxUeXBlcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZT8uZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodGhpcy5lbnYuY2FzZSArIEFQSV9VUkxTLkdFVF9BTExfVFlQRVMsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0QWxsVHlwZXMkLm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBbGxQcmlvcml0aWVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlPy5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh0aGlzLmVudi5jYXNlICsgQVBJX1VSTFMuR0VUX0FMTF9QUklPUklUSUVTLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmdldEFsbFByaW9yaXRpZXMkLm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEFsbENhdGVnb3JpZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2U/LmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5HRVRfQUxMX0NBVEVHT1JJRVMsIHtcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0QWxsQ2F0ZWdvcmllcyQubmV4dChyZXMpO1xuICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEFsbENhdGVnb3JpZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5nZXRBbGxDYXRlZ29yaWVzJD8uZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0QWxsQ2F0ZWdvcmllcyQ/LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hBbGxDYXRlZ29yaWVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsVHlwZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5nZXRBbGxUeXBlcyQ/LmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmdldEFsbFR5cGVzJD8udmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mZXRjaEFsbFR5cGVzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsUHJpb3JpdGllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmICh0aGlzLmdldEFsbFByaW9yaXRpZXMkPy5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5nZXRBbGxQcmlvcml0aWVzJD8udmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mZXRjaEFsbFByaW9yaXRpZXMoKTtcbiAgfVxuXG4gIHJlcG9ydEFDYXNlKHBheWxvYWQ6IGFueSkge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4odGhpcy5lbnYuY2FzZSwgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDYXNlVG9Xb3JrZmxvdyhwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5BRERfQ0FTRV9UT19XT1JLRkxPVywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDYXNlKHBheWxvYWQ6IGFueSwgY2FzZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odGhpcy5lbnYuY2FzZSArICcvJyArIGNhc2VJZCwgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFdvcmtmbG93RGV0YWlscyhwYXJhbXM6IGFueSkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgLy8gU2V0IHRoZSByZXF1aXJlZCBoZWFkZXJzLCBpbmNsdWRpbmcgdGhlIGN1c3RvbSBcIlBheWxvYWQtT2JqZWN0XCJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcbiAgICAgIC5zZXQoJ1BheWxvYWQtT2JqZWN0JywgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5HRVRfU1RBR0VfREVUQUlMUywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2FzZU93bmVycyh3b3JrZmxvd19pZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArIEFQSV9VUkxTLkdFVF9DQVNFX09XTkVSUyArIHdvcmtmbG93X2lkLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRDYXNlRGV0YWlscyhjYXNlSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYuY2FzZSArICcvJyArIGNhc2VJZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWEtY2FzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvcmVwb3J0LWEtY2FzZS9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRS9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7QUFNdEQsTUFBTSxPQUFPLGtCQUFrQjtJQWdCN0IsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUNwQixNQUF1QjtRQUYzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBakIxQixpQkFBWSxHQUF5QixJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztRQUNwRSxzQkFBaUIsR0FBeUIsSUFBSSxlQUFlLENBQ25FLElBQUksQ0FDTCxDQUFDO1FBQ00sc0JBQWlCLEdBQXlCLElBQUksZUFBZSxDQUNuRSxJQUFJLENBQ0wsQ0FBQztRQUNNLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDekQsY0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekMsaUJBQVksR0FBb0IsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUN0RCxvQkFBZSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQzNE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R0FBRyxHQUFHLEdBQUcsTUFBTSxFQUFFO1lBQ2pELE9BQU87U0FDUixDQUFDLENBQUM7SUFDTCxDQUFDOytHQXpLVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFvQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vLi4vY29uZmlndXJhdGlvbnMnO1xuaW1wb3J0IHsgQVBJX1VSTFMgfSBmcm9tICcuLi9jb25zdGFudHMvYXBpLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXBvcnRBQ2FzZVNlcnZpY2Uge1xuICBwcml2YXRlIGdldEFsbFR5cGVzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHByaXZhdGUgZ2V0QWxsUHJpb3JpdGllcyQ6IEJlaGF2aW9yU3ViamVjdDxhbnk+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KFxuICAgIG51bGxcbiAgKTtcbiAgcHJpdmF0ZSBnZXRBbGxDYXRlZ29yaWVzJDogQmVoYXZpb3JTdWJqZWN0PGFueT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4oXG4gICAgbnVsbFxuICApO1xuICBwcml2YXRlIHdvcmtmbG93U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgd29ya2Zsb3ckID0gdGhpcy53b3JrZmxvd1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyB3b3JrZmxvd0NvZGU6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlc2V0TW9yZU9wdGlvbjogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyBjYXNlVHlwZUxvYWRlcjogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgZW52OiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIHRoaXMuZW52ID0gY29uZmlnPy5lbnZDb25maWc7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQWxsVHlwZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2U/LmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5HRVRfQUxMX1RZUEVTLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmdldEFsbFR5cGVzJC5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoQWxsUHJpb3JpdGllcygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZT8uZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQodGhpcy5lbnYuY2FzZSArIEFQSV9VUkxTLkdFVF9BTExfUFJJT1JJVElFUywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRBbGxQcmlvcml0aWVzJC5uZXh0KHJlcyk7XG4gICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hBbGxDYXRlZ29yaWVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlPy5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldCh0aGlzLmVudi5jYXNlICsgQVBJX1VSTFMuR0VUX0FMTF9DQVRFR09SSUVTLCB7XG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmdldEFsbENhdGVnb3JpZXMkLm5leHQocmVzKTtcbiAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxDYXRlZ29yaWVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuZ2V0QWxsQ2F0ZWdvcmllcyQ/LmdldFZhbHVlKCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLmdldEFsbENhdGVnb3JpZXMkPy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZldGNoQWxsQ2F0ZWdvcmllcygpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbFR5cGVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKHRoaXMuZ2V0QWxsVHlwZXMkPy5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5nZXRBbGxUeXBlcyQ/LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hBbGxUeXBlcygpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbFByaW9yaXRpZXMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAodGhpcy5nZXRBbGxQcmlvcml0aWVzJD8uZ2V0VmFsdWUoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuZ2V0QWxsUHJpb3JpdGllcyQ/LnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hBbGxQcmlvcml0aWVzKCk7XG4gIH1cblxuICByZXBvcnRBQ2FzZShwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIGNvbnN0IGNhc2VFbmRwb2ludCA9IHRoaXMuZW52LmNhc2UgKyAnP3NlcnZpY2VUeXBlPTEnO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGNhc2VFbmRwb2ludCwgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDYXNlVG9Xb3JrZmxvdyhwYXlsb2FkOiBhbnkpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5BRERfQ0FTRV9UT19XT1JLRkxPVywgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDYXNlKHBheWxvYWQ6IGFueSwgY2FzZUlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KFxuICAgICAgJ3Rva2VuJyxcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKClcbiAgICApO1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PGFueT4odGhpcy5lbnYuY2FzZSArICcvJyArIGNhc2VJZCwgcGF5bG9hZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFdvcmtmbG93RGV0YWlscyhwYXJhbXM6IGFueSkge1xuICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgLy8gU2V0IHRoZSByZXF1aXJlZCBoZWFkZXJzLCBpbmNsdWRpbmcgdGhlIGN1c3RvbSBcIlBheWxvYWQtT2JqZWN0XCJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKClcbiAgICAgIC5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSlcbiAgICAgIC5zZXQoJ1BheWxvYWQtT2JqZWN0JywgcGF5bG9hZCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0KHRoaXMuZW52LmNhc2UgKyBBUElfVVJMUy5HRVRfU1RBR0VfREVUQUlMUywge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMud29ya2Zsb3dTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgZ2V0Q2FzZU93bmVycyh3b3JrZmxvd19pZDogc3RyaW5nKSB7XG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldChcbiAgICAgICd0b2tlbicsXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcbiAgICAgIHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArIEFQSV9VUkxTLkdFVF9DQVNFX09XTkVSUyArIHdvcmtmbG93X2lkLFxuICAgICAge1xuICAgICAgICBoZWFkZXJzLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBnZXRDYXNlRGV0YWlscyhjYXNlSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoXG4gICAgICAndG9rZW4nLFxuICAgICAgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKVxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodGhpcy5lbnYuY2FzZSArICcvJyArIGNhc2VJZCwge1xuICAgICAgaGVhZGVycyxcbiAgICB9KTtcbiAgfVxufVxuIl19