@provoly/dashboard 0.19.11 → 0.19.12

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.
@@ -144,9 +144,9 @@ export class PryWidgetHeaderComponent extends SubscriptionnerDirective {
144
144
  .flexibleConnectedTo(this.togglePanel)
145
145
  .withPositions([
146
146
  {
147
- originX: 'center',
147
+ originX: 'end',
148
148
  originY: 'bottom',
149
- overlayX: 'start',
149
+ overlayX: 'end',
150
150
  overlayY: 'top'
151
151
  }
152
152
  ])
@@ -154,6 +154,10 @@ export class PryWidgetHeaderComponent extends SubscriptionnerDirective {
154
154
  this.store.dispatch(ConfigActions.addingOverlay({ id: this.constructor.name + '-menu' }));
155
155
  this.menuRef.backdropClick().subscribe((_) => this.menuOpen());
156
156
  this.menuRef.attach(new TemplatePortal(this.overlayMenu, this.viewContainerRef));
157
+ const contextMenu = document.querySelector('div.m-context-menu');
158
+ const rect = this.togglePanel?.nativeElement.getBoundingClientRect();
159
+ if (!!contextMenu && !!rect)
160
+ contextMenu.style.left = (rect?.left ?? 0) - (this.menuList?.nativeElement?.clientWidth ?? 0) - 200 + 'px';
157
161
  setTimeout(() => {
158
162
  this.selectedItem = this.menuList?.nativeElement?.firstElementChild;
159
163
  if (this.selectedItem) {
@@ -456,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
456
460
  }], widgetIndex: [{
457
461
  type: Input
458
462
  }] } });
