vcomply-workflow-engine 6.0.6 → 6.0.7

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 (33) hide show
  1. package/esm2022/lib/interfaces/frequency.interface.mjs +2 -0
  2. package/esm2022/lib/more-option/more-option.component.mjs +8 -66
  3. package/esm2022/lib/report-a-case/components/case-assignees/case-assignees.component.mjs +10 -5
  4. package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +11 -2
  5. package/esm2022/lib/report-a-case/components/case-owners/case-owners.component.mjs +7 -2
  6. package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +7 -2
  7. package/esm2022/lib/report-a-case/components/rc-details/rc-details.component.mjs +8 -2
  8. package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +15 -3
  9. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -3
  10. package/esm2022/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +2 -1
  11. package/esm2022/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +2 -1
  12. package/esm2022/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +2 -1
  13. package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +56 -5
  14. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +3 -1
  15. package/esm2022/lib/workflow-engine-container/workflow-engine-container.component.mjs +20 -4
  16. package/esm2022/lib/workflow-program/workflow-program.component.mjs +25 -43
  17. package/esm2022/lib/workflow-services/programs.service.mjs +24 -4
  18. package/fesm2022/vcomply-workflow-engine.mjs +197 -138
  19. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  20. package/lib/interfaces/frequency.interface.d.ts +36 -0
  21. package/lib/report-a-case/components/case-assignees/case-assignees.component.d.ts +3 -2
  22. package/lib/report-a-case/components/case-category/case-category.component.d.ts +2 -1
  23. package/lib/report-a-case/components/case-owners/case-owners.component.d.ts +2 -1
  24. package/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.d.ts +2 -1
  25. package/lib/report-a-case/components/rc-details/rc-details.component.d.ts +2 -1
  26. package/lib/report-a-case/workflow-case/workflow-case.component.d.ts +3 -1
  27. package/lib/sharedComponents/frequency/frequency.service.d.ts +7 -4
  28. package/lib/workflow-compliance/workflow-compliance.component.d.ts +1 -1
  29. package/lib/workflow-engine-container/workflow-engine-container.component.d.ts +1 -0
  30. package/lib/workflow-program/workflow-program.component.d.ts +0 -1
  31. package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
  32. package/lib/workflow-services/programs.service.d.ts +15 -0
  33. package/package.json +1 -1
@@ -55,6 +55,7 @@ export class RcDetailsComponent {
55
55
  this.workflowType = '';
56
56
  this.fieldClicked = new EventEmitter();
57
57
  this.onRcChange = new EventEmitter();
58
+ this.filterDeselector = new EventEmitter();
58
59
  }
59
60
  ngOnDestroy() {
60
61
  this.selectedItems = [];
@@ -140,6 +141,7 @@ export class RcDetailsComponent {
140
141
  this.fieldClicked.emit('');
141
142
  this.validationError.rc.isError = false;
142
143
  this.validationError.rc.message = '';
144
+ this.filterDeselector.emit(false);
143
145
  }
144
146
  setMainRcList(event) {
145
147
  this.mainRcConfig.items = this.responsibilityCentersList
@@ -172,9 +174,11 @@ export class RcDetailsComponent {
172
174
  this.getResponsibilityCentersList();
173
175
  if (active) {
174
176
  this.fieldClicked.emit('RC');
177
+ this.filterDeselector.emit(true);
175
178
  }
176
179
  else {
177
180
  this.fieldClicked.emit('');
181
+ this.filterDeselector.emit(false);
178
182
  }
179
183
  }
180
184
  setRcList(event) {
@@ -201,7 +205,7 @@ export class RcDetailsComponent {
201
205
  this.payload?.rc_details?.ids?.length === 1);
202
206
  }
203
207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RcDetailsComponent, deps: [{ token: i1.ComplianceCommonService }], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RcDetailsComponent, selector: "app-rc-details", inputs: { payload: "payload", fieldSelected: "fieldSelected", caseTypeSelected: "caseTypeSelected", validationError: "validationError", initialSelection: "initialSelection", mode: "mode", workflowType: "workflowType" }, outputs: { fieldClicked: "fieldClicked", onRcChange: "onRcChange" }, usesOnChanges: true, ngImport: i0, template: `
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RcDetailsComponent, selector: "app-rc-details", inputs: { payload: "payload", fieldSelected: "fieldSelected", caseTypeSelected: "caseTypeSelected", validationError: "validationError", initialSelection: "initialSelection", mode: "mode", workflowType: "workflowType" }, outputs: { fieldClicked: "fieldClicked", onRcChange: "onRcChange", filterDeselector: "filterDeselector" }, usesOnChanges: true, ngImport: i0, template: `
205
209
  <app-field-holder
206
210
  [image]="ASSETS.responsibility_center"
207
211
  [active]="rcClicked"
@@ -468,5 +472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
468
472
  type: Output
469
473
  }], onRcChange: [{
470
474
  type: Output
475
+ }], filterDeselector: [{
476
+ type: Output
471
477
  }] } });
