@rangertechnologies/ngnxt 2.1.245 → 2.1.246

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.
@@ -66,6 +66,10 @@ export class NxtSearchBox {
66
66
  if (this.question?.input && typeof this.question?.input === 'object' && !Array.isArray(this.question?.input)) {
67
67
  this.clickItem(this.question?.input);
68
68
  }
69
+ else if (Array.isArray(this.question?.input)) {
70
+ this.filterName = '';
71
+ this.viewFilterName = '';
72
+ }
69
73
  else {
70
74
  this.filterName = this.question?.input;
71
75
  this.viewFilterName = this.question?.input;
@@ -181,33 +185,42 @@ export class NxtSearchBox {
181
185
  searchFromApi(keyword) {
182
186
  this.isLoading = true;
183
187
  this.finalResults.set([]);
184
- let finalGetCall = this.apiMeta.endpoint;
185
- // SKS18JUL25 query params creation
186
- // const isFieldArray = Array.isArray(this.apiMeta?.field);
187
- // const fields = isFieldArray ? this.apiMeta.field : [this.apiMeta.field]; // always an array now
188
- // // Build query params string
189
- // const queryParams = fields
190
- // .map(field => `${field}=${this.searchKeyWord}`)
191
- // .join('&');
192
- // // Check if endpoint already has query params
193
- // if (this.apiMeta.endpoint.includes('?')) {
194
- // finalGetCall += `&${queryParams}`;
195
- // } else {
196
- // finalGetCall += `?${queryParams}`;
197
- // }
198
- this.dataService.apiResponse(finalGetCall)
199
- .pipe(takeUntil(this.destroy$))
200
- .subscribe({
201
- next: (apiResponse) => {
202
- this.isLoading = false;
203
- this.processSearchResults(apiResponse, keyword);
204
- },
205
- error: (error) => {
206
- this.isLoading = false;
207
- this.noResult = true;
208
- this.finalResults.set([]);
188
+ if (!this.apiMeta.endpoint && Array.isArray(this.question?.input)) {
189
+ this.isLoading = false;
190
+ this.processSearchResults(this.question?.input, keyword);
191
+ }
192
+ else {
193
+ let finalGetCall = this.apiMeta.endpoint;
194
+ // SKS18JUL25 query params creation
195
+ const isFieldArray = Array.isArray(this.apiMeta?.queryParameter);
196
+ const fields = isFieldArray ? this.apiMeta.queryParameter : [this.apiMeta.queryParameter]; // always an array now
197
+ // Build query params string
198
+ const queryParams = fields
199
+ .map(field => `${field}=${this.searchKeyWord}`)
200
+ .join('&');
201
+ // Check if endpoint already has query params
202
+ if (queryParams && queryParams !== '') {
203
+ if (this.apiMeta.endpoint.includes('?')) {
204
+ finalGetCall += `&${queryParams}`;
205
+ }
206
+ else {
207
+ finalGetCall += `?${queryParams}`;
208
+ }
209
209
  }
210
- });
210
+ this.dataService.apiResponse(finalGetCall)
211
+ .pipe(takeUntil(this.destroy$))
212
+ .subscribe({
213
+ next: (apiResponse) => {
214
+ this.isLoading = false;
215
+ this.processSearchResults(apiResponse, keyword);
216
+ },
217
+ error: (error) => {
218
+ this.isLoading = false;
219
+ this.noResult = true;
220
+ this.finalResults.set([]);
221
+ }
222
+ });
223
+ }
211
224
  }
212
225
  searchFromStaticData(keyword) {
213
226
  const response = this.countryService.getCountryData(this.apiMeta.field);
@@ -414,4 +427,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
414
427
  type: HostListener,
415
428
  args: ['document:keydown.escape', ['$event']]
416
429
  }] } });
