@sumaris-net/ngx-components 18.24.15 → 18.24.17

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.
@@ -122,10 +122,10 @@ export class AppTabEditor extends AppEditor {
122
122
  // if (this.debug) console.debug("[tab-page] onSwipeTab()");
123
123
  // Skip, if not a valid swipe event
124
124
  if (!this.enableSwipe ||
125
- !event ||
125
+ !event?.type ||
126
126
  event.defaultPrevented ||
127
- (event.srcEvent && event.srcEvent.defaultPrevented) ||
128
- event.pointerType !== 'touch') {
127
+ (event['srcEvent']?.defaultPrevented) ||
128
+ event['pointerType'] !== 'touch') {
129
129
  return false;
130
130
  }
131
131
  // DEBUG
@@ -187,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
187
187
  type: ViewChild,
188
188
  args: ['tabGroup', { static: true }]
189
189
  }] } });
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWVkaXRvci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS90YWItZWRpdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0csT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBU3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSCxRQUFRLENBQVU7SUFFbEI7O09BRUc7SUFDSCx5QkFBeUIsQ0FBVTtJQUVuQzs7T0FFRztJQUNILFdBQVcsQ0FBVyxDQUFDLGtCQUFrQjtDQUMxQztBQUdELGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLFlBQTRDLFNBQVEsU0FBbUI7SUFDakYsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLGlCQUFpQjtJQUNQLFFBQVEsQ0FBUztJQUNqQixXQUFXLENBQVU7SUFDckIseUJBQXlCLENBQVM7SUFFbkMsc0JBQXNCLENBQVM7SUFFeEMsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVrQixzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTlCLFFBQVEsQ0FBYztJQUUvRCxZQUNjLEtBQXFCLEVBQUUsMkJBQTJCO0lBQzlELE1BQWMsRUFDZCxhQUE0QixFQUM1QixTQUEwQixFQUMxQixTQUEy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UUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSGFtbWVyU3dpcGVFdmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9nZXN0dXJlL2hhbW1lci51dGlscyc7XG5pbXBvcnQgeyBpc05vdE5pbCwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEFwcEVkaXRvciwgSUFwcEVkaXRvciB9IGZyb20gJy4vZWRpdG9yLmNsYXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQXBwVGFiRWRpdG9yPFQgPSBhbnk+IGV4dGVuZHMgSUFwcEVkaXRvcjxUPiB7XG4gIHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjtcbiAgc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZTogbnVtYmVyLCBvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyByZWFsaWduSW5rQmFyPzogYm9vbGVhbiB9KTogdm9pZDtcbiAgdW5sb2FkKG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47XG4gIHJlYWxpZ25JbmtCYXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFRhYkVkaXRvck9wdGlvbnMge1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRhYi4gMSBieSBkZWZhdWx0XG4gICAqL1xuICB0YWJDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogJzIwMG1zJyBieSBkZWZhdWx0XG4gICAqL1xuICB0YWJHcm91cEFuaW1hdGlvbkR1cmF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgZW5hYmxlIHN3aXBlIGJldHdlZW4gdGFiLCBvbiB0b3VjaCBzY3JlZW5cbiAgICovXG4gIGVuYWJsZVN3aXBlPzogYm9vbGVhbjsgLy8gdHJ1ZSBieSBkZWZhdWx0XG59XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwVGFiRWRpdG9yPFQgPSBhbnksIElEID0gbnVtYmVyLCBPID0gYW55PiBleHRlbmRzIEFwcEVkaXRvcjxULCBJRCwgTz4gaW1wbGVtZW50cyBJQXBwVGFiRWRpdG9yPFQ+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBfc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG5cbiAgLy8gRWRpdG9yIG9wdGlvbnNcbiAgcHJvdGVjdGVkIHRhYkNvdW50OiBudW1iZXI7XG4gIHByb3RlY3RlZCBlbmFibGVTd2lwZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb246IHN0cmluZztcblxuICBASW5wdXQoKSBxdWVyeVRhYkluZGV4UGFyYW1OYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUYWJJbmRleDtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZFRhYkluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJHcm91cDogTWF0VGFiR3JvdXA7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgLy8gTW9kYWwgZWRpdG9yIGdpdmUgJ251bGwnXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgb3B0aW9ucz86IEFwcFRhYkVkaXRvck9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocm91dGUsIHJvdXRlciwgbmF2Q29udHJvbGxlciwgYWxlcnRDdHJsLCB0cmFuc2xhdGUpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0YWJDb3VudDogMSxcbiAgICAgIGVuYWJsZVN3aXBlOiB0cnVlLFxuICAgICAgdGFiR3JvdXBBbmltYXRpb25EdXJhdGlvbjogJzIwMG1zJyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgICB0aGlzLnRhYkNvdW50ID0gb3B0aW9ucy50YWJDb3VudDtcbiAgICB0aGlzLmVuYWJsZVN3aXBlID0gb3B0aW9ucy5lbmFibGVTd2lwZTtcbiAgICB0aGlzLnRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb24gPSBvcHRpb25zLnRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb247XG4gICAgdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lID0gJ3RhYic7XG4gICAgdGhpcy5fbG9nUHJlZml4ID0gJ1t0YWItZWRpdG9yXSAnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIFJlYWQgdGhlIHNlbGVjdGVkIHRhYiBpbmRleCwgZnJvbSBwYXRoIHF1ZXJ5IHBhcmFtc1xuICAgIGlmICh0aGlzLnRhYkdyb3VwICYmIHRoaXMucm91dGUgJiYgdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocXVlcnlQYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0geyAuLi5xdWVyeVBhcmFtcyB9O1xuXG4gICAgICAgICAgLy8gUGFyc2UgdGFiIHBhcmFtXG4gICAgICAgICAgaWYgKHRoaXMudGFiQ291bnQgPiAxICYmIHRoaXMucXVlcnlUYWJJbmRleFBhcmFtTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdGFiSW5kZXggPSB0b051bWJlcihxdWVyeVBhcmFtc1t0aGlzLnF1ZXJ5VGFiSW5kZXhQYXJhbU5hbWVdLCAwKTtcbiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNbdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lXSA9IHRhYkluZGV4ICE9PSAwID8gdGFiSW5kZXggOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYkluZGV4ICE9PSB0YWJJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBSZWFsaWduIHRhYiwgYWZ0ZXIgYSBkZWxheSBiZWNhdXNlIHRoZSB0YWIgY2FuIGJlIGRpc2FibGVkIHdoZW4gY29tcG9uZW50IGlzIGNyZWF0ZWRcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGFiR3JvdXAucmVhbGlnbklua0JhcigpLCA1MDApO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleENoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZTogbnVtYmVyLCBvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyByZWFsaWduSW5rQmFyPzogYm9vbGVhbiB9KSB7XG4gICAgLy8gRml4IHZhbHVlXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgdmFsdWUgPSAwO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPiB0aGlzLnRhYkNvdW50IC0gMSkge1xuICAgICAgY29uc29sZS53YXJuKGBbdGFiLWVkaXRvcl0gSW52YWxpZCB0YWIgaW5kZXggJHt2YWx1ZX0uIE1heCB2YWx1ZSBpcyAke3RoaXMudGFiQ291bnQgLSAxfWApO1xuICAgICAgdmFsdWUgPSB0aGlzLl9zZWxlY3RlZFRhYkluZGV4O1xuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdGVkVGFiSW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXhDaGFuZ2UubmV4dCh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy50YWJHcm91cCAmJiAoIW9wdHMgfHwgb3B0cy5yZWFsaWduSW5rQmFyICE9PSBmYWxzZSkpIHtcbiAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIC8vIFdhaXQgdGFiIGNoYW5nZSBpbiBVSSwgYmVmb3JlIHJlYWxpZ24gaW5rIHRhYlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhYkdyb3VwLnJlYWxpZ25JbmtCYXIoKSwgMjAwKTtcbiAgICB9IGVsc2UgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZWFsaWduSW5rQmFyKCkge1xuICAgIHRoaXMudGFiR3JvdXA/LnJlYWxpZ25JbmtCYXIoKTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlKGV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCwgcXVlcnlUYWJJbmRleFBhcmFtTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHF1ZXJ5VGFiSW5kZXhQYXJhbU5hbWUgPSBxdWVyeVRhYkluZGV4UGFyYW1OYW1lIHx8IHRoaXMucXVlcnlUYWJJbmRleFBhcmFtTmFtZTtcblxuICAgIGlmICghcXVlcnlUYWJJbmRleFBhcmFtTmFtZSB8fCAhdGhpcy5yb3V0ZSkgcmV0dXJuIHRydWU7IC8vIFNraXAgaWYgdGFiIHF1ZXJ5IHBhcmFtIG5vdCBzZXQsIG9yIG5vIHJvdXRlXG5cbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnb25UYWJDaGFuZ2UoKScsIGV2ZW50KTtcblxuICAgIGlmICghdGhpcy5xdWVyeVBhcmFtcyB8fCArdGhpcy5xdWVyeVBhcmFtc1txdWVyeVRhYkluZGV4UGFyYW1OYW1lXSAhPT0gZXZlbnQuaW5kZXgpIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zIHx8IHt9O1xuICAgICAgdGhpcy5xdWVyeVBhcmFtc1txdWVyeVRhYkluZGV4UGFyYW1OYW1lXSA9IGV2ZW50LmluZGV4ICE9PSAwID8gZXZlbnQuaW5kZXggOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChxdWVyeVRhYkluZGV4UGFyYW1OYW1lID09PSAndGFiJyAmJiBpc05vdE5pbCh0aGlzLnF1ZXJ5UGFyYW1zWydzdWJ0YWInXSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlQYXJhbXMuc3VidGFiOyAvLyBjbGVhbiBzdWJ0YWJcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlUm91dGUoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aW9uIHRyaWdnZXJlZCB3aGVuIHVzZXIgc3dpcGVzXG4gICAqL1xuICBvblN3aXBlVGFiKGV2ZW50OiBIYW1tZXJTd2lwZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgLy8gREVCVUdcbiAgICAvLyBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhcIlt0YWItcGFnZV0gb25Td2lwZVRhYigpXCIpO1xuXG4gICAgLy8gU2tpcCwgaWYgbm90IGEgdmFsaWQgc3dpcGUgZXZlbnRcbiAgICBpZiAoXG4gICAgICAhdGhpcy5lbmFibGVTd2lwZSB8fFxuICAgICAgIWV2ZW50IHx8XG4gICAgICBldmVudC5kZWZhdWx0UHJldmVudGVkIHx8XG4gICAgICAoZXZlbnQuc3JjRXZlbnQgJiYgZXZlbnQuc3JjRXZlbnQuZGVmYXVsdFByZXZlbnRlZCkgfHxcbiAgICAgIGV2ZW50LnBvaW50ZXJUeXBlICE9PSAndG91Y2gnXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gREVCVUdcbiAgICAvL2lmICh0aGlzLmRlYnVnKVxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIlt0YWItcGFnZV0gRGV0ZWN0ZWQgc3dpcGU6IFwiICsgZXZlbnQudHlwZSwgZXZlbnQpO1xuXG4gICAgbGV0IHNlbGVjdFRhYkluZGV4ID0gdGhpcy5zZWxlY3RlZFRhYkluZGV4O1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgLy8gT3BlbiBuZXh0IHRhYlxuICAgICAgY2FzZSAnc3dpcGVsZWZ0JzpcbiAgICAgICAgc2VsZWN0VGFiSW5kZXggPSBzZWxlY3RUYWJJbmRleCA+PSB0aGlzLnRhYkNvdW50IC0gMSA/IDAgOiBzZWxlY3RUYWJJbmRleCArIDE7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBPcGVuIHByZXZpb3VzIHRhYlxuICAgICAgY2FzZSAnc3dpcGVyaWdodCc6XG4gICAgICAgIHNlbGVjdFRhYkluZGV4ID0gc2VsZWN0VGFiSW5kZXggPD0gMCA/IHRoaXMudGFiQ291bnQgOiBzZWxlY3RUYWJJbmRleCAtIDE7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBPdGhlciBjYXNlXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFiLXBhZ2VdIFVua25vd24gc3dpcGUgYWN0aW9uOiAnICsgZXZlbnQudHlwZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IHNlbGVjdFRhYkluZGV4O1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25TdWJUYWJDaGFuZ2UoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblRhYkNoYW5nZShldmVudCwgJ3N1YnRhYicpO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgYXdhaXQgc3VwZXIudW5sb2FkKG9wdHMpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRGaXJzdEludmFsaWRUYWJJbmRleCgpOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVJvdXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5yb3V0ZSkgcmV0dXJuIGZhbHNlOyAvLyBTa2lwIGlmIG5vIHJvdXRlIChlLmcuIGluIG1vZGFsKVxuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgc3RhdGU6IHsgYW5pbWF0ZWQ6IGZhbHNlIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWVkaXRvci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9mb3JtL2VudGl0eS90YWItZWRpdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNL0csT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBU3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7O09BRUc7SUFDSCxRQUFRLENBQVU7SUFFbEI7O09BRUc7SUFDSCx5QkFBeUIsQ0FBVTtJQUVuQzs7T0FFRztJQUNILFdBQVcsQ0FBVyxDQUFDLGtCQUFrQjtDQUMxQztBQUdELGtFQUFrRTtBQUNsRSxNQUFNLE9BQWdCLFlBQTRDLFNBQVEsU0FBbUI7SUFDakYsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLGlCQUFpQjtJQUNQLFFBQVEsQ0FBUztJQUNqQixXQUFXLENBQVU7SUFDckIseUJBQXlCLENBQVM7SUFFbkMsc0JBQXNCLENBQVM7SUFFeEMsSUFBYSxnQkFBZ0IsQ0FBQyxLQUFhO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVrQixzQkFBc0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTlCLFFBQVEsQ0FBYztJQUUvRCxZQUNjLEtBQXFCLEVBQUUsMkJBQTJCO0lBQzlELE1BQWMsRUFDZCxhQUE0QixFQUM1QixTQUEwQixFQUMxQixTQUEy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UUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJHcm91cCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSGFtbWVyU3dpcGVFdmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9nZXN0dXJlL2hhbW1lci51dGlscyc7XG5pbXBvcnQgeyBpc05vdE5pbCwgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IEFwcEVkaXRvciwgSUFwcEVkaXRvciB9IGZyb20gJy4vZWRpdG9yLmNsYXNzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQXBwVGFiRWRpdG9yPFQgPSBhbnk+IGV4dGVuZHMgSUFwcEVkaXRvcjxUPiB7XG4gIHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjtcbiAgc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZTogbnVtYmVyLCBvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyByZWFsaWduSW5rQmFyPzogYm9vbGVhbiB9KTogdm9pZDtcbiAgdW5sb2FkKG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD47XG4gIHJlYWxpZ25JbmtCYXIoKTogdm9pZDtcbn1cblxuZXhwb3J0IGNsYXNzIEFwcFRhYkVkaXRvck9wdGlvbnMge1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRhYi4gMSBieSBkZWZhdWx0XG4gICAqL1xuICB0YWJDb3VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogJzIwMG1zJyBieSBkZWZhdWx0XG4gICAqL1xuICB0YWJHcm91cEFuaW1hdGlvbkR1cmF0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgZW5hYmxlIHN3aXBlIGJldHdlZW4gdGFiLCBvbiB0b3VjaCBzY3JlZW5cbiAgICovXG4gIGVuYWJsZVN3aXBlPzogYm9vbGVhbjsgLy8gdHJ1ZSBieSBkZWZhdWx0XG59XG5cbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwVGFiRWRpdG9yPFQgPSBhbnksIElEID0gbnVtYmVyLCBPID0gYW55PiBleHRlbmRzIEFwcEVkaXRvcjxULCBJRCwgTz4gaW1wbGVtZW50cyBJQXBwVGFiRWRpdG9yPFQ+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCBfc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG5cbiAgLy8gRWRpdG9yIG9wdGlvbnNcbiAgcHJvdGVjdGVkIHRhYkNvdW50OiBudW1iZXI7XG4gIHByb3RlY3RlZCBlbmFibGVTd2lwZTogYm9vbGVhbjtcbiAgcHJvdGVjdGVkIHRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb246IHN0cmluZztcblxuICBASW5wdXQoKSBxdWVyeVRhYkluZGV4UGFyYW1OYW1lOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVGFiSW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZSk7XG4gIH1cbiAgZ2V0IHNlbGVjdGVkVGFiSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRUYWJJbmRleDtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZFRhYkluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQFZpZXdDaGlsZCgndGFiR3JvdXAnLCB7IHN0YXRpYzogdHJ1ZSB9KSB0YWJHcm91cDogTWF0VGFiR3JvdXA7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSwgLy8gTW9kYWwgZWRpdG9yIGdpdmUgJ251bGwnXG4gICAgcm91dGVyOiBSb3V0ZXIsXG4gICAgbmF2Q29udHJvbGxlcjogTmF2Q29udHJvbGxlcixcbiAgICBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgb3B0aW9ucz86IEFwcFRhYkVkaXRvck9wdGlvbnNcbiAgKSB7XG4gICAgc3VwZXIocm91dGUsIHJvdXRlciwgbmF2Q29udHJvbGxlciwgYWxlcnRDdHJsLCB0cmFuc2xhdGUpO1xuICAgIG9wdGlvbnMgPSB7XG4gICAgICB0YWJDb3VudDogMSxcbiAgICAgIGVuYWJsZVN3aXBlOiB0cnVlLFxuICAgICAgdGFiR3JvdXBBbmltYXRpb25EdXJhdGlvbjogJzIwMG1zJyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcbiAgICB0aGlzLnRhYkNvdW50ID0gb3B0aW9ucy50YWJDb3VudDtcbiAgICB0aGlzLmVuYWJsZVN3aXBlID0gb3B0aW9ucy5lbmFibGVTd2lwZTtcbiAgICB0aGlzLnRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb24gPSBvcHRpb25zLnRhYkdyb3VwQW5pbWF0aW9uRHVyYXRpb247XG4gICAgdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lID0gJ3RhYic7XG4gICAgdGhpcy5fbG9nUHJlZml4ID0gJ1t0YWItZWRpdG9yXSAnO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIFJlYWQgdGhlIHNlbGVjdGVkIHRhYiBpbmRleCwgZnJvbSBwYXRoIHF1ZXJ5IHBhcmFtc1xuICAgIGlmICh0aGlzLnRhYkdyb3VwICYmIHRoaXMucm91dGUgJiYgdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3Vic2NyaXB0aW9uKFxuICAgICAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocXVlcnlQYXJhbXMpID0+IHtcbiAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zID0geyAuLi5xdWVyeVBhcmFtcyB9O1xuXG4gICAgICAgICAgLy8gUGFyc2UgdGFiIHBhcmFtXG4gICAgICAgICAgaWYgKHRoaXMudGFiQ291bnQgPiAxICYmIHRoaXMucXVlcnlUYWJJbmRleFBhcmFtTmFtZSkge1xuICAgICAgICAgICAgY29uc3QgdGFiSW5kZXggPSB0b051bWJlcihxdWVyeVBhcmFtc1t0aGlzLnF1ZXJ5VGFiSW5kZXhQYXJhbU5hbWVdLCAwKTtcbiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNbdGhpcy5xdWVyeVRhYkluZGV4UGFyYW1OYW1lXSA9IHRhYkluZGV4ICE9PSAwID8gdGFiSW5kZXggOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RlZFRhYkluZGV4ICE9PSB0YWJJbmRleCkge1xuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXggPSB0YWJJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBSZWFsaWduIHRhYiwgYWZ0ZXIgYSBkZWxheSBiZWNhdXNlIHRoZSB0YWIgY2FuIGJlIGRpc2FibGVkIHdoZW4gY29tcG9uZW50IGlzIGNyZWF0ZWRcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGFiR3JvdXAucmVhbGlnbklua0JhcigpLCA1MDApO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleENoYW5nZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0U2VsZWN0ZWRUYWJJbmRleCh2YWx1ZTogbnVtYmVyLCBvcHRzPzogeyBlbWl0RXZlbnQ/OiBib29sZWFuOyByZWFsaWduSW5rQmFyPzogYm9vbGVhbiB9KSB7XG4gICAgLy8gRml4IHZhbHVlXG4gICAgaWYgKHZhbHVlIDwgMCkge1xuICAgICAgdmFsdWUgPSAwO1xuICAgIH0gZWxzZSBpZiAodmFsdWUgPiB0aGlzLnRhYkNvdW50IC0gMSkge1xuICAgICAgY29uc29sZS53YXJuKGBbdGFiLWVkaXRvcl0gSW52YWxpZCB0YWIgaW5kZXggJHt2YWx1ZX0uIE1heCB2YWx1ZSBpcyAke3RoaXMudGFiQ291bnQgLSAxfWApO1xuICAgICAgdmFsdWUgPSB0aGlzLl9zZWxlY3RlZFRhYkluZGV4O1xuICAgIH1cblxuICAgIHRoaXMuX3NlbGVjdGVkVGFiSW5kZXggPSB2YWx1ZTtcbiAgICB0aGlzLnNlbGVjdGVkVGFiSW5kZXhDaGFuZ2UubmV4dCh2YWx1ZSk7XG5cbiAgICBpZiAodGhpcy50YWJHcm91cCAmJiAoIW9wdHMgfHwgb3B0cy5yZWFsaWduSW5rQmFyICE9PSBmYWxzZSkpIHtcbiAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IHZhbHVlO1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIC8vIFdhaXQgdGFiIGNoYW5nZSBpbiBVSSwgYmVmb3JlIHJlYWxpZ24gaW5rIHRhYlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRhYkdyb3VwLnJlYWxpZ25JbmtCYXIoKSwgMjAwKTtcbiAgICB9IGVsc2UgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICByZWFsaWduSW5rQmFyKCkge1xuICAgIHRoaXMudGFiR3JvdXA/LnJlYWxpZ25JbmtCYXIoKTtcbiAgfVxuXG4gIG9uVGFiQ2hhbmdlKGV2ZW50OiBNYXRUYWJDaGFuZ2VFdmVudCwgcXVlcnlUYWJJbmRleFBhcmFtTmFtZT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHF1ZXJ5VGFiSW5kZXhQYXJhbU5hbWUgPSBxdWVyeVRhYkluZGV4UGFyYW1OYW1lIHx8IHRoaXMucXVlcnlUYWJJbmRleFBhcmFtTmFtZTtcblxuICAgIGlmICghcXVlcnlUYWJJbmRleFBhcmFtTmFtZSB8fCAhdGhpcy5yb3V0ZSkgcmV0dXJuIHRydWU7IC8vIFNraXAgaWYgdGFiIHF1ZXJ5IHBhcmFtIG5vdCBzZXQsIG9yIG5vIHJvdXRlXG5cbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1Zyh0aGlzLl9sb2dQcmVmaXggKyAnb25UYWJDaGFuZ2UoKScsIGV2ZW50KTtcblxuICAgIGlmICghdGhpcy5xdWVyeVBhcmFtcyB8fCArdGhpcy5xdWVyeVBhcmFtc1txdWVyeVRhYkluZGV4UGFyYW1OYW1lXSAhPT0gZXZlbnQuaW5kZXgpIHtcbiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zIHx8IHt9O1xuICAgICAgdGhpcy5xdWVyeVBhcmFtc1txdWVyeVRhYkluZGV4UGFyYW1OYW1lXSA9IGV2ZW50LmluZGV4ICE9PSAwID8gZXZlbnQuaW5kZXggOiB1bmRlZmluZWQ7XG5cbiAgICAgIGlmIChxdWVyeVRhYkluZGV4UGFyYW1OYW1lID09PSAndGFiJyAmJiBpc05vdE5pbCh0aGlzLnF1ZXJ5UGFyYW1zWydzdWJ0YWInXSkpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMucXVlcnlQYXJhbXMuc3VidGFiOyAvLyBjbGVhbiBzdWJ0YWJcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlUm91dGUoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQWN0aW9uIHRyaWdnZXJlZCB3aGVuIHVzZXIgc3dpcGVzXG4gICAqL1xuICBvblN3aXBlVGFiKGV2ZW50OiBIYW1tZXJTd2lwZUV2ZW50IHwgTW91c2VFdmVudCB8IFRvdWNoRXZlbnQgfCBQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICAvLyBERUJVR1xuICAgIC8vIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKFwiW3RhYi1wYWdlXSBvblN3aXBlVGFiKClcIik7XG5cbiAgICAvLyBTa2lwLCBpZiBub3QgYSB2YWxpZCBzd2lwZSBldmVudFxuICAgIGlmIChcbiAgICAgICF0aGlzLmVuYWJsZVN3aXBlIHx8XG4gICAgICAhZXZlbnQ/LnR5cGUgfHxcbiAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgIChldmVudFsnc3JjRXZlbnQnXT8uZGVmYXVsdFByZXZlbnRlZCkgfHxcbiAgICAgIGV2ZW50Wydwb2ludGVyVHlwZSddICE9PSAndG91Y2gnXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gREVCVUdcbiAgICAvL2lmICh0aGlzLmRlYnVnKVxuICAgIC8vY29uc29sZS5kZWJ1ZyhcIlt0YWItcGFnZV0gRGV0ZWN0ZWQgc3dpcGU6IFwiICsgZXZlbnQudHlwZSwgZXZlbnQpO1xuXG4gICAgbGV0IHNlbGVjdFRhYkluZGV4ID0gdGhpcy5zZWxlY3RlZFRhYkluZGV4O1xuICAgIHN3aXRjaCAoZXZlbnQudHlwZSkge1xuICAgICAgLy8gT3BlbiBuZXh0IHRhYlxuICAgICAgY2FzZSAnc3dpcGVsZWZ0JzpcbiAgICAgICAgc2VsZWN0VGFiSW5kZXggPSBzZWxlY3RUYWJJbmRleCA+PSB0aGlzLnRhYkNvdW50IC0gMSA/IDAgOiBzZWxlY3RUYWJJbmRleCArIDE7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBPcGVuIHByZXZpb3VzIHRhYlxuICAgICAgY2FzZSAnc3dpcGVyaWdodCc6XG4gICAgICAgIHNlbGVjdFRhYkluZGV4ID0gc2VsZWN0VGFiSW5kZXggPD0gMCA/IHRoaXMudGFiQ291bnQgOiBzZWxlY3RUYWJJbmRleCAtIDE7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvLyBPdGhlciBjYXNlXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFiLXBhZ2VdIFVua25vd24gc3dpcGUgYWN0aW9uOiAnICsgZXZlbnQudHlwZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IHNlbGVjdFRhYkluZGV4O1xuICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgb25TdWJUYWJDaGFuZ2UoZXZlbnQ6IE1hdFRhYkNoYW5nZUV2ZW50KSB7XG4gICAgdGhpcy5vblRhYkNoYW5nZShldmVudCwgJ3N1YnRhYicpO1xuICB9XG5cbiAgYXN5bmMgdW5sb2FkKG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuc2VsZWN0ZWRUYWJJbmRleCA9IDA7XG4gICAgYXdhaXQgc3VwZXIudW5sb2FkKG9wdHMpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIGZ1bmN0aW9ucyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRGaXJzdEludmFsaWRUYWJJbmRleCgpOiBudW1iZXI7XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHVwZGF0ZVJvdXRlKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghdGhpcy5yb3V0ZSkgcmV0dXJuIGZhbHNlOyAvLyBTa2lwIGlmIG5vIHJvdXRlIChlLmcuIGluIG1vZGFsKVxuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwge1xuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgc3RhdGU6IHsgYW5pbWF0ZWQ6IGZhbHNlIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -385,4 +385,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
385
385
  type: ViewChild,