472
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmMtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL2NvbXBvbmVudHMvcmMtZGV0YWlscy9yYy1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSx1Q0FBdUMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7OztBQWlJakUsTUFBTSxPQUFPLGtCQUFrQjtJQWlDN0IsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUVoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUM3QyxJQUFJLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDO1NBQzVDO0lBRUgsQ0FBQztJQU9ELFlBQW9CLGlCQUEwQztRQUExQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO1FBL0M5RCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxXQUFXLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQiw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFDdEMsaUJBQVksR0FBUTtZQUNsQixH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ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFTU0VUUyB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9hc3Nlc3N0cy5jb25zdGFudHMnO1xuaW1wb3J0IHtcbiAgQUNUSU9OX0NPREUsXG4gIERFRkFVTFRfRk9STV9DT05GSUcsXG4gIEZJRUxEX1NFTEVDVE9SLFxuICBSRVBPUlRfQ0FTRSxcbiAgU2VsZWN0aW9uUG9wdXBTdGF0ZSxcbiAgU2VsZWN0aW9uU3RhdGUsXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9yZXBvcnQtY2FzZS5jb25zdGFudHMnO1xuXG5pbXBvcnQgeyBDb21wbGlhbmNlQ29tbW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL2NvbW1vbi13b3JrZmxvdy1zZXJ2aWNlcy9jb21wbGlhbmNlLWNvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IHJlcG9ydCB9IGZyb20gJy4uL2Nhc2UtdHlwZS1zbGlkZXIvY2FzZS10eXBlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1yYy1kZXRhaWxzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YXBwLWZpZWxkLWhvbGRlclxuICAgICAgW2ltYWdlXT1cIkFTU0VUUy5yZXNwb25zaWJpbGl0eV9jZW50ZXJcIlxuICAgICAgW2FjdGl2ZV09XCJyY0NsaWNrZWRcIlxuICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICBmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZFNlbGVjdGVkKSAmJlxuICAgICAgICBmaWVsZFNlbGVjdGVkICE9PSBjdXJyZW50U2VsZWN0b3JcbiAgICAgIFwiXG4gICAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5yY19kZXRhaWxzPy5pZHM/Lmxlbmd0aFwiXG4gICAgPlxuXG4gICAgICA8bmctY29udGFpbmVyIGZpZWxkPlxuICAgICAgICA8YXBwLWZvcm0tc2VsZWN0Qm94XG4gICAgICAgICAgW2NvbmZpZ109XCJjb25maWdcIlxuICAgICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgICAgW3BvcHVwU3RhdGVdPVwiU2VsZWN0aW9uUG9wdXBTdGF0ZS5TRUxFQ1RJT05fRElBTE9HXCJcbiAgICAgICAgICBbY2hpcEl0ZW1zXT1cInNlbGVjdGVkSXRlbXNcIlxuICAgICAgICAgIFtpc0Vycm9yXT1cInZhbGlkYXRpb25FcnJvci5yYy5pc0Vycm9yXCJcbiAgICAgICAgICBbZXJyb3JNZXNzYWdlXT1cInZhbGlkYXRpb25FcnJvci5yYy5tZXNzYWdlXCJcbiAgICAgICAgICBbZWRpdERpc2FibGVkXT1cInJjRWRpdERpc2FibGVcIlxuICAgICAgICAgIFtyZW1vdmFibGVdPVwiIXJjRWRpdERpc2FibGVcIlxuICAgICAgICAgIChmaWVsZENsaWNrZWQpPVwiYWN0aXZhdGVTZWxlY3RvcigkZXZlbnQpXCJcbiAgICAgICAgICAoc2VsZWN0ZWRJdGVtTGlzdENoYW5nZSk9XCJzZXRSY0xpc3QoJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8YXBwLXZjLWxhYmVsXG4gICAgICAgICAgICBsYWJlbFxuICAgICAgICAgICAgW2xhYmVsVGV4dF09XCJyY1RleHRzLmNhc2VfZGV0YWlscy5yYy50aXRsZVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XIHx8XG4gICAgICAgICAgICAgIHdvcmtmbG93VHlwZSA9PT0gJ0FDVFcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2FwcC12Yy1sYWJlbD5cbiAgICAgICAgPC9hcHAtZm9ybS1zZWxlY3RCb3g+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgKGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XIHx8XG4gICAgICAgICAgICAgIHdvcmtmbG93VHlwZSA9PT0gJ0FDVFcnKSAmJlxuICAgICAgICAgICAgcGF5bG9hZD8ucmNfZGV0YWlscz8uaWRzPy5sZW5ndGggPiAxXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtcm93IHN3aXRjaC1kaXNhYmxlZCBhbGlnbi1yaWdodCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLXRleHQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC1saC00ICB2eC1tci0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgcmNUZXh0cy5jYXNlX2RldGFpbHMucmMuc2FtZVJjVGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YXBwLWNzLXN3aXRjaCBbbmdWYWx1ZV09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cInRydWVcIj4gPC9hcHAtY3Mtc3dpdGNoPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwhLS0gPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIidmZl9yZXNwb25zaWJpbGl0eV9yY19saW5rJ1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJwYXlsb2FkPy5yY19kZXRhaWxzPy5zZXBhcmF0ZV9yY19jYXNlc1wiXG4gICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIm9uUmNUeXBlQ2hhbmdlKHRydWUpXCJcbiAgICAgICAgICAgID48ZGl2IGNsYXNzPVwicmMtcmFkaW8tdGV4dFwiPlxuICAgICAgICAgICAgICB7eyByY1RleHRzLmNhc2VfZGV0YWlscy5yYy5zZXBhcmF0ZVJjVGV4dCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmNUZXh0cy5jYXNlX2RldGFpbHMucmMuc2VwYXJhdGVSY1Rvb2x0aXBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICA+PC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICA+XG4gICAgICAgICAgPGFwcC1jcy1yYWRpb1xuICAgICAgICAgICAgY2xhc3M9XCJtYWluLWZpbGVkXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIidmZl9yZXNwb25zaWJpbGl0eV9yY19saW5rJ1wiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCIhcGF5bG9hZD8ucmNfZGV0YWlscz8uc2VwYXJhdGVfcmNfY2FzZXNcIlxuICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJvblJjVHlwZUNoYW5nZShmYWxzZSlcIlxuICAgICAgICAgICAgPnt7IHJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnNhbWVSY1RleHRcbiAgICAgICAgICAgIH19PGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cInJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnNhbWVSY1Rvb2x0aXBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPiYjeGU5MWY7PC9pXG4gICAgICAgICAgICA+PC9hcHAtY3MtcmFkaW9cbiAgICAgICAgICA+IC0tPlxuICAgICAgICAgIDxwXG4gICAgICAgICAgICAqbmdJZj1cIiFwYXlsb2FkPy5yY19kZXRhaWxzPy5zZXBhcmF0ZV9yY19jYXNlc1wiXG4gICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTExIHZ4LWxoLTQgdngtZnctNTAwIHZ4LXR4dC1ibGFjayB2eC1tYi0yXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmaWVsZFNlbGVjdG9yPy5pbmNsdWRlcyhmaWVsZFNlbGVjdGVkKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgU0VMRUNUIFRIRSBNQUlOIFJFU1BPTlNJQklMSVRZIENFTlRFUiBCQVNFRCBPTiBXSElDSCBUSEUgV09SS0ZMT1dcbiAgICAgICAgICAgIEZPUiBUSElTIENBU0UgV0lMTCBCRSBERUZJTkVEXG4gICAgICAgICAgPC9wPlxuICAgICAgICAgIDxhcHAtZm9ybS1zZWxlY3RCb3hcbiAgICAgICAgICAgICpuZ0lmPVwiIXBheWxvYWQ/LnJjX2RldGFpbHM/LnNlcGFyYXRlX3JjX2Nhc2VzXCJcbiAgICAgICAgICAgIFtjb25maWddPVwibWFpblJjQ29uZmlnXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJtYWluUmNTdGF0ZVwiXG4gICAgICAgICAgICBbcG9wdXBTdGF0ZV09XCJTZWxlY3Rpb25Qb3B1cFN0YXRlLkRST1BfRE9XTlwiXG4gICAgICAgICAgICBbY2hpcEl0ZW1zXT1cInNlbGVjdGVkTWFpblJjSXRlbXNcIlxuICAgICAgICAgICAgW2lzRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yLm1haW5SYy5pc0Vycm9yXCJcbiAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwidmFsaWRhdGlvbkVycm9yLm1haW5SYy5tZXNzYWdlXCJcbiAgICAgICAgICAgIFtlZGl0RGlzYWJsZWRdPVwiXG4gICAgICAgICAgICAgIG1vZGUgPT09ICdFRElUJyAmJlxuICAgICAgICAgICAgICBjYXNlVHlwZVNlbGVjdGVkID09PSBjYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPVyAmJlxuICAgICAgICAgICAgICB3b3JrZmxvd1R5cGUgIT09ICdBQ1RXJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChmaWVsZENsaWNrZWQpPVwiYWN0aXZhdGVTZWxlY3RvcigkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW1MaXN0Q2hhbmdlKT1cInNhdmVNYWluUmNMaXN0KCRldmVudClcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L2FwcC1mb3JtLXNlbGVjdEJveD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2FwcC1maWVsZC1ob2xkZXI+XG4gICAgPGFwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXJzLWxpc3RcbiAgICAgICpuZ0lmPVwicmNDbGlja2VkXCJcbiAgICAgIFtyZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XT1cInJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcIlxuICAgICAgW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlDZW50ZXJzXT1cInNlbGVjdGVkUmNMaXN0XCJcbiAgICAgIFtyY0lkS2V5XT1cIidyY19pZCdcIlxuICAgICAgKHNhdmVTZWxlY3RlZExpc3QpPVwic2F2ZVNlbGVjdGVkUkNMaXN0KCRldmVudClcIlxuICAgICAgKGNsb3NlUmNMaXN0KT1cImFjdGl2YXRlU2VsZWN0b3IoZmFsc2UpXCJcbiAgICAgIFtzaW5ndWxhclRleHRdPVwicmNUZXh0cy5jYXNlX2RldGFpbHMucmMuc2luZ3VsYXJUZXh0XCJcbiAgICAgIFtwbHVyYWxUZXh0XT1cInJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnBsdXJhbFRleHRcIlxuICAgICAgW2xvYWRlZF09XCIhcmNMaXN0TG9hZGVyXCJcbiAgICA+XG4gICAgPC9hcHAtcmVzcG9uc2liaWxpdHktY2VudGVycy1saXN0PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vLi4vZm9ybXMubGVzcycsICcuL3JjLWRldGFpbHMuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmNEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIHJjVGV4dHMgPSBSRVBPUlRfQ0FTRTtcbiAgY2FzZVR5cGUgPSByZXBvcnQ7XG4gIHJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q6IGFueVtdID0gW107XG4gIG1haW5SY0NvbmZpZzogYW55ID0ge1xuICAgIC4uLkRFRkFVTFRfRk9STV9DT05GSUcsXG4gICAgYWN0aW9uOiBBQ1RJT05fQ09ERS5SQyxcbiAgICBwbGFjZWhvbGRlcjogdGhpcy5yY1RleHRzLmNhc2VfZGV0YWlscy5yYy5tYWluUmNQbGFjZWhvbGRlcixcbiAgICBpdGVtczogW10sXG4gIH07XG4gIGNvbmZpZzogYW55ID0ge1xuICAgIC4uLkRFRkFVTFRfRk9STV9DT05GSUcsXG4gICAgYWN0aW9uOiBBQ1RJT05fQ09ERS5SQyxcbiAgICBwbGFjZWhvbGRlcjogdGhpcy5yY1RleHRzLmNhc2VfZGV0YWlscy5yYy5wbGFjZWhvbGRlcixcbiAgICBpdGVtczogW10sXG4gIH07XG4gIHJjQ2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuICByY0xpc3RMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgU2VsZWN0aW9uU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZTtcbiAgU2VsZWN0aW9uUG9wdXBTdGF0ZSA9IFNlbGVjdGlvblBvcHVwU3RhdGU7XG4gIHN0YXRlOiBzdHJpbmcgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgbWFpblJjU3RhdGU6IHN0cmluZyA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZFJjTGlzdDogYW55W10gPSBbXTtcbiAgc2VsZWN0ZWRNYWluUmNJdGVtczogYW55W10gPSBbXTtcbiAgZmllbGRTZWxlY3RvciA9IEZJRUxEX1NFTEVDVE9SO1xuICBjdXJyZW50U2VsZWN0b3IgPSAnUkMnO1xuXG4gIEBJbnB1dCgpIHBheWxvYWQ6IGFueSA9IHt9O1xuICBASW5wdXQoKSBmaWVsZFNlbGVjdGVkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY2FzZVR5cGVTZWxlY3RlZDogc3RyaW5nID0gcmVwb3J0LlJFUE9SVF9DQVNFO1xuICBASW5wdXQoKSB2YWxpZGF0aW9uRXJyb3I6IGFueSA9IHt9O1xuICBASW5wdXQoKSBzZXQgaW5pdGlhbFNlbGVjdGlvbih2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdmFsdWU/LmlkcztcblxuICAgIHRoaXMuc2VsZWN0ZWRNYWluUmNJdGVtcyA9IHZhbHVlPy5tYWluX3JjX2lkO1xuICAgIGlmICh2YWx1ZT8ubWFpbl9yY19pZCkge1xuICAgICAgdGhpcy5tYWluUmNTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIH1cblxuICB9XG4gIEBJbnB1dCgpIG1vZGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB3b3JrZmxvd1R5cGU6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBmaWVsZENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvblJjQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wbGlhbmNlU2VydmljZTogQ29tcGxpYW5jZUNvbW1vblNlcnZpY2UpIHt9XG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTWFpblJjSXRlbXMgPSBbXTtcbiAgICB0aGlzLm1haW5SY1N0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gICAgdGhpcy5zdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICAgIHRoaXMuY29tcGxpYW5jZVNlcnZpY2UucmNMaXN0Py5uZXh0KG51bGwpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkTWFpblJjSXRlbXMgPSBbXTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5nZXRSZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydwYXlsb2FkJ10pIHtcbiAgICAgIGlmICghdGhpcy5wYXlsb2FkPy5yY19kZXRhaWxzPy5pZHM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLnNlbGVjdGVkUmNMaXN0ID0gW107XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydjYXNlVHlwZVNlbGVjdGVkJ10pIHtcbiAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QoKSB7XG4gICAgdGhpcy5yY0xpc3RMb2FkZXIgPSB0cnVlO1xuICAgIGNvbnN0IGFsbFZpc2libGUgPSB0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09ICdyZXBvcnRDYXNlJyAmJiB0aGlzLndvcmtmbG93VHlwZSA9PT0gJ1JBQycgJiYgdGhpcy5tb2RlICE9PSAnRURJVCcgPyB0cnVlIDogZmFsc2U7XG4gICAgdGhpcy5jb21wbGlhbmNlU2VydmljZVxuICAgICAgLmdldFJjTGlzdEluZm8odW5kZWZpbmVkLCBhbGxWaXNpYmxlKVxuICAgICAgLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gcmVzO1xuICAgICAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcbiAgICAgICAgICB0aGlzLnBvcHVsYXRlU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmNMaXN0TG9hZGVyID0gZmFsc2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBvcHVsYXRlU2VsZWN0ZWRJdGVtcygpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggKSB7XG4gICAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcbiAgICAgICAgPy5maWx0ZXIoKHJjOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRJdGVtcz8uaW5jbHVkZXMocmM/Ll9pZCkpXG4gICAgICAgID8ubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICAgIHZhbHVlOiByYz8ucmNfaWQsXG4gICAgICAgIH0pKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3Q/LmZpbHRlcigocmM6IGFueSkgPT5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zPy5zb21lKChpdGVtOiBhbnkpID0+IGl0ZW0/LnZhbHVlID09PSByYz8ucmNfaWQpXG4gICAgICApO1xuICAgICAgdGhpcy5tYWluUmNDb25maWcuaXRlbXMgPSB0aGlzLnNlbGVjdGVkUmNMaXN0Lm1hcCgocmM6IGFueSkgPT4gKHtcbiAgICAgICAgbmFtZTogcmM/Lml0ZW1fbmFtZSxcbiAgICAgICAgX2lkOiByYz8uX2lkLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5zZWxlY3RlZE1haW5SY0l0ZW1zID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XG4gICAgICAgID8uZmlsdGVyKChyYzogYW55KSA9PiB0aGlzLnNlbGVjdGVkTWFpblJjSXRlbXMgPT09IHJjPy5faWQpXG4gICAgICAgID8ubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICAgIGxhYmVsOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICAgIHZhbHVlOiByYz8uX2lkLFxuICAgICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kZSA9PT0gJ0VESVQnICYmIHRoaXMud29ya2Zsb3dUeXBlICE9PSAnQUNUVycgJiYgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSB0aGlzLmNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XXG4gICAgICAgID8gKCh0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRElTQUJMRUQpLFxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kaXNhYmxlZFRleHQgPSB0aGlzLnJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnBsYWNlaG9sZGVyKSlcbiAgICAgICAgOiAodGhpcy5zdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZKTtcbiAgICB9XG4gIH1cblxuICBzYXZlU2VsZWN0ZWRSQ0xpc3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucmNDbGlja2VkID0gZmFsc2U7XG4gICAgdGhpcy5zZXRTZWxlY3RlZFJjTGlzdChldmVudCk7XG4gICAgdGhpcy5zZXRNYWluUmNMaXN0KGV2ZW50KTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcbiAgICAgIC5maWx0ZXIoKHJjOiBhbnkpID0+IGV2ZW50LmluY2x1ZGVzKHJjPy5yY19pZCkpXG4gICAgICAubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICBsYWJlbDogcmM/Lml0ZW1fbmFtZSxcbiAgICAgICAgdmFsdWU6IHJjPy5yY19pZCxcbiAgICAgIH0pKTtcbiAgICB0aGlzLnNldFBheWxvYWQoZXZlbnQpO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICB0aGlzLmZpZWxkQ2xpY2tlZC5lbWl0KCcnKTtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5yYy5pc0Vycm9yID0gZmFsc2U7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3IucmMubWVzc2FnZSA9ICcnO1xuICB9XG5cbiAgc2V0TWFpblJjTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5tYWluUmNDb25maWcuaXRlbXMgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcbiAgICAgIC5maWx0ZXIoKHJjOiBhbnkpID0+IGV2ZW50LmluY2x1ZGVzKHJjPy5yY19pZCkpXG4gICAgICAubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICBuYW1lOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICBfaWQ6IHJjPy5faWQsXG4gICAgICB9KSk7XG4gIH1cblxuICBzYXZlTWFpblJjTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5tYWluUmNTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLm1haW5fcmNfaWQgPSBldmVudFswXT8udmFsdWU7XG4gICAgdGhpcy5vblJjQ2hhbmdlLmVtaXQodGhpcy5wYXlsb2FkLnJjX2RldGFpbHMubWFpbl9yY19pZCk7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubWFpblJjLmlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5tYWluUmMubWVzc2FnZSA9ICcnO1xuICB9XG5cbiAgc2V0UGF5bG9hZChldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMuaWRzID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XG4gICAgICAuZmlsdGVyKChyYzogYW55KSA9PiBldmVudC5pbmNsdWRlcyhyYz8ucmNfaWQpKVxuICAgICAgLm1hcCgocmM6IGFueSkgPT4gcmM/Ll9pZCk7XG4gICAgaWYgKHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLmlkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMub25SY0NoYW5nZS5lbWl0KHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLmlkc1swXSk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWRSY0xpc3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZmlsdGVyKChyYzogYW55KSA9PlxuICAgICAgZXZlbnQuaW5jbHVkZXMocmM/LnJjX2lkKVxuICAgICk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMucmNDbGlja2VkID0gYWN0aXZlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCgpO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ1JDJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICAgIH1cbiAgfVxuXG4gIHNldFJjTGlzdChldmVudDogYW55KSB7XG4gICAgaWYgKCFldmVudD8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLnJlc2V0UmNMaXN0KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZFJjTGlzdCA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8uZmlsdGVyKChyYzogYW55KSA9PlxuICAgICAgZXZlbnQ/LnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbT8udmFsdWUgPT09IHJjPy5yY19pZClcbiAgICApO1xuICAgIHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLmlkcyA9IHRoaXMuc2VsZWN0ZWRSY0xpc3Q/Lm1hcChcbiAgICAgIChyYzogYW55KSA9PiByYz8uX2lkXG4gICAgKTtcbiAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7XG4gIH1cblxuICByZXNldFJjTGlzdCgpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmNMaXN0ID0gW107XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMuaWRzID0gW107XG4gICAgdGhpcy5zdGF0ZSA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICB9XG5cbiAgb25SY1R5cGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLnNlcGFyYXRlX3JjX2Nhc2VzID0gZXZlbnQ7XG4gIH1cblxuICBnZXQgcmNFZGl0RGlzYWJsZSgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5tb2RlID09PSAnRURJVCcgJiZcbiAgICAgIHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gdGhpcy5jYXNlVHlwZS5BRERfQ0FTRV9UT19XT1JLRkxPVyAmJlxuICAgICAgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJyAmJlxuICAgICAgdGhpcy5wYXlsb2FkPy5yY19kZXRhaWxzPy5pZHM/Lmxlbmd0aCA9PT0gMVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
478
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmMtZGV0YWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9yZXBvcnQtYS1jYXNlL2NvbXBvbmVudHMvcmMtZGV0YWlscy9yYy1kZXRhaWxzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxHQUliLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRCxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixjQUFjLEdBQ2YsTUFBTSx1Q0FBdUMsQ0FBQztBQUcvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7Ozs7OztBQWlJakUsTUFBTSxPQUFPLGtCQUFrQjtJQWlDN0IsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUVoQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxFQUFFLFVBQVUsQ0FBQztRQUM3QyxJQUFJLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDO1NBQzVDO0lBRUgsQ0FBQztJQVFELFlBQW9CLGlCQUEwQztRQUExQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO1FBaEQ5RCxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLFlBQU8sR0FBRyxXQUFXLENBQUM7UUFDdEIsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQiw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFDdEMsaUJBQVksR0FBUTtZQUNsQixH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RyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFTRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2Vzc3RzLmNvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBQ1RJT05fQ09ERSxcbiAgREVGQVVMVF9GT1JNX0NPTkZJRyxcbiAgRklFTERfU0VMRUNUT1IsXG4gIFJFUE9SVF9DQVNFLFxuICBTZWxlY3Rpb25Qb3B1cFN0YXRlLFxuICBTZWxlY3Rpb25TdGF0ZSxcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3JlcG9ydC1jYXNlLmNvbnN0YW50cyc7XG5cbmltcG9ydCB7IENvbXBsaWFuY2VDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvY29tbW9uLXdvcmtmbG93LXNlcnZpY2VzL2NvbXBsaWFuY2UtY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgcmVwb3J0IH0gZnJvbSAnLi4vY2FzZS10eXBlLXNsaWRlci9jYXNlLXR5cGUuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXJjLWRldGFpbHMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxhcHAtZmllbGQtaG9sZGVyXG4gICAgICBbaW1hZ2VdPVwiQVNTRVRTLnJlc3BvbnNpYmlsaXR5X2NlbnRlclwiXG4gICAgICBbYWN0aXZlXT1cInJjQ2xpY2tlZFwiXG4gICAgICBbZGlzYWJsZWRdPVwiXG4gICAgICAgIGZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkU2VsZWN0ZWQpICYmXG4gICAgICAgIGZpZWxkU2VsZWN0ZWQgIT09IGN1cnJlbnRTZWxlY3RvclxuICAgICAgXCJcbiAgICAgIFtjaGVja2VkXT1cInBheWxvYWQ/LnJjX2RldGFpbHM/Lmlkcz8ubGVuZ3RoXCJcbiAgICA+XG5cbiAgICAgIDxuZy1jb250YWluZXIgZmllbGQ+XG4gICAgICAgIDxhcHAtZm9ybS1zZWxlY3RCb3hcbiAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1wiXG4gICAgICAgICAgW3N0YXRlXT1cInN0YXRlXCJcbiAgICAgICAgICBbcG9wdXBTdGF0ZV09XCJTZWxlY3Rpb25Qb3B1cFN0YXRlLlNFTEVDVElPTl9ESUFMT0dcIlxuICAgICAgICAgIFtjaGlwSXRlbXNdPVwic2VsZWN0ZWRJdGVtc1wiXG4gICAgICAgICAgW2lzRXJyb3JdPVwidmFsaWRhdGlvbkVycm9yLnJjLmlzRXJyb3JcIlxuICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwidmFsaWRhdGlvbkVycm9yLnJjLm1lc3NhZ2VcIlxuICAgICAgICAgIFtlZGl0RGlzYWJsZWRdPVwicmNFZGl0RGlzYWJsZVwiXG4gICAgICAgICAgW3JlbW92YWJsZV09XCIhcmNFZGl0RGlzYWJsZVwiXG4gICAgICAgICAgKGZpZWxkQ2xpY2tlZCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCRldmVudClcIlxuICAgICAgICAgIChzZWxlY3RlZEl0ZW1MaXN0Q2hhbmdlKT1cInNldFJjTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhcHAtdmMtbGFiZWxcbiAgICAgICAgICAgIGxhYmVsXG4gICAgICAgICAgICBbbGFiZWxUZXh0XT1cInJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnRpdGxlXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1cgfHxcbiAgICAgICAgICAgICAgd29ya2Zsb3dUeXBlID09PSAnQUNUVydcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYXBwLXZjLWxhYmVsPlxuICAgICAgICA8L2FwcC1mb3JtLXNlbGVjdEJveD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAoY2FzZVR5cGVTZWxlY3RlZCA9PT0gY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1cgfHxcbiAgICAgICAgICAgICAgd29ya2Zsb3dUeXBlID09PSAnQUNUVycpICYmXG4gICAgICAgICAgICBwYXlsb2FkPy5yY19kZXRhaWxzPy5pZHM/Lmxlbmd0aCA+IDFcbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1yb3cgc3dpdGNoLWRpc2FibGVkIGFsaWduLXJpZ2h0IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtdGV4dCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTQgIHZ4LW1yLTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyByY1RleHRzLmNhc2VfZGV0YWlscy5yYy5zYW1lUmNUZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxhcHAtY3Mtc3dpdGNoIFtuZ1ZhbHVlXT1cInRydWVcIiBbZGlzYWJsZWRdPVwidHJ1ZVwiPiA8L2FwcC1jcy1zd2l0Y2g+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPCEtLSA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxuICAgICAgICAgICAgW25hbWVdPVwiJ2ZmX3Jlc3BvbnNpYmlsaXR5X3JjX2xpbmsnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cInBheWxvYWQ/LnJjX2RldGFpbHM/LnNlcGFyYXRlX3JjX2Nhc2VzXCJcbiAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwib25SY1R5cGVDaGFuZ2UodHJ1ZSlcIlxuICAgICAgICAgICAgPjxkaXYgY2xhc3M9XCJyYy1yYWRpby10ZXh0XCI+XG4gICAgICAgICAgICAgIHt7IHJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnNlcGFyYXRlUmNUZXh0IH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJyY1RleHRzLmNhc2VfZGV0YWlscy5yYy5zZXBhcmF0ZVJjVG9vbHRpcFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICAgID48L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID5cbiAgICAgICAgICA8YXBwLWNzLXJhZGlvXG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tZmlsZWRcIlxuICAgICAgICAgICAgW25hbWVdPVwiJ2ZmX3Jlc3BvbnNpYmlsaXR5X3JjX2xpbmsnXCJcbiAgICAgICAgICAgIFtjaGVja2VkXT1cIiFwYXlsb2FkPy5yY19kZXRhaWxzPy5zZXBhcmF0ZV9yY19jYXNlc1wiXG4gICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIm9uUmNUeXBlQ2hhbmdlKGZhbHNlKVwiXG4gICAgICAgICAgICA+e3sgcmNUZXh0cy5jYXNlX2RldGFpbHMucmMuc2FtZVJjVGV4dFxuICAgICAgICAgICAgfX08aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwicmNUZXh0cy5jYXNlX2RldGFpbHMucmMuc2FtZVJjVG9vbHRpcFwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+JiN4ZTkxZjs8L2lcbiAgICAgICAgICAgID48L2FwcC1jcy1yYWRpb1xuICAgICAgICAgID4gLS0+XG4gICAgICAgICAgPHBcbiAgICAgICAgICAgICpuZ0lmPVwiIXBheWxvYWQ/LnJjX2RldGFpbHM/LnNlcGFyYXRlX3JjX2Nhc2VzXCJcbiAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTEgdngtbGgtNCB2eC1mdy01MDAgdngtdHh0LWJsYWNrIHZ4LW1iLTJcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZpZWxkU2VsZWN0b3I/LmluY2x1ZGVzKGZpZWxkU2VsZWN0ZWQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBTRUxFQ1QgVEhFIE1BSU4gUkVTUE9OU0lCSUxJVFkgQ0VOVEVSIEJBU0VEIE9OIFdISUNIIFRIRSBXT1JLRkxPV1xuICAgICAgICAgICAgRk9SIFRISVMgQ0FTRSBXSUxMIEJFIERFRklORURcbiAgICAgICAgICA8L3A+XG4gICAgICAgICAgPGFwcC1mb3JtLXNlbGVjdEJveFxuICAgICAgICAgICAgKm5nSWY9XCIhcGF5bG9hZD8ucmNfZGV0YWlscz8uc2VwYXJhdGVfcmNfY2FzZXNcIlxuICAgICAgICAgICAgW2NvbmZpZ109XCJtYWluUmNDb25maWdcIlxuICAgICAgICAgICAgW3N0YXRlXT1cIm1haW5SY1N0YXRlXCJcbiAgICAgICAgICAgIFtwb3B1cFN0YXRlXT1cIlNlbGVjdGlvblBvcHVwU3RhdGUuRFJPUF9ET1dOXCJcbiAgICAgICAgICAgIFtjaGlwSXRlbXNdPVwic2VsZWN0ZWRNYWluUmNJdGVtc1wiXG4gICAgICAgICAgICBbaXNFcnJvcl09XCJ2YWxpZGF0aW9uRXJyb3IubWFpblJjLmlzRXJyb3JcIlxuICAgICAgICAgICAgW2Vycm9yTWVzc2FnZV09XCJ2YWxpZGF0aW9uRXJyb3IubWFpblJjLm1lc3NhZ2VcIlxuICAgICAgICAgICAgW2VkaXREaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgbW9kZSA9PT0gJ0VESVQnICYmXG4gICAgICAgICAgICAgIGNhc2VUeXBlU2VsZWN0ZWQgPT09IGNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XICYmXG4gICAgICAgICAgICAgIHdvcmtmbG93VHlwZSAhPT0gJ0FDVFcnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGZpZWxkQ2xpY2tlZCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCRldmVudClcIlxuICAgICAgICAgICAgKHNlbGVjdGVkSXRlbUxpc3RDaGFuZ2UpPVwic2F2ZU1haW5SY0xpc3QoJGV2ZW50KVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvYXBwLWZvcm0tc2VsZWN0Qm94PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvYXBwLWZpZWxkLWhvbGRlcj5cbiAgICA8YXBwLXJlc3BvbnNpYmlsaXR5LWNlbnRlcnMtbGlzdFxuICAgICAgKm5nSWY9XCJyY0NsaWNrZWRcIlxuICAgICAgW3Jlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RdPVwicmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFwiXG4gICAgICBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUNlbnRlcnNdPVwic2VsZWN0ZWRSY0xpc3RcIlxuICAgICAgW3JjSWRLZXldPVwiJ3JjX2lkJ1wiXG4gICAgICAoc2F2ZVNlbGVjdGVkTGlzdCk9XCJzYXZlU2VsZWN0ZWRSQ0xpc3QoJGV2ZW50KVwiXG4gICAgICAoY2xvc2VSY0xpc3QpPVwiYWN0aXZhdGVTZWxlY3RvcihmYWxzZSlcIlxuICAgICAgW3Npbmd1bGFyVGV4dF09XCJyY1RleHRzLmNhc2VfZGV0YWlscy5yYy5zaW5ndWxhclRleHRcIlxuICAgICAgW3BsdXJhbFRleHRdPVwicmNUZXh0cy5jYXNlX2RldGFpbHMucmMucGx1cmFsVGV4dFwiXG4gICAgICBbbG9hZGVkXT1cIiFyY0xpc3RMb2FkZXJcIlxuICAgID5cbiAgICA8L2FwcC1yZXNwb25zaWJpbGl0eS1jZW50ZXJzLWxpc3Q+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuLi8uLi8uLi9mb3Jtcy5sZXNzJywgJy4vcmMtZGV0YWlscy5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBSY0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgcmNUZXh0cyA9IFJFUE9SVF9DQVNFO1xuICBjYXNlVHlwZSA9IHJlcG9ydDtcbiAgcmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdDogYW55W10gPSBbXTtcbiAgbWFpblJjQ29uZmlnOiBhbnkgPSB7XG4gICAgLi4uREVGQVVMVF9GT1JNX0NPTkZJRyxcbiAgICBhY3Rpb246IEFDVElPTl9DT0RFLlJDLFxuICAgIHBsYWNlaG9sZGVyOiB0aGlzLnJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLm1haW5SY1BsYWNlaG9sZGVyLFxuICAgIGl0ZW1zOiBbXSxcbiAgfTtcbiAgY29uZmlnOiBhbnkgPSB7XG4gICAgLi4uREVGQVVMVF9GT1JNX0NPTkZJRyxcbiAgICBhY3Rpb246IEFDVElPTl9DT0RFLlJDLFxuICAgIHBsYWNlaG9sZGVyOiB0aGlzLnJjVGV4dHMuY2FzZV9kZXRhaWxzLnJjLnBsYWNlaG9sZGVyLFxuICAgIGl0ZW1zOiBbXSxcbiAgfTtcbiAgcmNDbGlja2VkOiBib29sZWFuID0gZmFsc2U7XG4gIHJjTGlzdExvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBTZWxlY3Rpb25TdGF0ZSA9IFNlbGVjdGlvblN0YXRlO1xuICBTZWxlY3Rpb25Qb3B1cFN0YXRlID0gU2VsZWN0aW9uUG9wdXBTdGF0ZTtcbiAgc3RhdGU6IHN0cmluZyA9IFNlbGVjdGlvblN0YXRlLkVNUFRZO1xuICBtYWluUmNTdGF0ZTogc3RyaW5nID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107XG4gIHNlbGVjdGVkUmNMaXN0OiBhbnlbXSA9IFtdO1xuICBzZWxlY3RlZE1haW5SY0l0ZW1zOiBhbnlbXSA9IFtdO1xuICBmaWVsZFNlbGVjdG9yID0gRklFTERfU0VMRUNUT1I7XG4gIGN1cnJlbnRTZWxlY3RvciA9ICdSQyc7XG5cbiAgQElucHV0KCkgcGF5bG9hZDogYW55ID0ge307XG4gIEBJbnB1dCgpIGZpZWxkU2VsZWN0ZWQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjYXNlVHlwZVNlbGVjdGVkOiBzdHJpbmcgPSByZXBvcnQuUkVQT1JUX0NBU0U7XG4gIEBJbnB1dCgpIHZhbGlkYXRpb25FcnJvcjogYW55ID0ge307XG4gIEBJbnB1dCgpIHNldCBpbml0aWFsU2VsZWN0aW9uKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB2YWx1ZT8uaWRzO1xuXG4gICAgdGhpcy5zZWxlY3RlZE1haW5SY0l0ZW1zID0gdmFsdWU/Lm1haW5fcmNfaWQ7XG4gICAgaWYgKHZhbHVlPy5tYWluX3JjX2lkKSB7XG4gICAgICB0aGlzLm1haW5SY1N0YXRlID0gU2VsZWN0aW9uU3RhdGUuU0VMRUNURUQ7XG4gICAgfVxuXG4gIH1cbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHdvcmtmbG93VHlwZTogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIGZpZWxkQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uUmNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGZpbHRlckRlc2VsZWN0b3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbXBsaWFuY2VTZXJ2aWNlOiBDb21wbGlhbmNlQ29tbW9uU2VydmljZSkge31cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJjTGlzdCA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRNYWluUmNJdGVtcyA9IFtdO1xuICAgIHRoaXMubWFpblJjU3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gICAgdGhpcy5jb21wbGlhbmNlU2VydmljZS5yY0xpc3Q/Lm5leHQobnVsbCk7XG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgdGhpcy5zZWxlY3RlZFJjTGlzdCA9IFtdO1xuICAgIHRoaXMuc2VsZWN0ZWRNYWluUmNJdGVtcyA9IFtdO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLmdldFJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ3BheWxvYWQnXSkge1xuICAgICAgaWYgKCF0aGlzLnBheWxvYWQ/LnJjX2RldGFpbHM/Lmlkcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5FTVBUWTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSBbXTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2Nhc2VUeXBlU2VsZWN0ZWQnXSkge1xuICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0ID0gW107XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCgpIHtcbiAgICB0aGlzLnJjTGlzdExvYWRlciA9IHRydWU7XG4gICAgY29uc3QgYWxsVmlzaWJsZSA9IHRoaXMuY2FzZVR5cGVTZWxlY3RlZCA9PT0gJ3JlcG9ydENhc2UnICYmIHRoaXMud29ya2Zsb3dUeXBlID09PSAnUkFDJyAmJiB0aGlzLm1vZGUgIT09ICdFRElUJyA/IHRydWUgOiBmYWxzZTtcbiAgICB0aGlzLmNvbXBsaWFuY2VTZXJ2aWNlXG4gICAgICAuZ2V0UmNMaXN0SW5mbyh1bmRlZmluZWQsIGFsbFZpc2libGUpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QgPSByZXM7XG4gICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgICAgIHRoaXMucG9wdWxhdGVTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yY0xpc3RMb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcG9wdWxhdGVTZWxlY3RlZEl0ZW1zKCkge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCApIHtcbiAgICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFxuICAgICAgICA/LmZpbHRlcigocmM6IGFueSkgPT4gdGhpcy5zZWxlY3RlZEl0ZW1zPy5pbmNsdWRlcyhyYz8uX2lkKSlcbiAgICAgICAgPy5tYXAoKHJjOiBhbnkpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IHJjPy5pdGVtX25hbWUsXG4gICAgICAgICAgdmFsdWU6IHJjPy5yY19pZCxcbiAgICAgICAgfSkpO1xuICAgICAgdGhpcy5zZWxlY3RlZFJjTGlzdCA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdD8uZmlsdGVyKChyYzogYW55KSA9PlxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXM/LnNvbWUoKGl0ZW06IGFueSkgPT4gaXRlbT8udmFsdWUgPT09IHJjPy5yY19pZClcbiAgICAgICk7XG4gICAgICB0aGlzLm1haW5SY0NvbmZpZy5pdGVtcyA9IHRoaXMuc2VsZWN0ZWRSY0xpc3QubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICBuYW1lOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICBfaWQ6IHJjPy5faWQsXG4gICAgICB9KSk7XG4gICAgICB0aGlzLnNlbGVjdGVkTWFpblJjSXRlbXMgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcbiAgICAgICAgPy5maWx0ZXIoKHJjOiBhbnkpID0+IHRoaXMuc2VsZWN0ZWRNYWluUmNJdGVtcyA9PT0gcmM/Ll9pZClcbiAgICAgICAgPy5tYXAoKHJjOiBhbnkpID0+ICh7XG4gICAgICAgICAgbGFiZWw6IHJjPy5pdGVtX25hbWUsXG4gICAgICAgICAgdmFsdWU6IHJjPy5faWQsXG4gICAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlID09PSAnRURJVCcgJiYgdGhpcy53b3JrZmxvd1R5cGUgIT09ICdBQ1RXJyAmJiB0aGlzLmNhc2VUeXBlU2VsZWN0ZWQgPT09IHRoaXMuY2FzZVR5cGUuQUREX0NBU0VfVE9fV09SS0ZMT1dcbiAgICAgICAgPyAoKHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5ESVNBQkxFRCksXG4gICAgICAgICAgKHRoaXMuY29uZmlnLmRpc2FibGVkVGV4dCA9IHRoaXMucmNUZXh0cy5jYXNlX2RldGFpbHMucmMucGxhY2Vob2xkZXIpKVxuICAgICAgICA6ICh0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFkpO1xuICAgIH1cbiAgfVxuXG4gIHNhdmVTZWxlY3RlZFJDTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5yY0NsaWNrZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNldFNlbGVjdGVkUmNMaXN0KGV2ZW50KTtcbiAgICB0aGlzLnNldE1haW5SY0xpc3QoZXZlbnQpO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMucmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdFxuICAgICAgLmZpbHRlcigocmM6IGFueSkgPT4gZXZlbnQuaW5jbHVkZXMocmM/LnJjX2lkKSlcbiAgICAgIC5tYXAoKHJjOiBhbnkpID0+ICh7XG4gICAgICAgIGxhYmVsOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICB2YWx1ZTogcmM/LnJjX2lkLFxuICAgICAgfSkpO1xuICAgIHRoaXMuc2V0UGF5bG9hZChldmVudCk7XG4gICAgdGhpcy5zdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJycpO1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9yLnJjLmlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5yYy5tZXNzYWdlID0gJyc7XG4gICAgdGhpcy5maWx0ZXJEZXNlbGVjdG9yLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgc2V0TWFpblJjTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5tYWluUmNDb25maWcuaXRlbXMgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3RcbiAgICAgIC5maWx0ZXIoKHJjOiBhbnkpID0+IGV2ZW50LmluY2x1ZGVzKHJjPy5yY19pZCkpXG4gICAgICAubWFwKChyYzogYW55KSA9PiAoe1xuICAgICAgICBuYW1lOiByYz8uaXRlbV9uYW1lLFxuICAgICAgICBfaWQ6IHJjPy5faWQsXG4gICAgICB9KSk7XG4gIH1cblxuICBzYXZlTWFpblJjTGlzdChldmVudDogYW55KSB7XG4gICAgdGhpcy5tYWluUmNTdGF0ZSA9IFNlbGVjdGlvblN0YXRlLlNFTEVDVEVEO1xuICAgIHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLm1haW5fcmNfaWQgPSBldmVudFswXT8udmFsdWU7XG4gICAgdGhpcy5vblJjQ2hhbmdlLmVtaXQodGhpcy5wYXlsb2FkLnJjX2RldGFpbHMubWFpbl9yY19pZCk7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3IubWFpblJjLmlzRXJyb3IgPSBmYWxzZTtcbiAgICB0aGlzLnZhbGlkYXRpb25FcnJvci5tYWluUmMubWVzc2FnZSA9ICcnO1xuICB9XG5cbiAgc2V0UGF5bG9hZChldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMuaWRzID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0XG4gICAgICAuZmlsdGVyKChyYzogYW55KSA9PiBldmVudC5pbmNsdWRlcyhyYz8ucmNfaWQpKVxuICAgICAgLm1hcCgocmM6IGFueSkgPT4gcmM/Ll9pZCk7XG4gICAgaWYgKHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLmlkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHRoaXMub25SY0NoYW5nZS5lbWl0KHRoaXMucGF5bG9hZC5yY19kZXRhaWxzLmlkc1swXSk7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VsZWN0ZWRSY0xpc3QoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q2VudGVyc0xpc3QuZmlsdGVyKChyYzogYW55KSA9PlxuICAgICAgZXZlbnQuaW5jbHVkZXMocmM/LnJjX2lkKVxuICAgICk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKGFjdGl2ZTogYm9vbGVhbikge1xuICAgIHRoaXMucmNDbGlja2VkID0gYWN0aXZlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJzTGlzdCgpO1xuICAgIGlmIChhY3RpdmUpIHtcbiAgICAgIHRoaXMuZmllbGRDbGlja2VkLmVtaXQoJ1JDJyk7XG4gICAgICB0aGlzLmZpbHRlckRlc2VsZWN0b3IuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWVsZENsaWNrZWQuZW1pdCgnJyk7XG4gICAgICB0aGlzLmZpbHRlckRlc2VsZWN0b3IuZW1pdChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgc2V0UmNMaXN0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoIWV2ZW50Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMucmVzZXRSY0xpc3QoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkUmNMaXN0ID0gdGhpcy5yZXNwb25zaWJpbGl0eUNlbnRlcnNMaXN0Py5maWx0ZXIoKHJjOiBhbnkpID0+XG4gICAgICBldmVudD8uc29tZSgoaXRlbTogYW55KSA9PiBpdGVtPy52YWx1ZSA9PT0gcmM/LnJjX2lkKVxuICAgICk7XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMuaWRzID0gdGhpcy5zZWxlY3RlZFJjTGlzdD8ubWFwKFxuICAgICAgKHJjOiBhbnkpID0+IHJjPy5faWRcbiAgICApO1xuICAgIHRoaXMuc3RhdGUgPSBTZWxlY3Rpb25TdGF0ZS5TRUxFQ1RFRDtcbiAgfVxuXG4gIHJlc2V0UmNMaXN0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSY0xpc3QgPSBbXTtcbiAgICB0aGlzLnBheWxvYWQucmNfZGV0YWlscy5pZHMgPSBbXTtcbiAgICB0aGlzLnN0YXRlID0gU2VsZWN0aW9uU3RhdGUuRU1QVFk7XG4gIH1cblxuICBvblJjVHlwZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5wYXlsb2FkLnJjX2RldGFpbHMuc2VwYXJhdGVfcmNfY2FzZXMgPSBldmVudDtcbiAgfVxuXG4gIGdldCByY0VkaXREaXNhYmxlKCkge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm1vZGUgPT09ICdFRElUJyAmJlxuICAgICAgdGhpcy5jYXNlVHlwZVNlbGVjdGVkID09PSB0aGlzLmNhc2VUeXBlLkFERF9DQVNFX1RPX1dPUktGTE9XICYmXG4gICAgICB0aGlzLndvcmtmbG93VHlwZSAhPT0gJ0FDVFcnICYmXG4gICAgICB0aGlzLnBheWxvYWQ/LnJjX2RldGFpbHM/Lmlkcz8ubGVuZ3RoID09PSAxXG4gICAgKTtcbiAgfVxufVxuIl19