417
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFtQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFak0sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyxZQUFZO0lBbUNIO0lBQWlDO0lBQWtDO0lBQXdDO0lBbEN0SCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUNiLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixJQUFJLEdBQThCLE1BQU0sQ0FBQztJQUN6QyxJQUFJLENBQU07SUFFVCxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQixhQUFhLENBQWM7SUFFekUsVUFBVSxDQUFN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QUFJLEVBQUUsT0FBTyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RCLENBQUM7d0dBbGFVLFlBQVk7NEZBQVosWUFBWSxnaUJDckJ6Qix3cEhBb0ZNLDZnRUR0RUYsWUFBWSwrUEFDWixXQUFXLCtCQUNYLFFBQVE7OzRGQUtDLFlBQVk7a0JBWHhCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3FCQUNUO2dLQUtRLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ3VDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE2RTVDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTMUMsV0FBVztzQkFEVixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcywgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgVHJhY2tCeUZ1bmN0aW9uLCBIb3N0TGlzdGVuZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXJcIjtcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE54dElucHV0IH0gZnJvbSBcIi4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb3VudHJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ254dC1zZWFyY2gtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1ib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE54dFNlYXJjaEJveCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xuICBASW5wdXQoKSBhcGlNZXRhOiBhbnk7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JztcbiAgQElucHV0KCkgZnJvbTogYW55O1xuICBcbiAgQE91dHB1dCgpIHNlYXJjaFZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdzZWFyY2hXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoV3JhcHBlciE6IEVsZW1lbnRSZWY7XG5cbiAgU2VhcmNoSXRlbTogYW55O1xuICBwdWJsaWMgZmluYWxSZXN1bHRzOiBXcml0YWJsZVNpZ25hbDxhbnlbXT4gPSBzaWduYWwoW10pO1xuICBwdWJsaWMgc2VhcmNoS2V5V29yZDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBuZXdSZXN1bHQ6IGFueTtcbiAgcHVibGljIHNob3dSZXN1bHQgPSBmYWxzZTtcbiAgcHVibGljIG5vUmVzdWx0ID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHB1YmxpYyB2aWV3RmlsdGVyTmFtZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBpc1NpbmdsZUZpZWxkQ2hhbmdlID0gZmFsc2U7XG4gIHB1YmxpYyB2YWx1ZU9iajogYW55O1xuICBwdWJsaWMgaW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gIHB1YmxpYyBsYXN0U2VhcmNoTGVuZ3RoID0gMDtcbiAgcHVibGljIGZpbHRlck5hbWUgPScnXG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAvLyBUcmFja0J5IGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248YW55PiA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpID0+IHtcbiAgICByZXR1cm4gaXRlbS5pZCB8fCBpdGVtLm5hbWUgfHwgaW5kZXg7XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uPy5pbnB1dCAmJiB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uaW5wdXQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSl7XG4gICAgICB0aGlzLmNsaWNrSXRlbSh0aGlzLnF1ZXN0aW9uPy5pbnB1dClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy5xdWVzdGlvbj8uaW5wdXRcbiAgICB9ICAgIFxuICAgIC8vIFNldHVwIGRlYm91bmNlZCBzZWFyY2hcbiAgICB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGtleXdvcmQgPT4ge1xuICAgICAgICBpZih0aGlzLmxhc3RTZWFyY2hMZW5ndGggPiAyKSB0aGlzLnBlcmZvcm1TZWFyY2goa2V5d29yZCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMucXVlc3Rpb24/LmlucHV0ICYmIHR5cGVvZiB0aGlzLnF1ZXN0aW9uPy5pbnB1dCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5xdWVzdGlvbj8uaW5wdXQpKXtcbiAgICAgIHRoaXMuY2xpY2tJdGVtKHRoaXMucXVlc3Rpb24/LmlucHV0KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSB0aGlzLnF1ZXN0aW9uPy5pbnB1dFxuICAgICAgdGhpcy52aWV3RmlsdGVyTmFtZSA9IHRoaXMucXVlc3Rpb24/LmlucHV0XG4gICAgfVxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYoY2hhbmdlc1sncXVlc3Rpb24nXSl7XG4gICAgICAvLyBpZih0aGlzLnF1ZXN0aW9uPy5pbnB1dCAmJiB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uaW5wdXQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSl7XG4gICAgICAvLyAgIHRoaXMuY2xpY2tJdGVtKHRoaXMucXVlc3Rpb24/LmlucHV0KVxuICAgICAgLy8gfSBlbHNlIHtcbiAgICAgIC8vICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy5xdWVzdGlvbj8uaW5wdXRcbiAgICAgIC8vIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ21vZGUnXSkge1xuICAgICAgdGhpcy5tb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2FwaU1ldGEnXSAmJiB0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMucmVzZXRDb21wb25lbnRTdGF0ZSgpO1xuICB9XG5cbiAgLy8gSGFuZGxlIGNsaWNrcyBvdXRzaWRlIHRoZSBzZWFyY2ggY29tcG9uZW50XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcbiAgb25Eb2N1bWVudENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBlc2NhcGUga2V5IHRvIGNsb3NlIHN1Z2dlc3Rpb25zXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcbiAgb25Fc2NhcGVLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUFwaU1ldGEoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYXBpTWV0YSkge1xuICAgICAgdGhpcy5hcGlNZXRhID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSB8fCAne30nKTtcbiAgICAgIHRoaXMuU2VhcmNoSXRlbSA9IHRoaXMuYXBpTWV0YS5maWVsZCB8fCBbXTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Q29tcG9uZW50U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTtcbiAgICB0aGlzLnNlYXJjaEtleVdvcmQgPSAnJztcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5ub1Jlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgICB0aGlzLmxhc3RTZWFyY2hMZW5ndGggPSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBoaWRlU3VnZ2VzdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuaW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gIH1cblxuICBvbklucHV0Rm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSB0cnVlO1xuICAgIC8vIFRyaWdnZXIgYSBzZWFyY2ggd2l0aCBhbiBlbXB0eSBrZXl3b3JkIHRvIHNob3cgYWxsIGRhdGFcbiAgICBpZiAoIXRoaXMuc2VhcmNoS2V5V29yZCkge1xuICAgICAgLy8gdGhpcy5wZXJmb3JtU2VhcmNoKCcnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmluYWxSZXN1bHRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgLy8gRG9uJ3QgaW1tZWRpYXRlbHkgaGlkZSBzdWdnZXN0aW9ucyB0byBhbGxvdyBmb3IgY2xpY2tpbmdcbiAgICAvLyBUaGUgZG9jdW1lbnQgY2xpY2sgaGFuZGxlciB3aWxsIGhhbmRsZSBoaWRpbmdcbiAgfVxuXG4gIGNsZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAvLyBSZW1vdmUgdGhlIHNldFRpbWVvdXQgZGVsYXkgdGhhdCB3YXMgY2F1c2luZyBpc3N1ZXNcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICB9XG5cbiAgZ2V0U291cmNlRGF0YUxvY2FsKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWV2ZW50Py52YWx1ZSkge1xuICAgICAgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoVmFsdWUgPSAgZXZlbnQudmFsdWUuaW5jbHVkZXMoJ3wnKSA/IGV2ZW50LnZhbHVlLnNwbGl0KCd8JylbMF0udHJpbSgpIDogZXZlbnQudmFsdWUudHJpbSgpO1xuICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSBzZWFyY2hWYWx1ZS5sZW5ndGg7XG4gICAgXG4gICAgLy8gQWx3YXlzIHVwZGF0ZSB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICB0aGlzLnNlYXJjaEtleVdvcmQgPSBzZWFyY2hWYWx1ZTtcbiAgICBcbiAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdXNlciB0eXBlcyAzKyBjaGFyYWN0ZXJzXG4gICAgaWYgKGN1cnJlbnRMZW5ndGggPiAyICYmICF0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UpIHtcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSAhZXZlbnQucXVlc3Rpb24/LnNpbmdsZUZpZWxkQ2hhbmdlO1xuICAgICAgdGhpcy5zaG93UmVzdWx0ID0gZmFsc2U7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgICAvLyBBbHdheXMgcGVyZm9ybSBzZWFyY2ggd2hlbiB3ZSBoYXZlIDMrIGNoYXJhY3RlcnNcbiAgICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IGN1cnJlbnRMZW5ndGg7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChzZWFyY2hWYWx1ZSk7XG4gICAgICBcbiAgICB9IGVsc2UgaWYgKGN1cnJlbnRMZW5ndGggPD0gMikge1xuICAgICAgLy8gV2hlbiBsZW5ndGggaXMgMiBvciBsZXNzLCBoaWRlIHN1Z2dlc3Rpb25zIGJ1dCBrZWVwIHRoZSBzZWFyY2gga2V5d29yZFxuICAgICAgdGhpcy5pc1NpbmdsZUZpZWxkQ2hhbmdlID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgICB0aGlzLmxhc3RTZWFyY2hMZW5ndGggPSBjdXJyZW50TGVuZ3RoO1xuICAgICAgdGhpcy5zZWFyY2hTdWJqZWN0Lm5leHQoc2VhcmNoVmFsdWUpO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBlcmZvcm1TZWFyY2goa2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFwaU1ldGEpIHJldHVybjtcblxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgXG4gICAgaWYgKCF0aGlzLmFwaU1ldGEuaXNTdGF0aWNEYXRhKSB7XG4gICAgICB0aGlzLnNlYXJjaEZyb21BcGkoa2V5d29yZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VhcmNoRnJvbVN0YXRpY0RhdGEoa2V5d29yZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tQXBpKGtleXdvcmQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIGxldCBmaW5hbEdldENhbGwgPSB0aGlzLmFwaU1ldGEuZW5kcG9pbnQ7XG4gICAgLy8gU0tTMThKVUwyNSBxdWVyeSBwYXJhbXMgY3JlYXRpb25cbiAgICAvLyBjb25zdCBpc0ZpZWxkQXJyYXkgPSBBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpO1xuICAgIC8vIGNvbnN0IGZpZWxkcyA9IGlzRmllbGRBcnJheSA/IHRoaXMuYXBpTWV0YS5maWVsZCA6IFt0aGlzLmFwaU1ldGEuZmllbGRdOyAvLyBhbHdheXMgYW4gYXJyYXkgbm93XG4gICAgLy8gLy8gQnVpbGQgcXVlcnkgcGFyYW1zIHN0cmluZ1xuICAgIC8vIGNvbnN0IHF1ZXJ5UGFyYW1zID0gZmllbGRzXG4gICAgLy8gICAubWFwKGZpZWxkID0+IGAke2ZpZWxkfT0ke3RoaXMuc2VhcmNoS2V5V29yZH1gKVxuICAgIC8vICAgLmpvaW4oJyYnKTtcbiAgICAvLyAvLyBDaGVjayBpZiBlbmRwb2ludCBhbHJlYWR5IGhhcyBxdWVyeSBwYXJhbXNcbiAgICAvLyBpZiAodGhpcy5hcGlNZXRhLmVuZHBvaW50LmluY2x1ZGVzKCc/JykpIHtcbiAgICAvLyAgIGZpbmFsR2V0Q2FsbCArPSBgJiR7cXVlcnlQYXJhbXN9YDtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgZmluYWxHZXRDYWxsICs9IGA/JHtxdWVyeVBhcmFtc31gO1xuICAgIC8vIH1cblxuICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoZmluYWxHZXRDYWxsKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChhcGlSZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzU2VhcmNoUmVzdWx0cyhhcGlSZXNwb25zZSwga2V5d29yZCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubm9SZXN1bHQgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuY291bnRyeVNlcnZpY2UuZ2V0Q291bnRyeURhdGEodGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICB0aGlzLnByb2Nlc3NTZWFyY2hSZXN1bHRzKHJlc3BvbnNlLCBrZXl3b3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlYXJjaFJlc3VsdHMoYXBpUmVzcG9uc2U6IGFueSwga2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICBcbiAgICBpZiAodGhpcy5hcGlNZXRhLnZhcmlhYmxlKSB7XG4gICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpTWV0YS52YXJpYWJsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXBpUmVzcG9uc2U7XG4gICAgfVxuICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBpZiAoIWtleXdvcmQpIHtcbiAgICAgIC8vIElmIG5vIGtleXdvcmQsIHNob3cgYWxsIHJlc3VsdHNcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChyZXNwb25zZSk7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gcmVzcG9uc2UubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIEVuc3VyZSBzdWdnZXN0aW9ucyBhcmUgdmlzaWJsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgcmVzdWx0cyBiYXNlZCBvbiB0aGUga2V5d29yZFxuICAgICAgY29uc3Qgc2VhcmNoVGVybXMgPSBrZXl3b3JkLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpLmZpbHRlcih0ZXJtID0+IHRlcm0ubGVuZ3RoID4gMCk7XG4gICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2UuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVmFsdWVzID0gdGhpcy5nZXRDb21iaW5lZFZhbHVlc0Zyb21Db2x1bW5zKG9iaiwgdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgfSk7XG4gIFxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KHJlc3VsdHMpO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIFNob3cgc3VnZ2VzdGlvbnMgb25seSBpZiB0aGVyZSBhcmUgcmVzdWx0c1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmogfHwgIXBhdGgpIHJldHVybiAnJztcbiAgICBcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFxkKylcXF0vZywgJy4kMScpO1xuICAgIGNvbnN0IHBhcnRzID0gcHJvY2Vzc2VkUGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuXG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgICBpZiAoIWN1cnJlbnQgfHwgdHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKSByZXR1cm4gJyc7XG4gICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0XTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB1bmRlZmluZWQgXG4gICAgICA/IFN0cmluZyhjdXJyZW50KS50b0xvd2VyQ2FzZSgpLnRyaW0oKSBcbiAgICAgIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGdldENvbWJpbmVkVmFsdWVzRnJvbUNvbHVtbnMob2JqOiBhbnksIGNvbHVtbnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAoIW9iaiB8fCAhY29sdW1ucykgcmV0dXJuICcnO1xuICAgIFxuICAgIGNvbnN0IGNvbHVtbkFycmF5ID0gQXJyYXkuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMgOiBbY29sdW1uc107XG4gICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1uQXJyYXkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXROZXN0ZWRWYWx1ZShvYmosIGNvbHVtbik7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXMuam9pbignICcpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlcyhlbGVtZW50OiBhbnksIGNvbHVtbnM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBpZiAoIWVsZW1lbnQgfHwgIWNvbHVtbnMpIHJldHVybiByZXN1bHQ7XG5cbiAgICBjb25zdCBjb2x1bW5BcnJheSA9IEFycmF5LmlzQXJyYXkoY29sdW1ucykgPyBjb2x1bW5zIDogW2NvbHVtbnNdO1xuICAgIFxuICAgIGNvbHVtbkFycmF5LmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgaWYgKCFjb2x1bW4pIHJldHVybjtcbiAgICAgIFxuICAgICAgbGV0IHRlbXBFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IGNvbHVtbi5zcGxpdCgnLicpO1xuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAoIXRlbXBFbGVtZW50KSBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHNwbGl0RmllbGRzID0gZmllbGQuc3BsaXQoJ1snKTtcbiAgICAgICAgaWYgKHNwbGl0RmllbGRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbZmllbGRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBzcGxpdEZpZWxkc1sxXT8ubWF0Y2goLyhcXGQrKVxcXS8pO1xuICAgICAgICAgIGlmIChpbmRleE1hdGNoKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihpbmRleE1hdGNoWzFdKTtcbiAgICAgICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbc3BsaXRGaWVsZHNbMF1dPy5baW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICByZXN1bHRbY29sdW1uXSA9IHRlbXBFbGVtZW50IHx8ICcnO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEtleXMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG9iaiA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBjbGlja0l0ZW0oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hcGlNZXRhKSByZXR1cm47XG4gIFxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWx1ZXMoZXZlbnQsIHRoaXMuU2VhcmNoSXRlbSk7XG4gICAgY29uc3QgZGlzcGxheVZhbHVlID0gT2JqZWN0LnZhbHVlcyh2YWx1ZXMpXG4gICAgICAuZmlsdGVyKHZhbCA9PiB2YWwpXG4gICAgICAuam9pbignIHwgJyk7XG4gICAgXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ2VkaXQnKSB7XG4gICAgICB0aGlzLnZpZXdGaWx0ZXJOYW1lID0gZGlzcGxheVZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlck5hbWUgPSBkaXNwbGF5VmFsdWU7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcyh7fSlcbiAgXG4gICAgY29uc3QgZGVmYXVsdEZpZWxkID0gdGhpcy5hcGlNZXRhLmRlZmF1bHRGaWVsZCB8fCBcbiAgICAgIChBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpID8gdGhpcy5hcGlNZXRhPy5maWVsZD8uWzBdIDogdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICBcbiAgICBjb25zdCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlLnZhbHVlT2JqID0gZXZlbnQ7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIFxuICAgIHRoaXMudmFsdWVPYmogPSBldmVudDtcbiAgICBcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIFxuICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBxdWVzdGlvbjogdGhpcy5xdWVzdGlvbixcbiAgICAgIHZhbHVlOiBjaGFuZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlc3Rpb25UZXh0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHF1ZXN0aW9uVGV4dC5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgfVxuXG4gIGlucHV0VmFsdWUoZXZlbnQ6IGFueSwgcXVlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnQudHJpbSgpXG4gICAgaWYgKCFxdWVzPy5zaW5nbGVGaWVsZENoYW5nZSB8fCAhdGhpcy5hcGlNZXRhKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmFwaU1ldGEuZGVmYXVsdEZpZWxkIHx8IFxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy5hcGlNZXRhPy5maWVsZCkgPyB0aGlzLmFwaU1ldGE/LmZpZWxkPy5bMF0gOiB0aGlzLmFwaU1ldGEuZmllbGQpO1xuXG4gICAgY29uc3QgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgIGNoYW5nZS52YWx1ZU9iaiA9IHRoaXMudmFsdWVPYmo7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIGNoYW5nZS5yZWZlcmVuY2VGaWVsZCA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgXG4gICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy52aWV3RmlsdGVyTmFtZTtcbiAgICBcbiAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgcXVlc3Rpb246IHF1ZXMsXG4gICAgICB2YWx1ZTogY2hhbmdlXG4gICAgfSk7XG4gIH1cblxuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQgfHwgIXNlYXJjaFRlcm0pIHJldHVybiB0ZXh0IHx8ICcnO1xuXG4gICAgLy8gU2FuaXRpemUgdGhlIGlucHV0IHRleHRcbiAgICBjb25zdCBzYW5pdGl6ZWRUZXh0ID0gdGhpcy5zYW5pdGl6ZUh0bWwodGV4dCk7XG4gICAgY29uc3QgdGVybXMgPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5maWx0ZXIodGVybSA9PiB0ZXJtLmxlbmd0aCA+IDApO1xuICAgIFxuICAgIGlmICh0ZXJtcy5sZW5ndGggPT09IDApIHJldHVybiBzYW5pdGl6ZWRUZXh0O1xuXG4gICAgLy8gRXNjYXBlIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICAgIGNvbnN0IGVzY2FwZWRUZXJtcyA9IHRlcm1zLm1hcCh0ZXJtID0+IFxuICAgICAgdGVybS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgKCR7ZXNjYXBlZFRlcm1zLmpvaW4oJ3wnKX0pYCwgJ2dpJyk7XG4gICAgcmV0dXJuIHNhbml0aXplZFRleHQucmVwbGFjZShyZWdleCwgJzxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+JDE8L3NwYW4+Jyk7XG4gIH1cblxuICBwcml2YXRlIHNhbml0aXplSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7XG4gIH1cbiAgcmVtb3ZlVmFsdWVFbWl0KCl7XG4gICAgdGhpcy5jbGlja0l0ZW0obnVsbClcbiAgfVxufSIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiICNzZWFyY2hXcmFwcGVyPlxuICA8bnh0LWlucHV0IFxuICAgIFt0eXBlXT1cIidsaXN0J1wiIFxuICAgIFttb2RlXT1cIm1vZGVcIiBcbiAgICBbZnJvbV09XCJmcm9tXCJcbiAgICBbdmFsdWVdPVwibW9kZSA9PT0gJ2VkaXQnID8gZmlsdGVyTmFtZSA6IHZpZXdGaWx0ZXJOYW1lXCJcbiAgICBbbGFiZWxGb250XT1cInF1ZXN0aW9uLmZvbnRcIiBcbiAgICBbbGFiZWxdPVwicmVtb3ZlQ2hhcmFjdGVycyhxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KVwiIFxuICAgIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uLmZvbnRDb2xvclwiXG4gICAgW2xhYmVsU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtpbnB1dFZhbHVlU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtsYWJlbFdlaWdodF09XCJxdWVzdGlvbi5mb250V2VpZ2h0XCJcbiAgICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiIFxuICAgIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiIFxuICAgIGlucHV0Qm9yZGVyPVwibm9uZVwiIFxuICAgIHN2Z0hlaWdodD1cIjIwcHhcIlxuICAgIHN2Z1dpZHRoPVwiMjBweFwiIFxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclRleHRcIiBcbiAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIFxuICAgIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICAgIFtpbnB1dElkXT1cInF1ZXN0aW9uLnRyYWNraW5nSWRcIiBcbiAgICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfVwiXG4gICAgW2lucHV0SWNvbkxlZnRTcmNdPVwicXVlc3Rpb24uaWNvbkxlZnRTcmNcIiBcbiAgICAoaW5wdXRWYWx1ZSk9XCJnZXRTb3VyY2VEYXRhTG9jYWwoJGV2ZW50KTsgaW5wdXRWYWx1ZSgkZXZlbnQudmFsdWUsICRldmVudC5xdWVzdGlvbilcIiBcbiAgICAob25Gb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgKG9uQmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBcbiAgICBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBcbiAgICBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIiBcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgIChyZW1vdmVWYWx1ZUVtaXQpPVwicmVtb3ZlVmFsdWVFbWl0KClcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCIgKm5nSWY9XCJzaG93U3VnZ2VzdGlvblwiPlxuICAgIDxkaXYgKm5nSWY9XCJmaW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJueHQtc3VnZ2VzdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbmFsUmVzdWx0cygpOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBcbiAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSXRlbShpdGVtKVwiIFxuICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24taXRlbVwiIFxuICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xpY2tJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiY2xpY2tJdGVtKGl0ZW0pXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50aHVtYm5haWxcIiBjbGFzcz1cInRodW1ibmFpbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLnRodW1ibmFpbFwiIFthbHRdPVwiaXRlbS5uYW1lICsgJyBhdmF0YXInXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdGV4dFwiPlxuICAgICAgICAgICAgICA8IS0tIFByaW1hcnkgdGV4dCAoZmlyc3Qga2V5KSAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbmFtZSBwcmltYXJ5XCIgXG4gICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodFRleHQoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pW2dldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKVswXV0sIHNlYXJjaEtleVdvcmQpXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPCEtLSBTZWNvbmRhcnkgdGV4dCAocmVtYWluaW5nIGtleXMpIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1zZWNvbmRhcnlcIiAqbmdJZj1cImdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKS5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImkgPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kYXJ5LXRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJoaWdobGlnaHRUZXh0KGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKVtrZXldLCBzZWFyY2hLZXlXb3JkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCIgKm5nSWY9XCJpIDwgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCAtIDFcIj4gfCA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJub1Jlc3VsdCAmJiBzZWFyY2hLZXlXb3JkXCIgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0cy1jb250ZW50XCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGQ9XCJtMjEgMjEtNC4zNS00LjM1XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHA+Tm8gcmVzdWx0cyBmb3VuZCBmb3IgXCJ7e3NlYXJjaEtleVdvcmR9fVwiPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
430
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWdDLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBNkIsTUFBTSxFQUFtQyxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFak0sT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTVELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyxZQUFZO0lBbUNIO0lBQWlDO0lBQWtDO0lBQXdDO0lBbEN0SCxlQUFlLEdBQVcsRUFBRSxDQUFDO0lBQzdCLFFBQVEsQ0FBTTtJQUNkLE9BQU8sQ0FBTTtJQUNiLEVBQUUsR0FBVyxFQUFFLENBQUM7SUFDaEIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixJQUFJLEdBQThCLE1BQU0sQ0FBQztJQUN6QyxJQUFJLENBQU07SUFFVCxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUMzQixhQUFhLENBQWM7SUFFekUsVUFBVSxDQUFN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QUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO2FBQ3ZCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RCLENBQUM7d0dBM2FVLFlBQVk7NEZBQVosWUFBWSxnaUJDckJ6Qix3cEhBb0ZNLDZnRUR0RUYsWUFBWSwrUEFDWixXQUFXLCtCQUNYLFFBQVE7OzRGQUtDLFlBQVk7a0JBWHhCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3FCQUNUO2dLQUtRLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ3VDLGFBQWE7c0JBQTFELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFnRjVDLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTMUMsV0FBVztzQkFEVixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgU2ltcGxlQ2hhbmdlcywgc2lnbmFsLCBXcml0YWJsZVNpZ25hbCwgVHJhY2tCeUZ1bmN0aW9uLCBIb3N0TGlzdGVuZXJ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBDaGFuZ2VXcmFwcGVyIH0gZnJvbSBcIi4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXJcIjtcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE54dElucHV0IH0gZnJvbSBcIi4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9jb3VudHJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7IFN1YmplY3QsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ254dC1zZWFyY2gtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1ib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIE54dFNlYXJjaEJveCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwbGFjZUhvbGRlclRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xuICBASW5wdXQoKSBhcGlNZXRhOiBhbnk7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVhZE9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JztcbiAgQElucHV0KCkgZnJvbTogYW55O1xuICBcbiAgQE91dHB1dCgpIHNlYXJjaFZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAVmlld0NoaWxkKCdzZWFyY2hXcmFwcGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoV3JhcHBlciE6IEVsZW1lbnRSZWY7XG5cbiAgU2VhcmNoSXRlbTogYW55O1xuICBwdWJsaWMgZmluYWxSZXN1bHRzOiBXcml0YWJsZVNpZ25hbDxhbnlbXT4gPSBzaWduYWwoW10pO1xuICBwdWJsaWMgc2VhcmNoS2V5V29yZDogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBuZXdSZXN1bHQ6IGFueTtcbiAgcHVibGljIHNob3dSZXN1bHQgPSBmYWxzZTtcbiAgcHVibGljIG5vUmVzdWx0ID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHB1YmxpYyB2aWV3RmlsdGVyTmFtZTogc3RyaW5nID0gJyc7XG4gIHB1YmxpYyBpc1NpbmdsZUZpZWxkQ2hhbmdlID0gZmFsc2U7XG4gIHB1YmxpYyB2YWx1ZU9iajogYW55O1xuICBwdWJsaWMgaW5wdXRGb2N1c2VkID0gZmFsc2U7XG4gIHB1YmxpYyBsYXN0U2VhcmNoTGVuZ3RoID0gMDtcbiAgcHVibGljIGZpbHRlck5hbWUgPScnXG5cbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgc2VhcmNoU3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAvLyBUcmFja0J5IGZ1bmN0aW9uIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb25cbiAgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248YW55PiA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpID0+IHtcbiAgICByZXR1cm4gaXRlbS5pZCB8fCBpdGVtLm5hbWUgfHwgaW5kZXg7XG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICBpZih0aGlzLnF1ZXN0aW9uPy5pbnB1dCAmJiB0eXBlb2YgdGhpcy5xdWVzdGlvbj8uaW5wdXQgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSl7XG4gICAgICB0aGlzLmNsaWNrSXRlbSh0aGlzLnF1ZXN0aW9uPy5pbnB1dClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy5xdWVzdGlvbj8uaW5wdXRcbiAgICB9ICAgIFxuICAgIC8vIFNldHVwIGRlYm91bmNlZCBzZWFyY2hcbiAgICB0aGlzLnNlYXJjaFN1YmplY3RcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGtleXdvcmQgPT4ge1xuICAgICAgICBpZih0aGlzLmxhc3RTZWFyY2hMZW5ndGggPiAyKSB0aGlzLnBlcmZvcm1TZWFyY2goa2V5d29yZCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMucXVlc3Rpb24/LmlucHV0ICYmIHR5cGVvZiB0aGlzLnF1ZXN0aW9uPy5pbnB1dCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5xdWVzdGlvbj8uaW5wdXQpKXtcbiAgICAgIHRoaXMuY2xpY2tJdGVtKHRoaXMucXVlc3Rpb24/LmlucHV0KVxuICAgIH0gZWxzZSBpZihBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSl7XG4gICAgICB0aGlzLmZpbHRlck5hbWUgPSAnJ1xuICAgICAgdGhpcy52aWV3RmlsdGVyTmFtZSA9ICcnXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyTmFtZSA9IHRoaXMucXVlc3Rpb24/LmlucHV0XG4gICAgICB0aGlzLnZpZXdGaWx0ZXJOYW1lID0gdGhpcy5xdWVzdGlvbj8uaW5wdXRcbiAgICB9XG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZihjaGFuZ2VzWydxdWVzdGlvbiddKXtcbiAgICAgIC8vIGlmKHRoaXMucXVlc3Rpb24/LmlucHV0ICYmIHR5cGVvZiB0aGlzLnF1ZXN0aW9uPy5pbnB1dCA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodGhpcy5xdWVzdGlvbj8uaW5wdXQpKXtcbiAgICAgIC8vICAgdGhpcy5jbGlja0l0ZW0odGhpcy5xdWVzdGlvbj8uaW5wdXQpXG4gICAgICAvLyB9IGVsc2Uge1xuICAgICAgLy8gICB0aGlzLmZpbHRlck5hbWUgPSB0aGlzLnF1ZXN0aW9uPy5pbnB1dFxuICAgICAgLy8gfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgICB0aGlzLm1vZGUgPSBjaGFuZ2VzWydtb2RlJ10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snYXBpTWV0YSddICYmIHRoaXMuYXBpTWV0YSkge1xuICAgICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7XG4gIH1cblxuICAvLyBIYW5kbGUgY2xpY2tzIG91dHNpZGUgdGhlIHNlYXJjaCBjb21wb25lbnRcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gSGFuZGxlIGVzY2FwZSBrZXkgdG8gY2xvc2Ugc3VnZ2VzdGlvbnNcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCddKVxuICBvbkVzY2FwZUtleShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlQXBpTWV0YSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hcGlNZXRhKSB7XG4gICAgICB0aGlzLmFwaU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhIHx8ICd7fScpO1xuICAgICAgdGhpcy5TZWFyY2hJdGVtID0gdGhpcy5hcGlNZXRhLmZpZWxkIHx8IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9ICcnO1xuICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB0aGlzLmlucHV0Rm9jdXNlZCA9IGZhbHNlO1xuICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IDA7XG4gIH1cblxuICBwcml2YXRlIGhpZGVTdWdnZXN0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5pbnB1dEZvY3VzZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Rm9jdXNlZCA9IHRydWU7XG4gICAgLy8gVHJpZ2dlciBhIHNlYXJjaCB3aXRoIGFuIGVtcHR5IGtleXdvcmQgdG8gc2hvdyBhbGwgZGF0YVxuICAgIGlmICghdGhpcy5zZWFyY2hLZXlXb3JkKSB7XG4gICAgICAvLyB0aGlzLnBlcmZvcm1TZWFyY2goJycpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICAvLyBEb24ndCBpbW1lZGlhdGVseSBoaWRlIHN1Z2dlc3Rpb25zIHRvIGFsbG93IGZvciBjbGlja2luZ1xuICAgIC8vIFRoZSBkb2N1bWVudCBjbGljayBoYW5kbGVyIHdpbGwgaGFuZGxlIGhpZGluZ1xuICB9XG5cbiAgY2xlYXJMaXN0KCk6IHZvaWQge1xuICAgIC8vIFJlbW92ZSB0aGUgc2V0VGltZW91dCBkZWxheSB0aGF0IHdhcyBjYXVzaW5nIGlzc3Vlc1xuICAgIHRoaXMuaGlkZVN1Z2dlc3Rpb25zKCk7XG4gIH1cblxuICBnZXRTb3VyY2VEYXRhTG9jYWwoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghZXZlbnQ/LnZhbHVlKSB7XG4gICAgICB0aGlzLnJlc2V0Q29tcG9uZW50U3RhdGUoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzZWFyY2hWYWx1ZSA9ICBldmVudC52YWx1ZS5pbmNsdWRlcygnfCcpID8gZXZlbnQudmFsdWUuc3BsaXQoJ3wnKVswXS50cmltKCkgOiBldmVudC52YWx1ZS50cmltKCk7XG4gICAgY29uc3QgY3VycmVudExlbmd0aCA9IHNlYXJjaFZhbHVlLmxlbmd0aDtcbiAgICBcbiAgICAvLyBBbHdheXMgdXBkYXRlIHRoZSBzZWFyY2gga2V5d29yZFxuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9IHNlYXJjaFZhbHVlO1xuICAgIFxuICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB1c2VyIHR5cGVzIDMrIGNoYXJhY3RlcnNcbiAgICBpZiAoY3VycmVudExlbmd0aCA+IDIgJiYgIXRoaXMuaXNTaW5nbGVGaWVsZENoYW5nZSkge1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9ICFldmVudC5xdWVzdGlvbj8uc2luZ2xlRmllbGRDaGFuZ2U7XG4gICAgICB0aGlzLnNob3dSZXN1bHQgPSBmYWxzZTtcbiAgICAgIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbiAgICAgIC8vIEFsd2F5cyBwZXJmb3JtIHNlYXJjaCB3aGVuIHdlIGhhdmUgMysgY2hhcmFjdGVyc1xuICAgICAgdGhpcy5sYXN0U2VhcmNoTGVuZ3RoID0gY3VycmVudExlbmd0aDtcbiAgICAgIHRoaXMuc2VhcmNoU3ViamVjdC5uZXh0KHNlYXJjaFZhbHVlKTtcbiAgICAgIFxuICAgIH0gZWxzZSBpZiAoY3VycmVudExlbmd0aCA8PSAyKSB7XG4gICAgICAvLyBXaGVuIGxlbmd0aCBpcyAyIG9yIGxlc3MsIGhpZGUgc3VnZ2VzdGlvbnMgYnV0IGtlZXAgdGhlIHNlYXJjaCBrZXl3b3JkXG4gICAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbiAgICAgIHRoaXMubGFzdFNlYXJjaExlbmd0aCA9IGN1cnJlbnRMZW5ndGg7XG4gICAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChzZWFyY2hWYWx1ZSk7XG4gICAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGVyZm9ybVNlYXJjaChrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXBpTWV0YSkgcmV0dXJuO1xuXG4gICAgdGhpcy5wYXJzZUFwaU1ldGEoKTtcbiAgICBcbiAgICBpZiAoIXRoaXMuYXBpTWV0YS5pc1N0YXRpY0RhdGEpIHtcbiAgICAgIHRoaXMuc2VhcmNoRnJvbUFwaShrZXl3b3JkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNlYXJjaEZyb21BcGkoa2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgaWYoIXRoaXMuYXBpTWV0YS5lbmRwb2ludCAmJiBBcnJheS5pc0FycmF5KHRoaXMucXVlc3Rpb24/LmlucHV0KSApe1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMucHJvY2Vzc1NlYXJjaFJlc3VsdHModGhpcy5xdWVzdGlvbj8uaW5wdXQsIGtleXdvcmQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZmluYWxHZXRDYWxsID0gdGhpcy5hcGlNZXRhLmVuZHBvaW50O1xuICAgICAgLy8gU0tTMThKVUwyNSBxdWVyeSBwYXJhbXMgY3JlYXRpb25cbiAgICAgIGNvbnN0IGlzRmllbGRBcnJheSA9IEFycmF5LmlzQXJyYXkodGhpcy5hcGlNZXRhPy5xdWVyeVBhcmFtZXRlcik7XG4gICAgICBjb25zdCBmaWVsZHMgPSBpc0ZpZWxkQXJyYXkgPyB0aGlzLmFwaU1ldGEucXVlcnlQYXJhbWV0ZXIgOiBbdGhpcy5hcGlNZXRhLnF1ZXJ5UGFyYW1ldGVyXTsgLy8gYWx3YXlzIGFuIGFycmF5IG5vd1xuICAgICAgLy8gQnVpbGQgcXVlcnkgcGFyYW1zIHN0cmluZ1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBmaWVsZHNcbiAgICAgICAgLm1hcChmaWVsZCA9PiBgJHtmaWVsZH09JHt0aGlzLnNlYXJjaEtleVdvcmR9YClcbiAgICAgICAgLmpvaW4oJyYnKTtcbiAgICAgIC8vIENoZWNrIGlmIGVuZHBvaW50IGFscmVhZHkgaGFzIHF1ZXJ5IHBhcmFtc1xuICAgICAgaWYocXVlcnlQYXJhbXMgJiYgcXVlcnlQYXJhbXMgIT09ICcnKXtcbiAgICAgICAgaWYgKHRoaXMuYXBpTWV0YS5lbmRwb2ludC5pbmNsdWRlcygnPycpKSB7XG4gICAgICAgICAgZmluYWxHZXRDYWxsICs9IGAmJHtxdWVyeVBhcmFtc31gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbmFsR2V0Q2FsbCArPSBgPyR7cXVlcnlQYXJhbXN9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShmaW5hbEdldENhbGwpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NTZWFyY2hSZXN1bHRzKGFwaVJlc3BvbnNlLCBrZXl3b3JkKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5ub1Jlc3VsdCA9IHRydWU7XG4gICAgICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWFyY2hGcm9tU3RhdGljRGF0YShrZXl3b3JkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCByZXNwb25zZSA9IHRoaXMuY291bnRyeVNlcnZpY2UuZ2V0Q291bnRyeURhdGEodGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICB0aGlzLnByb2Nlc3NTZWFyY2hSZXN1bHRzKHJlc3BvbnNlLCBrZXl3b3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1NlYXJjaFJlc3VsdHMoYXBpUmVzcG9uc2U6IGFueSwga2V5d29yZDogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHJlc3BvbnNlO1xuICBcbiAgICBpZiAodGhpcy5hcGlNZXRhLnZhcmlhYmxlKSB7XG4gICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIHRoaXMuYXBpTWV0YS52YXJpYWJsZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3BvbnNlID0gYXBpUmVzcG9uc2U7XG4gICAgfVxuICBcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocmVzcG9uc2UpKSB7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gdHJ1ZTtcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICBcbiAgICBpZiAoIWtleXdvcmQpIHtcbiAgICAgIC8vIElmIG5vIGtleXdvcmQsIHNob3cgYWxsIHJlc3VsdHNcbiAgICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChyZXNwb25zZSk7XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gcmVzcG9uc2UubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIEVuc3VyZSBzdWdnZXN0aW9ucyBhcmUgdmlzaWJsZVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgcmVzdWx0cyBiYXNlZCBvbiB0aGUga2V5d29yZFxuICAgICAgY29uc3Qgc2VhcmNoVGVybXMgPSBrZXl3b3JkLnRvTG93ZXJDYXNlKCkuc3BsaXQoXCIgXCIpLmZpbHRlcih0ZXJtID0+IHRlcm0ubGVuZ3RoID4gMCk7XG4gICAgICBjb25zdCByZXN1bHRzID0gcmVzcG9uc2UuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVkVmFsdWVzID0gdGhpcy5nZXRDb21iaW5lZFZhbHVlc0Zyb21Db2x1bW5zKG9iaiwgdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgfSk7XG4gIFxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KHJlc3VsdHMpO1xuICAgICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IHRydWU7IC8vIFNob3cgc3VnZ2VzdGlvbnMgb25seSBpZiB0aGVyZSBhcmUgcmVzdWx0c1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFvYmogfHwgIXBhdGgpIHJldHVybiAnJztcbiAgICBcbiAgICBjb25zdCBwcm9jZXNzZWRQYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFxkKylcXF0vZywgJy4kMScpO1xuICAgIGNvbnN0IHBhcnRzID0gcHJvY2Vzc2VkUGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuXG4gICAgZm9yIChjb25zdCBwYXJ0IG9mIHBhcnRzKSB7XG4gICAgICBpZiAoIWN1cnJlbnQgfHwgdHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKSByZXR1cm4gJyc7XG4gICAgICBjdXJyZW50ID0gY3VycmVudFtwYXJ0XTtcbiAgICB9XG5cbiAgICByZXR1cm4gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB1bmRlZmluZWQgXG4gICAgICA/IFN0cmluZyhjdXJyZW50KS50b0xvd2VyQ2FzZSgpLnRyaW0oKSBcbiAgICAgIDogJyc7XG4gIH1cblxuICBwcml2YXRlIGdldENvbWJpbmVkVmFsdWVzRnJvbUNvbHVtbnMob2JqOiBhbnksIGNvbHVtbnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBpZiAoIW9iaiB8fCAhY29sdW1ucykgcmV0dXJuICcnO1xuICAgIFxuICAgIGNvbnN0IGNvbHVtbkFycmF5ID0gQXJyYXkuaXNBcnJheShjb2x1bW5zKSA/IGNvbHVtbnMgOiBbY29sdW1uc107XG4gICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1uQXJyYXkpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXROZXN0ZWRWYWx1ZShvYmosIGNvbHVtbik7XG4gICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZXMuam9pbignICcpO1xuICB9XG5cbiAgcHVibGljIGdldFZhbHVlcyhlbGVtZW50OiBhbnksIGNvbHVtbnM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBpZiAoIWVsZW1lbnQgfHwgIWNvbHVtbnMpIHJldHVybiByZXN1bHQ7XG5cbiAgICBjb25zdCBjb2x1bW5BcnJheSA9IEFycmF5LmlzQXJyYXkoY29sdW1ucykgPyBjb2x1bW5zIDogW2NvbHVtbnNdO1xuICAgIFxuICAgIGNvbHVtbkFycmF5LmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgaWYgKCFjb2x1bW4pIHJldHVybjtcbiAgICAgIFxuICAgICAgbGV0IHRlbXBFbGVtZW50ID0gZWxlbWVudDtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IGNvbHVtbi5zcGxpdCgnLicpO1xuICAgICAgXG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAoIXRlbXBFbGVtZW50KSBicmVhaztcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHNwbGl0RmllbGRzID0gZmllbGQuc3BsaXQoJ1snKTtcbiAgICAgICAgaWYgKHNwbGl0RmllbGRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbZmllbGRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGluZGV4TWF0Y2ggPSBzcGxpdEZpZWxkc1sxXT8ubWF0Y2goLyhcXGQrKVxcXS8pO1xuICAgICAgICAgIGlmIChpbmRleE1hdGNoKSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihpbmRleE1hdGNoWzFdKTtcbiAgICAgICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbc3BsaXRGaWVsZHNbMF1dPy5baW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgXG4gICAgICByZXN1bHRbY29sdW1uXSA9IHRlbXBFbGVtZW50IHx8ICcnO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldEtleXMob2JqOiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG9iaiA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbiAgfVxuXG4gIHB1YmxpYyBjbGlja0l0ZW0oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hcGlNZXRhKSByZXR1cm47XG4gIFxuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG4gICAgXG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRWYWx1ZXMoZXZlbnQsIHRoaXMuU2VhcmNoSXRlbSk7XG4gICAgY29uc3QgZGlzcGxheVZhbHVlID0gT2JqZWN0LnZhbHVlcyh2YWx1ZXMpXG4gICAgICAuZmlsdGVyKHZhbCA9PiB2YWwpXG4gICAgICAuam9pbignIHwgJyk7XG4gICAgXG4gICAgaWYgKHRoaXMubW9kZSAhPT0gJ2VkaXQnKSB7XG4gICAgICB0aGlzLnZpZXdGaWx0ZXJOYW1lID0gZGlzcGxheVZhbHVlO1xuICAgIH1cbiAgICB0aGlzLmZpbHRlck5hbWUgPSBkaXNwbGF5VmFsdWU7XG4gICAgdGhpcy5uZ09uQ2hhbmdlcyh7fSlcbiAgXG4gICAgY29uc3QgZGVmYXVsdEZpZWxkID0gdGhpcy5hcGlNZXRhLmRlZmF1bHRGaWVsZCB8fCBcbiAgICAgIChBcnJheS5pc0FycmF5KHRoaXMuYXBpTWV0YT8uZmllbGQpID8gdGhpcy5hcGlNZXRhPy5maWVsZD8uWzBdIDogdGhpcy5hcGlNZXRhLmZpZWxkKTtcbiAgICBcbiAgICBjb25zdCBjaGFuZ2UgPSBuZXcgQ2hhbmdlV3JhcHBlcigpO1xuICAgIGNoYW5nZS5mcm9tUXVlc3Rpb25JZCA9IHRoaXMuaWQ7XG4gICAgY2hhbmdlLnZhbHVlT2JqID0gZXZlbnQ7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIFxuICAgIHRoaXMudmFsdWVPYmogPSBldmVudDtcbiAgICBcbiAgICB0aGlzLmhpZGVTdWdnZXN0aW9ucygpO1xuICAgIFxuICAgIHRoaXMuc2VhcmNoVmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICBxdWVzdGlvbjogdGhpcy5xdWVzdGlvbixcbiAgICAgIHZhbHVlOiBjaGFuZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghcXVlc3Rpb25UZXh0KSByZXR1cm4gJyc7XG4gICAgcmV0dXJuIHF1ZXN0aW9uVGV4dC5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgfVxuXG4gIGlucHV0VmFsdWUoZXZlbnQ6IGFueSwgcXVlczogYW55KTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnQudHJpbSgpXG4gICAgaWYgKCFxdWVzPy5zaW5nbGVGaWVsZENoYW5nZSB8fCAhdGhpcy5hcGlNZXRhKSByZXR1cm47XG5cbiAgICB0aGlzLmlzU2luZ2xlRmllbGRDaGFuZ2UgPSB0cnVlO1xuICAgIHRoaXMucGFyc2VBcGlNZXRhKCk7XG5cbiAgICBjb25zdCBkZWZhdWx0RmllbGQgPSB0aGlzLmFwaU1ldGEuZGVmYXVsdEZpZWxkIHx8IFxuICAgICAgKEFycmF5LmlzQXJyYXkodGhpcy5hcGlNZXRhPy5maWVsZCkgPyB0aGlzLmFwaU1ldGE/LmZpZWxkPy5bMF0gOiB0aGlzLmFwaU1ldGEuZmllbGQpO1xuXG4gICAgY29uc3QgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTtcbiAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgIGNoYW5nZS52YWx1ZU9iaiA9IHRoaXMudmFsdWVPYmo7XG4gICAgY2hhbmdlLmZpZWxkID0gZGVmYXVsdEZpZWxkO1xuICAgIGNoYW5nZS5yZWZlcmVuY2VGaWVsZCA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgXG4gICAgdGhpcy5maWx0ZXJOYW1lID0gdGhpcy52aWV3RmlsdGVyTmFtZTtcbiAgICBcbiAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe1xuICAgICAgcXVlc3Rpb246IHF1ZXMsXG4gICAgICB2YWx1ZTogY2hhbmdlXG4gICAgfSk7XG4gIH1cblxuICBoaWdobGlnaHRUZXh0KHRleHQ6IHN0cmluZywgc2VhcmNoVGVybTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXRleHQgfHwgIXNlYXJjaFRlcm0pIHJldHVybiB0ZXh0IHx8ICcnO1xuXG4gICAgLy8gU2FuaXRpemUgdGhlIGlucHV0IHRleHRcbiAgICBjb25zdCBzYW5pdGl6ZWRUZXh0ID0gdGhpcy5zYW5pdGl6ZUh0bWwodGV4dCk7XG4gICAgY29uc3QgdGVybXMgPSBzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5maWx0ZXIodGVybSA9PiB0ZXJtLmxlbmd0aCA+IDApO1xuICAgIFxuICAgIGlmICh0ZXJtcy5sZW5ndGggPT09IDApIHJldHVybiBzYW5pdGl6ZWRUZXh0O1xuXG4gICAgLy8gRXNjYXBlIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVyc1xuICAgIGNvbnN0IGVzY2FwZWRUZXJtcyA9IHRlcm1zLm1hcCh0ZXJtID0+IFxuICAgICAgdGVybS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpXG4gICAgKTtcblxuICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgKCR7ZXNjYXBlZFRlcm1zLmpvaW4oJ3wnKX0pYCwgJ2dpJyk7XG4gICAgcmV0dXJuIHNhbml0aXplZFRleHQucmVwbGFjZShyZWdleCwgJzxzcGFuIGNsYXNzPVwiaGlnaGxpZ2h0XCI+JDE8L3NwYW4+Jyk7XG4gIH1cblxuICBwcml2YXRlIHNhbml0aXplSHRtbCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0ZXh0XG4gICAgICAucmVwbGFjZSgvJi9nLCAnJmFtcDsnKVxuICAgICAgLnJlcGxhY2UoLzwvZywgJyZsdDsnKVxuICAgICAgLnJlcGxhY2UoLz4vZywgJyZndDsnKVxuICAgICAgLnJlcGxhY2UoL1wiL2csICcmcXVvdDsnKVxuICAgICAgLnJlcGxhY2UoLycvZywgJyYjMzk7Jyk7XG4gIH1cbiAgcmVtb3ZlVmFsdWVFbWl0KCl7XG4gICAgdGhpcy5jbGlja0l0ZW0obnVsbClcbiAgfVxufSIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiICNzZWFyY2hXcmFwcGVyPlxuICA8bnh0LWlucHV0IFxuICAgIFt0eXBlXT1cIidsaXN0J1wiIFxuICAgIFttb2RlXT1cIm1vZGVcIiBcbiAgICBbZnJvbV09XCJmcm9tXCJcbiAgICBbdmFsdWVdPVwibW9kZSA9PT0gJ2VkaXQnID8gZmlsdGVyTmFtZSA6IHZpZXdGaWx0ZXJOYW1lXCJcbiAgICBbbGFiZWxGb250XT1cInF1ZXN0aW9uLmZvbnRcIiBcbiAgICBbbGFiZWxdPVwicmVtb3ZlQ2hhcmFjdGVycyhxdWVzdGlvbj8ucXVlc3Rpb25UZXh0KVwiIFxuICAgIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uLmZvbnRDb2xvclwiXG4gICAgW2xhYmVsU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtpbnB1dFZhbHVlU2l6ZV09XCJxdWVzdGlvbi5mb250U2l6ZVwiIFxuICAgIFtsYWJlbFdlaWdodF09XCJxdWVzdGlvbi5mb250V2VpZ2h0XCJcbiAgICBbaW5wdXRXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiIFxuICAgIFtzaG93TGFiZWxdPVwicXVlc3Rpb24uc3R5bGU/LnNob3dMYWJlbFwiIFxuICAgIGlucHV0Qm9yZGVyPVwibm9uZVwiIFxuICAgIHN2Z0hlaWdodD1cIjIwcHhcIlxuICAgIHN2Z1dpZHRoPVwiMjBweFwiIFxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclRleHRcIiBcbiAgICBbcmVxdWlyZWRdPVwicXVlc3Rpb24uaXNPcHRpb25hbFwiIFxuICAgIGlucHV0QmdDb2xvcj1cIiNGQUZBRkFcIlxuICAgIFtpbnB1dElkXT1cInF1ZXN0aW9uLnRyYWNraW5nSWRcIiBcbiAgICBbZXJyb3JNZXNzYWdlc109XCJ7IHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcgfVwiXG4gICAgW2lucHV0SWNvbkxlZnRTcmNdPVwicXVlc3Rpb24uaWNvbkxlZnRTcmNcIiBcbiAgICAoaW5wdXRWYWx1ZSk9XCJnZXRTb3VyY2VEYXRhTG9jYWwoJGV2ZW50KTsgaW5wdXRWYWx1ZSgkZXZlbnQudmFsdWUsICRldmVudC5xdWVzdGlvbilcIiBcbiAgICAob25Gb2N1cyk9XCJvbklucHV0Rm9jdXMoKVwiXG4gICAgKG9uQmx1cik9XCJvbklucHV0Qmx1cigpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBcbiAgICBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBcbiAgICBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgXG4gICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIiBcbiAgICBbcXVlc3Rpb25dPVwicXVlc3Rpb25cIlxuICAgIChyZW1vdmVWYWx1ZUVtaXQpPVwicmVtb3ZlVmFsdWVFbWl0KClcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCIgKm5nSWY9XCJzaG93U3VnZ2VzdGlvblwiPlxuICAgIDxkaXYgKm5nSWY9XCJmaW5hbFJlc3VsdHMoKS5sZW5ndGggPiAwXCIgY2xhc3M9XCJueHQtc3VnZ2VzdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbmFsUmVzdWx0cygpOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBcbiAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrSXRlbShpdGVtKVwiIFxuICAgICAgICAgICBjbGFzcz1cInN1Z2dlc3Rpb24taXRlbVwiIFxuICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiY2xpY2tJdGVtKGl0ZW0pXCJcbiAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwiY2xpY2tJdGVtKGl0ZW0pXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50aHVtYm5haWxcIiBjbGFzcz1cInRodW1ibmFpbC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLnRodW1ibmFpbFwiIFthbHRdPVwiaXRlbS5uYW1lICsgJyBhdmF0YXInXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tdGV4dFwiPlxuICAgICAgICAgICAgICA8IS0tIFByaW1hcnkgdGV4dCAoZmlyc3Qga2V5KSAtLT5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKS5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbmFtZSBwcmltYXJ5XCIgXG4gICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodFRleHQoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pW2dldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKVswXV0sIHNlYXJjaEtleVdvcmQpXCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgPCEtLSBTZWNvbmRhcnkgdGV4dCAocmVtYWluaW5nIGtleXMpIC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1zZWNvbmRhcnlcIiAqbmdJZj1cImdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKS5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQga2V5IG9mIGdldEtleXMoZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImkgPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kYXJ5LXRleHRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJoaWdobGlnaHRUZXh0KGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKVtrZXldLCBzZWFyY2hLZXlXb3JkKVwiPlxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VwYXJhdG9yXCIgKm5nSWY9XCJpIDwgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpLmxlbmd0aCAtIDFcIj4gfCA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJub1Jlc3VsdCAmJiBzZWFyY2hLZXlXb3JkXCIgY2xhc3M9XCJuby1yZXN1bHRzXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibm8tcmVzdWx0cy1jb250ZW50XCI+XG4gICAgICAgIDxzdmcgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgc3Ryb2tlLXdpZHRoPVwiMVwiPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCIxMVwiIGN5PVwiMTFcIiByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgICAgIDxwYXRoIGQ9XCJtMjEgMjEtNC4zNS00LjM1XCI+PC9wYXRoPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPHA+Tm8gcmVzdWx0cyBmb3VuZCBmb3IgXCJ7e3NlYXJjaEtleVdvcmR9fVwiPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
@@ -18,6 +18,7 @@ export const COMMON_FIELD_PROPS = [
18
18
  { label: 'End Point', placeholder: 'endpoint', type: 'text', key: 'subText.endpoint' },
19
19
  { label: 'Variable', placeholder: 'variable', type: 'text', key: 'subText.variable' },
20
20
  { label: 'Field', placeholder: 'field', type: 'text', key: 'subText.field' },
21
+ { label: 'Query Parameter', placeholder: 'field', type: 'text', key: 'subText.queryParameter' },
21
22
  { label: 'Default Field', placeholder: 'defaultField', type: 'text', key: 'subText.defaultField' },
22
23
  { label: 'Label Field', placeholder: 'labelField', type: 'text', key: 'subText.labelField' },
23
24
  { label: 'Value Field', placeholder: 'valueField', type: 'text', key: 'subText.valueField' },
@@ -86,4 +87,4 @@ export const COMMON_COLUMN_FIELD = [
86
87
  ]
87
88
  }
