@firestitch/app-message 18.0.19 → 18.0.21

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.
@@ -191,20 +191,13 @@ export class QueuesComponent {
191
191
  }
192
192
  this.config.filters.push({
193
193
  name: 'messageId',
194
- type: ItemType.Select,
194
+ type: ItemType.AutoCompleteChips,
195
195
  label: 'Message Type',
196
- values: (query) => {
197
- query = {
198
- ...query,
199
- limit: 50,
200
- };
201
- return this._config.loadMessages(query)
196
+ values: (keyword) => {
197
+ return this._config
198
+ .loadMessages({ keyword, limit: 50 })
202
199
  .pipe(map((response) => {
203
- return [
204
- { value: null, name: 'All' },
205
- ...response.data
206
- .map((item) => ({ name: item.name, value: item.id })),
207
- ];
200
+ return response.data.map((item) => ({ name: item.name, value: item.id }));
208
201
  }));
209
202
  },
210
203
  });
@@ -252,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
252
245
  }], config: [{
253
246
  type: Input
254
247
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlcy9xdWV1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtcXVldWVzL2NvbXBvbmVudHMvcXVldWVzL3F1ZXVlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUF3QixlQUFlLEVBQWdCLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFD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LElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuaW1wb3J0IHsgSXRlbVR5cGUsIFRleHRJdGVtIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdEFjdGlvblNlbGVjdGVkLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgUGFnaW5hdGlvblN0cmF0ZWd5LCBGc0xpc3RNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IFNlbGVjdGlvbkFjdGlvblR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xuaW1wb3J0IHsgRnNTdG9yZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3N0b3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBpc0FmdGVyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBpbmRleE5hbWVWYWx1ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlc0NvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRlNfQVBQX01FU1NBR0VfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQXBwTWVzc2FnZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVTdGF0ZSB9IGZyb20gJy4uLy4uL2VudW1zL21lc3NhZ2UtcXVldWUtc3RhdGUuZW51bSc7XG5pbXBvcnQgeyBGc01lc3NhZ2VRdWV1ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLXF1ZXVlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRnNNZXNzYWdlTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBNYXRBbmNob3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRnNGb3JtTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBSZWNpcGllbnRDb21wb25lbnQgfSBmcm9tICcuLi9yZWNpcGllbnQvcmVjaXBpZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcbmltcG9ydCB7IFRydW5jYXRlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL3RydW5jYXRlLnBpcGUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtYXBwLW1lc3NhZ2UtcXVldWVzJyxcbiAgICBzdHlsZVVybHM6IFsnLi9xdWV1ZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcXVldWVzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRnNNZXNzYWdlTW9kdWxlLFxuICAgICAgICBNYXRBbmNob3IsXG4gICAgICAgIEZzRm9ybU1vZHVsZSxcbiAgICAgICAgRnNMaXN0TW9kdWxlLFxuICAgICAgICBNYXRJY29uLFxuICAgICAgICBNYXRUb29sdGlwLFxuICAgICAgICBSZWNpcGllbnRDb21wb25lbnQsXG4gICAgICAgIEZzRGF0ZU1vZHVsZSxcbiAgICAgICAgVHJ1bmNhdGVQaXBlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXVlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfY29uZmlnID0gaW5qZWN0PEZzQXBwTWVzc2FnZUNvbmZpZz4oRlNfQVBQX01FU1NBR0VfQ09ORklHKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZVF1ZXVlU2VydmljZSA9IGluamVjdChGc01lc3NhZ2VRdWV1ZVNlcnZpY2UpO1xuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgX3N0b3JlID0gaW5qZWN0KEZzU3RvcmUpO1xuXG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBxdWVyeSA9IHt9O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiBNZXNzYWdlUXVldWVUeXBlO1xuICBASW5wdXQoKSBwdWJsaWMgY29uZmlnOiBNZXNzYWdlUXVldWVzQ29uZmlnO1xuXG4gIHB1YmxpYyBsaXN0Q29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbWVzc2FnZVF1ZXVlU3RhdGVzID0ge307XG4gIHB1YmxpYyBNZXNzYWdlUXVldWVTdGF0ZSA9IE1lc3NhZ2VRdWV1ZVN0YXRlO1xuICBwdWJsaWMgd2ViSG9va0VuYWJsZWQ7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VRdWV1ZVN0YXRlcyA9IGluZGV4TmFtZVZhbHVlKE1lc3NhZ2VRdWV1ZVN0YXRlcyk7XG4gICAgdGhpcy5faW5pdENvbmZpZygpO1xuICAgIHRoaXMuaW5pdExpc3QoKTtcbiAgICB0aGlzLmluaXRXZWJob29rKCk7XG4gIH1cblxuICBwdWJsaWMgZW5hYmxlV2ViaG9vaygpIHtcbiAgICB0aGlzLl9jb25maWcuY3JlYXRlV2ViaG9vaygpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5pbml0V2ViaG9vaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdFdlYmhvb2soKSB7XG4gICAgY29uc3QgZG9tYWluID0gZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWU7XG5cbiAgICBpZihkb21haW4gPT09ICdsb2NhbGhvc3QnIHx8IGRvbWFpbiA9PT0gJ1s6OjFdJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2NvbmZpZy5sb2FkV2ViaG9va3MoeyBkb21haW4gfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiAhdGhpcy5fc3RvcmUuZ2V0KCdtZXNzYWdlc1dlYmhvb2tFbmFibGVkJyk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgod2ViaG9va3MpID0+IHtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIHRoaXMud2ViSG9va0VuYWJsZWQgPSB3ZWJob29rc1xuICAgICAgICAgIC5zb21lKCh3ZWJob29rKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHdlYmhvb2sudXJsKTtcblxuICAgICAgICAgICAgcmV0dXJuIHVybC5ob3N0ID09PSBkb21haW47XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fc3RvcmUuc2V0KCdtZXNzYWdlc1dlYmhvb2tFbmFibGVkJywgdGhpcy53ZWJIb29rRW5hYmxlZCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0TGlzdCgpIHtcbiAgICB0aGlzLmxpc3RDb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXG4gICAgICAgICAgY2hhbmdlOiAoaXRlbTogVGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmKFN0cmluZyhpdGVtLnZhbHVlID8/ICcnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5saXN0LmZpbHRlclJlZlxuICAgICAgICAgICAgICAgIC51cGRhdGVTb3J0KHtcbiAgICAgICAgICAgICAgICAgIHNvcnRCeTogJ3JlbGV2YW5jZScsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLmxpc3QuZmlsdGVyUmVmXG4gICAgICAgICAgICAgICAgLnVwZGF0ZVNvcnQoe1xuICAgICAgICAgICAgICAgICAgc29ydEJ5OiAnY3JlYXRlZF9kYXRlJyxcbiAgICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgICAgbGFiZWw6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlczogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIE1lc3NhZ2VRdWV1ZVN0YXRlcztcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ21lc3NhZ2VJZCcsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuQXV0b0NvbXBsZXRlQ2hpcHMsXG4gICAgICAgICAgbGFiZWw6ICdNZXNzYWdlIHR5cGUnLFxuICAgICAgICAgIHZhbHVlczogKHF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnXG4gICAgICAgICAgICAgIC5sb2FkTWVzc2FnZXMoeyBrZXl3b3JkOiBxdWVyeSwgbGltaXQ6IDUwIH0pXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLm1hcCgoaXRlbSkgPT4gKHsgbmFtZTogaXRlbS5uYW1lLCB2YWx1ZTogaXRlbS5pZCB9KSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4uKHRoaXMuY29uZmlnPy5maWx0ZXJzIHx8IFtdKSxcbiAgICAgIF0sXG4gICAgICBwYWdpbmc6IHtcbiAgICAgICAgc3RyYXRlZ3k6IFBhZ2luYXRpb25TdHJhdGVneS5NYW55LFxuICAgICAgfSxcbiAgICAgIHNvcnRzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB2YWx1ZTogJ3JlbGV2YW5jZScsXG4gICAgICAgICAgbmFtZTogJ1JlbGV2YW5jZScsXG4gICAgICAgICAgZGlyZWN0aW9uOiAnZGVzYycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc29ydDoge1xuICAgICAgICB2YWx1ZTogJ2NyZWF0ZWRfZGF0ZScsXG4gICAgICAgIGRpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgfSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcXVlcnkgPSB7XG4gICAgICAgICAgLi4ucXVlcnksXG4gICAgICAgICAgLi4udGhpcy5xdWVyeSxcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgbWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50czogdHJ1ZSxcbiAgICAgICAgICBlbWFpbE1lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgICAgZW1haWxNZXNzYWdlUXVldWVCb2RpZXM6IGZhbHNlLFxuICAgICAgICAgIHNtc01lc3NhZ2VRdWV1ZXM6IHRydWUsXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZVF1ZXVlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+ICh7XG4gICAgICAgICAgICAgIGRhdGE6IHJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgICAubWFwKChtZXNzYWdlUXVldWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLm1lc3NhZ2VRdWV1ZSxcbiAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVkOiBtZXNzYWdlUXVldWUuc3RhdGUgPT09IE1lc3NhZ2VRdWV1ZVN0YXRlLlF1ZXVlZCAmJiBpc0FmdGVyKG1lc3NhZ2VRdWV1ZS5zY2hlZHVsZWREYXRlLCBuZXcgRGF0ZSgpKSxcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVF1ZXVlUmVjaXBpZW50czogbWVzc2FnZVF1ZXVlLm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAucmVkdWNlKChhY2N1bSwgbWVzc2FnZVF1ZXVlUmVjaXBpZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2N1bVttZXNzYWdlUXVldWVSZWNpcGllbnQucmVjaXBpZW50XSA9IG1lc3NhZ2VRdWV1ZVJlY2lwaWVudC5zdGF0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSksIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nLFxuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICk7XG4gICAgICB9LFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLmJ1bGtNZXNzYWdlUXVldWVzKSB7XG4gICAgICB0aGlzLmxpc3RDb25maWcuc2VsZWN0aW9uID0ge1xuICAgICAgICBzZWxlY3RBbGw6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAncXVldWUnLFxuICAgICAgICAgICAgbGFiZWw6ICdRdWV1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdyZXNlbmQnLFxuICAgICAgICAgICAgbGFiZWw6ICdSZXNlbmQnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXG4gICAgICAgICAgICBuYW1lOiAnY2FuY2VsJyxcbiAgICAgICAgICAgIGxhYmVsOiAnQ2FuY2VsJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvblNlbGVjdGVkOiBGc0xpc3RBY3Rpb25TZWxlY3RlZCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWcuYnVsa01lc3NhZ2VRdWV1ZXMoYWN0aW9uU2VsZWN0ZWQuYWN0aW9uLm5hbWUsIGFjdGlvblNlbGVjdGVkLnNlbGVjdGVkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuY29uZmlnLmZpbHRlcnMucHVzaCh7XG4gICAgICBuYW1lOiAnbWVzc2FnZUlkJyxcbiAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgIGxhYmVsOiAnTWVzc2FnZSBUeXBlJyxcbiAgICAgIHZhbHVlczogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIGxpbWl0OiA1MCxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlcyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiBudWxsLCBuYW1lOiAnQWxsJyB9LFxuICAgICAgICAgICAgICAgIC4uLnJlc3BvbnNlLmRhdGFcbiAgICAgICAgICAgICAgICAgIC5tYXAoKGl0ZW0pID0+ICh7IG5hbWU6IGl0ZW0ubmFtZSwgdmFsdWU6IGl0ZW0uaWQgfSkpLFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfSBhcyBhbnkpO1xuICB9XG5cbiAgcHVibGljIG9wZW4obWVzc2FnZVF1ZXVlKSB7XG4gICAgdGhpcy5fbWVzc2FnZVF1ZXVlU2VydmljZS5vcGVuTWVzc2FnZVF1ZXVlKG1lc3NhZ2VRdWV1ZS5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQobnVsbCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRDb25maWcoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXSxcbiAgICAgIC4uLnRoaXMuY29uZmlnLFxuICAgIH07XG4gIH1cbn1cbiIsIkBpZiAod2ViSG9va0VuYWJsZWQgPT09IGZhbHNlKSB7XG4gIDxmcy1tZXNzYWdlLWluZm8+XG4gICAgPGRpdiBjbGFzcz1cImZzLXJvd1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmcy1mbGV4XCI+XG4gICAgICAgIFRoZSB3ZWJob29rIHdoaWNoIHByb3ZpZGVzIGVtYWlsIGRlbGl2ZXJ5IGNvbmZpcm1hdGlvbnMgaXMgbm90IGVuYWJsZWQuXG4gICAgICA8L3NwYW4+XG4gICAgICA8YVxuICAgICAgICAoY2xpY2spPVwiZW5hYmxlV2ViaG9vaygpXCJcbiAgICAgICAgbWF0LXJhaXNlZC1idXR0b24+XG4gICAgICAgIEVuYWJsZVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2ZzLW1lc3NhZ2UtaW5mbz5cbn1cbjxmcy1saXN0XG4gIFtjb25maWddPVwibGlzdENvbmZpZ1wiXG4gICNsaXN0PlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICB0aXRsZT1cIk1lc3NhZ2VcIlxuICAgIG5hbWU9XCJzdWJqZWN0XCJcbiAgICBbc29ydGFibGVdPVwidHJ1ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICBAaWYgKHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZSkge1xuICAgICAgICA8YSAoY2xpY2spPVwib3Blbihyb3cpXCI+XG4gICAgICAgICAge3sgcm93LmVtYWlsTWVzc2FnZVF1ZXVlLnN1YmplY3R8dHJ1bmNhdGU6MTAwIH19XG4gICAgICAgIDwvYT5cbiAgICAgICAgQGlmIChyb3cubWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50KSB7XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cImF0dGFjaG1lbnQtaWNvblwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJyb3cubWVzc2FnZVF1ZXVlQXR0YWNobWVudENvdW50ICsgJyBBdHRhY2htZW50KHMpJ1wiPlxuICAgICAgICAgICAgYXR0YWNoX2ZpbGVcbiAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKHJvdy5zbXNNZXNzYWdlUXVldWUpIHtcbiAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPlxuICAgICAgICAgIHt7IHJvdy5zbXNNZXNzYWdlUXVldWUuYm9keXx0cnVuY2F0ZToxMDAgfX1cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgIHRpdGxlPVwiUmVjaXBpZW50c1wiXG4gICAgY2xhc3M9XCJjb2wtcmVjaXBpZW50c1wiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICBAaWYgKHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZSkge1xuICAgICAgICBAaWYgKHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS50b1JlY2lwaWVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgQGZvciAocmVjaXBpZW50IG9mIHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS50b1JlY2lwaWVudHM7IHRyYWNrIHJlY2lwaWVudCkge1xuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YXBwLXJlY2lwaWVudFxuICAgICAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1tyZWNpcGllbnRdIHx8IHJvdy5zdGF0ZVwiXG4gICAgICAgICAgICAgICAgW25hbWVdPVwicmVjaXBpZW50XCI+XG4gICAgICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgW3N0YXRlXT1cIk1lc3NhZ2VRdWV1ZVN0YXRlLkZhaWxlZFwiXG4gICAgICAgICAgICBuYW1lPVwiVW5zcGVjaWZpZWRcIj5cbiAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAocmVjaXBpZW50IG9mIHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS5jY1JlY2lwaWVudHM7IHRyYWNrIHJlY2lwaWVudCkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgICAgW3N0YXRlXT1cInJvdy5tZXNzYWdlUXVldWVSZWNpcGllbnRzW3JlY2lwaWVudF0gfHwgcm93LnN0YXRlXCJcbiAgICAgICAgICAgICAgW25hbWVdPVwicmVjaXBpZW50XCI+XG4gICAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAocmVjaXBpZW50IG9mIHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS5iY2NSZWNpcGllbnRzOyB0cmFjayByZWNpcGllbnQpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1tyZWNpcGllbnRdIHx8IHJvdy5zdGF0ZVwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cInJlY2lwaWVudFwiPlxuICAgICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAaWYgKHJvdy5zbXNNZXNzYWdlUXVldWUpIHtcbiAgICAgICAgQGlmIChyb3cuc21zTWVzc2FnZVF1ZXVlLnRvTnVtYmVyKSB7XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgW3N0YXRlXT1cInJvdy5zdGF0ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJyb3cuc21zTWVzc2FnZVF1ZXVlLnRvTnVtYmVyXCI+XG4gICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YXBwLXJlY2lwaWVudFxuICAgICAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgICAgICBbc3RhdGVdPVwiTWVzc2FnZVF1ZXVlU3RhdGUuRmFpbGVkXCJcbiAgICAgICAgICAgIG5hbWU9XCJVbnNwZWNpZmllZFwiPlxuICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgIHRpdGxlPVwiU3RhdHVzXCJcbiAgICBjbGFzcz1cImNvbC1zdGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICBAaWYgKHJvdy5zY2hlZHVsZWQpIHtcbiAgICAgICAgU2NoZWR1bGVkXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiPlxuICAgICAgICAgIHt7IHJvdy5zY2hlZHVsZWREYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3N0YXRlLScgKyByb3cuc3RhdGVcIj5cbiAgICAgICAgICB7eyBtZXNzYWdlUXVldWVTdGF0ZXNbcm93LnN0YXRlXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI3N0YXRlPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ3N0YXRlLScgKyByb3cuc3RhdGVcIj5cbiAgICAgICAgICB7eyBtZXNzYWdlUXVldWVTdGF0ZXNbcm93LnN0YXRlXSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgIHRpdGxlPVwiRGF0ZVwiXG4gICAgbmFtZT1cImNyZWF0ZWRfZGF0ZVwiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgcm93LmNyZWF0ZWREYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lLXllYXJkaWZmJyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG48L2ZzLWxpc3Q+XG4iXX0=
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tZXNzYWdlLXF1ZXVlcy9jb21wb25lbnRzL3F1ZXVlcy9xdWV1ZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtcXVldWVzL2NvbXBvbmVudHMvcXVldWVzL3F1ZXVlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUF3QixlQUFlLEVBQWdCLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFD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ZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbXBvcnQgeyBJdGVtVHlwZSwgVGV4dEl0ZW0gfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0QWN0aW9uU2VsZWN0ZWQsIEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnLCBQYWdpbmF0aW9uU3RyYXRlZ3ksIEZzTGlzdE1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQWN0aW9uVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBGc1N0b3JlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc3RvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IGlzQWZ0ZXIgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVzQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBNZXNzYWdlUXVldWVTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xuaW1wb3J0IHsgTWVzc2FnZVF1ZXVlVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IE1lc3NhZ2VRdWV1ZVN0YXRlIH0gZnJvbSAnLi4vLi4vZW51bXMvbWVzc2FnZS1xdWV1ZS1zdGF0ZS5lbnVtJztcbmltcG9ydCB7IEZzTWVzc2FnZVF1ZXVlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21lc3NhZ2UtcXVldWUuc2VydmljZSc7XG5pbXBvcnQgeyBGc01lc3NhZ2VNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IE1hdEFuY2hvciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFJlY2lwaWVudENvbXBvbmVudCB9IGZyb20gJy4uL3JlY2lwaWVudC9yZWNpcGllbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuaW1wb3J0IHsgVHJ1bmNhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvdHJ1bmNhdGUucGlwZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1hcHAtbWVzc2FnZS1xdWV1ZXMnLFxuICAgIHN0eWxlVXJsczogWycuL3F1ZXVlcy5jb21wb25lbnQuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9xdWV1ZXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGc01lc3NhZ2VNb2R1bGUsXG4gICAgICAgIE1hdEFuY2hvcixcbiAgICAgICAgRnNGb3JtTW9kdWxlLFxuICAgICAgICBGc0xpc3RNb2R1bGUsXG4gICAgICAgIE1hdEljb24sXG4gICAgICAgIE1hdFRvb2x0aXAsXG4gICAgICAgIFJlY2lwaWVudENvbXBvbmVudCxcbiAgICAgICAgRnNEYXRlTW9kdWxlLFxuICAgICAgICBUcnVuY2F0ZVBpcGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUXVldWVzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3Q8RnNBcHBNZXNzYWdlQ29uZmlnPihGU19BUFBfTUVTU0FHRV9DT05GSUcpO1xuICBwcml2YXRlIF9tZXNzYWdlUXVldWVTZXJ2aWNlID0gaW5qZWN0KEZzTWVzc2FnZVF1ZXVlU2VydmljZSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfc3RvcmUgPSBpbmplY3QoRnNTdG9yZSk7XG5cblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudCA9IG51bGw7XG5cbiAgQElucHV0KCkgcHVibGljIHF1ZXJ5ID0ge307XG5cbiAgQElucHV0KCkgcHVibGljIHR5cGU6IE1lc3NhZ2VRdWV1ZVR5cGU7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb25maWc6IE1lc3NhZ2VRdWV1ZXNDb25maWc7XG5cbiAgcHVibGljIGxpc3RDb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBtZXNzYWdlUXVldWVTdGF0ZXMgPSB7fTtcbiAgcHVibGljIE1lc3NhZ2VRdWV1ZVN0YXRlID0gTWVzc2FnZVF1ZXVlU3RhdGU7XG4gIHB1YmxpYyB3ZWJIb29rRW5hYmxlZDtcblxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMubWVzc2FnZVF1ZXVlU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoTWVzc2FnZVF1ZXVlU3RhdGVzKTtcbiAgICB0aGlzLl9pbml0Q29uZmlnKCk7XG4gICAgdGhpcy5pbml0TGlzdCgpO1xuICAgIHRoaXMuaW5pdFdlYmhvb2soKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVXZWJob29rKCkge1xuICAgIHRoaXMuX2NvbmZpZy5jcmVhdGVXZWJob29rKClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmluaXRXZWJob29rKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0V2ViaG9vaygpIHtcbiAgICBjb25zdCBkb21haW4gPSBkb2N1bWVudC5sb2NhdGlvbi5ob3N0bmFtZTtcblxuICAgIGlmKGRvbWFpbiA9PT0gJ2xvY2FsaG9zdCcgfHwgZG9tYWluID09PSAnWzo6MV0nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY29uZmlnLmxvYWRXZWJob29rcyh7IGRvbWFpbiB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuICF0aGlzLl9zdG9yZS5nZXQoJ21lc3NhZ2VzV2ViaG9va0VuYWJsZWQnKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh3ZWJob29rcykgPT4ge1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy53ZWJIb29rRW5hYmxlZCA9IHdlYmhvb2tzXG4gICAgICAgICAgLnNvbWUoKHdlYmhvb2spID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHVybCA9IG5ldyBVUkwod2ViaG9vay51cmwpO1xuXG4gICAgICAgICAgICByZXR1cm4gdXJsLmhvc3QgPT09IGRvbWFpbjtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9zdG9yZS5zZXQoJ21lc3NhZ2VzV2ViaG9va0VuYWJsZWQnLCB0aGlzLndlYkhvb2tFbmFibGVkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGluaXRMaXN0KCkge1xuICAgIHRoaXMubGlzdENvbmZpZyA9IHtcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJyxcbiAgICAgICAgICBjaGFuZ2U6IChpdGVtOiBUZXh0SXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYoU3RyaW5nKGl0ZW0udmFsdWUgPz8gJycpLmxlbmd0aCkge1xuICAgICAgICAgICAgICB0aGlzLmxpc3QuZmlsdGVyUmVmXG4gICAgICAgICAgICAgICAgLnVwZGF0ZVNvcnQoe1xuICAgICAgICAgICAgICAgICAgc29ydEJ5OiAncmVsZXZhbmNlJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMubGlzdC5maWx0ZXJSZWZcbiAgICAgICAgICAgICAgICAudXBkYXRlU29ydCh7XG4gICAgICAgICAgICAgICAgICBzb3J0Qnk6ICdjcmVhdGVkX2RhdGUnLFxuICAgICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbjogJ2Rlc2MnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWVzOiAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gTWVzc2FnZVF1ZXVlU3RhdGVzO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnZGF0ZScsXG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxuICAgICAgICAgIGxhYmVsOiBbJ0Zyb20gRGF0ZScsICdUbyBEYXRlJ10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnbWVzc2FnZUlkJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5BdXRvQ29tcGxldGVDaGlwcyxcbiAgICAgICAgICBsYWJlbDogJ01lc3NhZ2UgdHlwZScsXG4gICAgICAgICAgdmFsdWVzOiAocXVlcnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9jb25maWdcbiAgICAgICAgICAgICAgLmxvYWRNZXNzYWdlcyh7IGtleXdvcmQ6IHF1ZXJ5LCBsaW1pdDogNTAgfSlcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmRhdGEubWFwKChpdGVtKSA9PiAoeyBuYW1lOiBpdGVtLm5hbWUsIHZhbHVlOiBpdGVtLmlkIH0pKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi4odGhpcy5jb25maWc/LmZpbHRlcnMgfHwgW10pLFxuICAgICAgXSxcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5Lk1hbnksXG4gICAgICB9LFxuICAgICAgc29ydHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHZhbHVlOiAncmVsZXZhbmNlJyxcbiAgICAgICAgICBuYW1lOiAnUmVsZXZhbmNlJyxcbiAgICAgICAgICBkaXJlY3Rpb246ICdkZXNjJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBzb3J0OiB7XG4gICAgICAgIHZhbHVlOiAnY3JlYXRlZF9kYXRlJyxcbiAgICAgICAgZGlyZWN0aW9uOiAnZGVzYycsXG4gICAgICB9LFxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xuICAgICAgICBxdWVyeSA9IHtcbiAgICAgICAgICAuLi5xdWVyeSxcbiAgICAgICAgICAuLi50aGlzLnF1ZXJ5LFxuICAgICAgICAgIHR5cGU6IHRoaXMudHlwZSxcbiAgICAgICAgICBtZXNzYWdlUXVldWVBdHRhY2htZW50Q291bnRzOiB0cnVlLFxuICAgICAgICAgIGVtYWlsTWVzc2FnZVF1ZXVlczogdHJ1ZSxcbiAgICAgICAgICBlbWFpbE1lc3NhZ2VRdWV1ZUJvZGllczogZmFsc2UsXG4gICAgICAgICAgc21zTWVzc2FnZVF1ZXVlczogdHJ1ZSxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlUXVldWVzKHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHtcbiAgICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YVxuICAgICAgICAgICAgICAgIC5tYXAoKG1lc3NhZ2VRdWV1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgLi4ubWVzc2FnZVF1ZXVlLFxuICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZWQ6IG1lc3NhZ2VRdWV1ZS5zdGF0ZSA9PT0gTWVzc2FnZVF1ZXVlU3RhdGUuUXVldWVkICYmIGlzQWZ0ZXIobWVzc2FnZVF1ZXVlLnNjaGVkdWxlZERhdGUsIG5ldyBEYXRlKCkpLFxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlUXVldWVSZWNpcGllbnRzOiBtZXNzYWdlUXVldWUubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1xuICAgICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKGFjY3VtLCBtZXNzYWdlUXVldWVSZWNpcGllbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VtW21lc3NhZ2VRdWV1ZVJlY2lwaWVudC5yZWNpcGllbnRdID0gbWVzc2FnZVF1ZXVlUmVjaXBpZW50LnN0YXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgICAgICAgICAgfSwge30pLFxuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgKTtcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICh0aGlzLl9jb25maWcuYnVsa01lc3NhZ2VRdWV1ZXMpIHtcbiAgICAgIHRoaXMubGlzdENvbmZpZy5zZWxlY3Rpb24gPSB7XG4gICAgICAgIHNlbGVjdEFsbDogZmFsc2UsXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdxdWV1ZScsXG4gICAgICAgICAgICBsYWJlbDogJ1F1ZXVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6IFNlbGVjdGlvbkFjdGlvblR5cGUuQWN0aW9uLFxuICAgICAgICAgICAgbmFtZTogJ3Jlc2VuZCcsXG4gICAgICAgICAgICBsYWJlbDogJ1Jlc2VuZCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcbiAgICAgICAgICAgIG5hbWU6ICdjYW5jZWwnLFxuICAgICAgICAgICAgbGFiZWw6ICdDYW5jZWwnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIGFjdGlvblNlbGVjdGVkOiAoYWN0aW9uU2VsZWN0ZWQ6IEZzTGlzdEFjdGlvblNlbGVjdGVkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5idWxrTWVzc2FnZVF1ZXVlcyhhY3Rpb25TZWxlY3RlZC5hY3Rpb24ubmFtZSwgYWN0aW9uU2VsZWN0ZWQuc2VsZWN0ZWQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGhpcy5jb25maWcuZmlsdGVycy5wdXNoKHtcbiAgICAgIG5hbWU6ICdtZXNzYWdlSWQnLFxuICAgICAgdHlwZTogSXRlbVR5cGUuQXV0b0NvbXBsZXRlQ2hpcHMsXG4gICAgICBsYWJlbDogJ01lc3NhZ2UgVHlwZScsXG4gICAgICB2YWx1ZXM6IChrZXl3b3JkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maWdcbiAgICAgICAgICAubG9hZE1lc3NhZ2VzKHsga2V5d29yZCwgbGltaXQ6IDUwIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5kYXRhLm1hcCgoaXRlbSkgPT4gKHsgbmFtZTogaXRlbS5uYW1lLCB2YWx1ZTogaXRlbS5pZCB9KSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKG1lc3NhZ2VRdWV1ZSkge1xuICAgIHRoaXMuX21lc3NhZ2VRdWV1ZVNlcnZpY2Uub3Blbk1lc3NhZ2VRdWV1ZShtZXNzYWdlUXVldWUuaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KG51bGwpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0Q29uZmlnKCkge1xuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZmlsdGVyczogW10sXG4gICAgICAuLi50aGlzLmNvbmZpZyxcbiAgICB9O1xuICB9XG59XG4iLCJAaWYgKHdlYkhvb2tFbmFibGVkID09PSBmYWxzZSkge1xuICA8ZnMtbWVzc2FnZS1pbmZvPlxuICAgIDxkaXYgY2xhc3M9XCJmcy1yb3dcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZnMtZmxleFwiPlxuICAgICAgICBUaGUgd2ViaG9vayB3aGljaCBwcm92aWRlcyBlbWFpbCBkZWxpdmVyeSBjb25maXJtYXRpb25zIGlzIG5vdCBlbmFibGVkLlxuICAgICAgPC9zcGFuPlxuICAgICAgPGFcbiAgICAgICAgKGNsaWNrKT1cImVuYWJsZVdlYmhvb2soKVwiXG4gICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uPlxuICAgICAgICBFbmFibGVcbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9mcy1tZXNzYWdlLWluZm8+XG59XG48ZnMtbGlzdFxuICBbY29uZmlnXT1cImxpc3RDb25maWdcIlxuICAjbGlzdD5cbiAgPGZzLWxpc3QtY29sdW1uXG4gICAgdGl0bGU9XCJNZXNzYWdlXCJcbiAgICBuYW1lPVwic3ViamVjdFwiXG4gICAgW3NvcnRhYmxlXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgQGlmIChyb3cuZW1haWxNZXNzYWdlUXVldWUpIHtcbiAgICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPlxuICAgICAgICAgIHt7IHJvdy5lbWFpbE1lc3NhZ2VRdWV1ZS5zdWJqZWN0fHRydW5jYXRlOjEwMCB9fVxuICAgICAgICA8L2E+XG4gICAgICAgIEBpZiAocm93Lm1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRDb3VudCkge1xuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJhdHRhY2htZW50LWljb25cIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwicm93Lm1lc3NhZ2VRdWV1ZUF0dGFjaG1lbnRDb3VudCArICcgQXR0YWNobWVudChzKSdcIj5cbiAgICAgICAgICAgIGF0dGFjaF9maWxlXG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmIChyb3cuc21zTWVzc2FnZVF1ZXVlKSB7XG4gICAgICAgIDxhIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAgICB7eyByb3cuc21zTWVzc2FnZVF1ZXVlLmJvZHl8dHJ1bmNhdGU6MTAwIH19XG4gICAgICAgIDwvYT5cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICB0aXRsZT1cIlJlY2lwaWVudHNcIlxuICAgIGNsYXNzPVwiY29sLXJlY2lwaWVudHNcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgQGlmIChyb3cuZW1haWxNZXNzYWdlUXVldWUpIHtcbiAgICAgICAgQGlmIChyb3cuZW1haWxNZXNzYWdlUXVldWUudG9SZWNpcGllbnRzLmxlbmd0aCkge1xuICAgICAgICAgIEBmb3IgKHJlY2lwaWVudCBvZiByb3cuZW1haWxNZXNzYWdlUXVldWUudG9SZWNpcGllbnRzOyB0cmFjayByZWNpcGllbnQpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgICAgICBbc3RhdGVdPVwicm93Lm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNbcmVjaXBpZW50XSB8fCByb3cuc3RhdGVcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInJlY2lwaWVudFwiPlxuICAgICAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJNZXNzYWdlUXVldWVTdGF0ZS5GYWlsZWRcIlxuICAgICAgICAgICAgbmFtZT1cIlVuc3BlY2lmaWVkXCI+XG4gICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHJlY2lwaWVudCBvZiByb3cuZW1haWxNZXNzYWdlUXVldWUuY2NSZWNpcGllbnRzOyB0cmFjayByZWNpcGllbnQpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cubWVzc2FnZVF1ZXVlUmVjaXBpZW50c1tyZWNpcGllbnRdIHx8IHJvdy5zdGF0ZVwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cInJlY2lwaWVudFwiPlxuICAgICAgICAgICAgPC9hcHAtcmVjaXBpZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHJlY2lwaWVudCBvZiByb3cuZW1haWxNZXNzYWdlUXVldWUuYmNjUmVjaXBpZW50czsgdHJhY2sgcmVjaXBpZW50KSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YXBwLXJlY2lwaWVudFxuICAgICAgICAgICAgICBbc3RhdGVdPVwicm93Lm1lc3NhZ2VRdWV1ZVJlY2lwaWVudHNbcmVjaXBpZW50XSB8fCByb3cuc3RhdGVcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJyZWNpcGllbnRcIj5cbiAgICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGlmIChyb3cuc21zTWVzc2FnZVF1ZXVlKSB7XG4gICAgICAgIEBpZiAocm93LnNtc01lc3NhZ2VRdWV1ZS50b051bWJlcikge1xuICAgICAgICAgIDxhcHAtcmVjaXBpZW50XG4gICAgICAgICAgICBjbGFzcz1cInNtYWxsXCJcbiAgICAgICAgICAgIFtzdGF0ZV09XCJyb3cuc3RhdGVcIlxuICAgICAgICAgICAgW25hbWVdPVwicm93LnNtc01lc3NhZ2VRdWV1ZS50b051bWJlclwiPlxuICAgICAgICAgIDwvYXBwLXJlY2lwaWVudD5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGFwcC1yZWNpcGllbnRcbiAgICAgICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICAgICAgW3N0YXRlXT1cIk1lc3NhZ2VRdWV1ZVN0YXRlLkZhaWxlZFwiXG4gICAgICAgICAgICBuYW1lPVwiVW5zcGVjaWZpZWRcIj5cbiAgICAgICAgICA8L2FwcC1yZWNpcGllbnQ+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICB0aXRsZT1cIlN0YXR1c1wiXG4gICAgY2xhc3M9XCJjb2wtc3RhdGVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgQGlmIChyb3cuc2NoZWR1bGVkKSB7XG4gICAgICAgIFNjaGVkdWxlZFxuICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cbiAgICAgICAgICB7eyByb3cuc2NoZWR1bGVkRGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidzdGF0ZS0nICsgcm93LnN0YXRlXCI+XG4gICAgICAgICAge3sgbWVzc2FnZVF1ZXVlU3RhdGVzW3Jvdy5zdGF0ZV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgICAgPG5nLXRlbXBsYXRlICNzdGF0ZT5cbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidzdGF0ZS0nICsgcm93LnN0YXRlXCI+XG4gICAgICAgICAge3sgbWVzc2FnZVF1ZXVlU3RhdGVzW3Jvdy5zdGF0ZV0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICB0aXRsZT1cIkRhdGVcIlxuICAgIG5hbWU9XCJjcmVhdGVkX2RhdGVcIlxuICAgIFtzb3J0YWJsZV09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICBmcy1saXN0LWNlbGxcbiAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7IHJvdy5jcmVhdGVkRGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZS15ZWFyZGlmZicgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuIl19
@@ -23,7 +23,7 @@ import * as i4 from "@firestitch/dialog";
23
23
  import * as i5 from "@firestitch/label";
24
24
  import * as i6 from "@firestitch/text-editor";
25
25
  export class TemplateComponent {
26
- messageTemplate;
26
+ messageTemplate = null;
27
27
  htmlEditorconfig = {
28
28
  language: 'html',
29
29
  insertSpaces: true,
@@ -40,7 +40,7 @@ export class TemplateComponent {
40
40
  _message = inject(FsMessage);
41
41
  _dialog = inject(MatDialog);
42
42
  ngOnInit() {
43
- if (this._data.messageTemplate.id) {
43
+ if (this._data.messageTemplate?.id) {
44
44
  this._config.loadMessageTemplate(this._data.messageTemplate)
45
45
  .subscribe((messageTemplate) => {
46
46
  this.messageTemplate = messageTemplate;
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
75
75
  type: Component,
76
76
  args: [{ standalone: true, imports: [FsSkeletonModule, FormsModule, FsFormModule, FsDialogModule, MatDialogTitle, CdkScrollable, MatDialogContent, MatFormField, MatLabel, MatInput, MatTabGroup, MatTab, MatTabContent, FsLabelModule, FsTextEditorModule, MatDialogActions, MatButton, MatDialogClose], template: "<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"messageTemplate\"\n [confirmTabs]=\"false\">\n @if (messageTemplate) {\n <fs-dialog>\n <div mat-dialog-title>\n Message Template\n </div>\n <mat-dialog-content>\n <div class=\"fs-column\">\n <mat-form-field class=\"name\">\n <mat-label>\n Name\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"messageTemplate.name\"\n required\n name=\"name\">\n </mat-form-field>\n <div [@.disabled]=\"true\">\n <mat-tab-group\n mat-align-tabs=\"start\"\n [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <div class=\"content\">\n <fs-label-field>\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.content\"\n name=\"body\"\n [config]=\"htmlEditorconfig\">\n </fs-text-editor>\n <fs-label-message>\n &#123;$content&#125; will be replaced with the message content.\n </fs-label-message>\n </fs-label-field>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Styles\">\n <ng-template matTabContent>\n <div class=\"styles\">\n <fs-text-editor\n [(ngModel)]=\"messageTemplate.styles\"\n name=\"styles\"\n [config]=\"cssEditorconfig\">\n </fs-text-editor>\n </div>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n type=\"submit\"\n color=\"primary\"\n name=\"close\">\n Save\n </button>\n <button\n mat-button\n type=\"submit\"\n name=\"save-close\">\n Save & Close\n </button>\n <button\n mat-button\n (click)=\"openPreview()\"\n type=\"button\">\n Preview\n </button>\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n </mat-dialog-actions>\n </fs-dialog>\n }\n</form>", styles: [".name{width:100%}:host ::ng-deep .mat-tab-body-content,:host ::ng-deep .mat-tab-body{overflow:visible}\n"] }]
77
77
  }] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtdGVtcGxhdGVzL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtdGVtcGxhdGVzL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4SixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0s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Q0FHSSxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRUYWIsIE1hdFRhYkNvbnRlbnQsIE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5cbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSwgU3VibWl0RXZlbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JDb25maWcsIEZzVGV4dEVkaXRvck1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3RleHQtZWRpdG9yJztcblxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy9tZXNzYWdlLXByZXZpZXcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGc1NrZWxldG9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgRnNGb3JtTW9kdWxlLCBGc0RpYWxvZ01vZHVsZSwgTWF0RGlhbG9nVGl0bGUsIENka1Njcm9sbGFibGUsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwsIE1hdElucHV0LCBNYXRUYWJHcm91cCwgTWF0VGFiLCBNYXRUYWJDb250ZW50LCBGc0xhYmVsTW9kdWxlLCBGc1RleHRFZGl0b3JNb2R1bGUsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdEJ1dHRvbiwgTWF0RGlhbG9nQ2xvc2VdLFxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIG1lc3NhZ2VUZW1wbGF0ZTsgICAgXG4gIHB1YmxpYyBodG1sRWRpdG9yY29uZmlnOiBGc1RleHRFZGl0b3JDb25maWcgPSB7XG4gICAgbGFuZ3VhZ2U6ICdodG1sJyxcbiAgICBpbnNlcnRTcGFjZXM6IHRydWUsXG4gICAgdGFiU2l6ZTogMixcbiAgfTtcbiAgcHVibGljIGNzc0VkaXRvcmNvbmZpZzogRnNUZXh0RWRpdG9yQ29uZmlnID0ge1xuICAgIGxhbmd1YWdlOiAnc2NzcycsXG4gICAgaW5zZXJ0U3BhY2VzOiB0cnVlLFxuICAgIHRhYlNpemU6IDIsXG4gIH07XG4gIFxuICBwcml2YXRlIF9kYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7XG4gIHByaXZhdGUgX2NvbmZpZyA9IGluamVjdDxGc0FwcE1lc3NhZ2VDb25maWc+KEZTX0FQUF9NRVNTQUdFX0NPTkZJRyk7XG4gIHByaXZhdGUgX2RpYWxvZ1JlZiA9IGluamVjdDxNYXREaWFsb2dSZWY8VGVtcGxhdGVDb21wb25lbnQ+PihNYXREaWFsb2dSZWYpO1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KEZzTWVzc2FnZSk7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuXG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYXRhLm1lc3NhZ2VUZW1wbGF0ZS5pZCkge1xuICAgICAgdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlVGVtcGxhdGUodGhpcy5fZGF0YS5tZXNzYWdlVGVtcGxhdGUpXG4gICAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2VUZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMubWVzc2FnZVRlbXBsYXRlID0gbWVzc2FnZVRlbXBsYXRlO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZXNzYWdlVGVtcGxhdGUgPSB7fTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3BlblByZXZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oUHJldmlld0NvbXBvbmVudCwge1xuICAgICAgZGF0YToge1xuICAgICAgICBzdHlsZXM6IHRoaXMubWVzc2FnZVRlbXBsYXRlLnN0eWxlcyxcbiAgICAgICAgaHRtbDogdGhpcy5tZXNzYWdlVGVtcGxhdGUuY29udGVudCxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJzk1JScsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZSA9IChldmVudDogU3VibWl0RXZlbnQpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlnLnNhdmVNZXNzYWdlVGVtcGxhdGUodGhpcy5tZXNzYWdlVGVtcGxhdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChtZXNzYWdlVGVtcGxhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1NhdmVkIENoYW5nZXMnKTtcbiAgICAgICAgICBpZiAoZXZlbnQuc3VibWl0dGVyID09PSAnc2F2ZS1jbG9zZScpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5jbG9zZShtZXNzYWdlVGVtcGxhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9O1xufVxuIiwiPGZvcm1cbiAgICBmc0Zvcm1cbiAgICBbc3VibWl0XT1cInNhdmVcIlxuICAgICNmb3JtPVwibmdGb3JtXCJcbiAgICAqZnNTa2VsZXRvbj1cIm1lc3NhZ2VUZW1wbGF0ZVwiXG4gICAgW2NvbmZpcm1UYWJzXT1cImZhbHNlXCI+XG4gIEBpZiAobWVzc2FnZVRlbXBsYXRlKSB7XG4gICAgPGZzLWRpYWxvZz5cbiAgICAgIDxkaXYgbWF0LWRpYWxvZy10aXRsZT5cbiAgICAgICAgTWVzc2FnZSBUZW1wbGF0ZVxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtY29sdW1uXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibmFtZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlVGVtcGxhdGUubmFtZVwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCI+XG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8ZGl2IFtALmRpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwXG4gICAgICAgICAgICAgICAgbWF0LWFsaWduLXRhYnM9XCJzdGFydFwiXG4gICAgICAgICAgICAgICAgW2R5bmFtaWNIZWlnaHRdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VUZW1wbGF0ZS5jb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiaHRtbEVkaXRvcmNvbmZpZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAmIzEyMzskY29udGVudCYjMTI1OyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIG1lc3NhZ2UgY29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLW1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiU3R5bGVzXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3R5bGVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmcy10ZXh0LWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVRlbXBsYXRlLnN0eWxlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN0eWxlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJjc3NFZGl0b3Jjb25maWdcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIG5hbWU9XCJjbG9zZVwiPlxuICAgICAgICAgIFNhdmVcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgbmFtZT1cInNhdmUtY2xvc2VcIj5cbiAgICAgICAgICBTYXZlICYgQ2xvc2VcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuUHJldmlldygpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICBQcmV2aWV3XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2ZzLWRpYWxvZz5cbiAgfVxuPC9mb3JtPiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtdGVtcGxhdGVzL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2UtdGVtcGxhdGVzL2NvbXBvbmVudHMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4SixPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLGtCQUFrQixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0s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TjdCLFNBQVM7aUNBR0ksSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2csIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ1RpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0VGFiLCBNYXRUYWJDb250ZW50LCBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuXG5pbXBvcnQgeyBGc0RpYWxvZ01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RpYWxvZyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUsIFN1Ym1pdEV2ZW50IH0gZnJvbSAnQGZpcmVzdGl0Y2gvZm9ybSc7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1NrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2tlbGV0b24nO1xuaW1wb3J0IHsgRnNUZXh0RWRpdG9yQ29uZmlnLCBGc1RleHRFZGl0b3JNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5cbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZHVsZXMvbWVzc2FnZS1wcmV2aWV3L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRlNfQVBQX01FU1NBR0VfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQXBwTWVzc2FnZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2ludGVyZmFjZXMnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbRnNTa2VsZXRvbk1vZHVsZSwgRm9ybXNNb2R1bGUsIEZzRm9ybU1vZHVsZSwgRnNEaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1RpdGxlLCBDZGtTY3JvbGxhYmxlLCBNYXREaWFsb2dDb250ZW50LCBNYXRGb3JtRmllbGQsIE1hdExhYmVsLCBNYXRJbnB1dCwgTWF0VGFiR3JvdXAsIE1hdFRhYiwgTWF0VGFiQ29udGVudCwgRnNMYWJlbE1vZHVsZSwgRnNUZXh0RWRpdG9yTW9kdWxlLCBNYXREaWFsb2dBY3Rpb25zLCBNYXRCdXR0b24sIE1hdERpYWxvZ0Nsb3NlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBtZXNzYWdlVGVtcGxhdGUgPSBudWxsO1xuICBwdWJsaWMgaHRtbEVkaXRvcmNvbmZpZzogRnNUZXh0RWRpdG9yQ29uZmlnID0ge1xuICAgIGxhbmd1YWdlOiAnaHRtbCcsXG4gICAgaW5zZXJ0U3BhY2VzOiB0cnVlLFxuICAgIHRhYlNpemU6IDIsXG4gIH07XG4gIHB1YmxpYyBjc3NFZGl0b3Jjb25maWc6IEZzVGV4dEVkaXRvckNvbmZpZyA9IHtcbiAgICBsYW5ndWFnZTogJ3Njc3MnLFxuICAgIGluc2VydFNwYWNlczogdHJ1ZSxcbiAgICB0YWJTaXplOiAyLFxuICB9O1xuICBcbiAgcHJpdmF0ZSBfZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3Q8RnNBcHBNZXNzYWdlQ29uZmlnPihGU19BUFBfTUVTU0FHRV9DT05GSUcpO1xuICBwcml2YXRlIF9kaWFsb2dSZWYgPSBpbmplY3Q8TWF0RGlhbG9nUmVmPFRlbXBsYXRlQ29tcG9uZW50Pj4oTWF0RGlhbG9nUmVmKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZSA9IGluamVjdChGc01lc3NhZ2UpO1xuICBwcml2YXRlIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcblxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZGF0YS5tZXNzYWdlVGVtcGxhdGU/LmlkKSB7XG4gICAgICB0aGlzLl9jb25maWcubG9hZE1lc3NhZ2VUZW1wbGF0ZSh0aGlzLl9kYXRhLm1lc3NhZ2VUZW1wbGF0ZSlcbiAgICAgICAgLnN1YnNjcmliZSgobWVzc2FnZVRlbXBsYXRlKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlVGVtcGxhdGUgPSBtZXNzYWdlVGVtcGxhdGU7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2VUZW1wbGF0ZSA9IHt9O1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuUHJldmlldygpOiB2b2lkIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihQcmV2aWV3Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHN0eWxlczogdGhpcy5tZXNzYWdlVGVtcGxhdGUuc3R5bGVzLFxuICAgICAgICBodG1sOiB0aGlzLm1lc3NhZ2VUZW1wbGF0ZS5jb250ZW50LFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnOTUlJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlID0gKGV2ZW50OiBTdWJtaXRFdmVudCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuc2F2ZU1lc3NhZ2VUZW1wbGF0ZSh0aGlzLm1lc3NhZ2VUZW1wbGF0ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKG1lc3NhZ2VUZW1wbGF0ZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU2F2ZWQgQ2hhbmdlcycpO1xuICAgICAgICAgIGlmIChldmVudC5zdWJtaXR0ZXIgPT09ICdzYXZlLWNsb3NlJykge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKG1lc3NhZ2VUZW1wbGF0ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH07XG59XG4iLCI8Zm9ybVxuICAgIGZzRm9ybVxuICAgIFtzdWJtaXRdPVwic2F2ZVwiXG4gICAgI2Zvcm09XCJuZ0Zvcm1cIlxuICAgICpmc1NrZWxldG9uPVwibWVzc2FnZVRlbXBsYXRlXCJcbiAgICBbY29uZmlybVRhYnNdPVwiZmFsc2VcIj5cbiAgQGlmIChtZXNzYWdlVGVtcGxhdGUpIHtcbiAgICA8ZnMtZGlhbG9nPlxuICAgICAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgICBNZXNzYWdlIFRlbXBsYXRlXG4gICAgICA8L2Rpdj5cbiAgICAgIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmcy1jb2x1bW5cIj5cbiAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJuYW1lXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICBOYW1lXG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VUZW1wbGF0ZS5uYW1lXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxkaXYgW0AuZGlzYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC10YWItZ3JvdXBcbiAgICAgICAgICAgICAgICBtYXQtYWxpZ24tdGFicz1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICBbZHluYW1pY0hlaWdodF09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZnMtdGV4dC1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZVRlbXBsYXRlLmNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJodG1sRWRpdG9yY29uZmlnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtbWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICYjMTIzOyRjb250ZW50JiMxMjU7IHdpbGwgYmUgcmVwbGFjZWQgd2l0aCB0aGUgbWVzc2FnZSBjb250ZW50LlxuICAgICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtbWVzc2FnZT5cbiAgICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJTdHlsZXNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHlsZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlVGVtcGxhdGUuc3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImNzc0VkaXRvcmNvbmZpZ1wiPlxuICAgICAgICAgICAgICAgICAgICA8L2ZzLXRleHQtZWRpdG9yPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgbmFtZT1cImNsb3NlXCI+XG4gICAgICAgICAgU2F2ZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBuYW1lPVwic2F2ZS1jbG9zZVwiPlxuICAgICAgICAgIFNhdmUgJiBDbG9zZVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIFByZXZpZXdcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgIENhbmNlbFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDwvZnMtZGlhbG9nPlxuICB9XG48L2Zvcm0+Il19
@@ -40,7 +40,7 @@ export class MessageComponent {
40
40
  _message = inject(FsMessage);
41
41
  _dialog = inject(MatDialog);
42
42
  _cdRef = inject(ChangeDetectorRef);
43
- message;
43
+ message = null;
44
44
  tab = 'general';
45
45
  messageTemplates = [];
46
46
  emailMessageFormats = EmailMessageFormats;
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
149
149
  MatDialogClose,
150
150
  ], template: "<form\n fsForm\n [submit]=\"save\"\n #form=\"ngForm\"\n *fsSkeleton=\"message\"\n [confirmTabs]=\"false\">\n @if (message) {\n <fs-dialog>\n <div mat-dialog-title>\n Edit Message\n </div>\n <mat-dialog-content>\n <mat-tab-group\n fsTabs\n [(selected)]=\"tab\">\n <mat-tab\n label=\"General\"\n name=\"general\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <mat-form-field>\n <mat-label>\n Name\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.name\"\n name=\"Name\"\n required>\n </mat-form-field>\n <fs-label-field>\n <fs-label>\n Reference\n </fs-label>\n {{ message.reference }}\n </fs-label-field>\n <mat-form-field>\n <mat-label>\n Description\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.description\"\n name=\"description\">\n </mat-form-field>\n @if (message.emailMessage) {\n <div class=\"fs-row.gap-sm.wrap\">\n <mat-form-field>\n <mat-label>\n From Email\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromEmail\"\n name=\"from_email\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n From Name\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.fromName\"\n name=\"from_name\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n Reply To\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.replyEmail\"\n name=\"reply_to\">\n </mat-form-field>\n </div>\n <div class=\"fs-row.gap-sm.wrap\">\n <mat-form-field>\n <mat-label>\n To\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.toRecipients\"\n name=\"to\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n CC\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.ccRecipients\"\n name=\"cc\">\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n BCC\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.bccRecipients\"\n name=\"bcc\">\n </mat-form-field>\n </div>\n }\n </div>\n </ng-template>\n </mat-tab>\n @if (message.emailMessage) {\n <mat-tab\n label=\"Email Message\"\n name=\"email\">\n <ng-template matTabContent>\n <div class=\"fs-column\">\n <div class=\"fs-row.gap-sm\">\n <mat-form-field>\n <mat-label>\n Customize Message\n </mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.customize\"\n name=\"customizeEmail\">\n <mat-option [value]=\"true\">\n Yes\n </mat-option>\n <mat-option [value]=\"false\">\n No\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n Format\n </mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.emailMessage.format\"\n name=\"format\">\n @for (item of emailMessageFormats; track item) {\n <mat-option\n [value]=\"item.value\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field>\n <mat-label>\n Template\n </mat-label>\n <mat-select\n [(ngModel)]=\"message.emailMessage.messageTemplateId\"\n name=\"template\">\n <mat-option [value]=\"null\">\n None\n </mat-option>\n @for (item of messageTemplates; track item) {\n <mat-option\n [value]=\"item.id\">\n {{ item.name }}\n </mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n @if (message.emailMessage.customize) {\n <mat-form-field>\n <mat-label>\n Subject\n </mat-label>\n <input\n matInput\n [(ngModel)]=\"message.emailMessage.subject\"\n name=\"name\"\n required>\n </mat-form-field>\n <div [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n @if (message.emailMessage.format===emailMessageFormat.HTML) {\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\"\n [config]=\"{ language: 'html '}\">\n </fs-text-editor>\n }\n @if (message.emailMessage.format===emailMessageFormat.RichText) {\n <fs-html-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"body\">\n </fs-html-editor>\n }\n @if (message.emailMessage.format===emailMessageFormat.Text) {\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.body\"\n name=\"emailMessageBody\"\n [config]=\"{ language: 'text' }\">\n </fs-text-editor>\n }\n </ng-template>\n </mat-tab>\n @if (message.emailMessage.format===emailMessageFormat.HTML || message.emailMessage.format===emailMessageFormat.RichText) {\n <mat-tab\n label=\"Styles\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.emailMessage.styles\"\n name=\"styles\"\n [config]=\"{ language: 'scss' }\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n }\n </mat-tab-group>\n </div>\n }\n @if (!message.emailMessage.customize) {\n <fs-label-field>\n <fs-label>\n Subject\n </fs-label>\n {{ message.defaultEmailSubject }}\n </fs-label-field>\n <div>\n <fs-label-field>\n <fs-label>\n Content\n </fs-label>\n <div class=\"email-body-html-default\">\n @if (message.emailMessage.format===emailMessageFormat.RichText || message.emailMessage.format===emailMessageFormat.HTML) {\n <fs-html-renderer\n [html]=\"message.defaultEmailBody\">\n </fs-html-renderer>\n }\n </div>\n @if (message.emailMessage.format===emailMessageFormat.Text) {\n <div\n class=\"email-body-text-default\"\n >\n {{ message.defaultEmailBody }}\n </div>\n }\n </fs-label-field>\n </div>\n }\n </div>\n </ng-template>\n </mat-tab>\n }\n @if (!!message.smsMessage) {\n <mat-tab\n label=\"SMS Message\"\n name=\"sms\">\n <ng-template matTabContent>\n <mat-form-field>\n <mat-label>\n Customize Message\n </mat-label>\n <mat-select\n required\n [(ngModel)]=\"message.smsMessage.customize\"\n name=\"customizeSms\">\n <mat-option [value]=\"true\">\n Yes\n </mat-option>\n <mat-option [value]=\"false\">\n No\n </mat-option>\n </mat-select>\n </mat-form-field>\n @if (message.smsMessage.customize) {\n <div\n [@.disabled]=\"true\">\n <mat-tab-group [dynamicHeight]=\"false\">\n <mat-tab label=\"Content\">\n <ng-template matTabContent>\n <fs-text-editor\n [(ngModel)]=\"message.smsMessage.message\"\n name=\"smsMessageMessage\"\n [config]=\"{ language: 'text '}\">\n </fs-text-editor>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n }\n @if (!message.smsMessage.customize) {\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n <div class=\"content\">\n {{ message.defaultSmsMessage }}\n </div>\n </fs-label-field>\n }\n </ng-template>\n </mat-tab>\n }\n @if (message.emailMessage) {\n <mat-tab\n label=\"Attachments\"\n name=\"attachments\">\n <ng-template matTabContent>\n <fs-app-message-attachments [message]=\"message\"></fs-app-message-attachments>\n </ng-template>\n </mat-tab>\n }\n @if (message.variables) {\n <mat-tab\n label=\"Variables\"\n >\n <ng-template matTabContent>\n @for (variable of message.variables; track variable) {\n <div\n class=\"variable\">\n {{ variable.name }}\n </div>\n }\n </ng-template>\n </mat-tab>\n }\n <mat-tab label=\"Defaults\">\n <ng-template matTabContent>\n @if (message.emailMessage) {\n @if (message.emailMessage && message.smsMessage) {\n <h2>\n Email\n </h2>\n }\n <fs-label-field>\n <fs-label>\n Subject\n </fs-label>\n <div class=\"content\">\n {{ message.defaultEmailSubject }}\n </div>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Content\n </fs-label>\n <div class=\"content\">\n {{ message.defaultEmailBody }}\n </div>\n </fs-label-field>\n }\n @if (message.smsMessage) {\n @if (message.emailMessage && message.smsMessage) {\n <h2>\n SMS\n </h2>\n }\n <fs-label-field>\n <fs-label>\n Content\n </fs-label>\n <div class=\"content\">\n {{ message.defaultSmsMessage }}\n </div>\n </fs-label-field>\n }\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n @if (tab==='email' || tab==='sms' || tab==='general') {\n <button\n mat-button\n color=\"primary\">\n Save\n </button>\n @if (tab==='email') {\n <button\n mat-button\n type=\"button\"\n (click)=\"openPreview()\"\n type=\"button\">\n Preview\n </button>\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('email')\"\n type=\"button\">\n Send Test Email\n </button>\n }\n @if (tab==='sms') {\n <button\n mat-button\n type=\"button\"\n (click)=\"sendTest('sms')\"\n type=\"button\">\n Send Test SMS\n </button>\n }\n <button\n mat-button\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Cancel\n </button>\n } @else {\n <button\n mat-button\n color=\"primary\"\n [mat-dialog-close]=\"null\"\n type=\"button\">\n Close\n </button>\n }\n </mat-dialog-actions>\n </fs-dialog>\n }\n</form>", styles: ["fs-label-field .content{white-space:pre-wrap}:host ::ng-deep .mat-tab-body-content,:host ::ng-deep .mat-tab-body{overflow:visible}:host ::ng-deep .sms-message{width:100%}:host ::ng-deep .email-body-text-default{white-space:pre-line}.fs-column .mat-form-field{flex:1}.email-body-text{width:100%}.variable{margin-bottom:4px}\n"] }]
151
151
  }] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWVzc2FnZXMvY29tcG9uZW50cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVB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dG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcblxuaW1wb3J0IHsgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kdWxlcy9tZXNzYWdlLXByZXZpZXcvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBGU19BUFBfTUVTU0FHRV9DT05GSUcgfSBmcm9tICcuLi8uLi8uLi9hcHAtbWVzc2FnZS9pbmplY3RvcnMnO1xuaW1wb3J0IHsgRnNBcHBNZXNzYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbWFpbE1lc3NhZ2VGb3JtYXRzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IEVtYWlsTWVzc2FnZUZvcm1hdCB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IEZzU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9za2VsZXRvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZzRm9ybU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2Zvcm0nO1xuaW1wb3J0IHsgRnNEaWFsb2dNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kaWFsb2cnO1xuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xuaW1wb3J0IHsgTWF0VGFiR3JvdXAsIE1hdFRhYiwgTWF0VGFiQ29udGVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgRnNUYWJzTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvdGFicyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGQsIE1hdExhYmVsIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZzTGFiZWxNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9sYWJlbCc7XG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBGc1RleHRFZGl0b3JNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC90ZXh0LWVkaXRvcic7XG5pbXBvcnQgeyBGc0h0bWxFZGl0b3JNb2R1bGUsIEZzSHRtbFJlbmRlcmVyTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvaHRtbC1lZGl0b3InO1xuaW1wb3J0IHsgQXR0YWNobWVudHNDb21wb25lbnQgfSBmcm9tICcuLi9hdHRhY2htZW50cy9hdHRhY2htZW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVzc2FnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGc1NrZWxldG9uTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgRnNGb3JtTW9kdWxlLFxuICAgICAgICBGc0RpYWxvZ01vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nVGl0bGUsXG4gICAgICAgIENka1Njcm9sbGFibGUsXG4gICAgICAgIE1hdERpYWxvZ0NvbnRlbnQsXG4gICAgICAgIE1hdFRhYkdyb3VwLFxuICAgICAgICBGc1RhYnNNb2R1bGUsXG4gICAgICAgIE1hdFRhYixcbiAgICAgICAgTWF0VGFiQ29udGVudCxcbiAgICAgICAgTWF0Rm9ybUZpZWxkLFxuICAgICAgICBNYXRMYWJlbCxcbiAgICAgICAgTWF0SW5wdXQsXG4gICAgICAgIEZzTGFiZWxNb2R1bGUsXG4gICAgICAgIE1hdFNlbGVjdCxcbiAgICAgICAgTWF0T3B0aW9uLFxuICAgICAgICBGc1RleHRFZGl0b3JNb2R1bGUsXG4gICAgICAgIEZzSHRtbEVkaXRvck1vZHVsZSxcbiAgICAgICAgRnNIdG1sUmVuZGVyZXJNb2R1bGUsXG4gICAgICAgIEF0dGFjaG1lbnRzQ29tcG9uZW50LFxuICAgICAgICBNYXREaWFsb2dBY3Rpb25zLFxuICAgICAgICBNYXRCdXR0b24sXG4gICAgICAgIE1hdERpYWxvZ0Nsb3NlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3Q8RnNBcHBNZXNzYWdlQ29uZmlnPihGU19BUFBfTUVTU0FHRV9DT05GSUcpO1xuICBwcml2YXRlIF9kYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7XG4gIHByaXZhdGUgX3Byb21wdCA9IGluamVjdChGc1Byb21wdCk7XG4gIHByaXZhdGUgX21lc3NhZ2UgPSBpbmplY3QoRnNNZXNzYWdlKTtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuXG4gIHB1YmxpYyBtZXNzYWdlO1xuICBwdWJsaWMgdGFiID0gJ2dlbmVyYWwnO1xuICBwdWJsaWMgbWVzc2FnZVRlbXBsYXRlcyA9IFtdO1xuICBwdWJsaWMgZW1haWxNZXNzYWdlRm9ybWF0cyA9IEVtYWlsTWVzc2FnZUZvcm1hdHM7XG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VGb3JtYXQgPSBFbWFpbE1lc3NhZ2VGb3JtYXQ7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZSh0aGlzLl9kYXRhLm1lc3NhZ2UpXG4gICAgICAuc3Vic2NyaWJlKChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZSA9IG1lc3NhZ2U7XG5cbiAgICAgICAgaWYgKHRoaXMubWVzc2FnZS5lbWFpbE1lc3NhZ2UgJiYgdGhpcy5tZXNzYWdlLmVtYWlsTWVzc2FnZS5jdXN0b21pemUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZS5lbWFpbE1lc3NhZ2UuY3VzdG9taXplID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tZXNzYWdlLnNtc01lc3NhZ2UgJiYgdGhpcy5tZXNzYWdlLnNtc01lc3NhZ2UuY3VzdG9taXplID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICB0aGlzLm1lc3NhZ2Uuc21zTWVzc2FnZS5jdXN0b21pemUgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlLnJlZmVyZW5jZSA9IFN0cmluZyhtZXNzYWdlLnRhZylcbiAgICAgICAgICAudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgIC5zcGxpdCgnXycpXG4gICAgICAgICAgLm1hcCgoaXRlbTogc3RyaW5nKSA9PiBpdGVtLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgaXRlbS5zbGljZSgxKSlcbiAgICAgICAgICAuam9pbignJyk7XG5cbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMuX2NvbmZpZy5sb2FkTWVzc2FnZVRlbXBsYXRlcygpXG4gICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgIHRoaXMubWVzc2FnZVRlbXBsYXRlcyA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlID0gKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLl9jb25maWcuc2F2ZU1lc3NhZ2UodGhpcy5tZXNzYWdlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTYXZlZCBDaGFuZ2VzJyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIG9wZW5QcmV2aWV3KCk6IHZvaWQge1xuICAgIGNvbnN0IGVtYWlsTWVzc2FnZSA9IHRoaXMubWVzc2FnZS5lbWFpbE1lc3NhZ2U7XG4gICAgbGV0IGh0bWwgPSBlbWFpbE1lc3NhZ2UuY3VzdG9taXplID8gZW1haWxNZXNzYWdlLmJvZHkgOiB0aGlzLm1lc3NhZ2UuZGVmYXVsdEVtYWlsQm9keTtcbiAgICBsZXQgc3R5bGVzID0gZW1haWxNZXNzYWdlLnN0eWxlcyB8fCAnJztcblxuICAgIGlmIChlbWFpbE1lc3NhZ2UubWVzc2FnZVRlbXBsYXRlSWQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2VUZW1wbGF0ZSA9IHRoaXMubWVzc2FnZVRlbXBsYXRlc1xuICAgICAgICAuZmluZCgoaXRlbSkgPT4ge1xuICAgICAgICAgIHJldHVybiBlbWFpbE1lc3NhZ2UubWVzc2FnZVRlbXBsYXRlSWQgPT09IGl0ZW0uaWQ7XG4gICAgICAgIH0pO1xuXG4gICAgICBpZiAobWVzc2FnZVRlbXBsYXRlKSB7XG4gICAgICAgIGh0bWwgPSBtZXNzYWdlVGVtcGxhdGUuY29udGVudC5yZXBsYWNlKCd7JGNvbnRlbnR9JywgaHRtbCk7XG4gICAgICAgIHN0eWxlcyA9IGAke21lc3NhZ2VUZW1wbGF0ZS5zdHlsZXMgfHwgJyd9XFxuXFxuJHtzdHlsZXN9YDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLl9kaWFsb2cub3BlbihQcmV2aWV3Q29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7XG4gICAgICAgIHN0eWxlcyxcbiAgICAgICAgaHRtbCxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJzk1JSdcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kVGVzdCh0eXBlKSB7XG4gICAgb2YodHJ1ZSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0eXBlID09PSAnZW1haWwnID8gdGhpcy5fY29uZmlnLmdldFRlc3RFbWFpbCgpIDogb2YoJycpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChkZWZhdWx0XykgPT4ge1xuICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZSA9PT0gJ2VtYWlsJyA/ICdhbiBlbWFpbCcgOiAncGhvbmUgbnVtYmVyJztcblxuICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9tcHQuaW5wdXQoe1xuICAgICAgICAgICAgbGFiZWw6IGBQbGVhc2UgZW50ZXIgJHt0eXBlTmFtZX0gdG8gc2VuZCB0ZXN0IHRvYCxcbiAgICAgICAgICAgIHRpdGxlOiAnU2VuZCBUZXN0JyxcbiAgICAgICAgICAgIGNvbW1pdExhYmVsOiAnU2VuZCcsXG4gICAgICAgICAgICBkZWZhdWx0OiBkZWZhdWx0XyxcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5fY29uZmlnLnRlc3RNZXNzYWdlKHRoaXMubWVzc2FnZSwgdmFsdWUsIHR5cGUpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1Rlc3QgU2VudCcpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmb3JtXG4gIGZzRm9ybVxuICBbc3VibWl0XT1cInNhdmVcIlxuICAjZm9ybT1cIm5nRm9ybVwiXG4gICpmc1NrZWxldG9uPVwibWVzc2FnZVwiXG4gIFtjb25maXJtVGFic109XCJmYWxzZVwiPlxuICBAaWYgKG1lc3NhZ2UpIHtcbiAgICA8ZnMtZGlhbG9nPlxuICAgICAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgICAgICBFZGl0IE1lc3NhZ2VcbiAgICAgIDwvZGl2PlxuICAgICAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICAgICAgPG1hdC10YWItZ3JvdXBcbiAgICAgICAgICBmc1RhYnNcbiAgICAgICAgICBbKHNlbGVjdGVkKV09XCJ0YWJcIj5cbiAgICAgICAgICA8bWF0LXRhYlxuICAgICAgICAgICAgbGFiZWw9XCJHZW5lcmFsXCJcbiAgICAgICAgICAgIG5hbWU9XCJnZW5lcmFsXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIE5hbWVcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5uYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cIk5hbWVcIlxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5yZWZlcmVuY2UgfX1cbiAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLXNtLndyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBGcm9tIEVtYWlsXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5mcm9tRW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyb21fZW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBGcm9tIE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmZyb21OYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcm9tX25hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBSZXBseSBUb1xuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UucmVwbHlFbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicmVwbHlfdG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLXJvdy5nYXAtc20ud3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRvXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS50b1JlY2lwaWVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ0NcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmNjUmVjaXBpZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2NcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBCQ0NcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmJjY1JlY2lwaWVudHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJjY1wiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UpIHtcbiAgICAgICAgICAgIDxtYXQtdGFiXG4gICAgICAgICAgICAgIGxhYmVsPVwiRW1haWwgTWVzc2FnZVwiXG4gICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1zbVwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWl6ZSBNZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmN1c3RvbWl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY3VzdG9taXplRW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZvcm1hdFxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZvcm1hdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBlbWFpbE1lc3NhZ2VGb3JtYXRzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBUZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLm1lc3NhZ2VUZW1wbGF0ZUlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0ZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cIm51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBtZXNzYWdlVGVtcGxhdGVzOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIml0ZW0uaWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5jdXN0b21pemUpIHtcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBTdWJqZWN0XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5zdWJqZWN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IFtALmRpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYi1ncm91cCBbZHluYW1pY0hlaWdodF09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UuZm9ybWF0PT09ZW1haWxNZXNzYWdlRm9ybWF0LkhUTUwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmcy10ZXh0LWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwieyBsYW5ndWFnZTogJ2h0bWwgJ31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UuZm9ybWF0PT09ZW1haWxNZXNzYWdlRm9ybWF0LlJpY2hUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnMtaHRtbC1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5ib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtaHRtbC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UuZm9ybWF0PT09ZW1haWxNZXNzYWdlRm9ybWF0LlRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmcy10ZXh0LWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxNZXNzYWdlQm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwieyBsYW5ndWFnZTogJ3RleHQnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuSFRNTCB8fCBtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuUmljaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD1cIlN0eWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2Uuc3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN0eWxlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwieyBsYW5ndWFnZTogJ3Njc3MnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYi1ncm91cD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAaWYgKCFtZXNzYWdlLmVtYWlsTWVzc2FnZS5jdXN0b21pemUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3RcbiAgICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGVmYXVsdEVtYWlsU3ViamVjdCB9fVxuICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbWFpbC1ib2R5LWh0bWwtZGVmYXVsdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdD09PWVtYWlsTWVzc2FnZUZvcm1hdC5SaWNoVGV4dCB8fCBtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuSFRNTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmcy1odG1sLXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHRtbF09XCJtZXNzYWdlLmRlZmF1bHRFbWFpbEJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZzLWh0bWwtcmVuZGVyZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbWFpbC1ib2R5LXRleHQtZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGVmYXVsdEVtYWlsQm9keSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmICghIW1lc3NhZ2Uuc21zTWVzc2FnZSkge1xuICAgICAgICAgICAgPG1hdC10YWJcbiAgICAgICAgICAgICAgbGFiZWw9XCJTTVMgTWVzc2FnZVwiXG4gICAgICAgICAgICAgIG5hbWU9XCJzbXNcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgQ3VzdG9taXplIE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLnNtc01lc3NhZ2UuY3VzdG9taXplXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImN1c3RvbWl6ZVNtc1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIFllc1xuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5zbXNNZXNzYWdlLmN1c3RvbWl6ZSkge1xuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBbQC5kaXNhYmxlZF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIFtkeW5hbWljSGVpZ2h0XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC10YWIgbGFiZWw9XCJDb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLnNtc01lc3NhZ2UubWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNtc01lc3NhZ2VNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cInsgbGFuZ3VhZ2U6ICd0ZXh0ICd9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtdGV4dC1lZGl0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIW1lc3NhZ2Uuc21zTWVzc2FnZS5jdXN0b21pemUpIHtcbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRlZmF1bHRTbXNNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UpIHtcbiAgICAgICAgICAgIDxtYXQtdGFiXG4gICAgICAgICAgICAgIGxhYmVsPVwiQXR0YWNobWVudHNcIlxuICAgICAgICAgICAgICBuYW1lPVwiYXR0YWNobWVudHNcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGZzLWFwcC1tZXNzYWdlLWF0dGFjaG1lbnRzIFttZXNzYWdlXT1cIm1lc3NhZ2VcIj48L2ZzLWFwcC1tZXNzYWdlLWF0dGFjaG1lbnRzPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKG1lc3NhZ2UudmFyaWFibGVzKSB7XG4gICAgICAgICAgICA8bWF0LXRhYlxuICAgICAgICAgICAgICBsYWJlbD1cIlZhcmlhYmxlc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgQGZvciAodmFyaWFibGUgb2YgbWVzc2FnZS52YXJpYWJsZXM7IHRyYWNrIHZhcmlhYmxlKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFyaWFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdmFyaWFibGUubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkRlZmF1bHRzXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UgJiYgbWVzc2FnZS5zbXNNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICA8aDI+XG4gICAgICAgICAgICAgICAgICAgIEVtYWlsXG4gICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIFN1YmplY3RcbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRlZmF1bHRFbWFpbFN1YmplY3QgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICBDb250ZW50XG4gICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kZWZhdWx0RW1haWxCb2R5IH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5zbXNNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSAmJiBtZXNzYWdlLnNtc01lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgICAgICAgU01TXG4gICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRlZmF1bHRTbXNNZXNzYWdlIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgICAgICBAaWYgKHRhYj09PSdlbWFpbCcgfHwgdGFiPT09J3NtcycgfHwgdGFiPT09J2dlbmVyYWwnKSB7XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICBTYXZlXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgQGlmICh0YWI9PT0nZW1haWwnKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvcGVuUHJldmlldygpXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICBQcmV2aWV3XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRUZXN0KCdlbWFpbCcpXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICBTZW5kIFRlc3QgRW1haWxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHRhYj09PSdzbXMnKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJzZW5kVGVzdCgnc21zJylcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgIFNlbmQgVGVzdCBTTVNcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIENhbmNlbFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICBDbG9zZVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8L2ZzLWRpYWxvZz5cbiAgfVxuPC9mb3JtPiJdfQ==
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbWVzc2FnZXMvY29tcG9uZW50cy9tZXNzYWdlL21lc3NhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL21lc3NhZ2VzL2NvbXBvbmVudHMvbWVzc2FnZS9tZXNzYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXRHLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUxSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVB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aGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nVGl0bGUsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZHVsZXMvbWVzc2FnZS1wcmV2aWV3L2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgRlNfQVBQX01FU1NBR0VfQ09ORklHIH0gZnJvbSAnLi4vLi4vLi4vYXBwLW1lc3NhZ2UvaW5qZWN0b3JzJztcbmltcG9ydCB7IEZzQXBwTWVzc2FnZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC1tZXNzYWdlL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW1haWxNZXNzYWdlRm9ybWF0cyB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBFbWFpbE1lc3NhZ2VGb3JtYXQgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBGc1NrZWxldG9uTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2tlbGV0b24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGc0Zvcm1Nb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9mb3JtJztcbmltcG9ydCB7IEZzRGlhbG9nTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZGlhbG9nJztcbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IE1hdFRhYkdyb3VwLCBNYXRUYWIsIE1hdFRhYkNvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7IEZzVGFic01vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL3RhYnMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkLCBNYXRMYWJlbCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBGc0xhYmVsTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGFiZWwnO1xuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgRnNUZXh0RWRpdG9yTW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvdGV4dC1lZGl0b3InO1xuaW1wb3J0IHsgRnNIdG1sRWRpdG9yTW9kdWxlLCBGc0h0bWxSZW5kZXJlck1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2h0bWwtZWRpdG9yJztcbmltcG9ydCB7IEF0dGFjaG1lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi4vYXR0YWNobWVudHMvYXR0YWNobWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL21lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRnNTa2VsZXRvbk1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIEZzRm9ybU1vZHVsZSxcbiAgICAgICAgRnNEaWFsb2dNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ1RpdGxlLFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBNYXREaWFsb2dDb250ZW50LFxuICAgICAgICBNYXRUYWJHcm91cCxcbiAgICAgICAgRnNUYWJzTW9kdWxlLFxuICAgICAgICBNYXRUYWIsXG4gICAgICAgIE1hdFRhYkNvbnRlbnQsXG4gICAgICAgIE1hdEZvcm1GaWVsZCxcbiAgICAgICAgTWF0TGFiZWwsXG4gICAgICAgIE1hdElucHV0LFxuICAgICAgICBGc0xhYmVsTW9kdWxlLFxuICAgICAgICBNYXRTZWxlY3QsXG4gICAgICAgIE1hdE9wdGlvbixcbiAgICAgICAgRnNUZXh0RWRpdG9yTW9kdWxlLFxuICAgICAgICBGc0h0bWxFZGl0b3JNb2R1bGUsXG4gICAgICAgIEZzSHRtbFJlbmRlcmVyTW9kdWxlLFxuICAgICAgICBBdHRhY2htZW50c0NvbXBvbmVudCxcbiAgICAgICAgTWF0RGlhbG9nQWN0aW9ucyxcbiAgICAgICAgTWF0QnV0dG9uLFxuICAgICAgICBNYXREaWFsb2dDbG9zZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfY29uZmlnID0gaW5qZWN0PEZzQXBwTWVzc2FnZUNvbmZpZz4oRlNfQVBQX01FU1NBR0VfQ09ORklHKTtcbiAgcHJpdmF0ZSBfZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuICBwcml2YXRlIF9wcm9tcHQgPSBpbmplY3QoRnNQcm9tcHQpO1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KEZzTWVzc2FnZSk7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIF9jZFJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblxuICBwdWJsaWMgbWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyB0YWIgPSAnZ2VuZXJhbCc7XG4gIHB1YmxpYyBtZXNzYWdlVGVtcGxhdGVzID0gW107XG4gIHB1YmxpYyBlbWFpbE1lc3NhZ2VGb3JtYXRzID0gRW1haWxNZXNzYWdlRm9ybWF0cztcbiAgcHVibGljIGVtYWlsTWVzc2FnZUZvcm1hdCA9IEVtYWlsTWVzc2FnZUZvcm1hdDtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlKHRoaXMuX2RhdGEubWVzc2FnZSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlID0gbWVzc2FnZTtcblxuICAgICAgICBpZiAodGhpcy5tZXNzYWdlLmVtYWlsTWVzc2FnZSAmJiB0aGlzLm1lc3NhZ2UuZW1haWxNZXNzYWdlLmN1c3RvbWl6ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlLmVtYWlsTWVzc2FnZS5jdXN0b21pemUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1lc3NhZ2Uuc21zTWVzc2FnZSAmJiB0aGlzLm1lc3NhZ2Uuc21zTWVzc2FnZS5jdXN0b21pemUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHRoaXMubWVzc2FnZS5zbXNNZXNzYWdlLmN1c3RvbWl6ZSA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1lc3NhZ2UucmVmZXJlbmNlID0gU3RyaW5nKG1lc3NhZ2UudGFnKVxuICAgICAgICAgIC50b0xvY2FsZUxvd2VyQ2FzZSgpXG4gICAgICAgICAgLnNwbGl0KCdfJylcbiAgICAgICAgICAubWFwKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0uY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpdGVtLnNsaWNlKDEpKVxuICAgICAgICAgIC5qb2luKCcnKTtcblxuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fY29uZmlnLmxvYWRNZXNzYWdlVGVtcGxhdGVzKClcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXNzYWdlVGVtcGxhdGVzID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5zYXZlTWVzc2FnZSh0aGlzLm1lc3NhZ2UpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1NhdmVkIENoYW5nZXMnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgb3BlblByZXZpZXcoKTogdm9pZCB7XG4gICAgY29uc3QgZW1haWxNZXNzYWdlID0gdGhpcy5tZXNzYWdlLmVtYWlsTWVzc2FnZTtcbiAgICBsZXQgaHRtbCA9IGVtYWlsTWVzc2FnZS5jdXN0b21pemUgPyBlbWFpbE1lc3NhZ2UuYm9keSA6IHRoaXMubWVzc2FnZS5kZWZhdWx0RW1haWxCb2R5O1xuICAgIGxldCBzdHlsZXMgPSBlbWFpbE1lc3NhZ2Uuc3R5bGVzIHx8ICcnO1xuXG4gICAgaWYgKGVtYWlsTWVzc2FnZS5tZXNzYWdlVGVtcGxhdGVJZCkge1xuICAgICAgY29uc3QgbWVzc2FnZVRlbXBsYXRlID0gdGhpcy5tZXNzYWdlVGVtcGxhdGVzXG4gICAgICAgIC5maW5kKChpdGVtKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGVtYWlsTWVzc2FnZS5tZXNzYWdlVGVtcGxhdGVJZCA9PT0gaXRlbS5pZDtcbiAgICAgICAgfSk7XG5cbiAgICAgIGlmIChtZXNzYWdlVGVtcGxhdGUpIHtcbiAgICAgICAgaHRtbCA9IG1lc3NhZ2VUZW1wbGF0ZS5jb250ZW50LnJlcGxhY2UoJ3skY29udGVudH0nLCBodG1sKTtcbiAgICAgICAgc3R5bGVzID0gYCR7bWVzc2FnZVRlbXBsYXRlLnN0eWxlcyB8fCAnJ31cXG5cXG4ke3N0eWxlc31gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKFByZXZpZXdDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgc3R5bGVzLFxuICAgICAgICBodG1sLFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnOTUlJ1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbmRUZXN0KHR5cGUpIHtcbiAgICBvZih0cnVlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdlbWFpbCcgPyB0aGlzLl9jb25maWcuZ2V0VGVzdEVtYWlsKCkgOiBvZignJyk7XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKGRlZmF1bHRfKSA9PiB7XG4gICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlID09PSAnZW1haWwnID8gJ2FuIGVtYWlsJyA6ICdwaG9uZSBudW1iZXInO1xuXG4gICAgICAgICAgcmV0dXJuIHRoaXMuX3Byb21wdC5pbnB1dCh7XG4gICAgICAgICAgICBsYWJlbDogYFBsZWFzZSBlbnRlciAke3R5cGVOYW1lfSB0byBzZW5kIHRlc3QgdG9gLFxuICAgICAgICAgICAgdGl0bGU6ICdTZW5kIFRlc3QnLFxuICAgICAgICAgICAgY29tbWl0TGFiZWw6ICdTZW5kJyxcbiAgICAgICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRfLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLl9jb25maWcudGVzdE1lc3NhZ2UodGhpcy5tZXNzYWdlLCB2YWx1ZSwgdHlwZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnVGVzdCBTZW50Jyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGZvcm1cbiAgZnNGb3JtXG4gIFtzdWJtaXRdPVwic2F2ZVwiXG4gICNmb3JtPVwibmdGb3JtXCJcbiAgKmZzU2tlbGV0b249XCJtZXNzYWdlXCJcbiAgW2NvbmZpcm1UYWJzXT1cImZhbHNlXCI+XG4gIEBpZiAobWVzc2FnZSkge1xuICAgIDxmcy1kaWFsb2c+XG4gICAgICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgICAgIEVkaXQgTWVzc2FnZVxuICAgICAgPC9kaXY+XG4gICAgICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgICAgICA8bWF0LXRhYi1ncm91cFxuICAgICAgICAgIGZzVGFic1xuICAgICAgICAgIFsoc2VsZWN0ZWQpXT1cInRhYlwiPlxuICAgICAgICAgIDxtYXQtdGFiXG4gICAgICAgICAgICBsYWJlbD1cIkdlbmVyYWxcIlxuICAgICAgICAgICAgbmFtZT1cImdlbmVyYWxcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtY29sdW1uXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgTmFtZVxuICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VcbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLnJlZmVyZW5jZSB9fVxuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZzLXJvdy5nYXAtc20ud3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZyb20gRW1haWxcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmZyb21FbWFpbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJvbV9lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEZyb20gTmFtZVxuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuZnJvbU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyb21fbmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFJlcGx5IFRvXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5yZXBseUVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJyZXBseV90b1wiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1zbS53cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgVG9cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLnRvUmVjaXBpZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG9cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICBDQ1xuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuY2NSZWNpcGllbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjY1wiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJDQ1xuICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuYmNjUmVjaXBpZW50c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYmNjXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSkge1xuICAgICAgICAgICAgPG1hdC10YWJcbiAgICAgICAgICAgICAgbGFiZWw9XCJFbWFpbCBNZXNzYWdlXCJcbiAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLXNtXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9taXplIE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuY3VzdG9taXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjdXN0b21pemVFbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgWWVzXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgRm9ybWF0XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIGVtYWlsTWVzc2FnZUZvcm1hdHM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UubWVzc2FnZVRlbXBsYXRlSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwibnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIG1lc3NhZ2VUZW1wbGF0ZXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS5pZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlLmN1c3RvbWl6ZSkge1xuICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIFN1YmplY3RcbiAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLnN1YmplY3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ+XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW0AuZGlzYWJsZWRdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxtYXQtdGFiLWdyb3VwIFtkeW5hbWljSGVpZ2h0XT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuSFRNTCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJib2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7IGxhbmd1YWdlOiAnaHRtbCAnfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuUmljaFRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmcy1odG1sLWVkaXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2UuZW1haWxNZXNzYWdlLmJvZHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy1odG1sLWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZS5mb3JtYXQ9PT1lbWFpbE1lc3NhZ2VGb3JtYXQuVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZzLXRleHQtZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibWVzc2FnZS5lbWFpbE1lc3NhZ2UuYm9keVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbE1lc3NhZ2VCb2R5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7IGxhbmd1YWdlOiAndGV4dCcgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdD09PWVtYWlsTWVzc2FnZUZvcm1hdC5IVE1MIHx8IG1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdD09PWVtYWlsTWVzc2FnZUZvcm1hdC5SaWNoVGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwiU3R5bGVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdFRhYkNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnMtdGV4dC1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtZXNzYWdlLmVtYWlsTWVzc2FnZS5zdHlsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3R5bGVzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7IGxhbmd1YWdlOiAnc2NzcycgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBpZiAoIW1lc3NhZ2UuZW1haWxNZXNzYWdlLmN1c3RvbWl6ZSkge1xuICAgICAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgU3ViamVjdFxuICAgICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kZWZhdWx0RW1haWxTdWJqZWN0IH19XG4gICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVtYWlsLWJvZHktaHRtbC1kZWZhdWx0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZS5lbWFpbE1lc3NhZ2UuZm9ybWF0PT09ZW1haWxNZXNzYWdlRm9ybWF0LlJpY2hUZXh0IHx8IG1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdD09PWVtYWlsTWVzc2FnZUZvcm1hdC5IVE1MKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZzLWh0bWwtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIm1lc3NhZ2UuZGVmYXVsdEVtYWlsQm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZnMtaHRtbC1yZW5kZXJlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlLmZvcm1hdD09PWVtYWlsTWVzc2FnZUZvcm1hdC5UZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVtYWlsLWJvZHktdGV4dC1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kZWZhdWx0RW1haWxCb2R5IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKCEhbWVzc2FnZS5zbXNNZXNzYWdlKSB7XG4gICAgICAgICAgICA8bWF0LXRhYlxuICAgICAgICAgICAgICBsYWJlbD1cIlNNUyBNZXNzYWdlXCJcbiAgICAgICAgICAgICAgbmFtZT1cInNtc1wiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICBDdXN0b21pemUgTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2Uuc21zTWVzc2FnZS5jdXN0b21pemVcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY3VzdG9taXplU21zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgWWVzXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgTm9cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLnNtc01lc3NhZ2UuY3VzdG9taXplKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtALmRpc2FibGVkXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC10YWItZ3JvdXAgW2R5bmFtaWNIZWlnaHRdPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bWF0LXRhYiBsYWJlbD1cIkNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZnMtdGV4dC1lZGl0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2Uuc21zTWVzc2FnZS5tZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic21zTWVzc2FnZU1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwieyBsYW5ndWFnZTogJ3RleHQgJ31cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mcy10ZXh0LWVkaXRvcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICAgICAgICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghbWVzc2FnZS5zbXNNZXNzYWdlLmN1c3RvbWl6ZSkge1xuICAgICAgICAgICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGVmYXVsdFNtc01lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSkge1xuICAgICAgICAgICAgPG1hdC10YWJcbiAgICAgICAgICAgICAgbGFiZWw9XCJBdHRhY2htZW50c1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJhdHRhY2htZW50c1wiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICA8ZnMtYXBwLW1lc3NhZ2UtYXR0YWNobWVudHMgW21lc3NhZ2VdPVwibWVzc2FnZVwiPjwvZnMtYXBwLW1lc3NhZ2UtYXR0YWNobWVudHM+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAobWVzc2FnZS52YXJpYWJsZXMpIHtcbiAgICAgICAgICAgIDxtYXQtdGFiXG4gICAgICAgICAgICAgIGxhYmVsPVwiVmFyaWFibGVzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICAgICAgICBAZm9yICh2YXJpYWJsZSBvZiBtZXNzYWdlLnZhcmlhYmxlczsgdHJhY2sgdmFyaWFibGUpIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YXJpYWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyB2YXJpYWJsZS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxtYXQtdGFiIGxhYmVsPVwiRGVmYXVsdHNcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLmVtYWlsTWVzc2FnZSAmJiBtZXNzYWdlLnNtc01lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgIDxoMj5cbiAgICAgICAgICAgICAgICAgICAgRW1haWxcbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgU3ViamVjdFxuICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGVmYXVsdEVtYWlsU3ViamVjdCB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIENvbnRlbnRcbiAgICAgICAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRlZmF1bHRFbWFpbEJvZHkgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChtZXNzYWdlLnNtc01lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2UuZW1haWxNZXNzYWdlICYmIG1lc3NhZ2Uuc21zTWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgPGgyPlxuICAgICAgICAgICAgICAgICAgICBTTVNcbiAgICAgICAgICAgICAgICAgIDwvaDI+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgQ29udGVudFxuICAgICAgICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2UuZGVmYXVsdFNtc01lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9tYXQtdGFiPlxuICAgICAgICA8L21hdC10YWItZ3JvdXA+XG4gICAgICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgICAgIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgICAgIEBpZiAodGFiPT09J2VtYWlsJyB8fCB0YWI9PT0nc21zJyB8fCB0YWI9PT0nZ2VuZXJhbCcpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIFNhdmVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICBAaWYgKHRhYj09PSdlbWFpbCcpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5QcmV2aWV3KClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgIFByZXZpZXdcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZFRlc3QoJ2VtYWlsJylcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgICAgICAgIFNlbmQgVGVzdCBFbWFpbFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAodGFiPT09J3NtcycpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRUZXN0KCdzbXMnKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgU2VuZCBUZXN0IFNNU1xuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cIm51bGxcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgIENsb3NlXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDwvZnMtZGlhbG9nPlxuICB9XG48L2Zvcm0+Il19
@@ -179,7 +179,7 @@ class MessageComponent {
179
179
  _message = inject(FsMessage);
180
180
  _dialog = inject(MatDialog);
181
181
  _cdRef = inject(ChangeDetectorRef);
182
- message;
182
+ message = null;
183
183
  tab = 'general';
184
184
  messageTemplates = [];
185
185
  emailMessageFormats = EmailMessageFormats;
@@ -823,20 +823,13 @@ class QueuesComponent {
823
823
  }
824
824
  this.config.filters.push({
825
825
  name: 'messageId',
826
- type: ItemType.Select,
826
+ type: ItemType.AutoCompleteChips,
827
827
  label: 'Message Type',
828
- values: (query) => {
829
- query = {
830
- ...query,
831
- limit: 50,
832
- };
833
- return this._config.loadMessages(query)
828
+ values: (keyword) => {
829
+ return this._config
830
+ .loadMessages({ keyword, limit: 50 })
834
831
  .pipe(map((response) => {
835
- return [
836
- { value: null, name: 'All' },
837
- ...response.data
838
- .map((item) => ({ name: item.name, value: item.id })),
839
- ];
832
+ return response.data.map((item) => ({ name: item.name, value: item.id }));
840
833
  }));
841
834
  },
842
835
  });
@@ -1054,7 +1047,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
1054
1047
  }] });
1055
1048
 
1056
1049
  class TemplateComponent {
1057
- messageTemplate;
1050
+ messageTemplate = null;
1058
1051
  htmlEditorconfig = {
1059
1052
  language: 'html',
1060
1053
  insertSpaces: true,
@@ -1071,7 +1064,7 @@ class TemplateComponent {
1071
1064
  _message = inject(FsMessage);
1072
1065
  _dialog = inject(MatDialog);
1073
1066
  ngOnInit() {
1074
- if (this._data.messageTemplate.id) {
1067
+ if (this._data.messageTemplate?.id) {
1075
1068
  this._config.loadMessageTemplate(this._data.messageTemplate)
1076
1069
  .subscribe((messageTemplate) => {
1077
1070
  this.messageTemplate = messageTemplate;