459
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQXFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBcUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFNUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDL0YsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQUVsRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFhdkMsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHdCQUF3QjtJQXNCcEUsSUFBYSxRQUFRLENBQUMsUUFBK0I7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLEtBQXVDO1FBQzVELElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFtQkQsSUFBYSxhQUFhLENBQUMsYUFBdUI7UUFDaEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBbUI7UUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQW1CRCxZQUNVLEtBQVksRUFDWixPQUFnQixFQUNoQixnQkFBa0MsRUFDbkMsa0JBQXNDO1FBRTdDLEtBQUssRUFBRSxDQUFDO1FBTEEsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBakUvQyxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQXdCLElBQUksQ0FBQyxDQUFDO1FBRTdELFdBQU0sR0FBcUIsRUFBRSxDQUFDO1FBZ0JyQixzQkFBaUIsR0FBMEIsRUFBRSxDQUFDO1FBRTlDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBRW5CLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFxRCxDQUFDO1FBRW5HLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixnQkFBVyxHQUFXO1lBQ3BCLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxFQUFFO1lBQ1IsV0FBVyxFQUFFLEVBQUU7WUFDZixPQUFPLEVBQUUsRUFBRTtZQUNYLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDO1FBYUYsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsMkJBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFBRSxDQUFDLENBQUM7UUFFM0QsbUJBQWMsR0FBNkIsSUFBSSxDQUFDO1FBT2hELFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsU0FBSSxHQUFpQixZQUFZLENBQUMsWUFBWSxDQUFDO1FBMFg1QixxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQWpYckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsS0FBSzthQUM5QixNQUFNLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSzthQUMxQixNQUFNLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDO2FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztZQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQztZQUMzRCxJQUFJLENBQUMsc0JBQXNCO1NBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDO1NBQzlEO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztTQUNqQztRQUNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUN6RSxNQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQXNCLENBQUM7UUFDN0YsSUFBSSxvQkFBb0IsRUFBRTtZQUN4QixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUM5QjtRQUNELFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1FBQ25FLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRTtZQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7U0FDMUQ7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1NBQ2xDO1FBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO1FBQ3pFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztRQUM3RixJQUFJLG9CQUFvQixFQUFFO1lBQ3hCLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzlCO1FBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7SUFDekUsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsS0FBSyxtQkFBbUIsQ0FBQyxNQUFNLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQzFCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSztZQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQ25FLENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLE1BQW1CLEVBQUUsU0FBbUI7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDckUsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNoQyxJQUFJLGFBQWEsQ0FBQztnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLHdCQUF3QixDQUFDO2dCQUN0QyxhQUFhLEVBQUUsVUFBVTtnQkFDekIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU87cUJBQzNCLFFBQVEsRUFBRTtxQkFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO3FCQUNyQyxhQUFhLENBQUM7b0JBQ2I7d0JBQ0UsT0FBTyxFQUFFLFFBQVE7d0JBQ2pCLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixRQUFRLEVBQUUsT0FBTzt3QkFDakIsUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO2lCQUNGLENBQUM7YUFDTCxDQUFDLENBQ0gsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDakYsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO2dCQUNwRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBc0IsQ0FBQztvQkFDbEUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFzQixDQUFDO29CQUM5RixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUM7aUJBQ3ZEO1lBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ2pDLElBQUksYUFBYSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQzFDLGFBQWEsRUFBRSxVQUFVO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9FLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7WUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLFdBQW1CLEVBQUUsV0FBbUI7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxRQUFRLENBQUMsV0FBbUI7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDekIsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzlCLFFBQVEsRUFBRTtnQkFDUixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO2dCQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRTthQUN0QjtTQUMvQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBbUI7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3pDLElBQUksYUFBYSxDQUFDO2dCQUNoQixXQUFXLEVBQUUsSUFBSTtnQkFDakIsVUFBVSxFQUFFLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9CLGFBQWEsRUFBRSxVQUFVO2FBQzFCLENBQUMsQ0FDSCxDQUFDO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDM0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztZQUNuRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUM1RixJQUFJLE1BQU0sRUFBRTtnQkFDVixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFtQixDQUFDO2dCQUM5RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7b0JBQ1gsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDNUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztpQkFDOUc7YUFDRjtZQUNELFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDckMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEdBQUcsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRixtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7WUFDdkMsUUFBUSxFQUFFO2dCQUNSLEdBQUcsSUFBSSxDQUFDLGNBQWM7Z0JBQ3RCLE9BQU8sRUFBRSxtQkFBbUI7YUFDN0I7U0FDRixDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUc7Z0JBQ2pCLEVBQUUsRUFBRSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsV0FBVyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxFQUFFLEVBQUU7Z0JBQ1gsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsZ0JBQWdCLEVBQUUsRUFBRTthQUNyQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDbkMsSUFBSSxhQUFhLENBQUM7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLFVBQVU7YUFDMUIsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3RixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3ZGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDNUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQ2xDO2dCQUNFLEdBQUcsSUFBSSxDQUFDLFdBQVc7Z0JBQ25CLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQ3hGLEVBQ0QsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztTQUNIO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBcUI7UUFDakMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQW9CO1FBQ25DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUM3RCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQWtCLEVBQUUsVUFBa0I7UUFDbEQsT0FBTyxDQUNMLGFBQWEsS0FBSyxTQUFTO1lBQzNCLGFBQWEsS0FBSyxJQUFJO1lBQ3RCLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxTQUFTO1lBQ3ZDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLENBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZSxDQUFDLGFBQXdEO1FBQ3RFLE9BQU8sYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLEtBQUssSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN4RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQW9CLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDMUcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUk7YUFDN0IsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDaEMsSUFBSSxhQUFhLENBQUM7Z0JBQ2hCLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDL0IsYUFBYSxFQUFFLFVBQVU7YUFDMUIsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBQ3RFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztTQUNsRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDakI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQXFCO1FBQy9CLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFHLENBQUMsTUFBTSxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDbEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFzQixDQUFDO1FBRS9GLE1BQU0saUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDM0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxLQUFLO1lBQ3JDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFlBQVksQ0FBQyxNQUFNLENBQzFDLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQzFELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQztZQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxXQUFXLENBQUMsS0FBSztZQUNwQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxDQUN6QyxDQUFDO1FBQ0YsSUFBSSxpQkFBaUIsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUM1QixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO1NBQ25FO1FBQ0QsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztRQUVsRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDdEUsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7U0FDckM7UUFDRCxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUN0RSxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFvQjtRQUNyQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN2QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsRUFBd0I7UUFDNUIsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztJQUM5RixDQUFDO0lBSVEsV0FBVztRQUNsQixLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBMWNVLHdCQUF3QjttR0FBeEIsd0JBQXdCLHlaQUNKLFdBQVcseUdBQ04sV0FBVywyRkFDbEIsV0FBVyxxR0FDTixXQUFXLDJHQUNSLFdBQVcscUdBQ2QsV0FBVyxzd0JDbkQvQywydFdBcVNBOzs0RkR4UGEsd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLG1CQUFtQjtrTEFJaUIsUUFBUTtzQkFBckQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNPLGFBQWE7c0JBQS9ELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDTCxNQUFNO3NCQUFqRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBQ08sV0FBVztzQkFBM0QsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNLLGNBQWM7c0JBQWpFLFNBQVM7dUJBQUMsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNELFdBQVc7c0JBQTNELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDckIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUNKLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDSyxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBQ1MsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBQ1AsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRO2dCQUNRLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDRSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0YsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQVFSLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFhTSxhQUFhO3NCQUF6QixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCBlcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwvZXM2JztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgVU5LTk9XTl9EQVRBU09VUkNFIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb21wb25lbnRzL3RyYW5zbGF0ZS1pZC90cmFuc2xhdGUtaWQucGlwZSc7XG5pbXBvcnQgeyBHZW9NZXRhZGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvZGF0YXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkR3JpZExheW91dCwgRGFzaGJvYXJkTWFuaWZlc3QsIFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2lkZ2V0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC93aWRnZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbmZpZ0FjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2NvbmZpZy9jb25maWcuYWN0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX0lDT05fVVJMIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvaWNvbi1kZWZpbml0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGF0YXNldCwgRGF0YVNvdXJjZSwgTmFtZWRRdWVyeSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IExpYnJhcnlUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvaW1hZ2UvaW1hZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBUb29sYm94TWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3Rvb2xib3gvdG9vbGJveC1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGFzaGJvYXJkQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zJztcbmltcG9ydCB7IERhc2hib2FyZFNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2Rhc2hib2FyZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vc3Vic2NyaXB0aW9ubmVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZW1lbnRVdGlscyB9IGZyb20gJy4uL3dpZGdldC1wbGFjZW1lbnQvd2lkZ2V0LXBsYWNlbWVudC51dGlscyc7XG5cbmV4cG9ydCBjb25zdCBXSURHRVRfSEVBREVSX0hFSUdIVCA9IDMwO1xuXG5leHBvcnQgdHlwZSBIZWFkZXJBY3Rpb24gPSB7XG4gIGljb246IHN0cmluZztcbiAgYWN0aW9uOiAodGhhdDogUHJ5V2lkZ2V0SGVhZGVyQ29tcG9uZW50KSA9PiB2b2lkO1xuICBsYWJlbDogc3RyaW5nO1xuICBkaXNhYmxlZD86ICh0aGF0OiBQcnlXaWRnZXRIZWFkZXJDb21wb25lbnQpID0+IGJvb2xlYW47XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktd2lkZ2V0LWhlYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtaGVhZGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcnlXaWRnZXRIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZU1vZGFsJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0ZW1wbGF0ZU1vZGFsITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgndG9nZ2xlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSB0b2dnbGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdvdmVybGF5TWVudScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3ZlcmxheU1lbnUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdvdmVybGF5Q2F0YWxvZycsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3ZlcmxheUNhdGFsb2chOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdvdmVybGF5U3BvdCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgb3ZlcmxheVNwb3QhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCd0b2dnbGVQYW5lbCcpIHRvZ2dsZVBhbmVsITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nyb3NzJykgY3Jvc3MhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndmFsaWRhdGUnKSB2YWxpZGF0ZSE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCd2YWxpZGF0ZUNhdGFsb2cnKSB2YWxpZGF0ZUNhdGFsb2chOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnY2FuY2VsJykgY2FuY2VsITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2Nyb3NzQ2F0YWxvZycpIGNyb3NzQ2F0YWxvZyE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdpbnB1dENhdGFsb2cnKSBpbnB1dENhdGFsb2chOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdtZW51TGlzdCcpIG1lbnVMaXN0ITogRWxlbWVudFJlZjtcbiAgbWFuaWZlc3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxXaWRnZXRNYW5pZmVzdCB8IG51bGw+KG51bGwpO1xuICBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHBsYWNlczogV2lkZ2V0TWFuaWZlc3RbXSA9IFtdO1xuICBzZWxlY3RlZEl0ZW0/OiBFbGVtZW50IHwgbnVsbDtcbiAgdXNlZERhdGFzb3VyY2VzJDogT2JzZXJ2YWJsZTxEYXRhU291cmNlW10+O1xuICBvcGVuU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIEBJbnB1dCgpIHNldCBtYW5pZmVzdChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QgfCBudWxsKSB7XG4gICAgdGhpcy5tYW5pZmVzdCQubmV4dChtYW5pZmVzdCk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgb3BlbkRhdGEkKG9wZW4kOiBPYnNlcnZhYmxlPHZvaWQ+IHwgU3ViamVjdDx2b2lkPikge1xuICAgIHRoaXMub3BlblN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9wZW5TdWIgPSBvcGVuJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBhZGRpdGlvbmFsT3B0aW9uczogSGVhZGVyQWN0aW9uW10gfCBudWxsID0gW107XG4gIEBJbnB1dCgpIGhlYWRlck9wdGlvbnM6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwge30gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRpc3BsYXlDb3VudCA9IHRydWU7XG5cbiAgQE91dHB1dCgpIG1hbmlmZXN0TW9kaWZpZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgbWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IH0+KCk7XG5cbiAgaXNFZGl0ID0gZmFsc2U7XG4gIGNhdGFsb2dJbmZvOiBXaWRnZXQgPSB7XG4gICAgaWQ6IHY0KCksXG4gICAgaW1hZ2U6ICcnLFxuICAgIG5hbWU6ICcnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICBjb250ZW50OiAnJyxcbiAgICBkYXRhc291cmNlOiBbXSxcbiAgICBtb2RpZmljYXRpb25EYXRlOiAnJ1xuICB9O1xuXG4gIEBJbnB1dCgpIHNldCBkYXRhc291cmNlSWRzKGRhdGFzb3VyY2VJZHM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkLm5leHQoZGF0YXNvdXJjZUlkcyk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgd2lkZ2V0SW5kZXgod2lkZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuX3dpZGdldEluZGV4JC5uZXh0KHdpZGdldEluZGV4KTtcbiAgICB0aGlzLl93aWRnZXRJbmRleCA9IHdpZGdldEluZGV4O1xuICB9XG5cbiAgbG9ja2VkVmlldyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIHRhcmdldEluZGV4ZXMkOiBPYnNlcnZhYmxlPG51bWJlcltdPjtcbiAgX3dpZGdldEluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgX3dpZGdldEluZGV4ITogbnVtYmVyO1xuICBvcGVuID0gZmFsc2U7XG4gIHNlbGVjdGVkRGF0YVNvdXJjZUlkcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZ1tdPihbXSk7XG5cbiAgd2luZG93TWFuaWZlc3Q6IERhc2hib2FyZE1hbmlmZXN0IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgd2luZG93TWFuaWZlc3QkOiBPYnNlcnZhYmxlPERhc2hib2FyZE1hbmlmZXN0PjtcbiAgcHJpdmF0ZSBtZW51UmVmPzogT3ZlcmxheVJlZjtcbiAgcHJpdmF0ZSBjb21ib1JlZj86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgY29uZmlybVJlbW92ZVJlZj86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgY2F0YWxvZ1JlZj86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgc3BvdFJlZj86IE92ZXJsYXlSZWY7XG4gIG1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdHlwZTogTGlicmFyeVR5cGVzID0gTGlicmFyeVR5cGVzLklMTFVTVFJBVElPTjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHB1YmxpYyB0b29sYm94TWVudVNlcnZpY2U6IFRvb2xib3hNZW51U2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMud2luZG93TWFuaWZlc3QkID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMud2luZG93TWFuaWZlc3QpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgocCwgYykgPT4gZXF1YWwocCwgYykpKTtcblxuICAgIHRoaXMudGFyZ2V0SW5kZXhlcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMudGFyZ2V0VGVuYW50c0luZGV4ZXMpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLndpbmRvd01hbmlmZXN0JC5zdWJzY3JpYmUoKG1hbmlmZXN0KSA9PiB7XG4gICAgICAgIHRoaXMud2luZG93TWFuaWZlc3QgPSBtYW5pZmVzdDtcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmxvY2tlZFZpZXckID0gdGhpcy5zdG9yZVxuICAgICAgLnNlbGVjdChEYXNoYm9hcmRTZWxlY3RvcnMuZ2xvYmFsTWFuaWZlc3QpXG4gICAgICAucGlwZShtYXAoKG0pID0+ICEhbS5sb2NrZWQgfHwgISF0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sb2NrZWQpKTtcblxuICAgIHRoaXMudXNlZERhdGFzb3VyY2VzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlc1NvcnRlZCksXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyRcbiAgICBdKS5waXBlKG1hcCgoW2FsbERzcywgZHNJZHNdKSA9PiBkc0lkcy5tYXAoKGlkKSA9PiBhbGxEc3MuZmluZCgoZHMpID0+IGRzLmlkID09PSBpZCkgPz8gVU5LTk9XTl9EQVRBU09VUkNFKGlkKSkpKTtcbiAgfVxuXG4gIG9uQXJyb3dVcCgpIHtcbiAgICBjb25zdCBsYXN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5sYXN0RWxlbWVudENoaWxkO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbT8ucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGxhc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIG9uQXJyb3dEb3duKCkge1xuICAgIGNvbnN0IGZpcnN0RWxlbWVudCA9IHRoaXMubWVudUxpc3QubmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0/Lm5leHRFbGVtZW50U2libGluZykge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gZmlyc3RFbGVtZW50O1xuICAgIH1cbiAgICBjb25zdCBmb2N1c0VsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNDaGlsZHJlbkVsZW1lbnQgPSB0aGlzLnNlbGVjdGVkSXRlbT8uY2hpbGRyZW5bMF0uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgaWYgKGZvY3VzQ2hpbGRyZW5FbGVtZW50KSB7XG4gICAgICBmb2N1c0NoaWxkcmVuRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbiAgICBmb2N1c0VsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIGdldCBjdXJyZW50TGF5b3V0KCkge1xuICAgIHJldHVybiB0aGlzLndpbmRvd01hbmlmZXN0Py5ncmlkPy5sYXlvdXQgPz8gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gIH1cblxuICBnZXQgaGFzR3JpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGF5b3V0ICE9PSBEYXNoYm9hcmRHcmlkTGF5b3V0Lk1BTlVBTDtcbiAgfVxuXG4gIGdldCBjdXJyZW50UGxhY2VtZW50SW5kZXgoKSB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VzLmZpbmRJbmRleChcbiAgICAgIChwbGFjZSkgPT5cbiAgICAgICAgdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubGF5b3V0LnggPT09IHBsYWNlLmxheW91dC54ICYmXG4gICAgICAgIHRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCk/LmxheW91dC55ID09PSBwbGFjZS5sYXlvdXQueSAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQud2lkdGggPT09IHBsYWNlLmxheW91dC53aWR0aCAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQuaGVpZ2h0ID09PSBwbGFjZS5sYXlvdXQuaGVpZ2h0XG4gICAgKTtcbiAgfVxuXG4gIG1lbnVPcGVuKCRldmVudD86IE1vdXNlRXZlbnQsIGZvcmNlT3Blbj86IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1lbnUgPSAhdGhpcy5tZW51O1xuICAgIGNvbnN0IG11c3RPcGVuID0gZm9yY2VPcGVuICE9PSB1bmRlZmluZWQgPyBmb3JjZU9wZW4gOiAhdGhpcy5tZW51UmVmO1xuICAgIGlmIChtdXN0T3Blbikge1xuICAgICAgdGhpcy5tZW51UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnbS1jb250ZXh0LW1lbnUtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCcsXG4gICAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy50b2dnbGVQYW5lbClcbiAgICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbWVudScgfSkpO1xuICAgICAgdGhpcy5tZW51UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMubWVudU9wZW4oKSk7XG4gICAgICB0aGlzLm1lbnVSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm92ZXJsYXlNZW51LCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMubWVudUxpc3Q/Lm5hdGl2ZUVsZW1lbnQ/LmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICBjb25zdCBmb2N1cyA9IHRoaXMuc2VsZWN0ZWRJdGVtPy5jaGlsZHJlblswXSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgICAgICBjb25zdCBmb2N1c0NoaWxkcmVuRWxlbWVudCA9IHRoaXMuc2VsZWN0ZWRJdGVtPy5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0gYXMgSFRNTEJ1dHRvbkVsZW1lbnQ7XG4gICAgICAgICAgZm9jdXMgPyBmb2N1cy5mb2N1cygpIDogZm9jdXNDaGlsZHJlbkVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZW51UmVmPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm1lbnVSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbWVudScgfSkpO1xuICAgICAgdGhpcy50b2dnbGVQYW5lbD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5jb21ib1JlZikge1xuICAgICAgdGhpcy5jb21ib1JlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28td2lkZ2V0X19jaG9vc2UtcmVzdWx0c2V0J10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctY29tYm8nIH0pKTtcbiAgICAgIHRoaXMuY29tYm9SZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy50b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKCkpO1xuICAgICAgdGhpcy5jb21ib1JlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaW5wdXRDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbWJvUmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY29tYm9SZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctY29tYm8nIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4odW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbW92ZUluTmV3V2luZG93KHdpZGdldEluZGV4OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMubW92ZVdpZGdldCh7IHdpZGdldEluZGV4LCB0YXJnZXRJbmRleCB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnRvZ2dsZUVkaXRpb25Nb2RlKHsgZm9yY2U6IGZhbHNlIH0pKTtcbiAgICB0aGlzLm1lbnVPcGVuKCk7XG4gIH1cblxuICBtYXhpbWl6ZSh3aWRnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLm1heGltaXplV2lkZ2V0KHsgd2lkZ2V0SW5kZXggfSkpO1xuICAgIHRoaXMubWVudU9wZW4oKTtcbiAgfVxuXG4gIGVtaXRNYW5pZmVzdCgpIHtcbiAgICB0aGlzLm1hbmlmZXN0TW9kaWZpZWQuZW1pdCh7XG4gICAgICB3aWRnZXRJbmRleDogdGhpcy5fd2lkZ2V0SW5kZXgsXG4gICAgICBtYW5pZmVzdDoge1xuICAgICAgICAuLi50aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpLFxuICAgICAgICBkYXRhc291cmNlOiB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQuZ2V0VmFsdWUoKVxuICAgICAgfSBhcyB1bmtub3duIGFzIFdpZGdldE1hbmlmZXN0XG4gICAgfSk7XG4gICAgdGhpcy50b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKCk7XG4gIH1cblxuICB0b2dnbGVSZW1vdmVDb25maXJtKCRldmVudD86IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuY29uZmlybVJlbW92ZVJlZikge1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbW9kYWwnIH0pKTtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnRvZ2dsZVJlbW92ZUNvbmZpcm0oKSk7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlTW9kYWwsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgaWYgKCRldmVudCkge1xuICAgICAgICBjb25zdCBwYW5lbCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5vLW1vZGFsLXdyYXBwZXInKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgICAgaWYgKCEhcGFuZWwpIHtcbiAgICAgICAgICBwYW5lbC5zdHlsZS5sZWZ0ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4od2luZG93LmlubmVyV2lkdGggLSBwYW5lbC5jbGllbnRXaWR0aCwgJGV2ZW50LmNsaWVudFggLSAzMCkpICsgJ3B4JztcbiAgICAgICAgICBwYW5lbC5zdHlsZS50b3AgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih3aW5kb3cuaW5uZXJIZWlnaHQgLSBwYW5lbC5jbGllbnRIZWlnaHQsICRldmVudC5jbGllbnRZIC0gMTApKSArICdweCc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyb3NzPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy50b2dnbGVQYW5lbD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1tb2RhbCcgfSkpO1xuICAgICAgdGhpcy5tZW51T3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIGNvbmZpcm1SZW1vdmUoKSB7XG4gICAgdGhpcy5yZW1vdmUoKTtcbiAgICB0aGlzLmNhbmNlbFJlbW92ZUNvbmZpcm0oKTtcbiAgfVxuXG4gIHJlbW92ZSgpIHtcbiAgICBjb25zdCBsaXN0V2lkZ2V0TWFuaWZlc3RzID0gWy4uLih0aGlzLndpbmRvd01hbmlmZXN0IHx8IHsgd2lkZ2V0czogW10gfSkud2lkZ2V0c107XG4gICAgbGlzdFdpZGdldE1hbmlmZXN0cy5zcGxpY2UodGhpcy5fd2lkZ2V0SW5kZXgsIDEpO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIERhc2hib2FyZEFjdGlvbnMudXBkYXRlRGFzaGJvYXJkTWFuaWZlc3Qoe1xuICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgIC4uLnRoaXMud2luZG93TWFuaWZlc3QsXG4gICAgICAgICAgd2lkZ2V0czogbGlzdFdpZGdldE1hbmlmZXN0c1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBjYW5jZWxSZW1vdmVDb25maXJtKCkge1xuICAgIHRoaXMuaXNFZGl0ID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgfSkpO1xuICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZj8uYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZVJlbW92ZUNvbmZpcm0oKSk7XG4gICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmPy5kaXNwb3NlKCk7XG4gICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMubWVudVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMubWVudVJlZiA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctbWVudScgfSkpO1xuICB9XG5cbiAgdG9nZ2xlQ2F0YWxvZygpIHtcbiAgICBpZiAoIXRoaXMuY2F0YWxvZ1JlZikge1xuICAgICAgdGhpcy5jYXRhbG9nSW5mbyA9IHtcbiAgICAgICAgaWQ6IHY0KCksXG4gICAgICAgIGltYWdlOiAnJyxcbiAgICAgICAgbmFtZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICAgICAgY29udGVudDogJycsXG4gICAgICAgIGRhdGFzb3VyY2U6IFtdLFxuICAgICAgICBtb2RpZmljYXRpb25EYXRlOiAnJ1xuICAgICAgfTtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ28tbW9kYWwtd3JhcHBlciddLFxuICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6ICdiYWNrZHJvcCdcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuYWRkaW5nT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNhdGFsb2cnIH0pKTtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnRvZ2dsZUNhdGFsb2coKSk7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm92ZXJsYXlDYXRhbG9nLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNyb3NzQ2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgIH0sIDEwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXRhbG9nUmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1jYXRhbG9nJyB9KSk7XG4gICAgICB0aGlzLm1lbnVPcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybUNhdGFsb2coKSB7XG4gICAgaWYgKHRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLmlzVmFsaWRGb3JDYXRhbG9nKHRoaXMuY2F0YWxvZ0luZm8ubmFtZSkpIHtcbiAgICAgIHRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLmFkZFRvQ2F0YWxvZyhcbiAgICAgICAge1xuICAgICAgICAgIC4uLnRoaXMuY2F0YWxvZ0luZm8sXG4gICAgICAgICAgY29udGVudDogSlNPTi5zdHJpbmdpZnkoeyAuLi50aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpLCB0aXRsZTogdGhpcy5jYXRhbG9nSW5mby5uYW1lIH0pXG4gICAgICAgIH0sXG4gICAgICAgIHRoaXMuX3dpZGdldEluZGV4XG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnRvZ2dsZUNhdGFsb2coKTtcbiAgfVxuXG4gIGV4ZWN1dGVBY3Rpb24ob3B0aW9uczogSGVhZGVyQWN0aW9uKSB7XG4gICAgb3B0aW9ucy5hY3Rpb24odGhpcyk7XG4gICAgdGhpcy5tZW51T3BlbigpO1xuICB9XG5cbiAgaXNBY3Rpb25EaXNhYmxlZChvcHRpb246IEhlYWRlckFjdGlvbikge1xuICAgIHJldHVybiAhIW9wdGlvbj8uZGlzYWJsZWQgPyBvcHRpb24/LmRpc2FibGVkKHRoaXMpIDogZmFsc2U7XG4gIH1cblxuICBkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnM6IGFueSwgcGFyYW1ldGVyczogc3RyaW5nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIGhlYWRlck9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgaGVhZGVyT3B0aW9ucyA9PT0gdHJ1ZSB8fFxuICAgICAgaGVhZGVyT3B0aW9uc1twYXJhbWV0ZXJzXSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBoZWFkZXJPcHRpb25zW3BhcmFtZXRlcnNdID09PSB0cnVlXG4gICAgKTtcbiAgfVxuXG4gIGRpc3BsYXlTZXR0aW5ncyhoZWFkZXJPcHRpb25zOiB7IFtwOiBzdHJpbmddOiBib29sZWFuIH0gfCB7fSB8IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBoZWFkZXJPcHRpb25zID09PSB1bmRlZmluZWQgfHwgaGVhZGVyT3B0aW9ucyA9PT0gdHJ1ZSB8fCBPYmplY3Qua2V5cyhoZWFkZXJPcHRpb25zKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgdG9nZ2xlQ2hhbmdlU3BvdCgpIHtcbiAgICBpZiAoIXRoaXMuc3BvdFJlZikge1xuICAgICAgdGhpcy5wbGFjZXMgPSBXaWRnZXRQbGFjZW1lbnRVdGlscy5wbGFjZW1lbnRPcHRpb25zKHsgdHlwZTogJ2ljb24nIH0gYXMgV2lkZ2V0TWFuaWZlc3QsIHRoaXMuY3VycmVudExheW91dCwge1xuICAgICAgICAuLi50aGlzLndpbmRvd01hbmlmZXN0Py5ncmlkXG4gICAgICB9KTtcblxuICAgICAgdGhpcy5zcG90UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctc3BvdCcgfSkpO1xuICAgICAgdGhpcy5zcG90UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50b2dnbGVDaGFuZ2VTcG90KCkpO1xuICAgICAgdGhpcy5zcG90UmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5vdmVybGF5U3BvdCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3BvdFJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLnNwb3RSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctc3BvdCcgfSkpO1xuICAgICAgdGhpcy5tZW51T3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmVUb1BsYWNlKHBsYWNlOiBXaWRnZXRNYW5pZmVzdCkge1xuICAgIGNvbnN0IHN0YXJ0TGF5b3V0ID0gdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKSEubGF5b3V0O1xuICAgIGNvbnN0IHRhcmdldExheW91dCA9IHBsYWNlLmxheW91dDtcbiAgICBjb25zdCBuZXdXaW5kb3dNYW5pZmVzdCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy53aW5kb3dNYW5pZmVzdCkpIGFzIERhc2hib2FyZE1hbmlmZXN0O1xuXG4gICAgY29uc3QgdGFyZ2V0V2lkZ2V0SW5kZXggPSBuZXdXaW5kb3dNYW5pZmVzdC53aWRnZXRzLmZpbmRJbmRleChcbiAgICAgICh3KSA9PlxuICAgICAgICB3LmxheW91dC54ID09PSB0YXJnZXRMYXlvdXQueCAmJlxuICAgICAgICB3LmxheW91dC55ID09PSB0YXJnZXRMYXlvdXQueSAmJlxuICAgICAgICB3LmxheW91dC53aWR0aCA9PT0gdGFyZ2V0TGF5b3V0LndpZHRoICYmXG4gICAgICAgIHcubGF5b3V0LmhlaWdodCA9PT0gdGFyZ2V0TGF5b3V0LmhlaWdodFxuICAgICk7XG4gICAgY29uc3Qgc3RhcnRXaWRnZXRJbmRleCA9IG5ld1dpbmRvd01hbmlmZXN0LndpZGdldHMuZmluZEluZGV4KFxuICAgICAgKHcpID0+XG4gICAgICAgIHcubGF5b3V0LnggPT09IHN0YXJ0TGF5b3V0LnggJiZcbiAgICAgICAgdy5sYXlvdXQueSA9PT0gc3RhcnRMYXlvdXQueSAmJlxuICAgICAgICB3LmxheW91dC53aWR0aCA9PT0gc3RhcnRMYXlvdXQud2lkdGggJiZcbiAgICAgICAgdy5sYXlvdXQuaGVpZ2h0ID09PSBzdGFydExheW91dC5oZWlnaHRcbiAgICApO1xuICAgIGlmICh0YXJnZXRXaWRnZXRJbmRleCAhPT0gLTEpIHtcbiAgICAgIG5ld1dpbmRvd01hbmlmZXN0LndpZGdldHNbdGFyZ2V0V2lkZ2V0SW5kZXhdLmxheW91dCA9IHN0YXJ0TGF5b3V0O1xuICAgIH1cbiAgICBuZXdXaW5kb3dNYW5pZmVzdC53aWRnZXRzW3N0YXJ0V2lkZ2V0SW5kZXhdLmxheW91dCA9IHRhcmdldExheW91dDtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRNYW5pZmVzdCh7IG1hbmlmZXN0OiBuZXdXaW5kb3dNYW5pZmVzdCB9KSk7XG5cbiAgICB0aGlzLnRvZ2dsZUNoYW5nZVNwb3QoKTtcbiAgfVxuXG4gIGZvY3VzQ3Jvc3NFbGVtZW50KCkge1xuICAgIHRoaXMuY3Jvc3M/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgdGhpcy5jcm9zc0NhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c1ZhbGlkYXRpb24oKSB7XG4gICAgdGhpcy52YWxpZGF0ZUNhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgaWYgKCF0aGlzLnRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyh0aGlzLmNhdGFsb2dJbmZvPy5uYW1lKSkge1xuICAgICAgdGhpcy5jYW5jZWw/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGU/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0lucHV0Q2F0YWxvZygpIHtcbiAgICB0aGlzLmlucHV0Q2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGRpc2FibGVWYWxpZGF0aW9uKCkge1xuICAgIGlmICghdGhpcy50b29sYm94TWVudVNlcnZpY2UuaXNWYWxpZEZvckNhdGFsb2codGhpcy5jYXRhbG9nSW5mbz8ubmFtZSkpIHtcbiAgICAgIHRoaXMuY3Jvc3NDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIGRhdGFzb3VyY2VzQ2hhbmdlZCgkZXZlbnQ6IERhdGFTb3VyY2VbXSkge1xuICAgIGNvbnN0IGlkcyA9ICRldmVudC5tYXAoKGRzKSA9PiBkcy5pZCk7XG4gICAgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWREYXRhU291cmNlSWRzJC5nZXRWYWx1ZSgpKSAhPT0gSlNPTi5zdHJpbmdpZnkoaWRzKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkLm5leHQoaWRzKTtcbiAgICB9XG4gIH1cblxuICBpc0dlbyhkczogTmFtZWRRdWVyeSB8IERhdGFzZXQpIHtcbiAgICByZXR1cm4gZHMubWV0YWRhdGE/LmZpbmQoKG0pID0+IG0ubWV0YWRhdGFEZWYubmFtZSA9PT0gR2VvTWV0YWRhdGEuTkFNRVNQQUNFKSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IERFRkFVTFRfSUNPTl9VUkwgPSBERUZBVUxUX0lDT05fVVJMO1xuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vcGVuU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby13aWRnZXRfX2hlYWRlclwiPlxuICA8ZGl2IGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudFwiPlxuICAgIDxoMiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3RpdGxlXCIgKm5nSWY9XCIobWFuaWZlc3QkIHwgYXN5bmMpPy50aXRsZTsgZWxzZSBxdWVyeVNlbGVjdG9yXCI+XG4gICAgICB7eyAobWFuaWZlc3QkIHwgYXN5bmMpPy50aXRsZSB9fVxuICAgIDwvaDI+XG4gICAgPG5nLXRlbXBsYXRlICNxdWVyeVNlbGVjdG9yPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZHMgb2YgdXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJkcy5pZCB8IHRyYW5zbGF0ZUlkIDogeyB0eXBlOiAnZGF0YXNvdXJjZScsIG91dHB1dDogJ2ljb24nLCBub0RlZmF1bHQ6IHRydWUgfSB8IGFzeW5jIGFzIHVybFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW1nIFtoZWlnaHRdPVwiMjBcIiBbc3JjXT1cInVybFwiIFt3aWR0aF09XCIyMFwiIGFsdD1cIlwiIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fcXVlcnlfX2ljb25cIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGgzIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fcXVlcnlfX25hbWVcIj57eyBkcy5uYW1lIH19PC9oMz5cbiAgICAgICAgPGgzIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fcXVlcnlfX25hbWVcIiAqbmdJZj1cImRpc3BsYXlDb3VudCAmJiAhaXNHZW8oZHMpXCI+XG4gICAgICAgICAgKHt7IFtkcy5pZF0gfCByZXN1bHRTZXRTaXplIHwgYXN5bmMgfX0pXG4gICAgICAgIDwvaDM+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIoKHVzZWREYXRhc291cmNlcyQgfCBhc3luYykgPz8gW10pLmxlbmd0aCA9PT0gMFwiIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fbm8tZGF0YVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X190aXRsZVwiPnt7ICdAcHJ5LndpZGdldC5ub0RhdGEnIHwgaTE4biB9fTwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwXCIgKm5nSWY9XCIhKGxvY2tlZFZpZXckIHwgYXN5bmMpICYmIGRpc3BsYXlTZXR0aW5ncyhoZWFkZXJPcHRpb25zKVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgaWQ9XCJkaWFsb2dfTWVudVwiXG4gICAgICBhcmlhLWNvbnRyb2xzPVwibWVudVwiXG4gICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cInRoaXMubWVudVwiXG4gICAgICAjdG9nZ2xlUGFuZWxcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLW1vcmVcIlxuICAgICAgKGNsaWNrKT1cIm1lbnVPcGVuKCRldmVudClcIlxuICAgID5cbiAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjI1XCIgW3dpZHRoXT1cIjI1XCIgaWNvblN2Zz1cIm1vcmVfaG9yaXpcIj48L3ByeS1pY29uPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5vcGVuTWVudVdpZGdldCcgfCBpMThuIH19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlNZW51PlxuICA8ZGl2IGNsYXNzPVwibS1jb250ZXh0LW1lbnVcIj5cbiAgICA8dWxcbiAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RcIlxuICAgICAgI21lbnVMaXN0XG4gICAgICBpZD1cIm1lbnVcIlxuICAgICAgcm9sZT1cIm1lbnVcIlxuICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nX01lbnVcIlxuICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm9uQXJyb3dEb3duKClcIlxuICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJvbkFycm93VXAoKVwiXG4gICAgICAoa2V5ZG93bi5lc2NhcGUpPVwibWVudU9wZW4oKVwiXG4gICAgPlxuICAgICAgPGxpXG4gICAgICAgIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIlxuICAgICAgICByb2xlPVwibm9uZVwiXG4gICAgICAgICpuZ0lmPVwiKG1hbmlmZXN0JCB8IGFzeW5jKT8uZGF0YXNvdXJjZSAmJiBkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnMsICdkYXRhc291cmNlU2VsZWN0aW9uJylcIlxuICAgICAgPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBpZD1cInRvZ2dsZUFjdGlvbnNcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVEYXRhc291cmNlU2VsZWN0aW9uKClcIlxuICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2Rhc2hib2FyZCcsIHBhZ2U6ICd3aWRnZXQnLCBhY3Rpb246ICdzZWxlY3RfbmFtZWRfcXVlcnknIH1cIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS10b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkud2lkZ2V0LnRvb2x0aXAucmVhZFNlYXJjaCcgfCBpMThuXCJcbiAgICAgICAgICBkYXRhLXRvb2x0aXAtcG9zaXRpb249XCJib3R0b21cIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBpY29uU3ZnPVwic3RhY2stZmlsbFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAucmVhZFNlYXJjaCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nSWY9XCJkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnMsICdwYXJhbWV0ZXJzJylcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9saT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnMsICd3aW5kb3cnKVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nRm9yPVwibGV0IHRhcmdldEluZGV4IG9mIHRhcmdldEluZGV4ZXMkIHwgYXN5bmNcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJtb3ZlSW5OZXdXaW5kb3coX3dpZGdldEluZGV4LCB0YXJnZXRJbmRleClcIlxuICAgICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBpY29uU3ZnPVwibGF1bmNoXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICh0YXJnZXRJbmRleCAhPT0gLTEgPyAnQHByeS53aWRnZXQudGFyZ2V0LmV4aXN0aW5nJyA6ICdAcHJ5LndpZGdldC50YXJnZXQubmV3JylcbiAgICAgICAgICAgICAgICB8IGkxOG4gOiB7IHRhcmdldEluZGV4OiB0aGlzLnRhcmdldEluZGV4ICsgMSB9XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nSWY9XCJoYXNHcmlkICYmIGRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ2NoYW5nZVNwb3QnKVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hhbmdlU3BvdCgpXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtdG9vbHRpcFwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4blwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxN1wiIFt3aWR0aF09XCIxN1wiIGljb25Tdmc9XCJtb3ZlXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS53aWRnZXQudG9vbHRpcC5jaGFuZ2VTcG90JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cImRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ21heGltaXplJylcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm1heGltaXplKF93aWRnZXRJbmRleClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG5cIlxuICAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJtZW51T3BlbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImZ1bGxzY3JlZW5cIj48L3ByeS1pY29uPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC50YXJnZXQubWF4aW1pemUnIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nSWY9XCJkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnMsICdhZGRUb0NhdGFsb2cnKVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2F0YWxvZygpXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtdG9vbHRpcFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LndpZGdldC50b29sdGlwLmNhdGFsb2dXaWRnZXQnIHwgaTE4blwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxN1wiIFt3aWR0aF09XCIxN1wiIGljb25Tdmc9XCJsaWJyYXJ5X2FkZFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuY2F0YWxvZ1dpZGdldCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nSWY9XCJkaXNwbGF5T3B0aW9uKGhlYWRlck9wdGlvbnMsICdkZWxldGUnKVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUmVtb3ZlQ29uZmlybSgkZXZlbnQpXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtdG9vbHRpcFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS10b29sdGlwXT1cIidAcHJ5LndpZGdldC50b29sdGlwLmRlbGV0ZVdpZGdldCcgfCBpMThuXCJcbiAgICAgICAgICAoa2V5ZG93bi50YWIpPVwibWVudU9wZW4oKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxN1wiIFt3aWR0aF09XCIxN1wiIGljb25Tdmc9XCJkZWxldGVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLmRlbGV0ZVdpZGdldCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiIHJvbGU9XCJub25lXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBhZGRpdGlvbmFsT3B0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbihvcHRpb24pXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNBY3Rpb25EaXNhYmxlZChvcHRpb24pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgW2ljb25TdmddPVwib3B0aW9uLmljb25cIj48L3ByeS1pY29uPlxuICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB8IGkxOG4gfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU1vZGFsPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2FuY2VsUmVtb3ZlQ29uZmlybSgpXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nIGNvbmZpcm0gZGVsZXRlIHByZXNlbnRhdGlvblwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVcIj5cbiAgICAgICAgICB7eyAnQHByeS53aWRnZXQubW9kYWxUaXRsZScgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgI2Nyb3NzIChjbGljayk9XCJjYW5jZWxSZW1vdmVDb25maXJtKClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjYW5jZWxSZW1vdmVDb25maXJtKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIj5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJjb25maXJtUmVtb3ZlKClcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGtleWRvd24udGFiKT1cImZvY3VzQ3Jvc3NFbGVtZW50KClcIj5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICA8cHJ5LWRhdGFzb3VyY2Utc2VsZWN0b3JcbiAgICAoY2FuY2VsKT1cInRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKVwiXG4gICAgKHZhbGlkYXRlZCk9XCJlbWl0TWFuaWZlc3QoKVwiXG4gICAgKG5leHRUYWIpPVwiZm9jdXNJbnB1dENhdGFsb2coKVwiXG4gICAgKHByZXZpb3VzVGFiKT1cImZvY3VzVmFsaWRhdGlvbigpXCJcbiAgICAoZGF0YXNvdXJjZXNDaGFuZ2VkKT1cImRhdGFzb3VyY2VzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICBbZGF0YXNvdXJjZUlkc109XCIoc2VsZWN0ZWREYXRhU291cmNlSWRzJCB8IGFzeW5jKSA/PyBbXVwiXG4gID48L3ByeS1kYXRhc291cmNlLXNlbGVjdG9yPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5Q2F0YWxvZz5cbiAgPGRpdlxuICAgIGNsYXNzPVwiby1tb2RhbFwiXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImRpYWxvZ19DYXRhbG9nXCJcbiAgICAoa2V5ZG93bi5lc2NhcGUpPVwidG9nZ2xlQ2F0YWxvZygpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIj5cbiAgICAgICAgICB7eyAnQHByeS53aWRnZXQuZGVmaW5lQ2F0YWxvZycgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIlxuICAgICAgICAgIChrZXlkb3duLnNoaWZ0LnRhYik9XCJmb2N1c1ZhbGlkYXRpb24oKVwiXG4gICAgICAgICAgI2Nyb3NzQ2F0YWxvZ1xuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cIm5hbWVcIj57eyAnQHByeS50b29sYm94LmNhdGFsb2cubGFiZWwnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJjYXRhbG9nSW5mby5uYW1lXCIgaWQ9XCJuYW1lXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImRlc2NyaXB0aW9uXCI+e3sgJ0BwcnkudG9vbGJveC5jYXRhbG9nLmRlc2NyaXB0aW9uJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwiY2F0YWxvZ0luZm8uZGVzY3JpcHRpb25cIiBpZD1cImRlc2NyaXB0aW9uXCIgdHlwZT1cInRleHRcIiBjbGFzcz1cImEtZm9ybS1maWVsZFwiIHJlcXVpcmVkIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZFwiPlxuICAgICAgPHByeS1zZWxlY3QtaW1hZ2VcbiAgICAgICAgW2ljb25VcmxdPVwiY2F0YWxvZ0luZm8uaW1hZ2VcIlxuICAgICAgICAoY2hhbmdlZCk9XCJjYXRhbG9nSW5mby5pbWFnZSA9ICRldmVudFwiXG4gICAgICAgIFttb2RlXT1cInR5cGVcIlxuICAgICAgPjwvcHJ5LXNlbGVjdC1pbWFnZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICAjY2FuY2VsXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJkaXNhYmxlVmFsaWRhdGlvbigpXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jbG9zZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICN2YWxpZGF0ZUNhdGFsb2dcbiAgICAgICAgKGNsaWNrKT1cImNvbmZpcm1DYXRhbG9nKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIXRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyhjYXRhbG9nSW5mby5uYW1lKVwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiXG4gICAgICA+XG4gICAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QudmFsaWRhdGUnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNvdmVybGF5U3BvdD5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCI+XG4gICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuY2hhbmdlU3BvdCcgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cInRvZ2dsZUNoYW5nZVNwb3QoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHBsYWNlIG9mIHBsYWNlczsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRQbGFjZW1lbnRJbmRleCAhPT0gaVwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuXCIgKGNsaWNrKT1cIm1vdmVUb1BsYWNlKHBsYWNlKVwiPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLnNwb3ROYW1lJyB8IGkxOG4gOiB7IHBsYWNlOiBpICsgMSB9IH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL2NvbXBvbmVudHMvd2lkZ2V0cy9oZWFkZXIvd2lkZ2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsYUFBYSxFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEtBQUssTUFBTSxxQkFBcUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQXFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxtQkFBbUIsRUFBcUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUVuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFNUYs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LE9BQU87Z0JBQ0ssUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNTLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUNQLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFDUSxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ0UsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNGLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFRUixRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBT0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBYU0sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsL2VzNic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFVOS05PV05fREFUQVNPVVJDRSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvY29tcG9uZW50cy90cmFuc2xhdGUtaWQvdHJhbnNsYXRlLWlkLnBpcGUnO1xuaW1wb3J0IHsgR2VvTWV0YWRhdGEgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVsL2RhdGFzZXQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhc2hib2FyZEdyaWRMYXlvdXQsIERhc2hib2FyZE1hbmlmZXN0LCBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpZGdldCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvd2lkZ2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zdG9yZS9jb25maWcvY29uZmlnLmFjdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9JQ09OX1VSTCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvY29uZmlnL2ljb24tZGVmaW5pdGlvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFzZXQsIERhdGFTb3VyY2UsIE5hbWVkUXVlcnkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLm1vZGVsJztcbmltcG9ydCB7IERhdGFTb3VyY2VTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGEtc291cmNlLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBMaWJyYXJ5VHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2ltYWdlL2ltYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJveE1lbnVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90b29sYm94L3Rvb2xib3gtbWVudS5zZXJ2aWNlJztcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuYWN0aW9ucyc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZWxlY3RvcnMgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9kYXNoYm9hcmQuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL3N1YnNjcmlwdGlvbm5lci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2lkZ2V0UGxhY2VtZW50VXRpbHMgfSBmcm9tICcuLi93aWRnZXQtcGxhY2VtZW50L3dpZGdldC1wbGFjZW1lbnQudXRpbHMnO1xuXG5leHBvcnQgY29uc3QgV0lER0VUX0hFQURFUl9IRUlHSFQgPSAzMDtcblxuZXhwb3J0IHR5cGUgSGVhZGVyQWN0aW9uID0ge1xuICBpY29uOiBzdHJpbmc7XG4gIGFjdGlvbjogKHRoYXQ6IFByeVdpZGdldEhlYWRlckNvbXBvbmVudCkgPT4gdm9pZDtcbiAgbGFiZWw6IHN0cmluZztcbiAgZGlzYWJsZWQ/OiAodGhhdDogUHJ5V2lkZ2V0SGVhZGVyQ29tcG9uZW50KSA9PiBib29sZWFuO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXdpZGdldC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vd2lkZ2V0LWhlYWRlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5V2lkZ2V0SGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVNb2RhbCcsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGVNb2RhbCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3RvZ2dsZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdG9nZ2xlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheU1lbnUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIG92ZXJsYXlNZW51ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheUNhdGFsb2cnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIG92ZXJsYXlDYXRhbG9nITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgnb3ZlcmxheVNwb3QnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIG92ZXJsYXlTcG90ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZCgndG9nZ2xlUGFuZWwnKSB0b2dnbGVQYW5lbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjcm9zcycpIGNyb3NzITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ3ZhbGlkYXRlJykgdmFsaWRhdGUhOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndmFsaWRhdGVDYXRhbG9nJykgdmFsaWRhdGVDYXRhbG9nITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG4gIEBWaWV3Q2hpbGQoJ2NhbmNlbCcpIGNhbmNlbCE6IEVsZW1lbnRSZWY8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdjcm9zc0NhdGFsb2cnKSBjcm9zc0NhdGFsb2chOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnaW5wdXRDYXRhbG9nJykgaW5wdXRDYXRhbG9nITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnbWVudUxpc3QnKSBtZW51TGlzdCE6IEVsZW1lbnRSZWY7XG4gIG1hbmlmZXN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8V2lkZ2V0TWFuaWZlc3QgfCBudWxsPihudWxsKTtcbiAgc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwbGFjZXM6IFdpZGdldE1hbmlmZXN0W10gPSBbXTtcbiAgc2VsZWN0ZWRJdGVtPzogRWxlbWVudCB8IG51bGw7XG4gIHVzZWREYXRhc291cmNlcyQ6IE9ic2VydmFibGU8RGF0YVNvdXJjZVtdPjtcbiAgb3BlblN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBzZXQgbWFuaWZlc3QobWFuaWZlc3Q6IFdpZGdldE1hbmlmZXN0IHwgbnVsbCkge1xuICAgIHRoaXMubWFuaWZlc3QkLm5leHQobWFuaWZlc3QpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG9wZW5EYXRhJChvcGVuJDogT2JzZXJ2YWJsZTx2b2lkPiB8IFN1YmplY3Q8dm9pZD4pIHtcbiAgICB0aGlzLm9wZW5TdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vcGVuU3ViID0gb3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgQElucHV0KCkgYWRkaXRpb25hbE9wdGlvbnM6IEhlYWRlckFjdGlvbltdIHwgbnVsbCA9IFtdO1xuICBASW5wdXQoKSBoZWFkZXJPcHRpb25zOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IHt9IHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkaXNwbGF5Q291bnQgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSBtYW5pZmVzdE1vZGlmaWVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHdpZGdldEluZGV4OiBudW1iZXI7IG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCB9PigpO1xuXG4gIGlzRWRpdCA9IGZhbHNlO1xuICBjYXRhbG9nSW5mbzogV2lkZ2V0ID0ge1xuICAgIGlkOiB2NCgpLFxuICAgIGltYWdlOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgY29udGVudDogJycsXG4gICAgZGF0YXNvdXJjZTogW10sXG4gICAgbW9kaWZpY2F0aW9uRGF0ZTogJydcbiAgfTtcblxuICBASW5wdXQoKSBzZXQgZGF0YXNvdXJjZUlkcyhkYXRhc291cmNlSWRzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRhU291cmNlSWRzJC5uZXh0KGRhdGFzb3VyY2VJZHMpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IHdpZGdldEluZGV4KHdpZGdldEluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLl93aWRnZXRJbmRleCQubmV4dCh3aWRnZXRJbmRleCk7XG4gICAgdGhpcy5fd2lkZ2V0SW5kZXggPSB3aWRnZXRJbmRleDtcbiAgfVxuXG4gIGxvY2tlZFZpZXckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICB0YXJnZXRJbmRleGVzJDogT2JzZXJ2YWJsZTxudW1iZXJbXT47XG4gIF93aWRnZXRJbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIF93aWRnZXRJbmRleCE6IG51bWJlcjtcbiAgb3BlbiA9IGZhbHNlO1xuICBzZWxlY3RlZERhdGFTb3VyY2VJZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmdbXT4oW10pO1xuXG4gIHdpbmRvd01hbmlmZXN0OiBEYXNoYm9hcmRNYW5pZmVzdCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHdpbmRvd01hbmlmZXN0JDogT2JzZXJ2YWJsZTxEYXNoYm9hcmRNYW5pZmVzdD47XG4gIHByaXZhdGUgbWVudVJlZj86IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgY29tYm9SZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIGNvbmZpcm1SZW1vdmVSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIGNhdGFsb2dSZWY/OiBPdmVybGF5UmVmO1xuICBwcml2YXRlIHNwb3RSZWY/OiBPdmVybGF5UmVmO1xuICBtZW51OiBib29sZWFuID0gZmFsc2U7XG4gIHR5cGU6IExpYnJhcnlUeXBlcyA9IExpYnJhcnlUeXBlcy5JTExVU1RSQVRJT047XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwdWJsaWMgdG9vbGJveE1lbnVTZXJ2aWNlOiBUb29sYm94TWVudVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLndpbmRvd01hbmlmZXN0JCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLndpbmRvd01hbmlmZXN0KVxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKHAsIGMpID0+IGVxdWFsKHAsIGMpKSk7XG5cbiAgICB0aGlzLnRhcmdldEluZGV4ZXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnRhcmdldFRlbmFudHNJbmRleGVzKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy53aW5kb3dNYW5pZmVzdCQuc3Vic2NyaWJlKChtYW5pZmVzdCkgPT4ge1xuICAgICAgICB0aGlzLndpbmRvd01hbmlmZXN0ID0gbWFuaWZlc3Q7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5sb2NrZWRWaWV3JCA9IHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmdsb2JhbE1hbmlmZXN0KVxuICAgICAgLnBpcGUobWFwKChtKSA9PiAhIW0ubG9ja2VkIHx8ICEhdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubG9ja2VkKSk7XG5cbiAgICB0aGlzLnVzZWREYXRhc291cmNlcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KERhdGFTb3VyY2VTZWxlY3RvcnMuZ2V0RGF0YVNvdXJjZXNTb3J0ZWQpLFxuICAgICAgdGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkXG4gICAgXSkucGlwZShtYXAoKFthbGxEc3MsIGRzSWRzXSkgPT4gZHNJZHMubWFwKChpZCkgPT4gYWxsRHNzLmZpbmQoKGRzKSA9PiBkcy5pZCA9PT0gaWQpID8/IFVOS05PV05fREFUQVNPVVJDRShpZCkpKSk7XG4gIH1cblxuICBvbkFycm93VXAoKSB7XG4gICAgY29uc3QgbGFzdEVsZW1lbnQgPSB0aGlzLm1lbnVMaXN0Lm5hdGl2ZUVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZDtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0/LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW0ucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBsYXN0RWxlbWVudDtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgIGNvbnN0IGZvY3VzQ2hpbGRyZW5FbGVtZW50ID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgIGlmIChmb2N1c0NoaWxkcmVuRWxlbWVudCkge1xuICAgICAgZm9jdXNDaGlsZHJlbkVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgZm9jdXNFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBvbkFycm93RG93bigpIHtcbiAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSB0aGlzLm1lbnVMaXN0Lm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRJdGVtPy5uZXh0RWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW0ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGZpcnN0RWxlbWVudDtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNFbGVtZW50ID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgIGNvbnN0IGZvY3VzQ2hpbGRyZW5FbGVtZW50ID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgIGlmIChmb2N1c0NoaWxkcmVuRWxlbWVudCkge1xuICAgICAgZm9jdXNDaGlsZHJlbkVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gICAgZm9jdXNFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBnZXQgY3VycmVudExheW91dCgpIHtcbiAgICByZXR1cm4gdGhpcy53aW5kb3dNYW5pZmVzdD8uZ3JpZD8ubGF5b3V0ID8/IERhc2hib2FyZEdyaWRMYXlvdXQuTUFOVUFMO1xuICB9XG5cbiAgZ2V0IGhhc0dyaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExheW91dCAhPT0gRGFzaGJvYXJkR3JpZExheW91dC5NQU5VQUw7XG4gIH1cblxuICBnZXQgY3VycmVudFBsYWNlbWVudEluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLnBsYWNlcy5maW5kSW5kZXgoXG4gICAgICAocGxhY2UpID0+XG4gICAgICAgIHRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCk/LmxheW91dC54ID09PSBwbGFjZS5sYXlvdXQueCAmJlxuICAgICAgICB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpPy5sYXlvdXQueSA9PT0gcGxhY2UubGF5b3V0LnkgJiZcbiAgICAgICAgdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubGF5b3V0LndpZHRoID09PSBwbGFjZS5sYXlvdXQud2lkdGggJiZcbiAgICAgICAgdGhpcy5tYW5pZmVzdCQuZ2V0VmFsdWUoKT8ubGF5b3V0LmhlaWdodCA9PT0gcGxhY2UubGF5b3V0LmhlaWdodFxuICAgICk7XG4gIH1cblxuICBtZW51T3BlbigkZXZlbnQ/OiBNb3VzZUV2ZW50LCBmb3JjZU9wZW4/OiBib29sZWFuKSB7XG4gICAgdGhpcy5tZW51ID0gIXRoaXMubWVudTtcbiAgICBjb25zdCBtdXN0T3BlbiA9IGZvcmNlT3BlbiAhPT0gdW5kZWZpbmVkID8gZm9yY2VPcGVuIDogIXRoaXMubWVudVJlZjtcbiAgICBpZiAobXVzdE9wZW4pIHtcbiAgICAgIHRoaXMubWVudVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoXG4gICAgICAgIG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICBwYW5lbENsYXNzOiBbJ20tY29udGV4dC1tZW51LXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMub3ZlcmxheVxuICAgICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMudG9nZ2xlUGFuZWwpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogJ2VuZCcsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0pXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1tZW51JyB9KSk7XG4gICAgICB0aGlzLm1lbnVSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoXykgPT4gdGhpcy5tZW51T3BlbigpKTtcbiAgICAgIHRoaXMubWVudVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheU1lbnUsIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgY29uc3QgY29udGV4dE1lbnUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubS1jb250ZXh0LW1lbnUnKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGNvbnN0IHJlY3QgPSB0aGlzLnRvZ2dsZVBhbmVsPy5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgaWYgKCEhY29udGV4dE1lbnUgJiYgISFyZWN0KVxuICAgICAgICBjb250ZXh0TWVudS5zdHlsZS5sZWZ0ID0gKHJlY3Q/LmxlZnQgPz8gMCkgLSAodGhpcy5tZW51TGlzdD8ubmF0aXZlRWxlbWVudD8uY2xpZW50V2lkdGggPz8gMCkgLSAyMDAgKyAncHgnO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5tZW51TGlzdD8ubmF0aXZlRWxlbWVudD8uZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbSkge1xuICAgICAgICAgIGNvbnN0IGZvY3VzID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdIGFzIEhUTUxCdXR0b25FbGVtZW50O1xuICAgICAgICAgIGNvbnN0IGZvY3VzQ2hpbGRyZW5FbGVtZW50ID0gdGhpcy5zZWxlY3RlZEl0ZW0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXSBhcyBIVE1MQnV0dG9uRWxlbWVudDtcbiAgICAgICAgICBmb2N1cyA/IGZvY3VzLmZvY3VzKCkgOiBmb2N1c0NoaWxkcmVuRWxlbWVudD8uZm9jdXMoKTtcbiAgICAgICAgfVxuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lbnVSZWY/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMubWVudVJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1tZW51JyB9KSk7XG4gICAgICB0aGlzLnRvZ2dsZVBhbmVsPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNvbWJvUmVmKSB7XG4gICAgICB0aGlzLmNvbWJvUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby13aWRnZXRfX2Nob29zZS1yZXN1bHRzZXQnXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1jb21ibycgfSkpO1xuICAgICAgdGhpcy5jb21ib1JlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKChfKSA9PiB0aGlzLnRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKSk7XG4gICAgICB0aGlzLmNvbWJvUmVmLmF0dGFjaChuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy50ZW1wbGF0ZSwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5pbnB1dENhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tYm9SZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5jb21ib1JlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1jb21ibycgfSkpO1xuICAgICAgdGhpcy5tZW51T3Blbih1bmRlZmluZWQsIGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBtb3ZlSW5OZXdXaW5kb3cod2lkZ2V0SW5kZXg6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRGFzaGJvYXJkQWN0aW9ucy5tb3ZlV2lkZ2V0KHsgd2lkZ2V0SW5kZXgsIHRhcmdldEluZGV4IH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMudG9nZ2xlRWRpdGlvbk1vZGUoeyBmb3JjZTogZmFsc2UgfSkpO1xuICAgIHRoaXMubWVudU9wZW4oKTtcbiAgfVxuXG4gIG1heGltaXplKHdpZGdldEluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKERhc2hib2FyZEFjdGlvbnMubWF4aW1pemVXaWRnZXQoeyB3aWRnZXRJbmRleCB9KSk7XG4gICAgdGhpcy5tZW51T3BlbigpO1xuICB9XG5cbiAgZW1pdE1hbmlmZXN0KCkge1xuICAgIHRoaXMubWFuaWZlc3RNb2RpZmllZC5lbWl0KHtcbiAgICAgIHdpZGdldEluZGV4OiB0aGlzLl93aWRnZXRJbmRleCxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIC4uLnRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCksXG4gICAgICAgIGRhdGFzb3VyY2U6IHRoaXMuc2VsZWN0ZWREYXRhU291cmNlSWRzJC5nZXRWYWx1ZSgpXG4gICAgICB9IGFzIHVua25vd24gYXMgV2lkZ2V0TWFuaWZlc3RcbiAgICB9KTtcbiAgICB0aGlzLnRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKTtcbiAgfVxuXG4gIHRvZ2dsZVJlbW92ZUNvbmZpcm0oJGV2ZW50PzogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5jb25maXJtUmVtb3ZlUmVmKSB7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1tb2RhbCcgfSkpO1xuICAgICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlUmVtb3ZlQ29uZmlybSgpKTtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMudGVtcGxhdGVNb2RhbCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKSk7XG4gICAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAgIGNvbnN0IHBhbmVsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm8tbW9kYWwtd3JhcHBlcicpIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgICBpZiAoISFwYW5lbCkge1xuICAgICAgICAgIHBhbmVsLnN0eWxlLmxlZnQgPSBNYXRoLm1heCgwLCBNYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCAtIHBhbmVsLmNsaWVudFdpZHRoLCAkZXZlbnQuY2xpZW50WCAtIDMwKSkgKyAncHgnO1xuICAgICAgICAgIHBhbmVsLnN0eWxlLnRvcCA9IE1hdGgubWF4KDAsIE1hdGgubWluKHdpbmRvdy5pbm5lckhlaWdodCAtIHBhbmVsLmNsaWVudEhlaWdodCwgJGV2ZW50LmNsaWVudFkgLSAxMCkpICsgJ3B4JztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3Jvc3M/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICB9LCAxMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29uZmlybVJlbW92ZVJlZi5kaXNwb3NlKCk7XG4gICAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnRvZ2dsZVBhbmVsPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLW1vZGFsJyB9KSk7XG4gICAgICB0aGlzLm1lbnVPcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgY29uZmlybVJlbW92ZSgpIHtcbiAgICB0aGlzLnJlbW92ZSgpO1xuICAgIHRoaXMuY2FuY2VsUmVtb3ZlQ29uZmlybSgpO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIGNvbnN0IGxpc3RXaWRnZXRNYW5pZmVzdHMgPSBbLi4uKHRoaXMud2luZG93TWFuaWZlc3QgfHwgeyB3aWRnZXRzOiBbXSB9KS53aWRnZXRzXTtcbiAgICBsaXN0V2lkZ2V0TWFuaWZlc3RzLnNwbGljZSh0aGlzLl93aWRnZXRJbmRleCwgMSk7XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy51cGRhdGVEYXNoYm9hcmRNYW5pZmVzdCh7XG4gICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgLi4udGhpcy53aW5kb3dNYW5pZmVzdCxcbiAgICAgICAgICB3aWRnZXRzOiBsaXN0V2lkZ2V0TWFuaWZlc3RzXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNhbmNlbFJlbW92ZUNvbmZpcm0oKSB7XG4gICAgdGhpcy5pc0VkaXQgPSBmYWxzZTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5jb25maXJtUmVtb3ZlUmVmPy5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMudG9nZ2xlUmVtb3ZlQ29uZmlybSgpKTtcbiAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWY/LmRpc3Bvc2UoKTtcbiAgICB0aGlzLmNvbmZpcm1SZW1vdmVSZWYgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5tZW51UmVmPy5kaXNwb3NlKCk7XG4gICAgdGhpcy5tZW51UmVmID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1tZW51JyB9KSk7XG4gIH1cblxuICB0b2dnbGVDYXRhbG9nKCkge1xuICAgIGlmICghdGhpcy5jYXRhbG9nUmVmKSB7XG4gICAgICB0aGlzLmNhdGFsb2dJbmZvID0ge1xuICAgICAgICBpZDogdjQoKSxcbiAgICAgICAgaW1hZ2U6ICcnLFxuICAgICAgICBuYW1lOiAnJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICcnLFxuICAgICAgICBjb250ZW50OiAnJyxcbiAgICAgICAgZGF0YXNvdXJjZTogW10sXG4gICAgICAgIG1vZGlmaWNhdGlvbkRhdGU6ICcnXG4gICAgICB9O1xuICAgICAgdGhpcy5jYXRhbG9nUmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZShcbiAgICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgIHBhbmVsQ2xhc3M6IFsnby1tb2RhbC13cmFwcGVyJ10sXG4gICAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSArICctY2F0YWxvZycgfSkpO1xuICAgICAgdGhpcy5jYXRhbG9nUmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMudG9nZ2xlQ2F0YWxvZygpKTtcbiAgICAgIHRoaXMuY2F0YWxvZ1JlZi5hdHRhY2gobmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNhdGFsb2csIHRoaXMudmlld0NvbnRhaW5lclJlZikpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuY3Jvc3NDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgICAgfSwgMTApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhdGFsb2dSZWYuZGlzcG9zZSgpO1xuICAgICAgdGhpcy5jYXRhbG9nUmVmID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmNsb3NlT3ZlcmxheSh7IGlkOiB0aGlzLmNvbnN0cnVjdG9yLm5hbWUgKyAnLWNhdGFsb2cnIH0pKTtcbiAgICAgIHRoaXMubWVudU9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBjb25maXJtQ2F0YWxvZygpIHtcbiAgICBpZiAodGhpcy50b29sYm94TWVudVNlcnZpY2UuaXNWYWxpZEZvckNhdGFsb2codGhpcy5jYXRhbG9nSW5mby5uYW1lKSkge1xuICAgICAgdGhpcy50b29sYm94TWVudVNlcnZpY2UuYWRkVG9DYXRhbG9nKFxuICAgICAgICB7XG4gICAgICAgICAgLi4udGhpcy5jYXRhbG9nSW5mbyxcbiAgICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeSh7IC4uLnRoaXMubWFuaWZlc3QkLmdldFZhbHVlKCksIHRpdGxlOiB0aGlzLmNhdGFsb2dJbmZvLm5hbWUgfSlcbiAgICAgICAgfSxcbiAgICAgICAgdGhpcy5fd2lkZ2V0SW5kZXhcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMudG9nZ2xlQ2F0YWxvZygpO1xuICB9XG5cbiAgZXhlY3V0ZUFjdGlvbihvcHRpb25zOiBIZWFkZXJBY3Rpb24pIHtcbiAgICBvcHRpb25zLmFjdGlvbih0aGlzKTtcbiAgICB0aGlzLm1lbnVPcGVuKCk7XG4gIH1cblxuICBpc0FjdGlvbkRpc2FibGVkKG9wdGlvbjogSGVhZGVyQWN0aW9uKSB7XG4gICAgcmV0dXJuICEhb3B0aW9uPy5kaXNhYmxlZCA/IG9wdGlvbj8uZGlzYWJsZWQodGhpcykgOiBmYWxzZTtcbiAgfVxuXG4gIGRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9uczogYW55LCBwYXJhbWV0ZXJzOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKFxuICAgICAgaGVhZGVyT3B0aW9ucyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICBoZWFkZXJPcHRpb25zID09PSB0cnVlIHx8XG4gICAgICBoZWFkZXJPcHRpb25zW3BhcmFtZXRlcnNdID09PSB1bmRlZmluZWQgfHxcbiAgICAgIGhlYWRlck9wdGlvbnNbcGFyYW1ldGVyc10gPT09IHRydWVcbiAgICApO1xuICB9XG5cbiAgZGlzcGxheVNldHRpbmdzKGhlYWRlck9wdGlvbnM6IHsgW3A6IHN0cmluZ106IGJvb2xlYW4gfSB8IHt9IHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGhlYWRlck9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCBoZWFkZXJPcHRpb25zID09PSB0cnVlIHx8IE9iamVjdC5rZXlzKGhlYWRlck9wdGlvbnMpLmxlbmd0aCA+IDA7XG4gIH1cblxuICB0b2dnbGVDaGFuZ2VTcG90KCkge1xuICAgIGlmICghdGhpcy5zcG90UmVmKSB7XG4gICAgICB0aGlzLnBsYWNlcyA9IFdpZGdldFBsYWNlbWVudFV0aWxzLnBsYWNlbWVudE9wdGlvbnMoeyB0eXBlOiAnaWNvbicgfSBhcyBXaWRnZXRNYW5pZmVzdCwgdGhpcy5jdXJyZW50TGF5b3V0LCB7XG4gICAgICAgIC4uLnRoaXMud2luZG93TWFuaWZlc3Q/LmdyaWRcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNwb3RSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgICBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDb25maWdBY3Rpb25zLmFkZGluZ092ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1zcG90JyB9KSk7XG4gICAgICB0aGlzLnNwb3RSZWYuYmFja2Ryb3BDbGljaygpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRvZ2dsZUNoYW5nZVNwb3QoKSk7XG4gICAgICB0aGlzLnNwb3RSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLm92ZXJsYXlTcG90LCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zcG90UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuc3BvdFJlZiA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5jbG9zZU92ZXJsYXkoeyBpZDogdGhpcy5jb25zdHJ1Y3Rvci5uYW1lICsgJy1zcG90JyB9KSk7XG4gICAgICB0aGlzLm1lbnVPcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgbW92ZVRvUGxhY2UocGxhY2U6IFdpZGdldE1hbmlmZXN0KSB7XG4gICAgY29uc3Qgc3RhcnRMYXlvdXQgPSB0aGlzLm1hbmlmZXN0JC5nZXRWYWx1ZSgpIS5sYXlvdXQ7XG4gICAgY29uc3QgdGFyZ2V0TGF5b3V0ID0gcGxhY2UubGF5b3V0O1xuICAgIGNvbnN0IG5ld1dpbmRvd01hbmlmZXN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLndpbmRvd01hbmlmZXN0KSkgYXMgRGFzaGJvYXJkTWFuaWZlc3Q7XG5cbiAgICBjb25zdCB0YXJnZXRXaWRnZXRJbmRleCA9IG5ld1dpbmRvd01hbmlmZXN0LndpZGdldHMuZmluZEluZGV4KFxuICAgICAgKHcpID0+XG4gICAgICAgIHcubGF5b3V0LnggPT09IHRhcmdldExheW91dC54ICYmXG4gICAgICAgIHcubGF5b3V0LnkgPT09IHRhcmdldExheW91dC55ICYmXG4gICAgICAgIHcubGF5b3V0LndpZHRoID09PSB0YXJnZXRMYXlvdXQud2lkdGggJiZcbiAgICAgICAgdy5sYXlvdXQuaGVpZ2h0ID09PSB0YXJnZXRMYXlvdXQuaGVpZ2h0XG4gICAgKTtcbiAgICBjb25zdCBzdGFydFdpZGdldEluZGV4ID0gbmV3V2luZG93TWFuaWZlc3Qud2lkZ2V0cy5maW5kSW5kZXgoXG4gICAgICAodykgPT5cbiAgICAgICAgdy5sYXlvdXQueCA9PT0gc3RhcnRMYXlvdXQueCAmJlxuICAgICAgICB3LmxheW91dC55ID09PSBzdGFydExheW91dC55ICYmXG4gICAgICAgIHcubGF5b3V0LndpZHRoID09PSBzdGFydExheW91dC53aWR0aCAmJlxuICAgICAgICB3LmxheW91dC5oZWlnaHQgPT09IHN0YXJ0TGF5b3V0LmhlaWdodFxuICAgICk7XG4gICAgaWYgKHRhcmdldFdpZGdldEluZGV4ICE9PSAtMSkge1xuICAgICAgbmV3V2luZG93TWFuaWZlc3Qud2lkZ2V0c1t0YXJnZXRXaWRnZXRJbmRleF0ubGF5b3V0ID0gc3RhcnRMYXlvdXQ7XG4gICAgfVxuICAgIG5ld1dpbmRvd01hbmlmZXN0LndpZGdldHNbc3RhcnRXaWRnZXRJbmRleF0ubGF5b3V0ID0gdGFyZ2V0TGF5b3V0O1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChEYXNoYm9hcmRBY3Rpb25zLnVwZGF0ZURhc2hib2FyZE1hbmlmZXN0KHsgbWFuaWZlc3Q6IG5ld1dpbmRvd01hbmlmZXN0IH0pKTtcblxuICAgIHRoaXMudG9nZ2xlQ2hhbmdlU3BvdCgpO1xuICB9XG5cbiAgZm9jdXNDcm9zc0VsZW1lbnQoKSB7XG4gICAgdGhpcy5jcm9zcz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB0aGlzLmNyb3NzQ2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzVmFsaWRhdGlvbigpIHtcbiAgICB0aGlzLnZhbGlkYXRlQ2F0YWxvZz8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICBpZiAoIXRoaXMudG9vbGJveE1lbnVTZXJ2aWNlLmlzVmFsaWRGb3JDYXRhbG9nKHRoaXMuY2F0YWxvZ0luZm8/Lm5hbWUpKSB7XG4gICAgICB0aGlzLmNhbmNlbD8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZT8ubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIGZvY3VzSW5wdXRDYXRhbG9nKCkge1xuICAgIHRoaXMuaW5wdXRDYXRhbG9nPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICB9XG5cbiAgZGlzYWJsZVZhbGlkYXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLnRvb2xib3hNZW51U2VydmljZS5pc1ZhbGlkRm9yQ2F0YWxvZyh0aGlzLmNhdGFsb2dJbmZvPy5uYW1lKSkge1xuICAgICAgdGhpcy5jcm9zc0NhdGFsb2c/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudDogRGF0YVNvdXJjZVtdKSB7XG4gICAgY29uc3QgaWRzID0gJGV2ZW50Lm1hcCgoZHMpID0+IGRzLmlkKTtcbiAgICBpZiAoSlNPTi5zdHJpbmdpZnkodGhpcy5zZWxlY3RlZERhdGFTb3VyY2VJZHMkLmdldFZhbHVlKCkpICE9PSBKU09OLnN0cmluZ2lmeShpZHMpKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0YVNvdXJjZUlkcyQubmV4dChpZHMpO1xuICAgIH1cbiAgfVxuXG4gIGlzR2VvKGRzOiBOYW1lZFF1ZXJ5IHwgRGF0YXNldCkge1xuICAgIHJldHVybiBkcy5tZXRhZGF0YT8uZmluZCgobSkgPT4gbS5tZXRhZGF0YURlZi5uYW1lID09PSBHZW9NZXRhZGF0YS5OQU1FU1BBQ0UpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgREVGQVVMVF9JQ09OX1VSTCA9IERFRkFVTFRfSUNPTl9VUkw7XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9wZW5TdWI/LnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgPGgyIGNsYXNzPVwiby13aWRnZXRfX2hlYWRlcl9fY29udGVudF9fdGl0bGVcIiAqbmdJZj1cIihtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlOyBlbHNlIHF1ZXJ5U2VsZWN0b3JcIj5cbiAgICAgIHt7IChtYW5pZmVzdCQgfCBhc3luYyk/LnRpdGxlIH19XG4gICAgPC9oMj5cbiAgICA8bmctdGVtcGxhdGUgI3F1ZXJ5U2VsZWN0b3I+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkcyBvZiB1c2VkRGF0YXNvdXJjZXMkIHwgYXN5bmNcIiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3F1ZXJ5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdJZj1cImRzLmlkIHwgdHJhbnNsYXRlSWQgOiB7IHR5cGU6ICdkYXRhc291cmNlJywgb3V0cHV0OiAnaWNvbicsIG5vRGVmYXVsdDogdHJ1ZSB9IHwgYXN5bmMgYXMgdXJsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbWcgW2hlaWdodF09XCIyMFwiIFtzcmNdPVwidXJsXCIgW3dpZHRoXT1cIjIwXCIgYWx0PVwiXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9faWNvblwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiPnt7IGRzLm5hbWUgfX08L2gzPlxuICAgICAgICA8aDMgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19xdWVyeV9fbmFtZVwiICpuZ0lmPVwiZGlzcGxheUNvdW50ICYmICFpc0dlbyhkcylcIj5cbiAgICAgICAgICAoe3sgW2RzLmlkXSB8IHJlc3VsdFNldFNpemUgfCBhc3luYyB9fSlcbiAgICAgICAgPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cIigodXNlZERhdGFzb3VyY2VzJCB8IGFzeW5jKSA/PyBbXSkubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJvLXdpZGdldF9faGVhZGVyX19jb250ZW50X19uby1kYXRhXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cIm8td2lkZ2V0X19oZWFkZXJfX2NvbnRlbnRfX3RpdGxlXCI+e3sgJ0Bwcnkud2lkZ2V0Lm5vRGF0YScgfCBpMThuIH19PC9oMj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXBcIiAqbmdJZj1cIiEobG9ja2VkVmlldyQgfCBhc3luYykgJiYgZGlzcGxheVNldHRpbmdzKGhlYWRlck9wdGlvbnMpXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBpZD1cImRpYWxvZ19NZW51XCJcbiAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51XCJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwidGhpcy5tZW51XCJcbiAgICAgICN0b2dnbGVQYW5lbFxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tbW9yZVwiXG4gICAgICAoY2xpY2spPVwibWVudU9wZW4oJGV2ZW50KVwiXG4gICAgPlxuICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMjVcIiBbd2lkdGhdPVwiMjVcIiBpY29uU3ZnPVwibW9yZV9ob3JpelwiPjwvcHJ5LWljb24+XG4gICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWN0aW9uLm9wZW5NZW51V2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheU1lbnU+XG4gIDxkaXYgY2xhc3M9XCJtLWNvbnRleHQtbWVudVwiPlxuICAgIDx1bFxuICAgICAgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdFwiXG4gICAgICAjbWVudUxpc3RcbiAgICAgIGlkPVwibWVudVwiXG4gICAgICByb2xlPVwibWVudVwiXG4gICAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2dfTWVudVwiXG4gICAgICAoa2V5ZG93bi5hcnJvd0Rvd24pPVwib25BcnJvd0Rvd24oKVwiXG4gICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm9uQXJyb3dVcCgpXCJcbiAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJtZW51T3BlbigpXCJcbiAgICA+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJtLWNvbnRleHQtbWVudV9fbGlzdF9faXRlbVwiXG4gICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgKm5nSWY9XCIobWFuaWZlc3QkIHwgYXN5bmMpPy5kYXRhc291cmNlICYmIGRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ2RhdGFzb3VyY2VTZWxlY3Rpb24nKVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIGlkPVwidG9nZ2xlQWN0aW9uc1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZURhdGFzb3VyY2VTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnZGFzaGJvYXJkJywgcGFnZTogJ3dpZGdldCcsIGFjdGlvbjogJ3NlbGVjdF9uYW1lZF9xdWVyeScgfVwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLXRvb2x0aXBcIlxuICAgICAgICAgIFthdHRyLmRhdGEtdG9vbHRpcF09XCInQHByeS53aWRnZXQudG9vbHRpcC5yZWFkU2VhcmNoJyB8IGkxOG5cIlxuICAgICAgICAgIGRhdGEtdG9vbHRpcC1wb3NpdGlvbj1cImJvdHRvbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxN1wiIFt3aWR0aF09XCIxN1wiIGljb25Tdmc9XCJzdGFjay1maWxsXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS53aWRnZXQudG9vbHRpcC5yZWFkU2VhcmNoJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cImRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ3BhcmFtZXRlcnMnKVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2xpPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ3dpbmRvdycpXCI+XG4gICAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdGb3I9XCJsZXQgdGFyZ2V0SW5kZXggb2YgdGFyZ2V0SW5kZXhlcyQgfCBhc3luY1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm1vdmVJbk5ld1dpbmRvdyhfd2lkZ2V0SW5kZXgsIHRhcmdldEluZGV4KVwiXG4gICAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cHJ5LWljb24gW2hlaWdodF09XCIxN1wiIFt3aWR0aF09XCIxN1wiIGljb25Tdmc9XCJsYXVuY2hcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgKHRhcmdldEluZGV4ICE9PSAtMSA/ICdAcHJ5LndpZGdldC50YXJnZXQuZXhpc3RpbmcnIDogJ0Bwcnkud2lkZ2V0LnRhcmdldC5uZXcnKVxuICAgICAgICAgICAgICAgIHwgaTE4biA6IHsgdGFyZ2V0SW5kZXg6IHRoaXMudGFyZ2V0SW5kZXggKyAxIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cImhhc0dyaWQgJiYgZGlzcGxheU9wdGlvbihoZWFkZXJPcHRpb25zLCAnY2hhbmdlU3BvdCcpXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDaGFuZ2VTcG90KClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS10b29sdGlwXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuY2hhbmdlU3BvdCcgfCBpMThuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cIm1vdmVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuPnt7ICdAcHJ5LndpZGdldC50b29sdGlwLmNoYW5nZVNwb3QnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2xpPlxuICAgICAgPGxpIGNsYXNzPVwibS1jb250ZXh0LW1lbnVfX2xpc3RfX2l0ZW1cIiByb2xlPVwibm9uZVwiICpuZ0lmPVwiZGlzcGxheU9wdGlvbihoZWFkZXJPcHRpb25zLCAnbWF4aW1pemUnKVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAoY2xpY2spPVwibWF4aW1pemUoX3dpZGdldEluZGV4KVwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0blwiXG4gICAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm1lbnVPcGVuKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBpY29uU3ZnPVwiZnVsbHNjcmVlblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgJ0Bwcnkud2lkZ2V0LnRhcmdldC5tYXhpbWl6ZScgfCBpMThuIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cImRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ2FkZFRvQ2F0YWxvZycpXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS10b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuY2F0YWxvZ1dpZGdldCcgfCBpMThuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImxpYnJhcnlfYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyAnQHByeS53aWRnZXQudG9vbHRpcC5jYXRhbG9nV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdJZj1cImRpc3BsYXlPcHRpb24oaGVhZGVyT3B0aW9ucywgJ2RlbGV0ZScpXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVSZW1vdmVDb25maXJtKCRldmVudClcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS10b29sdGlwXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLXRvb2x0aXBdPVwiJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuZGVsZXRlV2lkZ2V0JyB8IGkxOG5cIlxuICAgICAgICAgIChrZXlkb3duLnRhYik9XCJtZW51T3BlbigpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwcnktaWNvbiBbaGVpZ2h0XT1cIjE3XCIgW3dpZHRoXT1cIjE3XCIgaWNvblN2Zz1cImRlbGV0ZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuZGVsZXRlV2lkZ2V0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cIm0tY29udGV4dC1tZW51X19saXN0X19pdGVtXCIgcm9sZT1cIm5vbmVcIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFkZGl0aW9uYWxPcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImEtYnRuXCJcbiAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgIChjbGljayk9XCJleGVjdXRlQWN0aW9uKG9wdGlvbilcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0FjdGlvbkRpc2FibGVkKG9wdGlvbilcIlxuICAgICAgICA+XG4gICAgICAgICAgPHByeS1pY29uIFtoZWlnaHRdPVwiMTdcIiBbd2lkdGhdPVwiMTdcIiBbaWNvblN2Z109XCJvcHRpb24uaWNvblwiPjwvcHJ5LWljb24+XG4gICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgaTE4biB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbGk+XG4gICAgPC91bD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RlbXBsYXRlTW9kYWw+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm8tbW9kYWxcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJjYW5jZWxSZW1vdmVDb25maXJtKClcIlxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJkaWFsb2cgY29uZmlybSBkZWxldGUgcHJlc2VudGF0aW9uXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIiBpZD1cImRpYWxvZ190aXRsZVwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5tb2RhbFRpdGxlJyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAjY3Jvc3MgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbFJlbW92ZUNvbmZpcm0oKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImNvbmZpcm1SZW1vdmUoKVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiAoa2V5ZG93bi50YWIpPVwiZm9jdXNDcm9zc0VsZW1lbnQoKVwiPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LnZhbGlkYXRlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxwcnktZGF0YXNvdXJjZS1zZWxlY3RvclxuICAgIChjYW5jZWwpPVwidG9nZ2xlRGF0YXNvdXJjZVNlbGVjdGlvbigpXCJcbiAgICAodmFsaWRhdGVkKT1cImVtaXRNYW5pZmVzdCgpXCJcbiAgICAobmV4dFRhYik9XCJmb2N1c0lucHV0Q2F0YWxvZygpXCJcbiAgICAocHJldmlvdXNUYWIpPVwiZm9jdXNWYWxpZGF0aW9uKClcIlxuICAgIChkYXRhc291cmNlc0NoYW5nZWQpPVwiZGF0YXNvdXJjZXNDaGFuZ2VkKCRldmVudClcIlxuICAgIFtkYXRhc291cmNlSWRzXT1cIihzZWxlY3RlZERhdGFTb3VyY2VJZHMkIHwgYXN5bmMpID8/IFtdXCJcbiAgPjwvcHJ5LWRhdGFzb3VyY2Utc2VsZWN0b3I+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDYXRhbG9nPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJvLW1vZGFsXCJcbiAgICByb2xlPVwiZGlhbG9nXCJcbiAgICBhcmlhLW1vZGFsPVwidHJ1ZVwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZGlhbG9nX0NhdGFsb2dcIlxuICAgIChrZXlkb3duLmVzY2FwZSk9XCJ0b2dnbGVDYXRhbG9nKClcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiPlxuICAgICAgICAgIHt7ICdAcHJ5LndpZGdldC5kZWZpbmVDYXRhbG9nJyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiXG4gICAgICAgICAgKGtleWRvd24uc2hpZnQudGFiKT1cImZvY3VzVmFsaWRhdGlvbigpXCJcbiAgICAgICAgICAjY3Jvc3NDYXRhbG9nXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhdGFsb2coKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibmFtZVwiPnt7ICdAcHJ5LnRvb2xib3guY2F0YWxvZy5sYWJlbCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImNhdGFsb2dJbmZvLm5hbWVcIiBpZD1cIm5hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgcmVxdWlyZWQgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiZGVzY3JpcHRpb25cIj57eyAnQHByeS50b29sYm94LmNhdGFsb2cuZGVzY3JpcHRpb24nIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJjYXRhbG9nSW5mby5kZXNjcmlwdGlvblwiIGlkPVwiZGVzY3JpcHRpb25cIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgcmVxdWlyZWQgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICA8cHJ5LXNlbGVjdC1pbWFnZVxuICAgICAgICBbaWNvblVybF09XCJjYXRhbG9nSW5mby5pbWFnZVwiXG4gICAgICAgIChjaGFuZ2VkKT1cImNhdGFsb2dJbmZvLmltYWdlID0gJGV2ZW50XCJcbiAgICAgICAgW21vZGVdPVwidHlwZVwiXG4gICAgICA+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUNhdGFsb2coKVwiXG4gICAgICAgICNjYW5jZWxcbiAgICAgICAgKGtleWRvd24udGFiKT1cImRpc2FibGVWYWxpZGF0aW9uKClcIlxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgPlxuICAgICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgI3ZhbGlkYXRlQ2F0YWxvZ1xuICAgICAgICAoY2xpY2spPVwiY29uZmlybUNhdGFsb2coKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhdG9vbGJveE1lbnVTZXJ2aWNlLmlzVmFsaWRGb3JDYXRhbG9nKGNhdGFsb2dJbmZvLm5hbWUpXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgIChrZXlkb3duLnRhYik9XCJmb2N1c0Nyb3NzRWxlbWVudCgpXCJcbiAgICAgID5cbiAgICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC52YWxpZGF0ZScgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlTcG90PlxuICA8ZGl2IGNsYXNzPVwiby1tb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX3RpdGxlXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImEtaDJcIj5cbiAgICAgICAgICB7eyAnQHByeS53aWRnZXQudG9vbHRpcC5jaGFuZ2VTcG90JyB8IGkxOG4gfX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fY2xvc2VcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwidG9nZ2xlQ2hhbmdlU3BvdCgpXCI+XG4gICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiIFtoZWlnaHRdPVwiMzVcIiBbd2lkdGhdPVwiMzVcIj48L3ByeS1pY29uPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS50b29sYm94LmNsb3NlJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcGxhY2Ugb2YgcGxhY2VzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudFBsYWNlbWVudEluZGV4ICE9PSBpXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG5cIiAoY2xpY2spPVwibW92ZVRvUGxhY2UocGxhY2UpXCI+XG4gICAgICAgICAgPHNwYW4+e3sgJ0Bwcnkud2lkZ2V0LnRvb2x0aXAuc3BvdE5hbWUnIHwgaTE4biA6IHsgcGxhY2U6IGkgKyAxIH0gfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -15,7 +15,6 @@ export const DashboardActions = {
15
15
  updateManifest: createAction('[Dashboard] (bus) updating manifest', props()),
16
16
  updateManifestAfterFetch: createAction('[Dashboard] (bus) updating manifest after fetch', props()),
17
17
  updateManifestWithoutActivation: createAction('[Dashboard] (bus) updating manifest but do not activate it', props()),
18
- updateManifestAfterResize: createAction('[Dashboard] (bus) updating manifest after resize', props()),
19
18
  updateManifestAfterTenantJoin: createAction('[Dashboard] (bus) updating manifest after tenant join', props()),
20
19
  updateManifestAfterTenantLeave: createAction('[Dashboard] (bus) updating manifest after tenant leave', props()),
21
20
  selectPresentation: createAction('[Dashboard] (bus) selectPresentation', props()),
@@ -85,4 +84,4 @@ export const DashboardActions = {
85
84
  triggerAggregate: createAction('[Dashboard] (bus) Triggering aggregates for datasource', props()),
86
85
  loadPresentation: createAction('[Dashboard] load presentation', props())
87
86
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBK0JsRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0lBQ25CLGlDQUFxQixDQUFBO0lBQ3JCLCtCQUFtQixDQUFBO0lBQ25CLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFSVyxRQUFRLEtBQVIsUUFBUSxRQVFuQjtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3JFLEtBQUssRUFBRSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3JFLGNBQWMsRUFBRSxZQUFZLENBQzFCLHFDQUFxQyxFQUNyQyxLQUFLLEVBT0QsQ0FDTDtJQUNELHdCQUF3QixFQUFFLFlBQVksQ0FDcEMsaURBQWlELEVBQ2pELEtBQUssRUFPRCxDQUNMO0lBQ0QsK0JBQStCLEVBQUUsWUFBWSxDQUMzQyw0REFBNEQsRUFDNUQsS0FBSyxFQU9ELENBQ0w7SUFDRCx5QkFBeUIsRUFBRSxZQUFZLENBQ3JDLGtEQUFrRCxFQUNsRCxLQUFLLEVBT0QsQ0FDTDtJQUNELDZCQUE2QixFQUFFLFlBQVksQ0FDekMsdURBQXVELEVBQ3ZELEtBQUssRUFTRCxDQUNMO0lBQ0QsOEJBQThCLEVBQUUsWUFBWSxDQUMxQyx3REFBd0QsRUFDeEQs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QVksRUFBRSxZQUFZLENBQUMsaURBQWlELEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ3RHLGFBQWEsRUFBRSxZQUFZLENBQUMsa0NBQWtDLENBQUM7SUFDL0QsaUJBQWlCLEVBQUUsWUFBWSxDQUM3Qix1Q0FBdUMsRUFDdkMsS0FBSyxFQUFvRCxDQUMxRDtJQUNELG9CQUFvQixFQUFFLFlBQVksQ0FBQywyQ0FBMkMsQ0FBQztJQUMvRSxlQUFlLEVBQUUsWUFBWSxDQUFDLDZEQUE2RCxDQUFDO0lBQzVGLGdCQUFnQixFQUFFLFlBQVksQ0FBQyx1Q0FBdUMsQ0FBQztJQUN2RSxjQUFjLEVBQUUsWUFBWSxDQUMxQixxQ0FBcUMsRUFDckMsS0FBSyxFQUEwRCxDQUNoRTtJQUNELGNBQWMsRUFBRSxZQUFZLENBQUMscUNBQXFDLEVBQUUsS0FBSyxFQUFxQixDQUFDO0lBQy9GLG9CQUFvQixFQUFFLFlBQVksQ0FDaEMsMEVBQTBFLEVBQzFFLEtBQUssRUFBc0QsQ0FDNUQ7SUFDRCxhQUFhLEVBQUUsWUFBWSxDQUFDLGlDQUFpQyxFQUFFLEtBQUssRUFBb0MsQ0FBQztJQUN6RyxnQkFBZ0IsRUFBRSxZQUFZLENBQzVCLG1DQUFtQyxFQUNuQyxLQUFLLEVBQStELENBQ3JFO0lBQ0QsbUJBQW1CLEVBQUUsWUFBWSxDQUMvQixtQ0FBbUMsRUFDbkMsS0FBSyxFQUFpRSxDQUN2RTtJQUNELHNCQUFzQixFQUFFLFlBQVksQ0FDbEMsc0NBQXNDLEVBQ3RDLEtBQUssRUFBa0QsQ0FDeEQ7SUFDRCxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsd0RBQXdELEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ2pILGdCQUFnQixFQUFFLFlBQVksQ0FDNUIsK0JBQStCLEVBQy9CLEtBQUssRUFBNkQsQ0FDbkU7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IFByeVZpc2liaWxpdHkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbXBvbmVudHMvc2hhcmUvc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgUHJ5U25hY2tNZXNzYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9jb21wb25lbnRzL3NuYWNrYmFyL3NuYWNrLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXNwbGF5T3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvZGlzcGxheS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2ZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkTWFuaWZlc3QsXG4gIEdsb2JhbE1hbmlmZXN0LFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBXaWRnZXRNYW5pZmVzdFxufSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL21hbmlmZXN0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVsYXRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IE9yZGVyVmFsdWUgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3Jlc3VsdC1vcmRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVzdWx0U2V0LCBSZXN1bHRTZXRzIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtc2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB9IGZyb20gJy4vd21zLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBEYXNoYm9hcmRDZWxsUGFyYW1zID0ge1xuICBncmlkV2lkdGg6IG51bWJlcjtcbiAgZ3JpZEhlaWdodDogbnVtYmVyO1xuICBncmlkR2FwOiBudW1iZXI7XG4gIGNvbHVtbnM6IG51bWJlcjtcbiAgY2VsbEhlaWdodDogbnVtYmVyO1xuICByb3dzOiBudW1iZXI7XG4gIGNlbGxXaWR0aDogbnVtYmVyO1xuICBvZmZzZXRMZWZ0OiBudW1iZXI7XG4gIG9mZnNldFRvcDogbnVtYmVyO1xuICBtb2JpbGVNb2RlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGVudW0gVmlld01vZGUge1xuICBDQVRBTE9HID0gJ2NhdGFsb2cnLFxuICBDT05TVUxUID0gJ2NvbnN1bHQnLFxuICBDUkVBVElPTiA9ICdjcmVhdGlvbicsXG4gIEVESVRJT04gPSAnZWRpdGlvbicsXG4gIEVESVRPUiA9ICdlZGl0b3InLFxuICBTRUFSQ0ggPSAnc2VhcmNoJyxcbiAgQ1VTVE9NID0gJ2N1c3RvbSdcbn1cblxuZXhwb3J0IGNvbnN0IERhc2hib2FyZEFjdGlvbnMgPSB7XG4gIGpvaW46IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gam9pbmVkJywgcHJvcHM8eyBzZW5kZXI6IHN0cmluZyB9PigpKSxcbiAgbGVhdmU6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gbGVhdmUnLCBwcm9wczx7IHNlbmRlcjogc3RyaW5nIH0+KCkpLFxuICB1cGRhdGVNYW5pZmVzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGluZyBtYW5pZmVzdCcsXG4gICAgcHJvcHM8e1xuICAgICAgdGVuYW50cz86IHN0cmluZ1tdO1xuICAgICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgICAgcmVzdWx0U2V0cz86IFJlc3VsdFNldHM7XG4gICAgICBqb2luaW5nPzogYm9vbGVhbjtcbiAgICAgIG1hbmlmZXN0SWQ/OiBzdHJpbmc7XG4gICAgICBzZWxlY3RlZElkczogc3RyaW5nW107XG4gICAgfT4oKVxuICApLFxuICB1cGRhdGVNYW5pZmVzdEFmdGVyRmV0Y2g6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRpbmcgbWFuaWZlc3QgYWZ0ZXIgZmV0Y2gnLFxuICAgIHByb3BzPHtcbiAgICAgIHRlbmFudHM/OiBzdHJpbmdbXTtcbiAgICAgIG1hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICAgIHJlc3VsdFNldHM/OiBSZXN1bHRTZXRzO1xuICAgICAgam9pbmluZz86IGJvb2xlYW47XG4gICAgICBtYW5pZmVzdElkPzogc3RyaW5nO1xuICAgICAgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAgIH0+KClcbiAgKSxcbiAgdXBkYXRlTWFuaWZlc3RXaXRob3V0QWN0aXZhdGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGluZyBtYW5pZmVzdCBidXQgZG8gbm90IGFjdGl2YXRlIGl0JyxcbiAgICBwcm9wczx7XG4gICAgICB0ZW5hbnRzPzogc3RyaW5nW107XG4gICAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgICByZXN1bHRTZXRzPzogUmVzdWx0U2V0cztcbiAgICAgIGpvaW5pbmc/OiBib29sZWFuO1xuICAgICAgbWFuaWZlc3RJZD86IHN0cmluZztcbiAgICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgICB9PigpXG4gICksXG4gIHVwZGF0ZU1hbmlmZXN0QWZ0ZXJSZXNpemU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRpbmcgbWFuaWZlc3QgYWZ0ZXIgcmVzaXplJyxcbiAgICBwcm9wczx7XG4gICAgICB0ZW5hbnRzPzogc3RyaW5nW107XG4gICAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgICByZXN1bHRTZXRzPzogUmVzdWx0U2V0cztcbiAgICAgIGpvaW5pbmc/OiBib29sZWFuO1xuICAgICAgbWFuaWZlc3RJZD86IHN0cmluZztcbiAgICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgICB9PigpXG4gICksXG4gIHVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRKb2luOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0aW5nIG1hbmlmZXN0IGFmdGVyIHRlbmFudCBqb2luJyxcbiAgICBwcm9wczx7XG4gICAgICB0ZW5hbnRzPzogc3RyaW5nW107XG4gICAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgICByZXN1bHRTZXRzPzogUmVzdWx0U2V0cztcbiAgICAgIGpvaW5pbmc/OiBib29sZWFuO1xuICAgICAgbWFuaWZlc3RJZD86IHN0cmluZztcbiAgICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgICAgIHByZXNlbnRhdGlvbj86IHsgY3VycmVudD86IE1hbmlmZXN0RGVzY3JpcHRpb247IGluaXRpYWw/OiBHbG9iYWxNYW5pZmVzdDsgdmlld01vZGU/OiBWaWV3TW9kZSB9O1xuICAgICAgZGlzcGxheT86IERpc3BsYXlPcHRpb25zO1xuICAgIH0+KClcbiAgKSxcbiAgdXBkYXRlTWFuaWZlc3RBZnRlclRlbmFudExlYXZlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0aW5nIG1hbmlmZXN0IGFmdGVyIHRlbmFudCBsZWF2ZScsXG4gICAgcHJvcHM8e1xuICAgICAgdGVuYW50cz86IHN0cmluZ1tdO1xuICAgICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgICAgcmVzdWx0U2V0cz86IFJlc3VsdFNldHM7XG4gICAgICBqb2luaW5nPzogYm9vbGVhbjtcbiAgICAgIG1hbmlmZXN0SWQ/OiBzdHJpbmc7XG4gICAgICBzZWxlY3RlZElkczogc3RyaW5nW107XG4gICAgfT4oKVxuICApLFxuICBzZWxlY3RQcmVzZW50YXRpb246IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgc2VsZWN0UHJlc2VudGF0aW9uJyxcbiAgICBwcm9wczx7XG4gICAgICBwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICAgICB2aWV3TW9kZT86IFZpZXdNb2RlO1xuICAgIH0+KClcbiAgKSxcbiAgc2V0SW5pdGlhbFByZXNlbnRhdGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSBzZXQgaW5pdGlhbCBwcmVzZW50YXRpb24nLFxuICAgIHByb3BzPHtcbiAgICAgIGluaXRpYWw/OiBHbG9iYWxNYW5pZmVzdDtcbiAgICB9PigpXG4gICksXG4gIGRlY2xhcmVTZW5kZXJJZDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBzZWxmLXVwZGF0aW5nIG1hbmlmZXN0JywgcHJvcHM8eyB0ZW5hbnRzOiBzdHJpbmdbXTsgc2VuZGVyOiBzdHJpbmcgfT4oKSksXG4gIHVwZGF0ZURhc2hib2FyZE1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIHVwZGF0aW5nIGRhc2hib2FyZCB2aWV3JyxcbiAgICBwcm9wczx7IG1hbmlmZXN0OiBEYXNoYm9hcmRNYW5pZmVzdCB9PigpXG4gICksXG4gIHVwZGF0ZVdpZGdldE1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIHVwZGF0aW5nIHdpZGdldCB2aWV3JyxcbiAgICBwcm9wczx7IG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdDsgaW5kZXg6IG51bWJlciB9PigpXG4gICksXG4gIGFkZFdpZGdldFRvUHJlc2VudGF0aW9uOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIGFkZCB3aWRnZXQgdG8gcHJlc2VudGF0aW9uJyxcbiAgICBwcm9wczx7IGlkPzogc3RyaW5nIHwgc3RyaW5nW107IHdpZGdldFR5cGU6IHN0cmluZzsgYWRkaXRpb25hbE9wdGlvbnM/OiBhbnk7IGFsZXJ0PzogYm9vbGVhbiB9PigpXG4gICksXG4gIHVwZGF0ZVdpZGdldEluUHJlc2VudGF0aW9uOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIHVwZGF0ZSB3aWRnZXQgaW4gcHJlc2VudGF0aW9uJyxcbiAgICBwcm9wczx7IGlkPzogc3RyaW5nIHwgc3RyaW5nW107IHdpZGdldFR5cGU6IHN0cmluZzsgYWRkaXRpb25hbE9wdGlvbnM/OiBhbnkgfT4oKVxuICApLFxuICByZXF1ZXN0QWxsUm91dGVzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHJlcXVlc3Rpbmcgcm91dGUgdXBkYXRlJyksXG4gIHVwZGF0ZVJvdXRlTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRpbmcgcm91dGUnLCBwcm9wczx7IHNlbmRlcj86IHN0cmluZzsgcm91dGU6IHN0cmluZyB9PigpKSxcbiAgZmV0Y2hNYW5pZmVzdHNMaXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGZldGNoaW5nIGF2YWlsYWJsZSBtYW5pZmVzdHMnKSxcbiAgc2V0UmVmcmVzaFJhdGU6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgc2V0dGluZyByZWZyZXNoUmF0ZScsIHByb3BzPHsgaWQ6IHN0cmluZzsgcmF0ZTogbnVtYmVyIH0+KCkpLFxuICB1cGRhdGVNYW5pZmVzdHNMaXN0OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHJlY2VpdmVkIG1hbmlmZXN0cyBsaXN0JyxcbiAgICBwcm9wczx7IG1hbmlmZXN0czogTWFuaWZlc3REZXNjcmlwdGlvbltdIH0+KClcbiAgKSxcbiAgZmV0Y2hTdGF0aWNNYW5pZmVzdDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBmZXRjaGluZyBzdGF0aWNNYW5pZmVzdCcsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgZW5kTG9hZGluZzogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBlbmQgbG9hZGluZycpLFxuICB1cGRhdGVTdGF0aWNNYW5pZmVzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSByZWNlaXZlZCBzdGF0aWNNYW5pZmVzdCcsXG4gICAgcHJvcHM8eyBzdGF0aWNNYW5pZmVzdDogR2xvYmFsTWFuaWZlc3QgfT4oKVxuICApLFxuICBsb2FkTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgbG9hZCBtYW5pZmVzdCcsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgbG9hZEFuZEFjdGl2YXRlTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgbG9hZCBhbmQgYWN0aXZhdGUgbWFuaWZlc3QnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGRvd25sb2FkTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gZG93bmxvYWQgbWFuaWZlc3QnLCBwcm9wczx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9PigpKSxcbiAgY29uZmlybU1hbmlmZXN0RGVsZXRpb246IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gY29uZmlybSBtYW5pZmVzdCBkZWxldGlvbicsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgZGVsZXRlTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gZGVsZXRpbmcgbWFuaWZlc3QnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIHNhdmVNYW5pZmVzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSBzYXZlIG1hbmlmZXN0JyxcbiAgICBwcm9wczx7XG4gICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICBtYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICAgICAgaWQ6IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgaW1hZ2U/OiBzdHJpbmc7XG4gICAgICB2aXNpYmlsaXR5PzogUHJ5VmlzaWJpbGl0eTtcbiAgICAgIGNvdmVyPzogYm9vbGVhbjtcbiAgICAgIG1ldGFkYXRhPzogeyBtZXRhZGF0YURlZklkOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdO1xuICAgIH0+KClcbiAgKSxcbiAgc29sdmVDb2xsaXNpb25zOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIHNvbHZpbmcgY29sbGlzaW9ucycpLFxuICBjbGVhck1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGNsZWFyIG1hbmlmZXN0JyksXG4gIGZvbGxvd01hbmlmZXN0Um91dGU6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgZm9sbG93IG1hbmlmZXN0IHJvdXRlJyksXG4gIG1vdmVXaWRnZXQ6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gbW92aW5nIHdpZGdldCcsIHByb3BzPHsgd2lkZ2V0SW5kZXg6IG51bWJlcjsgdGFyZ2V0SW5kZXg6IG51bWJlciB9PigpKSxcbiAgbWF4aW1pemVXaWRnZXQ6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gbWF4aW1pemUgd2lkZ2V0JywgcHJvcHM8eyB3aWRnZXRJbmRleDogbnVtYmVyIH0+KCkpLFxuICBhc3NlcnRSZXN1bHRTZXRzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIHJlcXVlc3QgcmVzdWx0U2V0IGlmIG5vdCBwcmVzZW50IG9yIHBhcmFtcyBjaGFuZ2VkJyxcbiAgICBwcm9wczx7IGlkPzogc3RyaW5nIH0+KClcbiAgKSxcbiAgdXBkYXRlUmVzdWx0U2V0OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHJlY2VpdmVkIG5hbWVkIHJlc3VsdFNldCcsXG4gICAgcHJvcHM8eyBpZDogc3RyaW5nOyByZXN1bHRTZXQ6IFJlc3VsdFNldDsgcGFyYW1zPzogc3RyaW5nIH0+KClcbiAgKSxcbiAgYWRkUmVsYXRpb25zVG9SZXN1bHRTZXRzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIGFkZCByZWxhdGlvbnMgdG8gcmVzdWx0U2V0JyxcbiAgICBwcm9wczx7IHJlbGF0aW9uczogUmVsYXRpb25bXSB9PigpXG4gICksXG4gIGFkZEl0ZW1Ub1Jlc3VsdFNldHM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgYWRkIGl0ZW0gdG8gcmVzdWx0U2V0JyxcbiAgICBwcm9wczx7IGl0ZW06IEl0ZW07IHJlc3VsdFNldD86IHN0cmluZyB9PigpXG4gICksXG4gIHN0YXJ0aW5nTWlzc2luZ1ZpZXdzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIG9wZW5pbmcgbWlzc2luZyB2aWV3cyBmb3IgbWFuaWZlc3QnKSxcbiAgc2V0QXZhaWxhYmxlTmFtZWRRdWVyaWVzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHNldCBhdmFpbGFibGUgcnMgbmFtZXMnLCBwcm9wczx7IG5hbWVzOiBzdHJpbmdbXSB9PigpKSxcbiAgc2V0RGVmYXVsdERhdGFzb3VyY2U6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gc2V0IGN1cnJlbnQgcnMgbmFtZScsIHByb3BzPHsgbmFtZXM6IHN0cmluZ1tdIH0+KCkpLFxuICB1cGRhdGVEYXNoYm9hcmRQYXJhbXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gc2V0IGRhc2hib2FyZCBjZWxsIHBhcmFtcycsXG4gICAgcHJvcHM8eyBwYXJhbXM6IFBhcnRpYWw8RGFzaGJvYXJkQ2VsbFBhcmFtcz4gfT4oKVxuICApLFxuICB0b2dnbGVFZGl0aW9uTW9kZTogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSB0b2dnbGUgZWRpdGlvbiBtb2RlJywgcHJvcHM8eyBmb3JjZT86IGJvb2xlYW4gfT4oKSksXG4gIHNlbGVjdDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBzZWxlY3QgaXRlbScsIHByb3BzPHsgaWQ6IHN0cmluZzsgY3VtdWxhdGl2ZTogYm9vbGVhbiB9PigpKSxcbiAgc2VsZWN0TWFueTogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBzZWxlY3QgaXRlbXMnLCBwcm9wczx7IGlkczogc3RyaW5nW10gfT4oKSksXG4gIGludmVydFNlbGVjdGlvbjogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBpbnZlcnQgc2VsZWN0aW9uJyksXG4gIGZldGNoT2JqZWN0c0RldGFpbHM6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gZmV0Y2ggb2JqZWN0cyBkZXRhaWxzJywgcHJvcHM8eyBpZHM6IHN0cmluZ1tdIH0+KCkpLFxuICB1cGRhdGVPYmplY3RzRGV0YWlsczogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGUgb2JqZWN0cyBkZXRhaWxzJyxcbiAgICBwcm9wczx7IGxpc3Q6IHsgW2lkOiBzdHJpbmddOiBJdGVtIH0gfT4oKVxuICApLFxuICBleHBsb3JlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGlzb2xhdGUgaW4gZGF0YSBzZXQnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGRldGFpbDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBhZGQgZGV0YWlsIHZpZXcnLCBwcm9wczx7IGlkczogc3RyaW5nW10gfT4oKSksXG4gIHByb3hpbWl0eTogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBwcm94aW1pdHkgc2VhcmNoJywgcHJvcHM8eyBpZDogc3RyaW5nOyB0YXJnZXRSZXN1bHRTZXQ6IHN0cmluZyB9PigpKSxcbiAgbXVsdGlTbmFja0JhcjogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBkaXNwbGF5IHNuYWNrIG1lc3NhZ2UnLCBwcm9wczx7IG1lc3NhZ2U6IFByeVNuYWNrTWVzc2FnZSB9PigpKSxcbiAgcXVpY2tPcmRlcjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSBxdWljayBvcmRlcicsXG4gICAgcHJvcHM8eyBkYXRhc291cmNlSWQ6IHN0cmluZzsgYXR0cmlidXRlOiBzdHJpbmc7IGFzYzogT3JkZXJWYWx1ZSB9PigpXG4gICksXG4gIHNldEdyaWRMYXlvdXQ6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gc2V0IGdyaWQgbGF5b3V0JywgcHJvcHM8eyBsYXlvdXQ6IERhc2hib2FyZEdyaWRMYXlvdXQgfT4oKSksXG4gIHByb3BhZ2F0ZUdyaWRMYXlvdXQ6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgY2hhbmdlIGdyaWQgbGF5b3V0JyxcbiAgICBwcm9wczx7IG1hbmlmZXN0OiBEYXNoYm9hcmRNYW5pZmVzdDsgcmFuazogbnVtYmVyIH0+KClcbiAgKSxcbiAgY3JlYXRlVGFiOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGNyZWF0ZSBuZXcgdGFiJyksXG4gIHJlc3RvcmVJbml0aWFsTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgcmVzdG9yaW5nIG1pc3NpbmcgdGFicycpLFxuICBzZXRGaWx0ZXJzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHNldCBkYXRhc291cmNlIGZpbHRlcnMnLCBwcm9wczx7IGZpbHRlcnM6IEZpbHRlcltdIH0+KCkpLFxuICB1cGRhdGVGaWx0ZXJzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0ZSBkYXRhc291cmNlIGZpbHRlcnMnLCBwcm9wczx7IGZpbHRlcjogRmlsdGVyIH0+KCkpLFxuICByZW1vdmVGaWx0ZXI6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgcmVtb3ZlIGZpbHRlciBpbiBwcmVzZW50YXRpb24nLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIHJlbW92ZUZpbHRlcnM6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgcmVtb3ZlIGZpbHRlcnMnKSxcbiAgdXBkYXRlRmlsdGVyVmFsdWU6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRlIGZpbHRlciB2YWx1ZScsXG4gICAgcHJvcHM8eyBpZDogc3RyaW5nOyB2YWx1ZTogYW55OyBkYXRhc291cmNlSWQ6IHN0cmluZyB9PigpXG4gICksXG4gIGNsZWFyQWxsRmlsdGVyVmFsdWVzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGNsZWFyIGFsbCBmaWx0ZXIgdmFsdWVzJyksXG4gIGRpc3BhdGNoRmlsdGVyczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBhcHBseSBmaWx0ZXJzIHRvIHByZXNlbnRhdGlvbiBkYXRhc291cmNlcycpLFxuICByZXNldFdtc0ZlYXR1cmVzOiBjcmVhdGVBY3Rpb24oJ1tXaWRnZXQgbWFwXSBSZXNldCBXbXMgbGF5ZXIgZmVhdHVyZXMnKSxcbiAgZ2V0V21zRmVhdHVyZXM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1dpZGdldCBtYXBdIEdldCBXbXMgbGF5ZXIgZmVhdHVyZXMnLFxuICAgIHByb3BzPHsgdXJsOiBzdHJpbmc7IG9DbGFzczogc3RyaW5nOyBjb29yZGluYXRlczogbnVtYmVyW10gfT4oKVxuICApLFxuICBhZGRXbXNGZWF0dXJlczogY3JlYXRlQWN0aW9uKCdbV2lkZ2V0IG1hcF0gU2V0IFdtcyBsYXllciBmZWF0dXJlcycsIHByb3BzPHsgZmVhdHVyZXM6IGFueSB9PigpKSxcbiAgdXBkYXRlRGlzcGxheU9wdGlvbnM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZC9EaXNwbGF5XSAoYnVzKSBVcGRhdGUgZGlzcGxheWVkIGRhc2hib2FyZCBtYW5hZ2VtZW50IGZlYXR1cmVzJyxcbiAgICBwcm9wczx7IG1vZGU6IFZpZXdNb2RlOyBjdXN0b21EaXNwbGF5PzogRGlzcGxheU9wdGlvbnMgfT4oKVxuICApLFxuICBnZXRDYXBhYmlsaXR5OiBjcmVhdGVBY3Rpb24oJ1tXaWRnZXQgbWFwXSBHZXQgV21zIGNhcGFiaWxpdHknLCBwcm9wczx7IHVybDogc3RyaW5nOyBmb3JjZT86IGJvb2xlYW4gfT4oKSksXG4gIHVwZGF0ZUNhcGFiaWxpdHk6IGNyZWF0ZUFjdGlvbihcbiAgICAnW1dpZGdldCBtYXBdIFN0b3JlIFdtcyBjYXBhYmlsaXR5JyxcbiAgICBwcm9wczx7IHVybDogc3RyaW5nOyBjYXBhYmlsaXR5OiBHZXRDYXBhYmlsaXRpZXNSZXNwb25zZSB8IG51bGwgfT4oKVxuICApLFxuICBhZGRNYW5pZmVzdE1ldGFkYXRhOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIEFkZCBtYW5pZmVzdCBtZXRhZGF0YScsXG4gICAgcHJvcHM8eyBwcmVzZW50YXRpb25JZDogc3RyaW5nOyBtZXRhZGF0YUlkOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfT4oKVxuICApLFxuICBkZWxldGVNYW5pZmVzdE1ldGFkYXRhOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIERlbGV0ZSBtYW5pZmVzdCBtZXRhZGF0YScsXG4gICAgcHJvcHM8eyBwcmVzZW50YXRpb25JZDogc3RyaW5nOyBtZXRhZGF0YUlkOiBzdHJpbmcgfT4oKVxuICApLFxuICB0cmlnZ2VyQWdncmVnYXRlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIFRyaWdnZXJpbmcgYWdncmVnYXRlcyBmb3IgZGF0YXNvdXJjZScsIHByb3BzPHsgaWQ6IHN0cmluZyB9PigpKSxcbiAgbG9hZFByZXNlbnRhdGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSBsb2FkIHByZXNlbnRhdGlvbicsXG4gICAgcHJvcHM8eyBwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb247IHZpZXdNb2RlOiBWaWV3TW9kZSB9PigpXG4gIClcbn07XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvZGFzaGJvYXJkL3N0b3JlL2Rhc2hib2FyZC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBK0JsRCxNQUFNLENBQU4sSUFBWSxRQVFYO0FBUkQsV0FBWSxRQUFRO0lBQ2xCLCtCQUFtQixDQUFBO0lBQ25CLCtCQUFtQixDQUFBO0lBQ25CLGlDQUFxQixDQUFBO0lBQ3JCLCtCQUFtQixDQUFBO0lBQ25CLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0FBQ25CLENBQUMsRUFSVyxRQUFRLEtBQVIsUUFBUSxRQVFuQjtBQUVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCLElBQUksRUFBRSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3JFLEtBQUssRUFBRSxZQUFZLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxFQUFzQixDQUFDO0lBQ3JFLGNBQWMsRUFBRSxZQUFZLENBQzFCLHFDQUFxQyxFQUNyQyxLQUFLLEVBT0QsQ0FDTDtJQUNELHdCQUF3QixFQUFFLFlBQVksQ0FDcEMsaURBQWlELEVBQ2pELEtBQUssRUFPRCxDQUNMO0lBQ0QsK0JBQStCLEVBQUUsWUFBWSxDQUMzQyw0REFBNEQsRUFDNUQsS0FBSyxFQU9ELENBQ0w7SUFDRCw2QkFBNkIsRUFBRSxZQUFZLENBQ3pDLHVEQUF1RCxFQUN2RCxLQUFLLEVBU0QsQ0FDTDtJQUNELDhCQUE4QixFQUFFLFlBQVksQ0FDMUMsd0RBQXdELEVBQ3hELEtBQUssRUFPRCxDQUNMO0lBQ0Qsa0JBQWtCLEVBQUUsWUFBWSxDQUM5QixzQ0FBc0MsRUFDdEMs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LEVBQUUsWUFBWSxDQUFDLGtDQUFrQyxDQUFDO0lBQy9ELGlCQUFpQixFQUFFLFlBQVksQ0FDN0IsdUNBQXVDLEVBQ3ZDLEtBQUssRUFBb0QsQ0FDMUQ7SUFDRCxvQkFBb0IsRUFBRSxZQUFZLENBQUMsMkNBQTJDLENBQUM7SUFDL0UsZUFBZSxFQUFFLFlBQVksQ0FBQyw2REFBNkQsQ0FBQztJQUM1RixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsdUNBQXVDLENBQUM7SUFDdkUsY0FBYyxFQUFFLFlBQVksQ0FDMUIscUNBQXFDLEVBQ3JDLEtBQUssRUFBMEQsQ0FDaEU7SUFDRCxjQUFjLEVBQUUsWUFBWSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssRUFBcUIsQ0FBQztJQUMvRixvQkFBb0IsRUFBRSxZQUFZLENBQ2hDLDBFQUEwRSxFQUMxRSxLQUFLLEVBQXNELENBQzVEO0lBQ0QsYUFBYSxFQUFFLFlBQVksQ0FBQyxpQ0FBaUMsRUFBRSxLQUFLLEVBQW9DLENBQUM7SUFDekcsZ0JBQWdCLEVBQUUsWUFBWSxDQUM1QixtQ0FBbUMsRUFDbkMsS0FBSyxFQUErRCxDQUNyRTtJQUNELG1CQUFtQixFQUFFLFlBQVksQ0FDL0IsbUNBQW1DLEVBQ25DLEtBQUssRUFBaUUsQ0FDdkU7SUFDRCxzQkFBc0IsRUFBRSxZQUFZLENBQ2xDLHNDQUFzQyxFQUN0QyxLQUFLLEVBQWtELENBQ3hEO0lBQ0QsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLHdEQUF3RCxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUNqSCxnQkFBZ0IsRUFBRSxZQUFZLENBQzVCLCtCQUErQixFQUMvQixLQUFLLEVBQTZELENBQ25FO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUFjdGlvbiwgcHJvcHMgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBQcnlWaXNpYmlsaXR5IH0gZnJvbSAnLi4vLi4vY29yZS9jb21wb25lbnRzL3NoYXJlL3NoYXJlLm1vZGVsJztcbmltcG9ydCB7IFByeVNuYWNrTWVzc2FnZSB9IGZyb20gJy4uLy4uL2NvcmUvY29tcG9uZW50cy9zbmFja2Jhci9zbmFjay5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRGlzcGxheU9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2Rpc3BsYXktb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IEl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL2l0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIERhc2hib2FyZEdyaWRMYXlvdXQsXG4gIERhc2hib2FyZE1hbmlmZXN0LFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgTWFuaWZlc3REZXNjcmlwdGlvbixcbiAgV2lkZ2V0TWFuaWZlc3Rcbn0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVsYXRpb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVsL3JlbGF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcmRlclZhbHVlIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbC9yZXN1bHQtb3JkZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc3VsdFNldCwgUmVzdWx0U2V0cyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWwvcmVzdWx0LXNldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfSBmcm9tICcuL3dtcy5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgRGFzaGJvYXJkQ2VsbFBhcmFtcyA9IHtcbiAgZ3JpZFdpZHRoOiBudW1iZXI7XG4gIGdyaWRIZWlnaHQ6IG51bWJlcjtcbiAgZ3JpZEdhcDogbnVtYmVyO1xuICBjb2x1bW5zOiBudW1iZXI7XG4gIGNlbGxIZWlnaHQ6IG51bWJlcjtcbiAgcm93czogbnVtYmVyO1xuICBjZWxsV2lkdGg6IG51bWJlcjtcbiAgb2Zmc2V0TGVmdDogbnVtYmVyO1xuICBvZmZzZXRUb3A6IG51bWJlcjtcbiAgbW9iaWxlTW9kZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBlbnVtIFZpZXdNb2RlIHtcbiAgQ0FUQUxPRyA9ICdjYXRhbG9nJyxcbiAgQ09OU1VMVCA9ICdjb25zdWx0JyxcbiAgQ1JFQVRJT04gPSAnY3JlYXRpb24nLFxuICBFRElUSU9OID0gJ2VkaXRpb24nLFxuICBFRElUT1IgPSAnZWRpdG9yJyxcbiAgU0VBUkNIID0gJ3NlYXJjaCcsXG4gIENVU1RPTSA9ICdjdXN0b20nXG59XG5cbmV4cG9ydCBjb25zdCBEYXNoYm9hcmRBY3Rpb25zID0ge1xuICBqb2luOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGpvaW5lZCcsIHByb3BzPHsgc2VuZGVyOiBzdHJpbmcgfT4oKSksXG4gIGxlYXZlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGxlYXZlJywgcHJvcHM8eyBzZW5kZXI6IHN0cmluZyB9PigpKSxcbiAgdXBkYXRlTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRpbmcgbWFuaWZlc3QnLFxuICAgIHByb3BzPHtcbiAgICAgIHRlbmFudHM/OiBzdHJpbmdbXTtcbiAgICAgIG1hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICAgIHJlc3VsdFNldHM/OiBSZXN1bHRTZXRzO1xuICAgICAgam9pbmluZz86IGJvb2xlYW47XG4gICAgICBtYW5pZmVzdElkPzogc3RyaW5nO1xuICAgICAgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAgIH0+KClcbiAgKSxcbiAgdXBkYXRlTWFuaWZlc3RBZnRlckZldGNoOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0aW5nIG1hbmlmZXN0IGFmdGVyIGZldGNoJyxcbiAgICBwcm9wczx7XG4gICAgICB0ZW5hbnRzPzogc3RyaW5nW107XG4gICAgICBtYW5pZmVzdDogR2xvYmFsTWFuaWZlc3Q7XG4gICAgICByZXN1bHRTZXRzPzogUmVzdWx0U2V0cztcbiAgICAgIGpvaW5pbmc/OiBib29sZWFuO1xuICAgICAgbWFuaWZlc3RJZD86IHN0cmluZztcbiAgICAgIHNlbGVjdGVkSWRzOiBzdHJpbmdbXTtcbiAgICB9PigpXG4gICksXG4gIHVwZGF0ZU1hbmlmZXN0V2l0aG91dEFjdGl2YXRpb246IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRpbmcgbWFuaWZlc3QgYnV0IGRvIG5vdCBhY3RpdmF0ZSBpdCcsXG4gICAgcHJvcHM8e1xuICAgICAgdGVuYW50cz86IHN0cmluZ1tdO1xuICAgICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgICAgcmVzdWx0U2V0cz86IFJlc3VsdFNldHM7XG4gICAgICBqb2luaW5nPzogYm9vbGVhbjtcbiAgICAgIG1hbmlmZXN0SWQ/OiBzdHJpbmc7XG4gICAgICBzZWxlY3RlZElkczogc3RyaW5nW107XG4gICAgfT4oKVxuICApLFxuICB1cGRhdGVNYW5pZmVzdEFmdGVyVGVuYW50Sm9pbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGluZyBtYW5pZmVzdCBhZnRlciB0ZW5hbnQgam9pbicsXG4gICAgcHJvcHM8e1xuICAgICAgdGVuYW50cz86IHN0cmluZ1tdO1xuICAgICAgbWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0O1xuICAgICAgcmVzdWx0U2V0cz86IFJlc3VsdFNldHM7XG4gICAgICBqb2luaW5nPzogYm9vbGVhbjtcbiAgICAgIG1hbmlmZXN0SWQ/OiBzdHJpbmc7XG4gICAgICBzZWxlY3RlZElkczogc3RyaW5nW107XG4gICAgICBwcmVzZW50YXRpb24/OiB7IGN1cnJlbnQ/OiBNYW5pZmVzdERlc2NyaXB0aW9uOyBpbml0aWFsPzogR2xvYmFsTWFuaWZlc3Q7IHZpZXdNb2RlPzogVmlld01vZGUgfTtcbiAgICAgIGRpc3BsYXk/OiBEaXNwbGF5T3B0aW9ucztcbiAgICB9PigpXG4gICksXG4gIHVwZGF0ZU1hbmlmZXN0QWZ0ZXJUZW5hbnRMZWF2ZTogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGluZyBtYW5pZmVzdCBhZnRlciB0ZW5hbnQgbGVhdmUnLFxuICAgIHByb3BzPHtcbiAgICAgIHRlbmFudHM/OiBzdHJpbmdbXTtcbiAgICAgIG1hbmlmZXN0OiBHbG9iYWxNYW5pZmVzdDtcbiAgICAgIHJlc3VsdFNldHM/OiBSZXN1bHRTZXRzO1xuICAgICAgam9pbmluZz86IGJvb2xlYW47XG4gICAgICBtYW5pZmVzdElkPzogc3RyaW5nO1xuICAgICAgc2VsZWN0ZWRJZHM6IHN0cmluZ1tdO1xuICAgIH0+KClcbiAgKSxcbiAgc2VsZWN0UHJlc2VudGF0aW9uOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHNlbGVjdFByZXNlbnRhdGlvbicsXG4gICAgcHJvcHM8e1xuICAgICAgcHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAgICAgdmlld01vZGU/OiBWaWV3TW9kZTtcbiAgICB9PigpXG4gICksXG4gIHNldEluaXRpYWxQcmVzZW50YXRpb246IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgc2V0IGluaXRpYWwgcHJlc2VudGF0aW9uJyxcbiAgICBwcm9wczx7XG4gICAgICBpbml0aWFsPzogR2xvYmFsTWFuaWZlc3Q7XG4gICAgfT4oKVxuICApLFxuICBkZWNsYXJlU2VuZGVySWQ6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gc2VsZi11cGRhdGluZyBtYW5pZmVzdCcsIHByb3BzPHsgdGVuYW50czogc3RyaW5nW107IHNlbmRlcjogc3RyaW5nIH0+KCkpLFxuICB1cGRhdGVEYXNoYm9hcmRNYW5pZmVzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSB1cGRhdGluZyBkYXNoYm9hcmQgdmlldycsXG4gICAgcHJvcHM8eyBtYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3QgfT4oKVxuICApLFxuICB1cGRhdGVXaWRnZXRNYW5pZmVzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSB1cGRhdGluZyB3aWRnZXQgdmlldycsXG4gICAgcHJvcHM8eyBtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3Q7IGluZGV4OiBudW1iZXIgfT4oKVxuICApLFxuICBhZGRXaWRnZXRUb1ByZXNlbnRhdGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSBhZGQgd2lkZ2V0IHRvIHByZXNlbnRhdGlvbicsXG4gICAgcHJvcHM8eyBpZD86IHN0cmluZyB8IHN0cmluZ1tdOyB3aWRnZXRUeXBlOiBzdHJpbmc7IGFkZGl0aW9uYWxPcHRpb25zPzogYW55OyBhbGVydD86IGJvb2xlYW4gfT4oKVxuICApLFxuICB1cGRhdGVXaWRnZXRJblByZXNlbnRhdGlvbjogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSB1cGRhdGUgd2lkZ2V0IGluIHByZXNlbnRhdGlvbicsXG4gICAgcHJvcHM8eyBpZD86IHN0cmluZyB8IHN0cmluZ1tdOyB3aWRnZXRUeXBlOiBzdHJpbmc7IGFkZGl0aW9uYWxPcHRpb25zPzogYW55IH0+KClcbiAgKSxcbiAgcmVxdWVzdEFsbFJvdXRlczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSByZXF1ZXN0aW5nIHJvdXRlIHVwZGF0ZScpLFxuICB1cGRhdGVSb3V0ZU1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0aW5nIHJvdXRlJywgcHJvcHM8eyBzZW5kZXI/OiBzdHJpbmc7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIGZldGNoTWFuaWZlc3RzTGlzdDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBmZXRjaGluZyBhdmFpbGFibGUgbWFuaWZlc3RzJyksXG4gIHNldFJlZnJlc2hSYXRlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHNldHRpbmcgcmVmcmVzaFJhdGUnLCBwcm9wczx7IGlkOiBzdHJpbmc7IHJhdGU6IG51bWJlciB9PigpKSxcbiAgdXBkYXRlTWFuaWZlc3RzTGlzdDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSByZWNlaXZlZCBtYW5pZmVzdHMgbGlzdCcsXG4gICAgcHJvcHM8eyBtYW5pZmVzdHM6IE1hbmlmZXN0RGVzY3JpcHRpb25bXSB9PigpXG4gICksXG4gIGZldGNoU3RhdGljTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgZmV0Y2hpbmcgc3RhdGljTWFuaWZlc3QnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGVuZExvYWRpbmc6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gZW5kIGxvYWRpbmcnKSxcbiAgdXBkYXRlU3RhdGljTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgcmVjZWl2ZWQgc3RhdGljTWFuaWZlc3QnLFxuICAgIHByb3BzPHsgc3RhdGljTWFuaWZlc3Q6IEdsb2JhbE1hbmlmZXN0IH0+KClcbiAgKSxcbiAgbG9hZE1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGxvYWQgbWFuaWZlc3QnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGxvYWRBbmRBY3RpdmF0ZU1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGxvYWQgYW5kIGFjdGl2YXRlIG1hbmlmZXN0JywgcHJvcHM8eyBpZDogc3RyaW5nIH0+KCkpLFxuICBkb3dubG9hZE1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGRvd25sb2FkIG1hbmlmZXN0JywgcHJvcHM8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfT4oKSksXG4gIGNvbmZpcm1NYW5pZmVzdERlbGV0aW9uOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGNvbmZpcm0gbWFuaWZlc3QgZGVsZXRpb24nLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGRlbGV0ZU1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGRlbGV0aW5nIG1hbmlmZXN0JywgcHJvcHM8eyBpZDogc3RyaW5nIH0+KCkpLFxuICBzYXZlTWFuaWZlc3Q6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gc2F2ZSBtYW5pZmVzdCcsXG4gICAgcHJvcHM8e1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgbWFuaWZlc3Q/OiBHbG9iYWxNYW5pZmVzdDtcbiAgICAgIGlkOiBzdHJpbmc7XG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICAgIGltYWdlPzogc3RyaW5nO1xuICAgICAgdmlzaWJpbGl0eT86IFByeVZpc2liaWxpdHk7XG4gICAgICBjb3Zlcj86IGJvb2xlYW47XG4gICAgICBtZXRhZGF0YT86IHsgbWV0YWRhdGFEZWZJZDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgICB9PigpXG4gICksXG4gIHNvbHZlQ29sbGlzaW9uczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBzb2x2aW5nIGNvbGxpc2lvbnMnKSxcbiAgY2xlYXJNYW5pZmVzdDogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBjbGVhciBtYW5pZmVzdCcpLFxuICBmb2xsb3dNYW5pZmVzdFJvdXRlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIGZvbGxvdyBtYW5pZmVzdCByb3V0ZScpLFxuICBtb3ZlV2lkZ2V0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIG1vdmluZyB3aWRnZXQnLCBwcm9wczx7IHdpZGdldEluZGV4OiBudW1iZXI7IHRhcmdldEluZGV4OiBudW1iZXIgfT4oKSksXG4gIG1heGltaXplV2lkZ2V0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIG1heGltaXplIHdpZGdldCcsIHByb3BzPHsgd2lkZ2V0SW5kZXg6IG51bWJlciB9PigpKSxcbiAgYXNzZXJ0UmVzdWx0U2V0czogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSByZXF1ZXN0IHJlc3VsdFNldCBpZiBub3QgcHJlc2VudCBvciBwYXJhbXMgY2hhbmdlZCcsXG4gICAgcHJvcHM8eyBpZD86IHN0cmluZyB9PigpXG4gICksXG4gIHVwZGF0ZVJlc3VsdFNldDogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSByZWNlaXZlZCBuYW1lZCByZXN1bHRTZXQnLFxuICAgIHByb3BzPHsgaWQ6IHN0cmluZzsgcmVzdWx0U2V0OiBSZXN1bHRTZXQ7IHBhcmFtcz86IHN0cmluZyB9PigpXG4gICksXG4gIGFkZFJlbGF0aW9uc1RvUmVzdWx0U2V0czogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSAoYnVzKSBhZGQgcmVsYXRpb25zIHRvIHJlc3VsdFNldCcsXG4gICAgcHJvcHM8eyByZWxhdGlvbnM6IFJlbGF0aW9uW10gfT4oKVxuICApLFxuICBhZGRJdGVtVG9SZXN1bHRTZXRzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIGFkZCBpdGVtIHRvIHJlc3VsdFNldCcsXG4gICAgcHJvcHM8eyBpdGVtOiBJdGVtOyByZXN1bHRTZXQ/OiBzdHJpbmcgfT4oKVxuICApLFxuICBzdGFydGluZ01pc3NpbmdWaWV3czogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSBvcGVuaW5nIG1pc3Npbmcgdmlld3MgZm9yIG1hbmlmZXN0JyksXG4gIHNldEF2YWlsYWJsZU5hbWVkUXVlcmllczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBzZXQgYXZhaWxhYmxlIHJzIG5hbWVzJywgcHJvcHM8eyBuYW1lczogc3RyaW5nW10gfT4oKSksXG4gIHNldERlZmF1bHREYXRhc291cmNlOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIHNldCBjdXJyZW50IHJzIG5hbWUnLCBwcm9wczx7IG5hbWVzOiBzdHJpbmdbXSB9PigpKSxcbiAgdXBkYXRlRGFzaGJvYXJkUGFyYW1zOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIHNldCBkYXNoYm9hcmQgY2VsbCBwYXJhbXMnLFxuICAgIHByb3BzPHsgcGFyYW1zOiBQYXJ0aWFsPERhc2hib2FyZENlbGxQYXJhbXM+IH0+KClcbiAgKSxcbiAgdG9nZ2xlRWRpdGlvbk1vZGU6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gdG9nZ2xlIGVkaXRpb24gbW9kZScsIHByb3BzPHsgZm9yY2U/OiBib29sZWFuIH0+KCkpLFxuICBzZWxlY3Q6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgc2VsZWN0IGl0ZW0nLCBwcm9wczx7IGlkOiBzdHJpbmc7IGN1bXVsYXRpdmU6IGJvb2xlYW4gfT4oKSksXG4gIHNlbGVjdE1hbnk6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgc2VsZWN0IGl0ZW1zJywgcHJvcHM8eyBpZHM6IHN0cmluZ1tdIH0+KCkpLFxuICBpbnZlcnRTZWxlY3Rpb246IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgaW52ZXJ0IHNlbGVjdGlvbicpLFxuICBmZXRjaE9iamVjdHNEZXRhaWxzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIGZldGNoIG9iamVjdHMgZGV0YWlscycsIHByb3BzPHsgaWRzOiBzdHJpbmdbXSB9PigpKSxcbiAgdXBkYXRlT2JqZWN0c0RldGFpbHM6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgdXBkYXRlIG9iamVjdHMgZGV0YWlscycsXG4gICAgcHJvcHM8eyBsaXN0OiB7IFtpZDogc3RyaW5nXTogSXRlbSB9IH0+KClcbiAgKSxcbiAgZXhwbG9yZTogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBpc29sYXRlIGluIGRhdGEgc2V0JywgcHJvcHM8eyBpZDogc3RyaW5nIH0+KCkpLFxuICBkZXRhaWw6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgYWRkIGRldGFpbCB2aWV3JywgcHJvcHM8eyBpZHM6IHN0cmluZ1tdIH0+KCkpLFxuICBwcm94aW1pdHk6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gcHJveGltaXR5IHNlYXJjaCcsIHByb3BzPHsgaWQ6IHN0cmluZzsgdGFyZ2V0UmVzdWx0U2V0OiBzdHJpbmcgfT4oKSksXG4gIG11bHRpU25hY2tCYXI6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgZGlzcGxheSBzbmFjayBtZXNzYWdlJywgcHJvcHM8eyBtZXNzYWdlOiBQcnlTbmFja01lc3NhZ2UgfT4oKSksXG4gIHF1aWNrT3JkZXI6IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gKGJ1cykgcXVpY2sgb3JkZXInLFxuICAgIHByb3BzPHsgZGF0YXNvdXJjZUlkOiBzdHJpbmc7IGF0dHJpYnV0ZTogc3RyaW5nOyBhc2M6IE9yZGVyVmFsdWUgfT4oKVxuICApLFxuICBzZXRHcmlkTGF5b3V0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIHNldCBncmlkIGxheW91dCcsIHByb3BzPHsgbGF5b3V0OiBEYXNoYm9hcmRHcmlkTGF5b3V0IH0+KCkpLFxuICBwcm9wYWdhdGVHcmlkTGF5b3V0OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIGNoYW5nZSBncmlkIGxheW91dCcsXG4gICAgcHJvcHM8eyBtYW5pZmVzdDogRGFzaGJvYXJkTWFuaWZlc3Q7IHJhbms6IG51bWJlciB9PigpXG4gICksXG4gIGNyZWF0ZVRhYjogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBjcmVhdGUgbmV3IHRhYicpLFxuICByZXN0b3JlSW5pdGlhbE1hbmlmZXN0OiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHJlc3RvcmluZyBtaXNzaW5nIHRhYnMnKSxcbiAgc2V0RmlsdGVyczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBzZXQgZGF0YXNvdXJjZSBmaWx0ZXJzJywgcHJvcHM8eyBmaWx0ZXJzOiBGaWx0ZXJbXSB9PigpKSxcbiAgdXBkYXRlRmlsdGVyczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSB1cGRhdGUgZGF0YXNvdXJjZSBmaWx0ZXJzJywgcHJvcHM8eyBmaWx0ZXI6IEZpbHRlciB9PigpKSxcbiAgcmVtb3ZlRmlsdGVyOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHJlbW92ZSBmaWx0ZXIgaW4gcHJlc2VudGF0aW9uJywgcHJvcHM8eyBpZDogc3RyaW5nIH0+KCkpLFxuICByZW1vdmVGaWx0ZXJzOiBjcmVhdGVBY3Rpb24oJ1tEYXNoYm9hcmRdIChidXMpIHJlbW92ZSBmaWx0ZXJzJyksXG4gIHVwZGF0ZUZpbHRlclZhbHVlOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmRdIChidXMpIHVwZGF0ZSBmaWx0ZXIgdmFsdWUnLFxuICAgIHByb3BzPHsgaWQ6IHN0cmluZzsgdmFsdWU6IGFueTsgZGF0YXNvdXJjZUlkOiBzdHJpbmcgfT4oKVxuICApLFxuICBjbGVhckFsbEZpbHRlclZhbHVlczogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBjbGVhciBhbGwgZmlsdGVyIHZhbHVlcycpLFxuICBkaXNwYXRjaEZpbHRlcnM6IGNyZWF0ZUFjdGlvbignW0Rhc2hib2FyZF0gKGJ1cykgYXBwbHkgZmlsdGVycyB0byBwcmVzZW50YXRpb24gZGF0YXNvdXJjZXMnKSxcbiAgcmVzZXRXbXNGZWF0dXJlczogY3JlYXRlQWN0aW9uKCdbV2lkZ2V0IG1hcF0gUmVzZXQgV21zIGxheWVyIGZlYXR1cmVzJyksXG4gIGdldFdtc0ZlYXR1cmVzOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tXaWRnZXQgbWFwXSBHZXQgV21zIGxheWVyIGZlYXR1cmVzJyxcbiAgICBwcm9wczx7IHVybDogc3RyaW5nOyBvQ2xhc3M6IHN0cmluZzsgY29vcmRpbmF0ZXM6IG51bWJlcltdIH0+KClcbiAgKSxcbiAgYWRkV21zRmVhdHVyZXM6IGNyZWF0ZUFjdGlvbignW1dpZGdldCBtYXBdIFNldCBXbXMgbGF5ZXIgZmVhdHVyZXMnLCBwcm9wczx7IGZlYXR1cmVzOiBhbnkgfT4oKSksXG4gIHVwZGF0ZURpc3BsYXlPcHRpb25zOiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tEYXNoYm9hcmQvRGlzcGxheV0gKGJ1cykgVXBkYXRlIGRpc3BsYXllZCBkYXNoYm9hcmQgbWFuYWdlbWVudCBmZWF0dXJlcycsXG4gICAgcHJvcHM8eyBtb2RlOiBWaWV3TW9kZTsgY3VzdG9tRGlzcGxheT86IERpc3BsYXlPcHRpb25zIH0+KClcbiAgKSxcbiAgZ2V0Q2FwYWJpbGl0eTogY3JlYXRlQWN0aW9uKCdbV2lkZ2V0IG1hcF0gR2V0IFdtcyBjYXBhYmlsaXR5JywgcHJvcHM8eyB1cmw6IHN0cmluZzsgZm9yY2U/OiBib29sZWFuIH0+KCkpLFxuICB1cGRhdGVDYXBhYmlsaXR5OiBjcmVhdGVBY3Rpb24oXG4gICAgJ1tXaWRnZXQgbWFwXSBTdG9yZSBXbXMgY2FwYWJpbGl0eScsXG4gICAgcHJvcHM8eyB1cmw6IHN0cmluZzsgY2FwYWJpbGl0eTogR2V0Q2FwYWJpbGl0aWVzUmVzcG9uc2UgfCBudWxsIH0+KClcbiAgKSxcbiAgYWRkTWFuaWZlc3RNZXRhZGF0YTogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSBBZGQgbWFuaWZlc3QgbWV0YWRhdGEnLFxuICAgIHByb3BzPHsgcHJlc2VudGF0aW9uSWQ6IHN0cmluZzsgbWV0YWRhdGFJZDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH0+KClcbiAgKSxcbiAgZGVsZXRlTWFuaWZlc3RNZXRhZGF0YTogY3JlYXRlQWN0aW9uKFxuICAgICdbRGFzaGJvYXJkXSBEZWxldGUgbWFuaWZlc3QgbWV0YWRhdGEnLFxuICAgIHByb3BzPHsgcHJlc2VudGF0aW9uSWQ6IHN0cmluZzsgbWV0YWRhdGFJZDogc3RyaW5nIH0+KClcbiAgKSxcbiAgdHJpZ2dlckFnZ3JlZ2F0ZTogY3JlYXRlQWN0aW9uKCdbRGFzaGJvYXJkXSAoYnVzKSBUcmlnZ2VyaW5nIGFnZ3JlZ2F0ZXMgZm9yIGRhdGFzb3VyY2UnLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGxvYWRQcmVzZW50YXRpb246IGNyZWF0ZUFjdGlvbihcbiAgICAnW0Rhc2hib2FyZF0gbG9hZCBwcmVzZW50YXRpb24nLFxuICAgIHByb3BzPHsgcHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uOyB2aWV3TW9kZTogVmlld01vZGUgfT4oKVxuICApXG59O1xuIl19