88
89
  ];
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWZpZWxkcy5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYnVpbGRlci9wcm9wZXJ0aWVzL2NvbW1vbi1maWVsZHMuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUV4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtJQUMxRixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7SUFDdkYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7SUFDcEcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFHLFdBQVcsRUFBRSxJQUFJLEVBQUM7SUFDdEcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO0lBQzNELEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7Q0FDL0MsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxl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Iiwic291cmNlc0NvbnRlbnQiOlsiLy9BUC0yNUpVTjI1LSBjb21tb24tZmllbGRzLmNvbnN0YW50cy50c1xuXG5leHBvcnQgY29uc3QgQ09NTU9OX0VMRU1FTlRfUFJPUFMgPSBbXG4gICAgeyBsYWJlbDogJ0lzIExhYmVsJywgcGxhY2Vob2xkZXI6ICdFbnRlciBUZXh0JywgdHlwZTogJ2NoZWNrYm94Jywga2V5OiAnc3R5bGUuc2hvd0xhYmVsJyB9LFxuICAgIHsgbGFiZWw6ICdwcmltYXJ5S2V5JywgcGxhY2Vob2xkZXI6ICdFbnRlciBUZXh0JywgdHlwZTogJ2NoZWNrYm94Jywga2V5OiAncHJpbWFyeUtleScgfSxcbiAgICB7IGxhYmVsOiAnTGFiZWwnLCBwbGFjZWhvbGRlcjogJ0ZpZWxkIGxhYmVsJywgdHlwZTogJ3RleHQnLCBrZXk6ICdxdWVzdGlvblRleHQnLCBpc1RyYW5zbGF0ZTogdHJ1ZSB9LFxuICAgIHsgbGFiZWw6ICdQbGFjZSBIb2xkZXInLCBwbGFjZWhvbGRlcjogJ0VudGVyIFRleHQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3F1ZXN0aW9uJyAsIGlzVHJhbnNsYXRlOiB0cnVlfSxcbiAgICB7IGxhYmVsOiAnRWxlbWVudCcsIHR5cGU6ICdudW1iZXInLCBrZXk6ICdxdWVzdGlvbk51bWJlcicgfSxcbiAgICB7IGxhYmVsOiAnU2l6ZScsIHR5cGU6ICdudW1iZXInLCBrZXk6ICdzaXplJyB9XG4gIF07XG4gIFxuZXhwb3J0IGNvbnN0IENPTU1PTl9GSUVMRF9QUk9QUyA9IFtcbiAgICB7IGxhYmVsOiAnJywgdHlwZTogJ3RvZ2dsZUdyb3VwJywga2V5OiAndG9nZ2xlT3B0aW9ucycgfSxcbiAgICB7IGxhYmVsOiAnSGVscCBUZXh0JywgcGxhY2Vob2xkZXI6ICdFbnRlciBUZXh0JywgdHlwZTogJ3RleHQnLCBrZXk6ICdoZWxwVGV4dCcsIGlzVHJhbnNsYXRlOiB0cnVlIH0sXG4gICAgeyBsYWJlbDogJ0RlZmF1bHQgVmFsdWUnLCBwbGFjZWhvbGRlcjogJ0VudGVyIFRleHQnLCB0eXBlOiAndGV4dCcsIGtleTogJ2RlZmF1bHRWYWx1ZScgfSxcbiAgICB7IGxhYmVsOiAnUmVmZXJlbmNlIEZpZWxkJywgcGxhY2Vob2xkZXI6ICdSZWZlcmVuY2UgRmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3JlZmVyZW5jZUZpZWxkJyB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnU3ViIFRleHQnLCB0eXBlOiAnc3ViUXVlc3Rpb24nLCBrZXk6ICdpc1N1YlRleHQnLFxuICAgICAgc3ViUXVlc3Rpb246IFtcbiAgICAgICAgeyBsYWJlbDogJ0VuZCBQb2ludCcsIHBsYWNlaG9sZGVyOiAnZW5kcG9pbnQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZW5kcG9pbnQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdWYXJpYWJsZScsIHBsYWNlaG9sZGVyOiAndmFyaWFibGUnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQudmFyaWFibGUnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdGaWVsZCcsIHBsYWNlaG9sZGVyOiAnZmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZmllbGQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IEZpZWxkJywgcGxhY2Vob2xkZXI6ICdkZWZhdWx0RmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZGVmYXVsdEZpZWxkJyB9LFxuICAgICAgICB7IGxhYmVsOiAnTGFiZWwgRmllbGQnLCBwbGFjZWhvbGRlcjogJ2xhYmVsRmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQubGFiZWxGaWVsZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1ZhbHVlIEZpZWxkJywgcGxhY2Vob2xkZXI6ICd2YWx1ZUZpZWxkJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnZhbHVlRmllbGQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdTb3VyY2UgUXVlc3Rpb24gSWQnLCBwbGFjZWhvbGRlcjogJ3NvdXJjZVF1ZXN0aW9uSWQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuc291cmNlUXVlc3Rpb25JZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RlcGVuZGVudCBWYWx1ZScsIHBsYWNlaG9sZGVyOiAnZGVwZW5kZW50VmFsdWUnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZGVwZW5kZW50VmFsdWUnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZXBlbmRlbnQgRmllbGQnLCBwbGFjZWhvbGRlcjogJ2lzRGVwZW5kZW50RmllbGQnLCB0eXBlOiAnYm9vbGVhbicsIGtleTogJ3N1YlRleHQuaXNEZXBlbmRlbnRGaWVsZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1F1ZXJ5IEZpZWxkJywgcGxhY2Vob2xkZXI6ICdxdWVyeUZpZWxkJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnF1ZXJ5RmllbGQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdRdWVyeSBWYWx1ZScsIHBsYWNlaG9sZGVyOiAncXVlcnlWYWx1ZScsIHR5cGU6ICd0ZXh0Jywga2V5OiAnc3ViVGV4dC5xdWVyeVZhbHVlJyB9LFxuICAgICAgICB7IGxhYmVsOiAnUXVlcnkgVmFsdWUgUmVmJywgcGxhY2Vob2xkZXI6ICdxdWVyeVZhbHVlUmVmJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnF1ZXJ5VmFsdWVSZWZlcmVuY2UnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdVbmlxdWUgS2V5JywgcGxhY2Vob2xkZXI6ICd1bmlxdWVLZXknLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQudW5pcXVlS2V5JyB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuICBcbmV4cG9ydCBjb25zdCBDT01NT05fQVBQRUFSQU5DRV9QUk9QUyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ1NlbGVjdCBGb250JywgdHlwZTogJ3NlbGVjdCcsIGtleTogJ2ZvbnQnLCByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFt7bGFiZWw6J0hlbHZldGljYSBOZXVlJyx2YWx1ZTonSGVsdmV0aWNhIE5ldWUnfSx7bGFiZWw6J0FyaWFsJyx2YWx1ZTonQXJpYWwnfSx7bGFiZWw6J1RpbWVzIE5ldyBSb21hbicsdmFsdWU6J1RpbWVzIE5ldyBSb21hbid9LHtsYWJlbDonUm9ib3RvJyx2YWx1ZTonUm9ib3RvJ31dXG4gICAgfSxcbiAgICB7IGxhYmVsOiAnRm9udCBDb2xvcicsIHR5cGU6ICdjb2xvcicsIGtleTogJ2ZvbnRDb2xvcicsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdGb250IFNpemUnLCB0eXBlOiAnc2VsZWN0Jywga2V5OiAnZm9udFNpemUnLCByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgeyBsYWJlbDogJ1NtYWxsJywgdmFsdWU6ICcxMnB4JyB9LFxuICAgICAgICB7IGxhYmVsOiAnTWVkaXVtJywgdmFsdWU6ICcxNHB4JyB9LFxuICAgICAgICB7IGxhYmVsOiAnTGFyZ2UnLCB2YWx1ZTogJzE2cHgnIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnRm9udCBXaWR0aCcsIHR5cGU6ICdzZWxlY3QnLCBrZXk6ICdmb250V2VpZ2h0JywgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHsgdmFsdWU6ICc0MDAnLCBsYWJlbDogJzQwMC1Ob3JtYWwnIH0sXG4gICAgICAgIHsgdmFsdWU6ICc1MDAnLCBsYWJlbDogJzUwMC1NZWRpdW0nIH0sXG4gICAgICAgIHsgdmFsdWU6ICc2MDAnLCBsYWJlbDogJzYwMC1TZW1pIEJvbGQnIH0sXG4gICAgICAgIHsgdmFsdWU6ICc3MDAnLCBsYWJlbDogJzcwMC1Cb2xkJyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGxhYmVsOiAnRHVwbGljYXRlIEZpZWxkJywgdHlwZTogJ2J1dHRvbi10b2dnbGUnLCBrZXk6ICdkdXBsaWNhdGVGaWVsZCcsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfVxuICAgIFxuICBdO1xuXG5leHBvcnQgY29uc3QgQ09NTU9OX09QVElPTlNfRklFTEQgPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPcHRpb25zJyxcbiAgICAgIHR5cGU6ICdvcHRpb25zLXR5cGUnLFxuICAgICAga2V5OiAnb3B0aW9ucycsXG4gICAgICBhZGRPcHRpb25MYWJlbDogJ0FkZCBPcHRpb24nLFxuICAgICAgaWNvbjogJ3BsdXMnXG4gICAgfVxuICBdO1xuZXhwb3J0IGNvbnN0IENPTU1PTl9DT0xVTU5fRklFTEQgPSBbXG4gIHsgbGFiZWw6IFwiaGVhZGVyTGFiZWxzXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwibGFiZWxcIiwgaXNUcmFuc2xhdGU6IHRydWUgfSxcbiAgeyBsYWJlbDogXCJhcGlOYW1lXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiYXBpTmFtZVwiIH0sIFxuICB7XG4gICAgbGFiZWw6IFwiU3VtbWFyeSBDb2x1bW5cIiwgcGxhY2Vob2xkZXI6IFwiU3VtbWFyeSBDb2x1bW5cIiwgdHlwZTogXCJzdWJRdWVzdGlvblwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcInN1bW1hcnlDb2x1bW5cIixcbiAgICBzdWJRdWVzdGlvbjogW1xuICAgICAgeyBsYWJlbDogXCJUeXBlXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiZmxkVHlwZVwiIH0sXG4gICAgICB7IGxhYmVsOiBcIk9wZXJhdGlvblwiLCBwbGFjZWhvbGRlcjogXCJFbXBsb3llZSBEZXRhaWxzXCIsIHR5cGU6IFwidGV4dFwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcIm9wZXJhdGlvblwiIH0sXG4gICAgICB7IGxhYmVsOiBcIk9wZXJhbmRzXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJhcnJheVwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcIm9wZXJhbmRzXCIgfSxcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogXCJTdW1tYXJ5IFJvd1wiLCBwbGFjZWhvbGRlcjogXCJTdW1tYXJ5IFJvd1wiLCB0eXBlOiBcInN1YlF1ZXN0aW9uXCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwic3VtbWFyeVJvd1wiLFxuICAgIHN1YlF1ZXN0aW9uOiBbXG4gICAgICB7IGxhYmVsOiBcIlR5cGVcIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcInRleHRcIiwgdGFyZ2V0QXJyYXk6IFwiZmllbGRzTWV0YVwiLCB0YXJnZXRBcnJheUtleTogXCJ1bmlxdWVJZGVudGlmaWVyXCIsIGtleTogXCJmbGRUeXBlXCIgfSxcbiAgICAgIHsgbGFiZWw6IFwib3BlcmF0aW9uXCIsIHBsYWNlaG9sZGVyOiBcIm9wZXJhdGlvblwiLCB0eXBlOiBcInRleHRcIiwgdGFyZ2V0QXJyYXk6IFwiZmllbGRzTWV0YVwiLCB0YXJnZXRBcnJheUtleTogXCJ1bmlxdWVJZGVudGlmaWVyXCIsIGtleTogXCJvcGVyYXRpb25cIiB9LFxuICAgICAgeyBsYWJlbDogXCJjb2x1bW5cIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcInJhZGlvXCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiY29sdW1uXCIgfSxcbiAgICAgIHsgbGFiZWw6IFwib3BlcmFuZHNcIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcImFycmF5XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwib3BlcmFuZHNcIiB9LFxuICAgIF1cbiAgfVxuXSJdfQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWZpZWxkcy5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYnVpbGRlci9wcm9wZXJ0aWVzL2NvbW1vbi1maWVsZHMuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUV4QyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxpQkFBaUIsRUFBRTtJQUMxRixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUU7SUFDdkYsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7SUFDcEcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFHLFdBQVcsRUFBRSxJQUFJLEVBQUM7SUFDdEcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO0lBQzNELEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUU7Q0FDL0MsQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxl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QUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7U0FDdEo7S0FDRjtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvL0FQLTI1SlVOMjUtIGNvbW1vbi1maWVsZHMuY29uc3RhbnRzLnRzXG5cbmV4cG9ydCBjb25zdCBDT01NT05fRUxFTUVOVF9QUk9QUyA9IFtcbiAgICB7IGxhYmVsOiAnSXMgTGFiZWwnLCBwbGFjZWhvbGRlcjogJ0VudGVyIFRleHQnLCB0eXBlOiAnY2hlY2tib3gnLCBrZXk6ICdzdHlsZS5zaG93TGFiZWwnIH0sXG4gICAgeyBsYWJlbDogJ3ByaW1hcnlLZXknLCBwbGFjZWhvbGRlcjogJ0VudGVyIFRleHQnLCB0eXBlOiAnY2hlY2tib3gnLCBrZXk6ICdwcmltYXJ5S2V5JyB9LFxuICAgIHsgbGFiZWw6ICdMYWJlbCcsIHBsYWNlaG9sZGVyOiAnRmllbGQgbGFiZWwnLCB0eXBlOiAndGV4dCcsIGtleTogJ3F1ZXN0aW9uVGV4dCcsIGlzVHJhbnNsYXRlOiB0cnVlIH0sXG4gICAgeyBsYWJlbDogJ1BsYWNlIEhvbGRlcicsIHBsYWNlaG9sZGVyOiAnRW50ZXIgVGV4dCcsIHR5cGU6ICd0ZXh0Jywga2V5OiAncXVlc3Rpb24nICwgaXNUcmFuc2xhdGU6IHRydWV9LFxuICAgIHsgbGFiZWw6ICdFbGVtZW50JywgdHlwZTogJ251bWJlcicsIGtleTogJ3F1ZXN0aW9uTnVtYmVyJyB9LFxuICAgIHsgbGFiZWw6ICdTaXplJywgdHlwZTogJ251bWJlcicsIGtleTogJ3NpemUnIH1cbiAgXTtcbiAgXG5leHBvcnQgY29uc3QgQ09NTU9OX0ZJRUxEX1BST1BTID0gW1xuICAgIHsgbGFiZWw6ICcnLCB0eXBlOiAndG9nZ2xlR3JvdXAnLCBrZXk6ICd0b2dnbGVPcHRpb25zJyB9LFxuICAgIHsgbGFiZWw6ICdIZWxwIFRleHQnLCBwbGFjZWhvbGRlcjogJ0VudGVyIFRleHQnLCB0eXBlOiAndGV4dCcsIGtleTogJ2hlbHBUZXh0JywgaXNUcmFuc2xhdGU6IHRydWUgfSxcbiAgICB7IGxhYmVsOiAnRGVmYXVsdCBWYWx1ZScsIHBsYWNlaG9sZGVyOiAnRW50ZXIgVGV4dCcsIHR5cGU6ICd0ZXh0Jywga2V5OiAnZGVmYXVsdFZhbHVlJyB9LFxuICAgIHsgbGFiZWw6ICdSZWZlcmVuY2UgRmllbGQnLCBwbGFjZWhvbGRlcjogJ1JlZmVyZW5jZSBGaWVsZCcsIHR5cGU6ICd0ZXh0Jywga2V5OiAncmVmZXJlbmNlRmllbGQnIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdTdWIgVGV4dCcsIHR5cGU6ICdzdWJRdWVzdGlvbicsIGtleTogJ2lzU3ViVGV4dCcsXG4gICAgICBzdWJRdWVzdGlvbjogW1xuICAgICAgICB7IGxhYmVsOiAnRW5kIFBvaW50JywgcGxhY2Vob2xkZXI6ICdlbmRwb2ludCcsIHR5cGU6ICd0ZXh0Jywga2V5OiAnc3ViVGV4dC5lbmRwb2ludCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1ZhcmlhYmxlJywgcGxhY2Vob2xkZXI6ICd2YXJpYWJsZScsIHR5cGU6ICd0ZXh0Jywga2V5OiAnc3ViVGV4dC52YXJpYWJsZScgfSxcbiAgICAgICAgeyBsYWJlbDogJ0ZpZWxkJywgcGxhY2Vob2xkZXI6ICdmaWVsZCcsIHR5cGU6ICd0ZXh0Jywga2V5OiAnc3ViVGV4dC5maWVsZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1F1ZXJ5IFBhcmFtZXRlcicsIHBsYWNlaG9sZGVyOiAnZmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQucXVlcnlQYXJhbWV0ZXInIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWZhdWx0IEZpZWxkJywgcGxhY2Vob2xkZXI6ICdkZWZhdWx0RmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZGVmYXVsdEZpZWxkJyB9LFxuICAgICAgICB7IGxhYmVsOiAnTGFiZWwgRmllbGQnLCBwbGFjZWhvbGRlcjogJ2xhYmVsRmllbGQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQubGFiZWxGaWVsZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1ZhbHVlIEZpZWxkJywgcGxhY2Vob2xkZXI6ICd2YWx1ZUZpZWxkJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnZhbHVlRmllbGQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdTb3VyY2UgUXVlc3Rpb24gSWQnLCBwbGFjZWhvbGRlcjogJ3NvdXJjZVF1ZXN0aW9uSWQnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuc291cmNlUXVlc3Rpb25JZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ0RlcGVuZGVudCBWYWx1ZScsIHBsYWNlaG9sZGVyOiAnZGVwZW5kZW50VmFsdWUnLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQuZGVwZW5kZW50VmFsdWUnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZXBlbmRlbnQgRmllbGQnLCBwbGFjZWhvbGRlcjogJ2lzRGVwZW5kZW50RmllbGQnLCB0eXBlOiAnYm9vbGVhbicsIGtleTogJ3N1YlRleHQuaXNEZXBlbmRlbnRGaWVsZCcgfSxcbiAgICAgICAgeyBsYWJlbDogJ1F1ZXJ5IEZpZWxkJywgcGxhY2Vob2xkZXI6ICdxdWVyeUZpZWxkJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnF1ZXJ5RmllbGQnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdRdWVyeSBWYWx1ZScsIHBsYWNlaG9sZGVyOiAncXVlcnlWYWx1ZScsIHR5cGU6ICd0ZXh0Jywga2V5OiAnc3ViVGV4dC5xdWVyeVZhbHVlJyB9LFxuICAgICAgICB7IGxhYmVsOiAnUXVlcnkgVmFsdWUgUmVmJywgcGxhY2Vob2xkZXI6ICdxdWVyeVZhbHVlUmVmJywgdHlwZTogJ3RleHQnLCBrZXk6ICdzdWJUZXh0LnF1ZXJ5VmFsdWVSZWZlcmVuY2UnIH0sXG4gICAgICAgIHsgbGFiZWw6ICdVbmlxdWUgS2V5JywgcGxhY2Vob2xkZXI6ICd1bmlxdWVLZXknLCB0eXBlOiAndGV4dCcsIGtleTogJ3N1YlRleHQudW5pcXVlS2V5JyB9XG4gICAgICBdXG4gICAgfVxuICBdO1xuICBcbmV4cG9ydCBjb25zdCBDT01NT05fQVBQRUFSQU5DRV9QUk9QUyA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ1NlbGVjdCBGb250JywgdHlwZTogJ3NlbGVjdCcsIGtleTogJ2ZvbnQnLCByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFt7bGFiZWw6J0hlbHZldGljYSBOZXVlJyx2YWx1ZTonSGVsdmV0aWNhIE5ldWUnfSx7bGFiZWw6J0FyaWFsJyx2YWx1ZTonQXJpYWwnfSx7bGFiZWw6J1RpbWVzIE5ldyBSb21hbicsdmFsdWU6J1RpbWVzIE5ldyBSb21hbid9LHtsYWJlbDonUm9ib3RvJyx2YWx1ZTonUm9ib3RvJ31dXG4gICAgfSxcbiAgICB7IGxhYmVsOiAnRm9udCBDb2xvcicsIHR5cGU6ICdjb2xvcicsIGtleTogJ2ZvbnRDb2xvcicsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdGb250IFNpemUnLCB0eXBlOiAnc2VsZWN0Jywga2V5OiAnZm9udFNpemUnLCByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgeyBsYWJlbDogJ1NtYWxsJywgdmFsdWU6ICcxMnB4JyB9LFxuICAgICAgICB7IGxhYmVsOiAnTWVkaXVtJywgdmFsdWU6ICcxNHB4JyB9LFxuICAgICAgICB7IGxhYmVsOiAnTGFyZ2UnLCB2YWx1ZTogJzE2cHgnIH1cbiAgICAgIF1cbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnRm9udCBXaWR0aCcsIHR5cGU6ICdzZWxlY3QnLCBrZXk6ICdmb250V2VpZ2h0JywgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBvcHRpb25zOiBbXG4gICAgICAgIHsgdmFsdWU6ICc0MDAnLCBsYWJlbDogJzQwMC1Ob3JtYWwnIH0sXG4gICAgICAgIHsgdmFsdWU6ICc1MDAnLCBsYWJlbDogJzUwMC1NZWRpdW0nIH0sXG4gICAgICAgIHsgdmFsdWU6ICc2MDAnLCBsYWJlbDogJzYwMC1TZW1pIEJvbGQnIH0sXG4gICAgICAgIHsgdmFsdWU6ICc3MDAnLCBsYWJlbDogJzcwMC1Cb2xkJyB9XG4gICAgICBdXG4gICAgfSxcbiAgICB7IGxhYmVsOiAnRHVwbGljYXRlIEZpZWxkJywgdHlwZTogJ2J1dHRvbi10b2dnbGUnLCBrZXk6ICdkdXBsaWNhdGVGaWVsZCcsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfVxuICAgIFxuICBdO1xuXG5leHBvcnQgY29uc3QgQ09NTU9OX09QVElPTlNfRklFTEQgPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPcHRpb25zJyxcbiAgICAgIHR5cGU6ICdvcHRpb25zLXR5cGUnLFxuICAgICAga2V5OiAnb3B0aW9ucycsXG4gICAgICBhZGRPcHRpb25MYWJlbDogJ0FkZCBPcHRpb24nLFxuICAgICAgaWNvbjogJ3BsdXMnXG4gICAgfVxuICBdO1xuZXhwb3J0IGNvbnN0IENPTU1PTl9DT0xVTU5fRklFTEQgPSBbXG4gIHsgbGFiZWw6IFwiaGVhZGVyTGFiZWxzXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwibGFiZWxcIiwgaXNUcmFuc2xhdGU6IHRydWUgfSxcbiAgeyBsYWJlbDogXCJhcGlOYW1lXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiYXBpTmFtZVwiIH0sIFxuICB7XG4gICAgbGFiZWw6IFwiU3VtbWFyeSBDb2x1bW5cIiwgcGxhY2Vob2xkZXI6IFwiU3VtbWFyeSBDb2x1bW5cIiwgdHlwZTogXCJzdWJRdWVzdGlvblwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcInN1bW1hcnlDb2x1bW5cIixcbiAgICBzdWJRdWVzdGlvbjogW1xuICAgICAgeyBsYWJlbDogXCJUeXBlXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJ0ZXh0XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiZmxkVHlwZVwiIH0sXG4gICAgICB7IGxhYmVsOiBcIk9wZXJhdGlvblwiLCBwbGFjZWhvbGRlcjogXCJFbXBsb3llZSBEZXRhaWxzXCIsIHR5cGU6IFwidGV4dFwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcIm9wZXJhdGlvblwiIH0sXG4gICAgICB7IGxhYmVsOiBcIk9wZXJhbmRzXCIsIHBsYWNlaG9sZGVyOiBcIkVtcGxveWVlIERldGFpbHNcIiwgdHlwZTogXCJhcnJheVwiLCB0YXJnZXRBcnJheTogXCJmaWVsZHNNZXRhXCIsIHRhcmdldEFycmF5S2V5OiBcInVuaXF1ZUlkZW50aWZpZXJcIiwga2V5OiBcIm9wZXJhbmRzXCIgfSxcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogXCJTdW1tYXJ5IFJvd1wiLCBwbGFjZWhvbGRlcjogXCJTdW1tYXJ5IFJvd1wiLCB0eXBlOiBcInN1YlF1ZXN0aW9uXCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwic3VtbWFyeVJvd1wiLFxuICAgIHN1YlF1ZXN0aW9uOiBbXG4gICAgICB7IGxhYmVsOiBcIlR5cGVcIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcInRleHRcIiwgdGFyZ2V0QXJyYXk6IFwiZmllbGRzTWV0YVwiLCB0YXJnZXRBcnJheUtleTogXCJ1bmlxdWVJZGVudGlmaWVyXCIsIGtleTogXCJmbGRUeXBlXCIgfSxcbiAgICAgIHsgbGFiZWw6IFwib3BlcmF0aW9uXCIsIHBsYWNlaG9sZGVyOiBcIm9wZXJhdGlvblwiLCB0eXBlOiBcInRleHRcIiwgdGFyZ2V0QXJyYXk6IFwiZmllbGRzTWV0YVwiLCB0YXJnZXRBcnJheUtleTogXCJ1bmlxdWVJZGVudGlmaWVyXCIsIGtleTogXCJvcGVyYXRpb25cIiB9LFxuICAgICAgeyBsYWJlbDogXCJjb2x1bW5cIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcInJhZGlvXCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwiY29sdW1uXCIgfSxcbiAgICAgIHsgbGFiZWw6IFwib3BlcmFuZHNcIiwgcGxhY2Vob2xkZXI6IFwiRW1wbG95ZWUgRGV0YWlsc1wiLCB0eXBlOiBcImFycmF5XCIsIHRhcmdldEFycmF5OiBcImZpZWxkc01ldGFcIiwgdGFyZ2V0QXJyYXlLZXk6IFwidW5pcXVlSWRlbnRpZmllclwiLCBrZXk6IFwib3BlcmFuZHNcIiB9LFxuICAgIF1cbiAgfVxuXSJdfQ==