386
386
  args: ['autocompleteField']
387
387
  }] } });
388
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZm9ybS9maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9mb3JtL2ZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUVWLEtBQUssRUFDTCxlQUFlLEVBRWYsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE0QyxpQkFBaUIsRUFBc0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBdUIsd0JBQXdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLM0MsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBZXRCLE1BQU0sT0FBTyxZQUFZO0lBdURYO0lBQ0E7SUFDQTtJQUNVO0lBekRkLGlCQUFpQixHQUFxQixJQUFJLENBQUM7SUFDM0Msa0JBQWtCLEdBQWUsSUFBSSxDQUFDO0lBQ3RDLFdBQVcsQ0FBc0I7SUFFL0IsT0FBTyxDQUFhO0lBRXBCLElB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Q2tDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxrQkFBa0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDaUMsUUFBUTtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBQ0csU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixTQUFTO3NCQUFqQixLQUFLO2dCQUVVLFNBQVM7c0JBQXhCLEtBQUs7dUJBQUMsT0FBTztnQkFDMEIsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVpQixZQUFZO3NCQUFsQyxNQUFNO3VCQUFDLGFBQWE7Z0JBTUUsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNXLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzQmxhbmtTdHJpbmcsIGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGlzTm90TmlsQm9vbGVhbiwgaXNOb3ROaWxPckJsYW5rLCB0b0Jvb2xlYW4gfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiwgRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLCBGb3JtRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXRDb2xvckNvbnRyYXN0IH0gZnJvbSAnLi4vZ3JhcGgvY29sb3JzLnV0aWxzJztcbmltcG9ydCB7IGFzSW5wdXRFbGVtZW50LCBmaWx0ZXJOdW1iZXJJbnB1dCwgc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50IH0gZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCB7IHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uL2RhdGVzJztcbmltcG9ydCB7IEFwcENvbG9ycywgQXBwRmxvYXRMYWJlbFR5cGUsIFByb3BlcnR5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlRmllbGQgfSBmcm9tICcuLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UsIFN1YnNjcmlwdFNpemluZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mb3JtLWZpZWxkJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcHBGb3JtRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEZvcm1GaWVsZCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9kZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uO1xuXG4gIHByb3RlY3RlZCBfdmFsdWVzOiBQcm9wZXJ0eVtdO1xuXG4gIHByb3RlY3RlZCB0eXBlOiBGb3JtRmllbGRUeXBlO1xuICBwcm90ZWN0ZWQgbnVtYmVySW5wdXRTdGVwOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2V0IGRlZmluaXRpb24odmFsdWU6IEZvcm1GaWVsZERlZmluaXRpb24pIHtcbiAgICBpZiAoIXZhbHVlIHx8IHRoaXMuX2RlZmluaXRpb24gPT09IHZhbHVlKSByZXR1cm47IC8vIFNraXAgaXMgc2FtZSBvciBuaWxcbiAgICB0aGlzLl9kZWZpbml0aW9uID0gdmFsdWU7XG4gICAgdGhpcy5fb25EZWZpbml0aW9uQ2hhbmdlZCh2YWx1ZSk7XG4gIH1cblxuICBnZXQgZGVmaW5pdGlvbigpOiBGb3JtRmllbGREZWZpbml0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmaW5pdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjb21wYWN0ID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZDogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhpZGVSZXF1aXJlZE1hcmtlciA9IGZhbHNlO1xuICBASW5wdXQoKSBmbG9hdExhYmVsOiBBcHBGbG9hdExhYmVsVHlwZSA9ICdhdXRvJztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG4gIEBJbnB1dCgpIHN1YnNjcmlwdFNpemluZzogU3Vic2NyaXB0U2l6aW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbGVhcmFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNoaXBDb2xvcjogQXBwQ29sb3JzID0gbnVsbDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjbGFzcycpIGNsYXNzTGlzdDogc3RyaW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGVidWcgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFuZWxDbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSBwYW5lbFdpZHRoOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgna2V5dXAuZW50ZXInKSBvbktleXVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21hdElucHV0JykgbWF0SW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZUZpZWxkJykgYXV0b2NvbXBsZXRlRmllbGQ6IE1hdEF1dG9jb21wbGV0ZUZpZWxkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZm9ybUdyb3VwRGlyOiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tBbmRSZXNvbHZlRm9ybUNvbnRyb2woKTtcblxuICAgIGlmICghdGhpcy5fZGVmaW5pdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBtYW5kYXRvcnkgYXR0cmlidXRlICdkZWZpbml0aW9uJyBpbiA8YXBwLWZvcm0tZmllbGQ+LlwiKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuX2RlZmluaXRpb24gIT09ICdvYmplY3QnKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGF0dHJpYnV0ZSAnZGVmaW5pdGlvbicgaW4gPGFwcC1mb3JtLWZpZWxkPi4gU2hvdWxkIGJlIGFuIG9iamVjdC5cIik7XG4gICAgdGhpcy5fb25EZWZpbml0aW9uQ2hhbmdlZCh0aGlzLl9kZWZpbml0aW9uLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCB0aGlzLnR5cGUgPT09ICdkb3VibGUnKSAmJiBOdW1iZXIuaXNOYU4ob2JqKSkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJXQVJOOiB0cnlpbmcgdG8gc2V0IE5hTiB2YWx1ZSwgaW4gYW4gPGFwcC1mb3JtLWZpZWxkPiEgUmVzZXQgdG8gbnVsbFwiKTtcblxuICAgICAgb2JqID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2Jvb2xlYW4nICYmIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XG4gICAgICBvYmogPSBvYmogIT09ICdmYWxzZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgb2JqID0gdG9EYXRlSVNPU3RyaW5nKG9iaik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdlbnVtcycgJiYgaXNOb3ROaWwob2JqKSkge1xuICAgICAgbGV0IGNoYW5nZXMgPSBmYWxzZTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIGFycmF5XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG9iaiA9IG9iai50cmltKCkuc3BsaXQoL1t8LF0rLyk7XG4gICAgICAgICAgY2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ29udmVydCBvYmplY3QgdG8gYXJyYXlcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBvYmogPSBbb2JqXTtcbiAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdXBkYXRlZEFycmF5ID0gKG9iaiB8fCBbXSlcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcy5maW5kKCh2KSA9PiB2LmtleSA9PT0gaXRlbS50cmltKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihpc05vdE5pbCk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICBvYmogPSB1cGRhdGVkQXJyYXk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdlbnRpdHknICYmIGlzTmlsT3JCbGFuayhvYmopKSB7XG4gICAgICBvYmogPSBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnZW50aXRpZXMnICYmIGlzTm90TmlsKG9iaikpIHtcbiAgICAgIGxldCBjaGFuZ2VzID0gZmFsc2U7XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIGFycmF5XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG9iaiA9IG9iai50cmltKCk7XG4gICAgICAgICAgaWYgKG9iai5zdGFydHNXaXRoKCdbJykgJiYgb2JqLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgIG9iaiA9IEpTT04ucGFyc2Uob2JqKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JqID0gb2JqLnNwbGl0KC9bfCxdKy8pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBhcnJheVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIG9iaiA9IFtvYmpdO1xuICAgICAgICAgIGNoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB1cGRhdGVkQXJyYXkgPSAob2JqIHx8IFtdKVxuICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyAmJiBpdGVtLnN0YXJ0c1dpdGgoJ3snKSAmJiBpdGVtLmVuZHNXaXRoKCd9JykpIHtcbiAgICAgICAgICAgIGl0ZW0gPSBKU09OLnBhcnNlKGl0ZW0pO1xuICAgICAgICAgICAgY2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKTtcbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIG9iaiA9IHVwZGF0ZWRBcnJheTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9iaiAhPT0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJTZXQgPGFwcC1mb3JtLWZpZWxkPiB2YWx1ZTogXCIsIG9iaik7XG5cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShvYmosIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sob2JqKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IGRpc2FibGVkKSByZXR1cm47IC8vIFNraXAgaWYgc2FtZVxuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJBbHBoYW51bWVyaWNhbElucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgJiYgdGhpcy5vbktleXVwRW50ZXIub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMub25LZXl1cEVudGVyLmVtaXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBBZGQgZmVhdHVyZXMgKGUuZy4gY2hlY2sgYWdhaW5zdCBhIHBhdHRlcm4pXG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBpZiAodGhpcy5tYXRJbnB1dCkgdGhpcy5tYXRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgZWxzZSBpZiAodGhpcy5hdXRvY29tcGxldGVGaWVsZCkgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5mb2N1cygpO1xuICB9XG5cbiAgZmlsdGVyTnVtYmVySW5wdXQgPSBmaWx0ZXJOdW1iZXJJbnB1dDtcbiAgc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50ID0gc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50O1xuICBnZXREaXNwbGF5VmFsdWVGbiA9IEZvcm1GaWVsZERlZmluaXRpb25VdGlscy5nZXREaXNwbGF5VmFsdWVGbjtcblxuICBnZXRDb2xvckNvbnRyYXN0KGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBpc05vdE5pbE9yQmxhbmsoY29sb3IpID8gZ2V0Q29sb3JDb250cmFzdChjb2xvciwgdHJ1ZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdG8gcmVsb2FkIHZhbHVlcywgaWYgbm90IGRldGVjdGVkXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcmVsb2FkSXRlbXModmFsdWU/OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuX2RlZmluaXRpb24pIHJldHVybjtcblxuICAgIHRoaXMuX29uRGVmaW5pdGlvbkNoYW5nZWQodGhpcy5fZGVmaW5pdGlvbik7XG5cbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVGaWVsZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkPy5yZWxvYWRJdGVtcyh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2QgLS0gKi9cblxuICBwcm90ZWN0ZWQgY29tcHV0ZU51bWJlcklucHV0U3RlcChkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgPiAwKSB7XG4gICAgICBsZXQgc3RlcCA9ICcwLic7XG4gICAgICBpZiAoZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgPiAxKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgLSAxOyBpKyspIHtcbiAgICAgICAgICBzdGVwICs9ICcwJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RlcCArPSAnMSc7XG4gICAgICByZXR1cm4gc3RlcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcxJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBbmRSZXNvbHZlRm9ybUNvbnRyb2woKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHJldHVybjsgLy8gT0ssIHRoZXJlIGlzIGEgY29udHJvbFxuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwRGlyKSB7XG4gICAgICAvLyBUcnkgdG8gZmluZCB1c2luZyBkZWZpbml0aW9uLmtleSwgYXMgZm9ybUNvbnRyb2xOYW1lXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMuX2RlZmluaXRpb24ua2V5KSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xOYW1lID0gdGhpcy5fZGVmaW5pdGlvbi5rZXk7XG4gICAgICB9XG4gICAgICBjb25zdCBmb3JtQ29udHJvbE5hbWUgPSAodGhpcy5mb3JtR3JvdXBEaXIuZGlyZWN0aXZlcyB8fCBbXSkuZmluZCgoZCkgPT4gdGhpcy5mb3JtQ29udHJvbE5hbWUgJiYgZC5uYW1lID09PSB0aGlzLmZvcm1Db250cm9sTmFtZSk7XG4gICAgICB0aGlzLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Db250cm9sTmFtZS5jb250cm9sO1xuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cERpci5mb3JtLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSkgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBhdHRyaWJ1dGUgJ2Zvcm1Db250cm9sJyBvciAnZm9ybUNvbnRyb2xOYW1lJyBpbiA8YXBwLWZvcm0tZmllbGQ+IGNvbXBvbmVudC5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vbkRlZmluaXRpb25DaGFuZ2VkKGRlZmluaXRpb246IEZvcm1GaWVsZERlZmluaXRpb24sIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIHRoaXMudHlwZSA9IGRlZmluaXRpb24udHlwZTtcbiAgICBpZiAoIXRoaXMudHlwZSkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhdHRyaWJ1dGUgJ2RlZmluaXRpb24nIGluIDxhcHAtZm9ybS1maWVsZD4uIE1pc3NpbmcgdHlwZSAhXCIpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgKHRoaXMuX2RlZmluaXRpb24ubGFiZWwgJiYgdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9kZWZpbml0aW9uLmxhYmVsKSk7XG4gICAgdGhpcy5yZXF1aXJlZCA9IGlzTm90TmlsQm9vbGVhbih0aGlzLnJlcXVpcmVkKVxuICAgICAgPyB0aGlzLnJlcXVpcmVkXG4gICAgICA6IHRoaXMuX2RlZmluaXRpb24ucmVxdWlyZWQgfHwgdGhpcy5mb3JtQ29udHJvbD8udmFsaWRhdG9yID09PSBWYWxpZGF0b3JzLnJlcXVpcmVkIHx8IGlzQmxhbmtTdHJpbmcodGhpcy5yZXF1aXJlZCk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRvQm9vbGVhbih0aGlzLmRpc2FibGVkLCB0b0Jvb2xlYW4odGhpcy5fZGVmaW5pdGlvbi5kaXNhYmxlZCwgZmFsc2UpKTtcbiAgICB0aGlzLmNoaXBDb2xvciA9IHRoaXMuY2hpcENvbG9yID8/IGRlZmluaXRpb24uY2hpcENvbG9yO1xuXG4gICAgLy8gZG91YmxlXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RvdWJsZScpIHtcbiAgICAgIHRoaXMubnVtYmVySW5wdXRTdGVwID0gdGhpcy5jb21wdXRlTnVtYmVySW5wdXRTdGVwKGRlZmluaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm51bWJlcklucHV0U3RlcCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gZW51bSAob3IgZW51bXMpXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VudW0nIHx8IHRoaXMudHlwZSA9PT0gJ2VudW1zJykge1xuICAgICAgLy8gUmVzb2x2ZSBlbnVtIHZhbHVlc1xuICAgICAgdGhpcy5fdmFsdWVzID0gRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLmdldEVudW1WYWx1ZXModGhpcy5pbmplY3RvciwgZGVmaW5pdGlvbi52YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZXMgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBSZXBhaW50XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBSZWNvbXB1dGUgdGFiIGluZGV4LCBiZWNhdXNlIGlmIHR5cGUgY2hhbmdlZCwgdGhlbiBtYXRJbnB1dCBjYW4gaGF2ZSBjaGFuZ2VkXG4gICAgdGhpcy51cGRhdGVUYWJJbmRleCgxMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVRhYkluZGV4KHRpbWVvdXQ/OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy50YWJpbmRleCAmJiB0aGlzLnRhYmluZGV4ICE9PSAtMSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBhc0lucHV0RWxlbWVudCh0aGlzLm1hdElucHV0KTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICBlbGVtZW50LnRhYkluZGV4ID0gdGhpcy50YWJpbmRleDtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnRhYmluZGV4ID0gdGhpcy50YWJpbmRleDtcbiAgICAgICAgfVxuICAgICAgfSwgdGltZW91dCB8fCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPCEtLSBpbnRlZ2VyIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ludGVnZXInXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsIHwgYXNGbG9hdExhYmVsVHlwZVwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICA+XG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuXG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgI21hdElucHV0XG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbbWluXT1cImRlZmluaXRpb24ubWluVmFsdWVcIlxuICAgICAgW21heF09XCJkZWZpbml0aW9uLm1heFZhbHVlXCJcbiAgICAgIHBhdHRlcm49XCItP1swLTldKlwiXG4gICAgICBzdGVwPVwiMVwiXG4gICAgICBbYXBwQXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmxvYXRMYWJlbCA9PT0gJ25ldmVyJyA/IHBsYWNlaG9sZGVyIDogbnVsbFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25LZXl1cEVudGVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoa2V5cHJlc3MpPVwiZmlsdGVyTnVtYmVySW5wdXQoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RJbnB1dENvbnRlbnRGcm9tRXZlbnQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NSU5fQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUlOJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWluJ10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NQVhfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWF4J10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAge3sgJ0VSUk9SLkZJRUxEX05PVF9WQUxJRF9JTlRFR0VSJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbC5oYXNFcnJvcignaW50ZWdlcicpXCI+XG4gICAgICB7eyAnRVJST1IuRklFTERfTk9UX1ZBTElEX0lOVEVHRVInIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8YnV0dG9uXG4gICAgICBtYXRTdWZmaXhcbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5yZXNldCgpXCJcbiAgICAgIFtoaWRkZW5dPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgKGZvcm1Db250cm9sIHwgZm9ybUdldFZhbHVlIHwgaXNOaWxPckJsYW5rKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gZG91YmxlIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RvdWJsZSdcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgfCBhc0Zsb2F0TGFiZWxUeXBlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gID5cbiAgICBAaWYgKHBsYWNlaG9sZGVyICYmIGZsb2F0TGFiZWwgIT09ICduZXZlcicpIHtcbiAgICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICAjbWF0SW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgZGVjaW1hbD1cInRydWVcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFttaW5dPVwiZGVmaW5pdGlvbi5taW5WYWx1ZVwiXG4gICAgICBbbWF4XT1cImRlZmluaXRpb24ubWF4VmFsdWVcIlxuICAgICAgW2FwcEF1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZsb2F0TGFiZWwgPT09ICduZXZlcicgPyBwbGFjZWhvbGRlciA6IG51bGxcIlxuICAgICAgW3N0ZXBdPVwibnVtYmVySW5wdXRTdGVwXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJvbktleXVwRW50ZXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJmaWx0ZXJOdW1iZXJJbnB1dCgkZXZlbnQsIHRydWUpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50KCRldmVudClcIlxuICAgIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdkZWNpbWFsJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfTk9UX1ZBTElEX0RFQ0lNQUw8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NSU5fQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUlOJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWluJ10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NQVhfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWF4J10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heERlY2ltYWxzJylcIj5cbiAgICAgIHt7XG4gICAgICAgIChjb21wYWN0ID8gJ0VSUk9SLkZJRUxEX01BWElNVU1fREVDSU1BTFNfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYSU1VTV9ERUNJTUFMUycpXG4gICAgICAgICAgfCB0cmFuc2xhdGU6IHsgbWF4RGVjaW1hbHM6IGRlZmluaXRpb24ubWF4aW11bU51bWJlckRlY2ltYWxzIH1cbiAgICAgIH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8YnV0dG9uXG4gICAgICBtYXRTdWZmaXhcbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5yZXNldCgpXCJcbiAgICAgIFtoaWRkZW5dPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgKGZvcm1Db250cm9sIHwgZm9ybUdldFZhbHVlIHwgaXNOaWxPckJsYW5rKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIGJvb2xlYW4gLS0+XG4gIDxtYXQtYm9vbGVhbi1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICNtYXRJbnB1dFxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gID5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtYm9vbGVhbi1maWVsZD5cblxuICA8IS0tIGRhdGUgLS0+XG4gIDxtYXQtZGF0ZS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICNtYXRJbnB1dFxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImNvbXBhY3QgPyAoJ0NPTU1PTi5EQVRFX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZSkgOiBwbGFjZWhvbGRlclwiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gID5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZGF0ZS1maWVsZD5cblxuICA8IS0tIGRhdGUgdGltZSAtLT5cbiAgPG1hdC1kYXRlLXRpbWUtZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiXG4gICAgI21hdElucHV0XG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29tcGFjdCA/ICgnQ09NTU9OLkRBVEVfVElNRV9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGUpIDogcGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxuICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICA+XG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWRhdGUtdGltZS1maWVsZD5cblxuICA8IS0tIGVudW0gLS0+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW51bSdcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgfCBhc0Zsb2F0TGFiZWxUeXBlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIEBpZiAocmVhZG9ubHkpIHtcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW4gdHlwZT1cInRleHRcIiByZWFkb25seT1cInRydWVcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiAvPlxuICAgICAgPGlvbi10ZXh0Pnt7IGZvcm1Db250cm9sLnZhbHVlIH19PC9pb24tdGV4dD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJmbG9hdExhYmVsID09PSAnbmV2ZXInID8gcGxhY2Vob2xkZXIgOiBudWxsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlci5lbWl0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfdmFsdWVzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+e3sgaXRlbS52YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICB9XG5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEPC9tYXQtZXJyb3I+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gbXVsdGkgZW51bSAtLT5cbiAgPG1hdC1jaGlwcy1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW51bXMnXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtpdGVtc109XCJfdmFsdWVzXCJcbiAgICBbZGlzcGxheUF0dHJpYnV0ZXNdPVwiZGVmaW5pdGlvbi5hdXRvY29tcGxldGU/LmF0dHJpYnV0ZXMgfHwgWydrZXknLCAndmFsdWUnXVwiXG4gICAgW2NvbmZpZ109XCJkZWZpbml0aW9uLmF1dG9jb21wbGV0ZVwiXG4gICAgW3Nob3dBbGxPbkZvY3VzXT1cInRydWVcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbY2hpcENvbG9yXT1cImNoaXBDb2xvciB8IG1hdENvbG9yXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1jaGlwcy1maWVsZD5cblxuICA8IS0tIGNvbG9yIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NvbG9yJ1wiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCB8IGFzRmxvYXRMYWJlbFR5cGVcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgPlxuICAgIDxpb24taWNvbiBtYXJnaW4tcmlnaHQgbmFtZT1cImNvbG9yLWZpbGxcIiBtYXRQcmVmaXg+PC9pb24taWNvbj5cblxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbYXBwQXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cImdldENvbG9yQ29udHJhc3QoZm9ybUNvbnRyb2wudmFsdWUpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImZvcm1Db250cm9sLnZhbHVlXCJcbiAgICAgIFtjb2xvclBpY2tlcl09XCJmb3JtQ29udHJvbC52YWx1ZVwiXG4gICAgICAoY29sb3JQaWNrZXJDaGFuZ2UpPVwid3JpdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtjcFNhdmVDbGlja091dHNpZGVdPVwidHJ1ZVwiXG4gICAgICBjcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgIGNwT3V0cHV0Rm9ybWF0PVwiaGV4XCJcbiAgICAgIFtjcE9LQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgICAvPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVwiIHRyYW5zbGF0ZT5FUlJPUi5GSUVMRF9SRVFVSVJFRDwvbWF0LWVycm9yPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIHN0cmluZyAtLT5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsIHwgYXNGbG9hdExhYmVsVHlwZVwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICA+XG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgICNtYXRJbnB1dFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFthcHBBdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmxvYXRMYWJlbCA9PT0gJ25ldmVyJyA/IHBsYWNlaG9sZGVyIDogbnVsbFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50KCRldmVudClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlci5lbWl0KCRldmVudClcIlxuICAgICAgKGtleXByZXNzKT1cImZpbHRlckFscGhhbnVtZXJpY2FsSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cblxuICAgIDxidXR0b25cbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgKm5nSWY9XCJjbGVhcmFibGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnJlc2V0KClcIlxuICAgICAgW2hpZGRlbl09XCJmb3JtQ29udHJvbC5kaXNhYmxlZCB8fCAoZm9ybUNvbnRyb2wgfCBmb3JtR2V0VmFsdWUgfCBpc05pbE9yQmxhbmspXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPCEtLSBhdXRvLWNvbXBsZXRlIC0tPlxuICA8bWF0LWF1dG9jb21wbGV0ZS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW50aXR5J1wiXG4gICAgI2F1dG9jb21wbGV0ZUZpZWxkXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW2NvbmZpZ109XCJkZWZpbml0aW9uLmF1dG9jb21wbGV0ZVwiXG4gICAgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJoaWRlUmVxdWlyZWRNYXJrZXJcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAoa2V5dXAuZW50ZXIpPVwib25LZXl1cEVudGVyLmVtaXQoJGV2ZW50KVwiXG4gICAgW2Rpc3BsYXlXaXRoXT1cImdldERpc3BsYXlWYWx1ZUZuKGRlZmluaXRpb24pXCJcbiAgICBbcGFuZWxDbGFzc109XCJwYW5lbENsYXNzXCJcbiAgICBbcGFuZWxXaWR0aF09XCJwYW5lbFdpZHRoXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlLWZpZWxkPlxuXG4gIDwhLS0gbXVsdGkgYXV0by1jb21wbGV0ZSAtLT5cbiAgPG1hdC1jaGlwcy1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW50aXRpZXMnXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgIFtjb25maWddPVwiZGVmaW5pdGlvbi5hdXRvY29tcGxldGVcIlxuICAgIFtjaGlwQ29sb3JdPVwiY2hpcENvbG9yIHwgbWF0Q29sb3JcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbZGlzcGxheVdpdGhdPVwiZ2V0RGlzcGxheVZhbHVlRm4oZGVmaW5pdGlvbilcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIlxuICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGhcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWNoaXBzLWZpZWxkPlxuXG4gIDwhLS0gb3RoZXIgLS0+XG4gIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwidHlwZVwiPlxuICAgICAgVW5rbm93biB0eXBlIHt7IHR5cGUgfX0gZm9yIG9wdGlvbiB7eyBkZWZpbml0aW9uLmtleSB9fS4gUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yLlxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhdHlwZVwiPkVycm9yIG9uIG9wdGlvbiBmaWVsZC4gUGxlYXNlIGNoZWNrIGNvbnNvbGUgbG9nIGZvciBkZXRhaWxzLjwvbWF0LWVycm9yPlxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvZm9ybS9maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9mb3JtL2ZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUVWLEtBQUssRUFDTCxlQUFlLEVBRWYsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUE0QyxpQkFBaUIsRUFBc0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xILE9BQU8sRUFBdUIsd0JBQXdCLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLM0MsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0FBZXRCLE1BQU0sT0FBTyxZQUFZO0lBdURYO0lBQ0E7SUFDQTtJQUNVO0lBekRkLGlCQUFpQixHQUFxQixJQUFJLENBQUM7SUFDM0Msa0JBQWtCLEdBQWUsSUFBSSxDQUFDO0lBQ3RDLFdBQVcsQ0FBZ0M7SUFFekMsT0FBTyxDQUFhO0lBRXBCLElB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Q2tDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDRSxrQkFBa0I7c0JBQXpELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQzdCLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDaUMsUUFBUTtzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBQ0csU0FBUztzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFRSxTQUFTO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUM3QixTQUFTO3NCQUFqQixLQUFLO2dCQUVVLFNBQVM7c0JBQXhCLEtBQUs7dUJBQUMsT0FBTztnQkFDMEIsS0FBSztzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDN0IsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVpQixZQUFZO3NCQUFsQyxNQUFNO3VCQUFDLGFBQWE7Z0JBTUUsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNXLGlCQUFpQjtzQkFBaEQsU0FBUzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFVudHlwZWRGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGlzQmxhbmtTdHJpbmcsIGlzTmlsT3JCbGFuaywgaXNOb3ROaWwsIGlzTm90TmlsQm9vbGVhbiwgaXNOb3ROaWxPckJsYW5rLCB0b0Jvb2xlYW4gfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiwgRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLCBGb3JtRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXRDb2xvckNvbnRyYXN0IH0gZnJvbSAnLi4vZ3JhcGgvY29sb3JzLnV0aWxzJztcbmltcG9ydCB7IGFzSW5wdXRFbGVtZW50LCBmaWx0ZXJOdW1iZXJJbnB1dCwgc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50IH0gZnJvbSAnLi4vaW5wdXRzJztcbmltcG9ydCB7IHRvRGF0ZUlTT1N0cmluZyB9IGZyb20gJy4uL2RhdGVzJztcbmltcG9ydCB7IEFwcENvbG9ycywgQXBwRmxvYXRMYWJlbFR5cGUsIFByb3BlcnR5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlRmllbGQgfSBmcm9tICcuLi9tYXRlcmlhbC9hdXRvY29tcGxldGUvbWF0ZXJpYWwuYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UsIFN1YnNjcmlwdFNpemluZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuXG5jb25zdCBub29wID0gKCkgPT4ge307XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mb3JtLWZpZWxkJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcHBGb3JtRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcEZvcm1GaWVsZCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIF9vbkNoYW5nZUNhbGxiYWNrOiAoXzogYW55KSA9PiB2b2lkID0gbm9vcDtcbiAgcHJpdmF0ZSBfb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSBub29wO1xuICBwcml2YXRlIF9kZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uPGFueSwgYW55PjtcblxuICBwcm90ZWN0ZWQgX3ZhbHVlczogUHJvcGVydHlbXTtcblxuICBwcm90ZWN0ZWQgdHlwZTogRm9ybUZpZWxkVHlwZTtcbiAgcHJvdGVjdGVkIG51bWJlcklucHV0U3RlcDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkZWZpbml0aW9uKHZhbHVlOiBGb3JtRmllbGREZWZpbml0aW9uPGFueSwgYW55Pikge1xuICAgIGlmICghdmFsdWUgfHwgdGhpcy5fZGVmaW5pdGlvbiA9PT0gdmFsdWUpIHJldHVybjsgLy8gU2tpcCBpcyBzYW1lIG9yIG5pbFxuICAgIHRoaXMuX2RlZmluaXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLl9vbkRlZmluaXRpb25DaGFuZ2VkKHZhbHVlKTtcbiAgfVxuXG4gIGdldCBkZWZpbml0aW9uKCk6IEZvcm1GaWVsZERlZmluaXRpb248YW55LCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fZGVmaW5pdGlvbjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjb21wYWN0ID0gZmFsc2U7XG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByZXF1aXJlZDogYm9vbGVhbjtcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGhpZGVSZXF1aXJlZE1hcmtlciA9IGZhbHNlO1xuICBASW5wdXQoKSBmbG9hdExhYmVsOiBBcHBGbG9hdExhYmVsVHlwZSA9ICdhdXRvJztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9IG51bGw7XG4gIEBJbnB1dCgpIGFwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG4gIEBJbnB1dCgpIHN1YnNjcmlwdFNpemluZzogU3Vic2NyaXB0U2l6aW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSB0YWJpbmRleDogbnVtYmVyO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjbGVhcmFibGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNoaXBDb2xvcjogQXBwQ29sb3JzID0gbnVsbDtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdjbGFzcycpIGNsYXNzTGlzdDogc3RyaW5nO1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGVidWcgPSBmYWxzZTtcbiAgQElucHV0KCkgcGFuZWxDbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSBwYW5lbFdpZHRoOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgna2V5dXAuZW50ZXInKSBvbktleXVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ21hdElucHV0JykgbWF0SW5wdXQ6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZUZpZWxkJykgYXV0b2NvbXBsZXRlRmllbGQ6IE1hdEF1dG9jb21wbGV0ZUZpZWxkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZm9ybUdyb3VwRGlyOiBGb3JtR3JvdXBEaXJlY3RpdmVcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2hlY2tBbmRSZXNvbHZlRm9ybUNvbnRyb2woKTtcblxuICAgIGlmICghdGhpcy5fZGVmaW5pdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBtYW5kYXRvcnkgYXR0cmlidXRlICdkZWZpbml0aW9uJyBpbiA8YXBwLWZvcm0tZmllbGQ+LlwiKTtcbiAgICBpZiAodHlwZW9mIHRoaXMuX2RlZmluaXRpb24gIT09ICdvYmplY3QnKSB0aHJvdyBuZXcgRXJyb3IoXCJJbnZhbGlkIGF0dHJpYnV0ZSAnZGVmaW5pdGlvbicgaW4gPGFwcC1mb3JtLWZpZWxkPi4gU2hvdWxkIGJlIGFuIG9iamVjdC5cIik7XG4gICAgdGhpcy5fb25EZWZpbml0aW9uQ2hhbmdlZCh0aGlzLl9kZWZpbml0aW9uLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgaWYgKCh0aGlzLnR5cGUgPT09ICdpbnRlZ2VyJyB8fCB0aGlzLnR5cGUgPT09ICdkb3VibGUnKSAmJiBOdW1iZXIuaXNOYU4ob2JqKSkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJXQVJOOiB0cnlpbmcgdG8gc2V0IE5hTiB2YWx1ZSwgaW4gYW4gPGFwcC1mb3JtLWZpZWxkPiEgUmVzZXQgdG8gbnVsbFwiKTtcblxuICAgICAgb2JqID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2Jvb2xlYW4nICYmIHR5cGVvZiBvYmogPT09ICdzdHJpbmcnKSB7XG4gICAgICBvYmogPSBvYmogIT09ICdmYWxzZSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlJykge1xuICAgICAgb2JqID0gdG9EYXRlSVNPU3RyaW5nKG9iaik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdlbnVtcycgJiYgaXNOb3ROaWwob2JqKSkge1xuICAgICAgbGV0IGNoYW5nZXMgPSBmYWxzZTtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIGFycmF5XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG9iaiA9IG9iai50cmltKCkuc3BsaXQoL1t8LF0rLyk7XG4gICAgICAgICAgY2hhbmdlcyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ29udmVydCBvYmplY3QgdG8gYXJyYXlcbiAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBvYmogPSBbb2JqXTtcbiAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgdXBkYXRlZEFycmF5ID0gKG9iaiB8fCBbXSlcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNoYW5nZXMgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlcy5maW5kKCh2KSA9PiB2LmtleSA9PT0gaXRlbS50cmltKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcihpc05vdE5pbCk7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICBvYmogPSB1cGRhdGVkQXJyYXk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdlbnRpdHknICYmIGlzTmlsT3JCbGFuayhvYmopKSB7XG4gICAgICBvYmogPSBudWxsO1xuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnZW50aXRpZXMnICYmIGlzTm90TmlsKG9iaikpIHtcbiAgICAgIGxldCBjaGFuZ2VzID0gZmFsc2U7XG5cbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIGFycmF5XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIG9iaiA9IG9iai50cmltKCk7XG4gICAgICAgICAgaWYgKG9iai5zdGFydHNXaXRoKCdbJykgJiYgb2JqLmVuZHNXaXRoKCddJykpIHtcbiAgICAgICAgICAgIG9iaiA9IEpTT04ucGFyc2Uob2JqKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JqID0gb2JqLnNwbGl0KC9bfCxdKy8pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjaGFuZ2VzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICAvLyBDb252ZXJ0IG9iamVjdCB0byBhcnJheVxuICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIG9iaiA9IFtvYmpdO1xuICAgICAgICAgIGNoYW5nZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjb25zdCB1cGRhdGVkQXJyYXkgPSAob2JqIHx8IFtdKVxuICAgICAgICAubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJyAmJiBpdGVtLnN0YXJ0c1dpdGgoJ3snKSAmJiBpdGVtLmVuZHNXaXRoKCd9JykpIHtcbiAgICAgICAgICAgIGl0ZW0gPSBKU09OLnBhcnNlKGl0ZW0pO1xuICAgICAgICAgICAgY2hhbmdlcyA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoaXNOb3ROaWxPckJsYW5rKTtcbiAgICAgIGlmIChjaGFuZ2VzKSB7XG4gICAgICAgIG9iaiA9IHVwZGF0ZWRBcnJheTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG9iaiAhPT0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSkge1xuICAgICAgLy8gREVCVUdcbiAgICAgIC8vaWYgKHRoaXMuZGVidWcpIGNvbnNvbGUuZGVidWcoXCJTZXQgPGFwcC1mb3JtLWZpZWxkPiB2YWx1ZTogXCIsIG9iaik7XG5cbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShvYmosIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sob2JqKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZENhbGxiYWNrID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgPT09IGRpc2FibGVkKSByZXR1cm47IC8vIFNraXAgaWYgc2FtZVxuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgbWFya0FzVG91Y2hlZCgpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkKSB7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5fb25Ub3VjaGVkQ2FsbGJhY2soKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJBbHBoYW51bWVyaWNhbElucHV0KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdFbnRlcicgJiYgdGhpcy5vbktleXVwRW50ZXIub2JzZXJ2ZWQpIHtcbiAgICAgIHRoaXMub25LZXl1cEVudGVyLmVtaXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBBZGQgZmVhdHVyZXMgKGUuZy4gY2hlY2sgYWdhaW5zdCBhIHBhdHRlcm4pXG4gIH1cblxuICBmb2N1cygpIHtcbiAgICBpZiAodGhpcy5tYXRJbnB1dCkgdGhpcy5tYXRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgZWxzZSBpZiAodGhpcy5hdXRvY29tcGxldGVGaWVsZCkgdGhpcy5hdXRvY29tcGxldGVGaWVsZC5mb2N1cygpO1xuICB9XG5cbiAgZmlsdGVyTnVtYmVySW5wdXQgPSBmaWx0ZXJOdW1iZXJJbnB1dDtcbiAgc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50ID0gc2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50O1xuICBnZXREaXNwbGF5VmFsdWVGbiA9IEZvcm1GaWVsZERlZmluaXRpb25VdGlscy5nZXREaXNwbGF5VmFsdWVGbjtcblxuICBnZXRDb2xvckNvbnRyYXN0KGNvbG9yOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBpc05vdE5pbE9yQmxhbmsoY29sb3IpID8gZ2V0Q29sb3JDb250cmFzdChjb2xvciwgdHJ1ZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdG8gcmVsb2FkIHZhbHVlcywgaWYgbm90IGRldGVjdGVkXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcmVsb2FkSXRlbXModmFsdWU/OiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuX2RlZmluaXRpb24pIHJldHVybjtcblxuICAgIHRoaXMuX29uRGVmaW5pdGlvbkNoYW5nZWQodGhpcy5fZGVmaW5pdGlvbik7XG5cbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGVGaWVsZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkPy5yZWxvYWRJdGVtcyh2YWx1ZSkpO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2QgLS0gKi9cblxuICBwcm90ZWN0ZWQgY29tcHV0ZU51bWJlcklucHV0U3RlcChkZWZpbml0aW9uOiBGb3JtRmllbGREZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBpZiAoZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgPiAwKSB7XG4gICAgICBsZXQgc3RlcCA9ICcwLic7XG4gICAgICBpZiAoZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgPiAxKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGVmaW5pdGlvbi5tYXhpbXVtTnVtYmVyRGVjaW1hbHMgLSAxOyBpKyspIHtcbiAgICAgICAgICBzdGVwICs9ICcwJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc3RlcCArPSAnMSc7XG4gICAgICByZXR1cm4gc3RlcDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcxJztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBbmRSZXNvbHZlRm9ybUNvbnRyb2woKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHJldHVybjsgLy8gT0ssIHRoZXJlIGlzIGEgY29udHJvbFxuXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwRGlyKSB7XG4gICAgICAvLyBUcnkgdG8gZmluZCB1c2luZyBkZWZpbml0aW9uLmtleSwgYXMgZm9ybUNvbnRyb2xOYW1lXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMuX2RlZmluaXRpb24ua2V5KSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2xOYW1lID0gdGhpcy5fZGVmaW5pdGlvbi5rZXk7XG4gICAgICB9XG4gICAgICBjb25zdCBmb3JtQ29udHJvbE5hbWUgPSAodGhpcy5mb3JtR3JvdXBEaXIuZGlyZWN0aXZlcyB8fCBbXSkuZmluZCgoZCkgPT4gdGhpcy5mb3JtQ29udHJvbE5hbWUgJiYgZC5uYW1lID09PSB0aGlzLmZvcm1Db250cm9sTmFtZSk7XG4gICAgICB0aGlzLmZvcm1Db250cm9sID0gZm9ybUNvbnRyb2xOYW1lICYmIGZvcm1Db250cm9sTmFtZS5jb250cm9sO1xuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cERpci5mb3JtLmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSkgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBhdHRyaWJ1dGUgJ2Zvcm1Db250cm9sJyBvciAnZm9ybUNvbnRyb2xOYW1lJyBpbiA8YXBwLWZvcm0tZmllbGQ+IGNvbXBvbmVudC5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIF9vbkRlZmluaXRpb25DaGFuZ2VkKGRlZmluaXRpb246IEZvcm1GaWVsZERlZmluaXRpb24sIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIHRoaXMudHlwZSA9IGRlZmluaXRpb24udHlwZTtcbiAgICBpZiAoIXRoaXMudHlwZSkgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBhdHRyaWJ1dGUgJ2RlZmluaXRpb24nIGluIDxhcHAtZm9ybS1maWVsZD4uIE1pc3NpbmcgdHlwZSAhXCIpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgKHRoaXMuX2RlZmluaXRpb24ubGFiZWwgJiYgdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLl9kZWZpbml0aW9uLmxhYmVsKSk7XG4gICAgdGhpcy5yZXF1aXJlZCA9IGlzTm90TmlsQm9vbGVhbih0aGlzLnJlcXVpcmVkKVxuICAgICAgPyB0aGlzLnJlcXVpcmVkXG4gICAgICA6IHRoaXMuX2RlZmluaXRpb24ucmVxdWlyZWQgfHwgdGhpcy5mb3JtQ29udHJvbD8udmFsaWRhdG9yID09PSBWYWxpZGF0b3JzLnJlcXVpcmVkIHx8IGlzQmxhbmtTdHJpbmcodGhpcy5yZXF1aXJlZCk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRvQm9vbGVhbih0aGlzLmRpc2FibGVkLCB0b0Jvb2xlYW4odGhpcy5fZGVmaW5pdGlvbi5kaXNhYmxlZCwgZmFsc2UpKTtcbiAgICB0aGlzLmNoaXBDb2xvciA9IHRoaXMuY2hpcENvbG9yID8/IGRlZmluaXRpb24uY2hpcENvbG9yO1xuXG4gICAgLy8gZG91YmxlXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RvdWJsZScpIHtcbiAgICAgIHRoaXMubnVtYmVySW5wdXRTdGVwID0gdGhpcy5jb21wdXRlTnVtYmVySW5wdXRTdGVwKGRlZmluaXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm51bWJlcklucHV0U3RlcCA9IG51bGw7XG4gICAgfVxuXG4gICAgLy8gZW51bSAob3IgZW51bXMpXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2VudW0nIHx8IHRoaXMudHlwZSA9PT0gJ2VudW1zJykge1xuICAgICAgLy8gUmVzb2x2ZSBlbnVtIHZhbHVlc1xuICAgICAgdGhpcy5fdmFsdWVzID0gRm9ybUZpZWxkRGVmaW5pdGlvblV0aWxzLmdldEVudW1WYWx1ZXModGhpcy5pbmplY3RvciwgZGVmaW5pdGlvbi52YWx1ZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZXMgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBSZXBhaW50XG4gICAgaWYgKCFvcHRzIHx8IG9wdHMuZW1pdEV2ZW50ICE9PSBmYWxzZSkge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvLyBSZWNvbXB1dGUgdGFiIGluZGV4LCBiZWNhdXNlIGlmIHR5cGUgY2hhbmdlZCwgdGhlbiBtYXRJbnB1dCBjYW4gaGF2ZSBjaGFuZ2VkXG4gICAgdGhpcy51cGRhdGVUYWJJbmRleCgxMDApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZVRhYkluZGV4KHRpbWVvdXQ/OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy50YWJpbmRleCAmJiB0aGlzLnRhYmluZGV4ICE9PSAtMSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBhc0lucHV0RWxlbWVudCh0aGlzLm1hdElucHV0KTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICBlbGVtZW50LnRhYkluZGV4ID0gdGhpcy50YWJpbmRleDtcbiAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b2NvbXBsZXRlRmllbGQpIHtcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUZpZWxkLnRhYmluZGV4ID0gdGhpcy50YWJpbmRleDtcbiAgICAgICAgfVxuICAgICAgfSwgdGltZW91dCB8fCAwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cbiAgPCEtLSBpbnRlZ2VyIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2ludGVnZXInXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsIHwgYXNGbG9hdExhYmVsVHlwZVwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICA+XG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuXG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgI21hdElucHV0XG4gICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbbWluXT1cImRlZmluaXRpb24ubWluVmFsdWVcIlxuICAgICAgW21heF09XCJkZWZpbml0aW9uLm1heFZhbHVlXCJcbiAgICAgIHBhdHRlcm49XCItP1swLTldKlwiXG4gICAgICBzdGVwPVwiMVwiXG4gICAgICBbYXBwQXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmxvYXRMYWJlbCA9PT0gJ25ldmVyJyA/IHBsYWNlaG9sZGVyIDogbnVsbFwiXG4gICAgICAoa2V5dXAuZW50ZXIpPVwib25LZXl1cEVudGVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAoa2V5cHJlc3MpPVwiZmlsdGVyTnVtYmVySW5wdXQoJGV2ZW50LCBmYWxzZSlcIlxuICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgIChjbGljayk9XCJzZWxlY3RJbnB1dENvbnRlbnRGcm9tRXZlbnQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NSU5fQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUlOJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWluJ10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NQVhfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWF4J10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAge3sgJ0VSUk9SLkZJRUxEX05PVF9WQUxJRF9JTlRFR0VSJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbC5oYXNFcnJvcignaW50ZWdlcicpXCI+XG4gICAgICB7eyAnRVJST1IuRklFTERfTk9UX1ZBTElEX0lOVEVHRVInIHwgdHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8YnV0dG9uXG4gICAgICBtYXRTdWZmaXhcbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5yZXNldCgpXCJcbiAgICAgIFtoaWRkZW5dPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgKGZvcm1Db250cm9sIHwgZm9ybUdldFZhbHVlIHwgaXNOaWxPckJsYW5rKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gZG91YmxlIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RvdWJsZSdcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgfCBhc0Zsb2F0TGFiZWxUeXBlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gID5cbiAgICBAaWYgKHBsYWNlaG9sZGVyICYmIGZsb2F0TGFiZWwgIT09ICduZXZlcicpIHtcbiAgICAgIDxtYXQtbGFiZWw+e3sgcGxhY2Vob2xkZXIgfX08L21hdC1sYWJlbD5cbiAgICB9XG5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICAjbWF0SW5wdXRcbiAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgZGVjaW1hbD1cInRydWVcIlxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFttaW5dPVwiZGVmaW5pdGlvbi5taW5WYWx1ZVwiXG4gICAgICBbbWF4XT1cImRlZmluaXRpb24ubWF4VmFsdWVcIlxuICAgICAgW2FwcEF1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cImZsb2F0TGFiZWwgPT09ICduZXZlcicgPyBwbGFjZWhvbGRlciA6IG51bGxcIlxuICAgICAgW3N0ZXBdPVwibnVtYmVySW5wdXRTdGVwXCJcbiAgICAgIChrZXl1cC5lbnRlcik9XCJvbktleXVwRW50ZXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChrZXlwcmVzcyk9XCJmaWx0ZXJOdW1iZXJJbnB1dCgkZXZlbnQsIHRydWUpXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50KCRldmVudClcIlxuICAgIC8+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdkZWNpbWFsJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfTk9UX1ZBTElEX0RFQ0lNQUw8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21pbicpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NSU5fQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUlOJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWluJ10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICB7eyAoY29tcGFjdCA/ICdFUlJPUi5GSUVMRF9NQVhfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYJykgfCB0cmFuc2xhdGU6IGZvcm1Db250cm9sLmVycm9yc1snbWF4J10gfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ21heERlY2ltYWxzJylcIj5cbiAgICAgIHt7XG4gICAgICAgIChjb21wYWN0ID8gJ0VSUk9SLkZJRUxEX01BWElNVU1fREVDSU1BTFNfQ09NUEFDVCcgOiAnRVJST1IuRklFTERfTUFYSU1VTV9ERUNJTUFMUycpXG4gICAgICAgICAgfCB0cmFuc2xhdGU6IHsgbWF4RGVjaW1hbHM6IGRlZmluaXRpb24ubWF4aW11bU51bWJlckRlY2ltYWxzIH1cbiAgICAgIH19XG4gICAgPC9tYXQtZXJyb3I+XG5cbiAgICA8YnV0dG9uXG4gICAgICBtYXRTdWZmaXhcbiAgICAgICpuZ0lmPVwiY2xlYXJhYmxlXCJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIChjbGljayk9XCJmb3JtQ29udHJvbC5yZXNldCgpXCJcbiAgICAgIFtoaWRkZW5dPVwiZm9ybUNvbnRyb2wuZGlzYWJsZWQgfHwgKGZvcm1Db250cm9sIHwgZm9ybUdldFZhbHVlIHwgaXNOaWxPckJsYW5rKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIGJvb2xlYW4gLS0+XG4gIDxtYXQtYm9vbGVhbi1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInYm9vbGVhbidcIlxuICAgICNtYXRJbnB1dFxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gID5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtYm9vbGVhbi1maWVsZD5cblxuICA8IS0tIGRhdGUgLS0+XG4gIDxtYXQtZGF0ZS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIlxuICAgICNtYXRJbnB1dFxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImNvbXBhY3QgPyAoJ0NPTU1PTi5EQVRFX1BMQUNFSE9MREVSJyB8IHRyYW5zbGF0ZSkgOiBwbGFjZWhvbGRlclwiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2NvbXBhY3RdPVwiY29tcGFjdFwiXG4gICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gID5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZGF0ZS1maWVsZD5cblxuICA8IS0tIGRhdGUgdGltZSAtLT5cbiAgPG1hdC1kYXRlLXRpbWUtZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGVUaW1lJ1wiXG4gICAgI21hdElucHV0XG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiY29tcGFjdCA/ICgnQ09NTU9OLkRBVEVfVElNRV9QTEFDRUhPTERFUicgfCB0cmFuc2xhdGUpIDogcGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxuICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICA+XG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWRhdGUtdGltZS1maWVsZD5cblxuICA8IS0tIGVudW0gLS0+XG4gIDxtYXQtZm9ybS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW51bSdcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWwgfCBhc0Zsb2F0TGFiZWxUeXBlXCJcbiAgICBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2NsYXNzLm1hdC1mb3JtLWZpZWxkLWRpc2FibGVkXT1cInJlYWRvbmx5XCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuXG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIEBpZiAocmVhZG9ubHkpIHtcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW4gdHlwZT1cInRleHRcIiByZWFkb25seT1cInRydWVcIiBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiAvPlxuICAgICAgPGlvbi10ZXh0Pnt7IGZvcm1Db250cm9sLnZhbHVlIH19PC9pb24tdGV4dD5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJmbG9hdExhYmVsID09PSAnbmV2ZXInID8gcGxhY2Vob2xkZXIgOiBudWxsXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlci5lbWl0KCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBfdmFsdWVzXCIgW3ZhbHVlXT1cIml0ZW0ua2V5XCI+e3sgaXRlbS52YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICB9XG5cbiAgICA8ZGl2IG1hdFN1ZmZpeD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEPC9tYXQtZXJyb3I+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gbXVsdGkgZW51bSAtLT5cbiAgPG1hdC1jaGlwcy1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW51bXMnXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgIFtpdGVtc109XCJfdmFsdWVzXCJcbiAgICBbZGlzcGxheUF0dHJpYnV0ZXNdPVwiZGVmaW5pdGlvbi5hdXRvY29tcGxldGU/LmF0dHJpYnV0ZXMgfHwgWydrZXknLCAndmFsdWUnXVwiXG4gICAgW2NvbmZpZ109XCJkZWZpbml0aW9uLmF1dG9jb21wbGV0ZVwiXG4gICAgW3Nob3dBbGxPbkZvY3VzXT1cInRydWVcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbY2hpcENvbG9yXT1cImNoaXBDb2xvciB8IG1hdENvbG9yXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L21hdC1jaGlwcy1maWVsZD5cblxuICA8IS0tIGNvbG9yIC0tPlxuICA8bWF0LWZvcm0tZmllbGRcbiAgICAqbmdTd2l0Y2hDYXNlPVwiJ2NvbG9yJ1wiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbCB8IGFzRmxvYXRMYWJlbFR5cGVcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgPlxuICAgIDxpb24taWNvbiBtYXJnaW4tcmlnaHQgbmFtZT1cImNvbG9yLWZpbGxcIiBtYXRQcmVmaXg+PC9pb24taWNvbj5cblxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbYXBwQXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgW3N0eWxlLmNvbG9yXT1cImdldENvbG9yQ29udHJhc3QoZm9ybUNvbnRyb2wudmFsdWUpXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kXT1cImZvcm1Db250cm9sLnZhbHVlXCJcbiAgICAgIFtjb2xvclBpY2tlcl09XCJmb3JtQ29udHJvbC52YWx1ZVwiXG4gICAgICAoY29sb3JQaWNrZXJDaGFuZ2UpPVwid3JpdGVWYWx1ZSgkZXZlbnQpXCJcbiAgICAgIFtjcFNhdmVDbGlja091dHNpZGVdPVwidHJ1ZVwiXG4gICAgICBjcFBvc2l0aW9uPVwidG9wXCJcbiAgICAgIGNwT3V0cHV0Rm9ybWF0PVwiaGV4XCJcbiAgICAgIFtjcE9LQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgW3RhYkluZGV4XT1cInRhYmluZGV4XCJcbiAgICAvPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKVwiIHRyYW5zbGF0ZT5FUlJPUi5GSUVMRF9SRVFVSVJFRDwvbWF0LWVycm9yPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIHN0cmluZyAtLT5cbiAgPG1hdC1mb3JtLWZpZWxkXG4gICAgKm5nU3dpdGNoQ2FzZT1cIidzdHJpbmcnXCJcbiAgICBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsIHwgYXNGbG9hdExhYmVsVHlwZVwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtjbGFzc109XCJjbGFzc0xpc3RcIlxuICA+XG4gICAgQGlmIChwbGFjZWhvbGRlciAmJiBmbG9hdExhYmVsICE9PSAnbmV2ZXInKSB7XG4gICAgICA8bWF0LWxhYmVsPnt7IHBsYWNlaG9sZGVyIH19PC9tYXQtbGFiZWw+XG4gICAgfVxuICAgIDxpbnB1dFxuICAgICAgbWF0SW5wdXRcbiAgICAgICNtYXRJbnB1dFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFthcHBBdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZmxvYXRMYWJlbCA9PT0gJ25ldmVyJyA/IHBsYWNlaG9sZGVyIDogbnVsbFwiXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFt0YWJJbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0SW5wdXRDb250ZW50RnJvbUV2ZW50KCRldmVudClcIlxuICAgICAgKGtleXVwLmVudGVyKT1cIm9uS2V5dXBFbnRlci5lbWl0KCRldmVudClcIlxuICAgICAgKGtleXByZXNzKT1cImZpbHRlckFscGhhbnVtZXJpY2FsSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cblxuICAgIDxidXR0b25cbiAgICAgIG1hdFN1ZmZpeFxuICAgICAgKm5nSWY9XCJjbGVhcmFibGVcIlxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgKGNsaWNrKT1cImZvcm1Db250cm9sLnJlc2V0KClcIlxuICAgICAgW2hpZGRlbl09XCJmb3JtQ29udHJvbC5kaXNhYmxlZCB8fCAoZm9ybUNvbnRyb2wgfCBmb3JtR2V0VmFsdWUgfCBpc05pbE9yQmxhbmspXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPCEtLSBhdXRvLWNvbXBsZXRlIC0tPlxuICA8bWF0LWF1dG9jb21wbGV0ZS1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW50aXR5J1wiXG4gICAgI2F1dG9jb21wbGV0ZUZpZWxkXG4gICAgW2NsYXNzXT1cImNsYXNzTGlzdFwiXG4gICAgW2F1dG9mb2N1c109XCJhdXRvZm9jdXNcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiXG4gICAgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIlxuICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgW2NvbmZpZ109XCJkZWZpbml0aW9uLmF1dG9jb21wbGV0ZVwiXG4gICAgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJoaWRlUmVxdWlyZWRNYXJrZXJcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3RhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAoa2V5dXAuZW50ZXIpPVwib25LZXl1cEVudGVyLmVtaXQoJGV2ZW50KVwiXG4gICAgW2Rpc3BsYXlXaXRoXT1cImdldERpc3BsYXlWYWx1ZUZuKGRlZmluaXRpb24pXCJcbiAgICBbcGFuZWxDbGFzc109XCJwYW5lbENsYXNzXCJcbiAgICBbcGFuZWxXaWR0aF09XCJwYW5lbFdpZHRoXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRQcmVmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYXRTdWZmaXhdXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIm1hdC1lcnJvclwiPjwvbmctY29udGVudD5cbiAgPC9tYXQtYXV0b2NvbXBsZXRlLWZpZWxkPlxuXG4gIDwhLS0gbXVsdGkgYXV0by1jb21wbGV0ZSAtLT5cbiAgPG1hdC1jaGlwcy1maWVsZFxuICAgICpuZ1N3aXRjaENhc2U9XCInZW50aXRpZXMnXCJcbiAgICBbY2xhc3NdPVwiY2xhc3NMaXN0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIlxuICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgIFtjb25maWddPVwiZGVmaW5pdGlvbi5hdXRvY29tcGxldGVcIlxuICAgIFtjaGlwQ29sb3JdPVwiY2hpcENvbG9yIHwgbWF0Q29sb3JcIlxuICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlXCJcbiAgICBbZGlzcGxheVdpdGhdPVwiZ2V0RGlzcGxheVZhbHVlRm4oZGVmaW5pdGlvbilcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbdGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgIFtwYW5lbENsYXNzXT1cInBhbmVsQ2xhc3NcIlxuICAgIFtwYW5lbFdpZHRoXT1cInBhbmVsV2lkdGhcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFByZWZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPGRpdiBtYXRTdWZmaXg+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWF0U3VmZml4XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJtYXQtZXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvbWF0LWNoaXBzLWZpZWxkPlxuXG4gIDwhLS0gb3RoZXIgLS0+XG4gIDxkaXYgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwidHlwZVwiPlxuICAgICAgVW5rbm93biB0eXBlIHt7IHR5cGUgfX0gZm9yIG9wdGlvbiB7eyBkZWZpbml0aW9uLmtleSB9fS4gUGxlYXNlIHJlcG9ydCB0aGlzIGVycm9yLlxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhdHlwZVwiPkVycm9yIG9uIG9wdGlvbiBmaWVsZC4gUGxlYXNlIGNoZWNrIGNvbnNvbGUgbG9nIGZvciBkZXRhaWxzLjwvbWF0LWVycm9yPlxuICAgIDxkaXYgbWF0U3VmZml4PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21hdFN1ZmZpeF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibWF0LWVycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -45549,10 +45549,10 @@ class AppTabEditor extends AppEditor {
45549
45549
  // if (this.debug) console.debug("[tab-page] onSwipeTab()");
45550
45550
  // Skip, if not a valid swipe event
45551
45551
  if (!this.enableSwipe ||
45552
- !event ||
45552
+ !event?.type ||
45553
45553
  event.defaultPrevented ||
45554
- (event.srcEvent && event.srcEvent.defaultPrevented) ||
45555
- event.pointerType !== 'touch') {
45554
+ (event['srcEvent']?.defaultPrevented) ||
45555
+ event['pointerType'] !== 'touch') {
45556
45556
  return false;
45557
45557
  }
45558
45558
  // DEBUG