@byuhbll/components 4.0.6 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -59,8 +59,13 @@ export class HbllHeaderComponent {
59
59
  this.showNavBar = false;
60
60
  this.r2.removeStyle(this.doc.body, 'overflow');
61
61
  };
62
- this.setMobileSidebarHeight = () => (this.mobileSidebarHeight =
63
- window.innerHeight - this.header.nativeElement.getBoundingClientRect().height);
62
+ this.setMobileSidebarHeight = () => {
63
+ const headerHeight = this.header.nativeElement.getBoundingClientRect().height;
64
+ // TODO: remove banner code after banner is removed from beta
65
+ const bannerElement = document.querySelector('#beta-navigation-banner');
66
+ const bannerHeight = bannerElement ? bannerElement.getBoundingClientRect().height || 0 : 0;
67
+ this.mobileSidebarHeight = window.innerHeight - headerHeight - bannerHeight;
68
+ };
64
69
  }
65
70
  get isLoggedIn() {
66
71
  return !!this.name;
@@ -107,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
107
112
  type: HostListener,
108
113
  args: ['window:resize', ['$event']]
109
114
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtaGVhZGVyL2hibGwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FB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QUFDLE1BQU0sQ0FBQztnQkFBRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQWNPLFFBQVE7UUFDWixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDOzhHQTdFUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrOUJDM0NoQyw4clRBOE1BLG1yTUQ5S1EsUUFBUSx3Q0FFUixnQkFBZ0Isb0RBQ2hCLFlBQVkseVZBQ1osZUFBZSxpRkFLUCxDQUFDLDBCQUEwQixFQUFFLGdCQUFnQixDQUFDOzsyRkFFakQsbUJBQW1CO2tCQWYvQixTQUFTOytCQUNJLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDTCxRQUFRO3dCQUNSLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUMxQixjQUdXLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLENBQUM7OEJBU3JDLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFJVixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFHSSxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkEwREMsUUFBUTtzQkFEZixZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIERPQ1VNRU5ULCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2QmFyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtYmFyL25hdi1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IGxpYkhibGxGYWRlSW5PdXQsIGxpYkhibGxTbGlkZUluT3V0UmlnaHRMZWZ0IH0gZnJvbSAnLi4vYW5pbWF0aW9ucy9hbmltYXRpb25zJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgaXNTY3JlZW5TbWFsbFNpZ25hbCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IExpYnJhcnlIb3Vyc1BpcGUgfSBmcm9tICcuL3BpcGVzL2xpYnJhcnktaG91cnMucGlwZSc7XG5pbXBvcnQgeyBtYXAsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFeHBhbmRDb2xsYXBzZUNvbXBvbmVudCB9IGZyb20gJy4uL2V4cGFuZC1jb2xsYXBzZS9leHBhbmQtY29sbGFwc2UuY29tcG9uZW50JztcbmltcG9ydCB7IExpYnJhcnlIb3VycyB9IGZyb20gJy4vbW9kZWxzL2xpYnJhcnktaG91cnMnO1xuXG5leHBvcnQgY29uc3QgTElCUkFSWV9IT1VSU19BUElfVVJMID0gJ2h0dHBzOi8vYXBwcy5saWIuYnl1LmVkdS9saWJyYXJ5aG91cnMvYXBpL2hvdXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaWItaGJsbC1oZWFkZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgTG93ZXJDYXNlUGlwZSxcbiAgICAgICAgTGlicmFyeUhvdXJzUGlwZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBOYXZCYXJDb21wb25lbnQsXG4gICAgICAgIEV4cGFuZENvbGxhcHNlQ29tcG9uZW50LFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hibGwtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vaGJsbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnLFxuICAgIGFuaW1hdGlvbnM6IFtsaWJIYmxsU2xpZGVJbk91dFJpZ2h0TGVmdCwgbGliSGJsbEZhZGVJbk91dF0sXG59KVxuZXhwb3J0IGNsYXNzIEhibGxIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHIyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgLy8gVE9ETzogZG9lcyB0aGlzIGluY3JlYXNlIGJ1bmRsZSBzaXplIG1vcmUgdGhhbiBpdCdzIHdvcnRoPyB2cyBmZXRjaD9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBibyA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgZG9jID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlcicpIGhlYWRlciE6IEVsZW1lbnRSZWY7XG5cbiAgICAvLyAtLS0gQVBJIC0tLVxuICAgIC8vIFRPRE86IENvbnZlcnQgdGhlc2UgdG8gc2lnbmFsIGlucHV0czogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9pc3N1ZXMvNTc3NTVcbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG4gICAgQElucHV0KCkgbWFpbnNpdGViYXNldXJsID0gJ2h0dHBzOi8vbGliLmJ5dS5lZHUnO1xuICAgIC8vIFRPRE86IHRoaXMgaXMgYSBzaW5nYWwgaW5wdXQgY3VycmVudGx5IGJlY2F1c2UgaXQgd29uJ3QgYmUgdXNlZCBieSBhbnkgb3RoZXIgYXBwbGljYXRpb25zIHRoYW4gQW5ndWxhciBvbmVzLlxuICAgIHNob3dJbXBlcnNvbmF0ZUJ1dHRvbiA9IGlucHV0KGZhbHNlKTtcbiAgICBAT3V0cHV0KCkgb3BlbkltcGVyc29uYXRpb25Nb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgbG9naW4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIGxvZ291dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvLyAtLS0tLS0tLS0tLVxuICAgIHByaXZhdGUgZm9ybWF0RGF0ZUZvckhvdXJzID0gKGRhdGU6IERhdGUpID0+XG4gICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHtTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKX0tJHtTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgICBwcml2YXRlIGFjY291bnRJbmZvRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2FjY291bnRJbmZvJyk7XG4gICAgcHJpdmF0ZSBob3Vyc0VsID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdob3VycycpO1xuXG4gICAgcHJvdGVjdGVkIGdldCBpc0xvZ2dlZEluKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgLy8gSG91cnNcbiAgICBwcm90ZWN0ZWQgbGlicmFyeUhvdXJzID0gdG9TaWduYWwodGhpcy5odHRwLmdldDxMaWJyYXJ5SG91cnM+KExJQlJBUllfSE9VUlNfQVBJX1VSTCkpO1xuICAgIHByb3RlY3RlZCBob3Vyc0V4Y2VwdGlvbnMkID0gb2YobnVsbCkucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICAgIC8vIEdldCBleGNlcHRpb25zIGZyb20gdG9kYXkgdG8gdHdvIG1vbnRocyBvdXRcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5mb3JtYXREYXRlRm9ySG91cnModG9kYXkpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKHRvZGF5LmdldE1vbnRoKCkgKyAyKTtcbiAgICAgICAgICAgIGNvbnN0IHN0b3AgPSB0aGlzLmZvcm1hdERhdGVGb3JIb3VycyhuZXdEYXRlKTtcbiAgICAgICAgICAgIHJldHVybiBbc3RhcnQsIHN0b3BdO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKChbc3RhcnQsIHN0b3BdOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgIHRoaXMuaHR0cFxuICAgICAgICAgICAgICAgIC5nZXQ8TGlicmFyeUhvdXJzW10+KGAke0xJQlJBUllfSE9VUlNfQVBJX1VSTH0/c3RhcnQ9JHtzdGFydH0mc3RvcD0ke3N0b3B9YClcbiAgICAgICAgICAgICAgICAucGlwZShtYXAoKHJlcykgPT4gcmVzLmZpbHRlcigoZGF5KSA9PiBkYXkuaGFzX2V4Y2VwdGlvbikuc2xpY2UoMCwgNSkpKSxcbiAgICAgICAgKSxcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIHNob3dMaWJyYXJ5SG91cnMgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgbW9iaWxlU2lkZWJhckhlaWdodCA9IDA7XG4gICAgcHJvdGVjdGVkIHNob3dOYXZCYXIgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgaXNTY3JlZW5TbWFsbCA9IGlzU2NyZWVuU21hbGxTaWduYWwodGhpcy5ibyk7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucjIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLCAoZTogRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5hY2NvdW50SW5mb0VsKCk/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZS50YXJnZXQpKVxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd0FjY291bnREcm9wZG93biA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhvdXJzRWwoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpIHRoaXMuc2hvd0xpYnJhcnlIb3VycyA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXRNb2JpbGVTaWRlYmFySGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZW5TaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dOYXZCYXIgPSB0cnVlO1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICAgIHRoaXMucjIuc2V0U3R5bGUodGhpcy5kb2MuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgIH07XG5cbiAgICBwcm90ZWN0ZWQgY2xvc2VTaWRlYmFyTmF2ID0gKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dOYXZCYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yMi5yZW1vdmVTdHlsZSh0aGlzLmRvYy5ib2R5LCAnb3ZlcmZsb3cnKTtcbiAgICB9O1xuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBvblJlc2l6ZSgpIHtcbiAgICAgICAgdGhpcy5zZXRNb2JpbGVTaWRlYmFySGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRNb2JpbGVTaWRlYmFySGVpZ2h0ID0gKCkgPT5cbiAgICAgICAgKHRoaXMubW9iaWxlU2lkZWJhckhlaWdodCA9XG4gICAgICAgICAgICB3aW5kb3cuaW5uZXJIZWlnaHQgLSB0aGlzLmhlYWRlci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCk7XG59XG4iLCI8aGVhZGVyXG4gICAgcm9sZT1cImJhbm5lclwiXG4gICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAjaGVhZGVyXG4gICAgW25nQ2xhc3NdPVwieyAnaGJsbC1oZWFkZXItZGVza3RvcCc6ICFpc1NjcmVlblNtYWxsKCkgfVwiXG4+XG4gICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsXCI+XG4gICAgICAgIDxoMT5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL21lZGlhLmxpYi5ieXUuZWR1L3dlYi1hc3NldHMvaW1hZ2VzLzIuMC4wL2J5dS1oYmxsLWxvZ28tZnVsbC5zdmdcIlxuICAgICAgICAgICAgICAgIGFsdD1cIkJZVSBMaWJyYXJ5IExvZ29cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9oMT5cbiAgICA8L2E+XG4gICAgPGRpdiBpZD1cImxpYnJhcnlJbmZvXCIgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCI+XG4gICAgICAgIEBpZiAoIWlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgPGRpdiAjaG91cnMgaWQ9XCJtYWluTGlicmFyeUhvdXJzXCIgZGF0YS10ZXN0aWQ9XCJkZXNrdG9wSG91cnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzaG93TGlicmFyeUhvdXJzID0gIXNob3dMaWJyYXJ5SG91cnNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImhvdXJzQnRuXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJob3Vyc1RleHRCbG9ja1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIEBpZiAoIWlzU2NyZWVuU21hbGwoKSAmJiBzaG93TGlicmFyeUhvdXJzKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIEBsaWJIYmxsRmFkZUluT3V0XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxpYnJhcnlIb3Vyc0Ryb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibGlicmFyeUhvdXJzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhibGwtaGVhZGVyLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJoYmxsLWhlYWRlci1oZWFkZXJcIj5SZWd1bGFyIEhvdXJzPC9oMj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItZGV0YWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5Nb25kYXkgLSBGcmlkYXk8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+U2F0dXJkYXk8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+U3VuZGF5PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj43IGEubSAtIG1pZG5pZ2h0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+OCBhLm0gLSBtaWRuaWdodDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPkNsb3NlZCo8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnMtbm90ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIEZhbWlseSBoaXN0b3J5IE9OTFkgNCBwLm0uIC0gOCBwLm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxzcGFuPk5vIGNoZWNrb3V0cyBhZnRlciAxMTo0NSBwLm0uPC9zcGFuPjwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+QWxsIHNlcnZpY2VzIGNsb3NlZCAxMDo0NSB0byBub29uIG9uIFR1ZXNkYXlzPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImhibGwtaGVhZGVyLWhlYWRlclwiPlVwY29taW5nIEV4Y2VwdGlvbnM8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaG91cnNFeGNlcHRpb25zJCB8IGFzeW5jOyBhcyBleGNlcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1kZXRhaWxcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNEZXRhaWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGV4Y2VwdGlvbiBvZiBleGNlcHRpb25zOyB0cmFjayBleGNlcHRpb24uZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhjZXB0aW9uLmRhdGUgfCBkYXRlOiAnTU1NLiBkLCBZWVlZJyB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbXB0eSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm8gdXBjb21pbmcgZXhjZXB0aW9uc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWhvdXJzXCIgZGF0YS10ZXN0aWQ9XCJleGNlcHRpb25zSG91cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGV4Y2VwdGlvbiBvZiBleGNlcHRpb25zOyB0cmFjayBleGNlcHRpb24uZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGV4Y2VwdGlvbi5leGNlcHRpb25fdGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWItc3Bpbm5lclwiIGRhdGEtdGVzdGlkPVwiZXhjZXB0aW9uc1NwaW5uZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImhibGwtaGVhZGVyLXNlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDIgY2xhc3M9XCJoYmxsLWhlYWRlci1oZWFkZXJcIj5MaWJyYXJ5IENhZmU8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPkJhZ2VsIEJ1YmJsZTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5Qcm92ZWNobzwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWhvdXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+NyBhLm0gLSAxMSBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+MTA6MzAgYS5tIC0gMiBwLm0uPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2Fib3V0L2hvdXJzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlNlZSBhbGwgaG91cnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj4gY2hldnJvbl9yaWdodCA8L3NwYW4+PC9hXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgaWQ9XCJhY2NvdW50SW5mb1wiICNhY2NvdW50SW5mbz5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiaXNMb2dnZWRJbiA/IChzaG93QWNjb3VudERyb3Bkb3duID0gIXNob3dBY2NvdW50RHJvcGRvd24pIDogbG9naW4uZW1pdCgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudEJ0blwiXG4gICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJhY2NvdW50QnRuXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHBlcnNvbiA8L3NwYW4+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGJsbC1oZWFkZXItbmFtZVwiIGRhdGEtdGVzdGlkPVwibmFtZVwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0xvZ2dlZEluID8gJyZuYnNwOycgKyBuYW1lIDogJ0xvZ2luJ1xuICAgICAgICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpc0xvZ2dlZEluKSB7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiIGRhdGEtdGVzdGlkPVwibG9naW5Ecm9wZG93blwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgYXJyb3dfZHJvcF9kb3duXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIEBpZiAoaXNMb2dnZWRJbiAmJiBzaG93QWNjb3VudERyb3Bkb3duKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBAbGliSGJsbEZhZGVJbk91dCBpZD1cImFjY291bnREcm9wZG93blwiIGRhdGEtdGVzdGlkPVwiYWNjb3VudERyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudCdcIj5NeSBBY2NvdW50PC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQnXCI+TXkgSXRlbXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yZXF1ZXN0J1wiPlJlcXVlc3QgYW4gaXRlbTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3NhdmVkJ1wiPlNhdmVkPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQvY291cnNlJ1wiPkNvdXJzZXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9yb29tcydcIj5Sb29tczwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3ByZWZlcmVuY2VzJ1wiPlByZWZlcmVuY2VzPC9hPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKHNob3dJbXBlcnNvbmF0ZUJ1dHRvbigpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5JbXBlcnNvbmF0aW9uTW9kYWwuZW1pdCgpOyBzaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItaW1wZXJzb25hdGUtYnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbXBlcnNvbmF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9nb3V0LmVtaXQoKVwiIGRhdGEtdGVzdGlkPVwibG9nb3V0XCI+TG9nb3V0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgICAgICAgICAgPGRpdiBpZD1cIm1vYmlsZU5hdlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblNpZGViYXJOYXYoKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItaWNvblwiPiBtZW51IDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAaWYgKHNob3dOYXZCYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJuYXZXcmFwcGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9iaWxlTmF2XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtAbGliSGJsbFNsaWRlSW5PdXRSaWdodExlZnRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXM6IHsgeE9mZnNldDogJzQwMHB4JyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNsb3NlTW9iaWxlTmF2QnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVNpZGViYXJOYXYoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkIGhibGwtaGVhZGVyLWljb25cIj4gY2xvc2UgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGliLW5hdi1iYXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFpblNpdGVCYXNlVXJsXT1cIm1haW5zaXRlYmFzZXVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCJtb2JpbGVTaWRlYmFySGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBAbGliSGJsbEZhZGVJbk91dFxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dOYXZCYXIgPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtbmF2LWJhY2tkcm9wXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibW9iaWxlTmF2QmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvaGVhZGVyPlxuXG5AaWYgKCFpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8ZGl2IGlkPVwibWFpbk5hdlwiPlxuICAgICAgICA8bGliLW5hdi1iYXIgW21haW5TaXRlQmFzZVVybF09XCJtYWluc2l0ZWJhc2V1cmxcIiAvPlxuICAgIDwvZGl2PlxufVxuQGlmIChpc1NjcmVlblNtYWxsKCkpIHtcbiAgICA8YVxuICAgICAgICBpZD1cIm1vYmlsZUxpYnJhcnlIb3Vyc1wiXG4gICAgICAgIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWJvdXQvaG91cnMnXCJcbiAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci13cmFwcGVyXCJcbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVIb3Vyc1wiXG4gICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaG91cnNUZXh0QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG59XG5cbjxuZy10ZW1wbGF0ZSAjaG91cnNUZXh0QmxvY2s+XG4gICAgQGlmIChsaWJyYXJ5SG91cnMoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItbGVmdC1pY29uXCI+IHNjaGVkdWxlIDwvc3Bhbj5cbiAgICAgICAge3tcbiAgICAgICAgICAgIGxpYnJhcnlIb3VycygpPy5pc19jbG9zZWRcbiAgICAgICAgICAgICAgICA/ICdDTE9TRUQnXG4gICAgICAgICAgICAgICAgOiBcIlRvZGF5J3MgaG91cnM6IFwiICtcbiAgICAgICAgICAgICAgICAgIChsaWJyYXJ5SG91cnMoKSEuZGF0ZSB8IGxpYnJhcnlIb3VyczogbGlicmFyeUhvdXJzKCkhLm9wZW5fdGltZSkgK1xuICAgICAgICAgICAgICAgICAgJyAtICcgK1xuICAgICAgICAgICAgICAgICAgKGxpYnJhcnlIb3VycygpIS5kYXRlIHwgbGlicmFyeUhvdXJzOiBsaWJyYXJ5SG91cnMoKSEuY2xvc2VfdGltZSlcbiAgICAgICAgfX1cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGJsbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2hibGwtaGVhZGVyL2hibGwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FB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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRE9DVU1FTlQsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBWaWV3Q2hpbGQsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZCYXJDb21wb25lbnQgfSBmcm9tICcuL25hdi1iYXIvbmF2LWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgbGliSGJsbEZhZGVJbk91dCwgbGliSGJsbFNsaWRlSW5PdXRSaWdodExlZnQgfSBmcm9tICcuLi9hbmltYXRpb25zL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBpc1NjcmVlblNtYWxsU2lnbmFsIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgTGlicmFyeUhvdXJzUGlwZSB9IGZyb20gJy4vcGlwZXMvbGlicmFyeS1ob3Vycy5waXBlJztcbmltcG9ydCB7IG1hcCwgb2YsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEV4cGFuZENvbGxhcHNlQ29tcG9uZW50IH0gZnJvbSAnLi4vZXhwYW5kLWNvbGxhcHNlL2V4cGFuZC1jb2xsYXBzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlicmFyeUhvdXJzIH0gZnJvbSAnLi9tb2RlbHMvbGlicmFyeS1ob3Vycyc7XG5cbmV4cG9ydCBjb25zdCBMSUJSQVJZX0hPVVJTX0FQSV9VUkwgPSAnaHR0cHM6Ly9hcHBzLmxpYi5ieXUuZWR1L2xpYnJhcnlob3Vycy9hcGkvaG91cnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1oYmxsLWhlYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBMb3dlckNhc2VQaXBlLFxuICAgICAgICBMaWJyYXJ5SG91cnNQaXBlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE5hdkJhckNvbXBvbmVudCxcbiAgICAgICAgRXhwYW5kQ29sbGFwc2VDb21wb25lbnQsXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGJsbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9oYmxsLWhlYWRlci5jb21wb25lbnQuc2NzcycsXG4gICAgYW5pbWF0aW9uczogW2xpYkhibGxTbGlkZUluT3V0UmlnaHRMZWZ0LCBsaWJIYmxsRmFkZUluT3V0XSxcbn0pXG5leHBvcnQgY2xhc3MgSGJsbEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcjIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICAvLyBUT0RPOiBkb2VzIHRoaXMgaW5jcmVhc2UgYnVuZGxlIHNpemUgbW9yZSB0aGFuIGl0J3Mgd29ydGg/IHZzIGZldGNoP1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJvID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gICAgcHJpdmF0ZSBkb2MgPSBpbmplY3QoRE9DVU1FTlQpO1xuXG4gICAgQFZpZXdDaGlsZCgnaGVhZGVyJykgaGVhZGVyITogRWxlbWVudFJlZjtcblxuICAgIC8vIC0tLSBBUEkgLS0tXG4gICAgLy8gVE9ETzogQ29udmVydCB0aGVzZSB0byBzaWduYWwgaW5wdXRzOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy81Nzc1NVxuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgICBASW5wdXQoKSBtYWluc2l0ZWJhc2V1cmwgPSAnaHR0cHM6Ly9saWIuYnl1LmVkdSc7XG4gICAgLy8gVE9ETzogdGhpcyBpcyBhIHNpbmdhbCBpbnB1dCBjdXJyZW50bHkgYmVjYXVzZSBpdCB3b24ndCBiZSB1c2VkIGJ5IGFueSBvdGhlciBhcHBsaWNhdGlvbnMgdGhhbiBBbmd1bGFyIG9uZXMuXG4gICAgc2hvd0ltcGVyc29uYXRlQnV0dG9uID0gaW5wdXQoZmFsc2UpO1xuICAgIEBPdXRwdXQoKSBvcGVuSW1wZXJzb25hdGlvbk1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSBsb2dpbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCkgbG9nb3V0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIC8vIC0tLS0tLS0tLS0tXG4gICAgcHJpdmF0ZSBmb3JtYXREYXRlRm9ySG91cnMgPSAoZGF0ZTogRGF0ZSkgPT5cbiAgICAgICAgYCR7ZGF0ZS5nZXRGdWxsWWVhcigpfS0ke1N0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpfS0ke1N0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKX1gO1xuICAgIHByaXZhdGUgYWNjb3VudEluZm9FbCA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPignYWNjb3VudEluZm8nKTtcbiAgICBwcml2YXRlIGhvdXJzRWwgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2hvdXJzJyk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubmFtZTtcbiAgICB9XG5cbiAgICAvLyBIb3Vyc1xuICAgIHByb3RlY3RlZCBsaWJyYXJ5SG91cnMgPSB0b1NpZ25hbCh0aGlzLmh0dHAuZ2V0PExpYnJhcnlIb3Vycz4oTElCUkFSWV9IT1VSU19BUElfVVJMKSk7XG4gICAgcHJvdGVjdGVkIGhvdXJzRXhjZXB0aW9ucyQgPSBvZihudWxsKS5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgLy8gR2V0IGV4Y2VwdGlvbnMgZnJvbSB0b2RheSB0byB0d28gbW9udGhzIG91dFxuICAgICAgICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB0aGlzLmZvcm1hdERhdGVGb3JIb3Vycyh0b2RheSk7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgodG9kYXkuZ2V0TW9udGgoKSArIDIpO1xuICAgICAgICAgICAgY29uc3Qgc3RvcCA9IHRoaXMuZm9ybWF0RGF0ZUZvckhvdXJzKG5ld0RhdGUpO1xuICAgICAgICAgICAgcmV0dXJuIFtzdGFydCwgc3RvcF07XG4gICAgICAgIH0pLFxuICAgICAgICBzd2l0Y2hNYXAoKFtzdGFydCwgc3RvcF06IHN0cmluZ1tdKSA9PlxuICAgICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAgICAgLmdldDxMaWJyYXJ5SG91cnNbXT4oYCR7TElCUkFSWV9IT1VSU19BUElfVVJMfT9zdGFydD0ke3N0YXJ0fSZzdG9wPSR7c3RvcH1gKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzKSA9PiByZXMuZmlsdGVyKChkYXkpID0+IGRheS5oYXNfZXhjZXB0aW9uKS5zbGljZSgwLCA1KSkpLFxuICAgICAgICApLFxuICAgICAgICBzaGFyZVJlcGxheSgxKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIHNob3dBY2NvdW50RHJvcGRvd24gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2hvd0xpYnJhcnlIb3VycyA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBtb2JpbGVTaWRlYmFySGVpZ2h0ID0gMDtcbiAgICBwcm90ZWN0ZWQgc2hvd05hdkJhciA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBpc1NjcmVlblNtYWxsID0gaXNTY3JlZW5TbWFsbFNpZ25hbCh0aGlzLmJvKTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yMi5saXN0ZW4oJ3dpbmRvdycsICdjbGljaycsIChlOiBFdmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFjY291bnRJbmZvRWwoKT8ubmF0aXZlRWxlbWVudC5jb250YWlucyhlLnRhcmdldCkpXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QWNjb3VudERyb3Bkb3duID0gZmFsc2U7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaG91cnNFbCgpPy5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSkgdGhpcy5zaG93TGlicmFyeUhvdXJzID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlblNpZGViYXJOYXYgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd05hdkJhciA9IHRydWU7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcbiAgICAgICAgdGhpcy5yMi5zZXRTdHlsZSh0aGlzLmRvYy5ib2R5LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG4gICAgfTtcblxuICAgIHByb3RlY3RlZCBjbG9zZVNpZGViYXJOYXYgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuc2hvd05hdkJhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnIyLnJlbW92ZVN0eWxlKHRoaXMuZG9jLmJvZHksICdvdmVyZmxvdycpO1xuICAgIH07XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgICBwcml2YXRlIG9uUmVzaXplKCkge1xuICAgICAgICB0aGlzLnNldE1vYmlsZVNpZGViYXJIZWlnaHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1vYmlsZVNpZGViYXJIZWlnaHQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhlYWRlckhlaWdodCA9IHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuXG4gICAgICAgIC8vIFRPRE86IHJlbW92ZSBiYW5uZXIgY29kZSBhZnRlciBiYW5uZXIgaXMgcmVtb3ZlZCBmcm9tIGJldGFcbiAgICAgICAgY29uc3QgYmFubmVyRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNiZXRhLW5hdmlnYXRpb24tYmFubmVyJyk7XG4gICAgICAgIGNvbnN0IGJhbm5lckhlaWdodCA9IGJhbm5lckVsZW1lbnQgPyBiYW5uZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCB8fCAwIDogMDtcblxuICAgICAgICB0aGlzLm1vYmlsZVNpZGViYXJIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBoZWFkZXJIZWlnaHQgLSBiYW5uZXJIZWlnaHQ7XG4gICAgfTtcbn1cbiIsIjxoZWFkZXJcbiAgICByb2xlPVwiYmFubmVyXCJcbiAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICNoZWFkZXJcbiAgICBbbmdDbGFzc109XCJ7ICdoYmxsLWhlYWRlci1kZXNrdG9wJzogIWlzU2NyZWVuU21hbGwoKSB9XCJcbj5cbiAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmxcIj5cbiAgICAgICAgPGgxPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vbWVkaWEubGliLmJ5dS5lZHUvd2ViLWFzc2V0cy9pbWFnZXMvMi4wLjAvYnl1LWhibGwtbG9nby1mdWxsLnN2Z1wiXG4gICAgICAgICAgICAgICAgYWx0PVwiQllVIExpYnJhcnkgTG9nb1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2gxPlxuICAgIDwvYT5cbiAgICA8ZGl2IGlkPVwibGlicmFyeUluZm9cIiBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIj5cbiAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICA8ZGl2ICNob3VycyBpZD1cIm1haW5MaWJyYXJ5SG91cnNcIiBkYXRhLXRlc3RpZD1cImRlc2t0b3BIb3Vyc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dMaWJyYXJ5SG91cnMgPSAhc2hvd0xpYnJhcnlIb3Vyc1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaG91cnNCdG5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhvdXJzVGV4dEJsb2NrXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgQGlmICghaXNTY3JlZW5TbWFsbCgpICYmIHNob3dMaWJyYXJ5SG91cnMpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgQGxpYkhibGxGYWRlSW5PdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGlicmFyeUhvdXJzRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJsaWJyYXJ5SG91cnNEcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImhibGwtaGVhZGVyLWhlYWRlclwiPlJlZ3VsYXIgSG91cnM8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1kZXRhaWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPk1vbmRheSAtIEZyaWRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TYXR1cmRheTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5TdW5kYXk8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPjcgYS5tIC0gbWlkbmlnaHQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj44IGEubSAtIG1pZG5pZ2h0PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+Q2xvc2VkKjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoYmxsLWhlYWRlci1ob3Vycy1ub3RlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogRmFtaWx5IGhpc3RvcnkgT05MWSA0IHAubS4gLSA4IHAubVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PHNwYW4+Tm8gY2hlY2tvdXRzIGFmdGVyIDExOjQ1IHAubS48L3NwYW4+PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5BbGwgc2VydmljZXMgY2xvc2VkIDEwOjQ1IHRvIG5vb24gb24gVHVlc2RheXM8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJoYmxsLWhlYWRlci1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiaGJsbC1oZWFkZXItaGVhZGVyXCI+VXBjb21pbmcgRXhjZXB0aW9uczwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChob3Vyc0V4Y2VwdGlvbnMkIHwgYXN5bmM7IGFzIGV4Y2VwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWRldGFpbFwiIGRhdGEtdGVzdGlkPVwiZXhjZXB0aW9uc0RldGFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBleGNlcHRpb24uZGF0ZSB8IGRhdGU6ICdNTU0uIGQsIFlZWVknIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBObyB1cGNvbWluZyBleGNlcHRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnNcIiBkYXRhLXRlc3RpZD1cImV4Y2VwdGlvbnNIb3Vyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoZXhjZXB0aW9uIG9mIGV4Y2VwdGlvbnM7IHRyYWNrIGV4Y2VwdGlvbi5kYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZXhjZXB0aW9uLmV4Y2VwdGlvbl90aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYi1zcGlubmVyXCIgZGF0YS10ZXN0aWQ9XCJleGNlcHRpb25zU3Bpbm5lclwiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiaGJsbC1oZWFkZXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImhibGwtaGVhZGVyLWhlYWRlclwiPkxpYnJhcnkgQ2FmZTwvaDI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWRldGFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJoYmxsLWhlYWRlci1pdGVtXCI+QmFnZWwgQnViYmxlPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiaGJsbC1oZWFkZXItaXRlbVwiPlByb3ZlY2hvPC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGJsbC1oZWFkZXItaG91cnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj43IGEubSAtIDExIHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhibGwtaGVhZGVyLWl0ZW1cIj4xMDozMCBhLm0gLSAyIHAubS48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWJvdXQvaG91cnMnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+U2VlIGFsbCBob3Vyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZFwiPiBjaGV2cm9uX3JpZ2h0IDwvc3Bhbj48L2FcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBpZD1cImFjY291bnRJbmZvXCIgI2FjY291bnRJbmZvPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIChjbGljayk9XCJpc0xvZ2dlZEluID8gKHNob3dBY2NvdW50RHJvcGRvd24gPSAhc2hvd0FjY291bnREcm9wZG93bikgOiBsb2dpbi5lbWl0KClcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgaWQ9XCJhY2NvdW50QnRuXCJcbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImFjY291bnRCdG5cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1sZWZ0LWljb25cIj4gcGVyc29uIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICBAaWYgKCFpc1NjcmVlblNtYWxsKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoYmxsLWhlYWRlci1uYW1lXCIgZGF0YS10ZXN0aWQ9XCJuYW1lXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzTG9nZ2VkSW4gPyAnJm5ic3A7JyArIG5hbWUgOiAnTG9naW4nXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKGlzTG9nZ2VkSW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkXCIgZGF0YS10ZXN0aWQ9XCJsb2dpbkRyb3Bkb3duXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBhcnJvd19kcm9wX2Rvd25cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgQGlmIChpc0xvZ2dlZEluICYmIHNob3dBY2NvdW50RHJvcGRvd24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IEBsaWJIYmxsRmFkZUluT3V0IGlkPVwiYWNjb3VudERyb3Bkb3duXCIgZGF0YS10ZXN0aWQ9XCJhY2NvdW50RHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50J1wiPk15IEFjY291bnQ8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudCdcIj5NeSBJdGVtczwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3JlcXVlc3QnXCI+UmVxdWVzdCBhbiBpdGVtPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQvc2F2ZWQnXCI+U2F2ZWQ8L2E+XG4gICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cIm1haW5zaXRlYmFzZXVybCArICcvYWNjb3VudC9jb3Vyc2UnXCI+Q291cnNlczwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hY2NvdW50L3Jvb21zJ1wiPlJvb21zPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJtYWluc2l0ZWJhc2V1cmwgKyAnL2FjY291bnQvcHJlZmVyZW5jZXMnXCI+UHJlZmVyZW5jZXM8L2E+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd0ltcGVyc29uYXRlQnV0dG9uKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkltcGVyc29uYXRpb25Nb2RhbC5lbWl0KCk7IHNob3dBY2NvdW50RHJvcGRvd24gPSBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJoYmxsLWhlYWRlci1pbXBlcnNvbmF0ZS1idG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEltcGVyc29uYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJsb2dvdXQuZW1pdCgpXCIgZGF0YS10ZXN0aWQ9XCJsb2dvdXRcIj5Mb2dvdXQ8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoaXNTY3JlZW5TbWFsbCgpKSB7XG4gICAgICAgICAgICA8ZGl2IGlkPVwibW9iaWxlTmF2XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vYmlsZU5hdkJ0blwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuU2lkZWJhck5hdigpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1pY29uXCI+IG1lbnUgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIEBpZiAoc2hvd05hdkJhcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hdldyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVOYXZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW0BsaWJIYmxsU2xpZGVJbk91dFJpZ2h0TGVmdF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtczogeyB4T2Zmc2V0OiAnNDAwcHgnIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiY2xvc2VNb2JpbGVOYXZCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJjbG9zZU1vYmlsZU5hdkJ0blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlU2lkZWJhck5hdigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgaGJsbC1oZWFkZXItaWNvblwiPiBjbG9zZSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItbmF2LWJhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWluU2l0ZUJhc2VVcmxdPVwibWFpbnNpdGViYXNldXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVpZ2h0XT1cIm1vYmlsZVNpZGViYXJIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIEBsaWJIYmxsRmFkZUluT3V0XG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd05hdkJhciA9IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaGJsbC1uYXYtYmFja2Ryb3BcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2JpbGVOYXZCYWNrZHJvcFwiXG4gICAgICAgICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9oZWFkZXI+XG5cbkBpZiAoIWlzU2NyZWVuU21hbGwoKSkge1xuICAgIDxkaXYgaWQ9XCJtYWluTmF2XCI+XG4gICAgICAgIDxsaWItbmF2LWJhciBbbWFpblNpdGVCYXNlVXJsXT1cIm1haW5zaXRlYmFzZXVybFwiIC8+XG4gICAgPC9kaXY+XG59XG5AaWYgKGlzU2NyZWVuU21hbGwoKSkge1xuICAgIDxhXG4gICAgICAgIGlkPVwibW9iaWxlTGlicmFyeUhvdXJzXCJcbiAgICAgICAgW2hyZWZdPVwibWFpbnNpdGViYXNldXJsICsgJy9hYm91dC9ob3VycydcIlxuICAgICAgICBjbGFzcz1cImhibGwtaGVhZGVyLXdyYXBwZXJcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cIm1vYmlsZUhvdXJzXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJob3Vyc1RleHRCbG9ja1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbn1cblxuPG5nLXRlbXBsYXRlICNob3Vyc1RleHRCbG9jaz5cbiAgICBAaWYgKGxpYnJhcnlIb3VycygpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBoYmxsLWhlYWRlci1sZWZ0LWljb25cIj4gc2NoZWR1bGUgPC9zcGFuPlxuICAgICAgICB7e1xuICAgICAgICAgICAgbGlicmFyeUhvdXJzKCk/LmlzX2Nsb3NlZFxuICAgICAgICAgICAgICAgID8gJ0NMT1NFRCdcbiAgICAgICAgICAgICAgICA6IFwiVG9kYXkncyBob3VyczogXCIgK1xuICAgICAgICAgICAgICAgICAgKGxpYnJhcnlIb3VycygpIS5kYXRlIHwgbGlicmFyeUhvdXJzOiBsaWJyYXJ5SG91cnMoKSEub3Blbl90aW1lKSArXG4gICAgICAgICAgICAgICAgICAnIC0gJyArXG4gICAgICAgICAgICAgICAgICAobGlicmFyeUhvdXJzKCkhLmRhdGUgfCBsaWJyYXJ5SG91cnM6IGxpYnJhcnlIb3VycygpIS5jbG9zZV90aW1lKVxuICAgICAgICB9fVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -528,8 +528,13 @@ class HbllHeaderComponent {
528
528
  this.showNavBar = false;
529
529
  this.r2.removeStyle(this.doc.body, 'overflow');
530
530
  };
531
- this.setMobileSidebarHeight = () => (this.mobileSidebarHeight =
532
- window.innerHeight - this.header.nativeElement.getBoundingClientRect().height);
531
+ this.setMobileSidebarHeight = () => {
532
+ const headerHeight = this.header.nativeElement.getBoundingClientRect().height;
533
+ // TODO: remove banner code after banner is removed from beta
534
+ const bannerElement = document.querySelector('#beta-navigation-banner');
535
+ const bannerHeight = bannerElement ? bannerElement.getBoundingClientRect().height || 0 : 0;
536
+ this.mobileSidebarHeight = window.innerHeight - headerHeight - bannerHeight;
537
+ };
533
538
  }
534
539
  get isLoggedIn() {
535
540
  return !!this.name;