@ieeesa-npm/dashboard 0.0.4 → 0.0.5
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.
- package/esm2022/lib/components/event-group-card/event-group-card.component.mjs +3 -7
- package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs +3 -7
- package/esm2022/lib/components/your-groups/your-groups.component.mjs +3 -3
- package/esm2022/lib/dashboard.component.mjs +9 -42
- package/fesm2022/ieeesa-npm-dashboard.mjs +14 -55
- package/fesm2022/ieeesa-npm-dashboard.mjs.map +1 -1
- package/lib/components/event-group-card/event-group-card.component.d.ts +1 -3
- package/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.d.ts +1 -3
- package/lib/dashboard.component.d.ts +4 -21
- package/package.json +1 -1
package/esm2022/lib/components/upcoming-meetings-events/upcoming-meetings-events.component.mjs
CHANGED
|
@@ -50,8 +50,6 @@ export class UpcomingMeetingsEventsComponent {
|
|
|
50
50
|
this.inFlightMeetingIds = new Set();
|
|
51
51
|
/** Whether the host has determined the viewport is at/below the mobile breakpoint. */
|
|
52
52
|
this.isMobileView = false;
|
|
53
|
-
/** Event ids whose drill-down meetings are currently loading (spinner). */
|
|
54
|
-
this.loadingEventIds = new Set();
|
|
55
53
|
/** Emits when the "View All" link is activated (Req 5.2). */
|
|
56
54
|
this.viewAll = new EventEmitter();
|
|
57
55
|
/** Bubbles the event id when a card's "View Event" button is activated (Req 6.4). */
|
|
@@ -277,7 +275,7 @@ export class UpcomingMeetingsEventsComponent {
|
|
|
277
275
|
this.navigateToMeeting.emit(request);
|
|
278
276
|
}
|
|
279
277
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
280
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UpcomingMeetingsEventsComponent, isStandalone: true, selector: "ieeesa-upcoming-meetings-events", inputs: { events: "events", sectionState: "sectionState", permissions: "permissions", attendanceStates: "attendanceStates", inFlightMeetingIds: "inFlightMeetingIds", isMobileView: "isMobileView", loadingEventIds: "loadingEventIds", expanded: "expanded" }, outputs: { viewAll: "viewAll", viewEvent: "viewEvent", openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting", meetingPageChange: "meetingPageChange", loadEventMeetings: "loadEventMeetings", navigateToMeeting: "navigateToMeeting", expandedChange: "expandedChange" }, ngImport: i0, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n [meetingsLoading]=\"loadingEventIds.has(event.eventId)\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: LoaderComponent, selector: "ieeesa-loader", inputs: ["diameter"] }, { kind: "component", type: EventGroupCardComponent, selector: "ieeesa-event-group-card", inputs: ["event", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView", "meetingsLoading"], outputs: ["viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "pageChange", "loadMeetings", "navigateToMeeting"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
278
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: UpcomingMeetingsEventsComponent, isStandalone: true, selector: "ieeesa-upcoming-meetings-events", inputs: { events: "events", sectionState: "sectionState", permissions: "permissions", attendanceStates: "attendanceStates", inFlightMeetingIds: "inFlightMeetingIds", isMobileView: "isMobileView", expanded: "expanded" }, outputs: { viewAll: "viewAll", viewEvent: "viewEvent", openMeeting: "openMeeting", logAttendance: "logAttendance", leaveMeeting: "leaveMeeting", meetingPageChange: "meetingPageChange", loadEventMeetings: "loadEventMeetings", navigateToMeeting: "navigateToMeeting", expandedChange: "expandedChange" }, ngImport: i0, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i2.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: LoaderComponent, selector: "ieeesa-loader", inputs: ["diameter"] }, { kind: "component", type: EventGroupCardComponent, selector: "ieeesa-event-group-card", inputs: ["event", "permissions", "attendanceStates", "inFlightMeetingIds", "isMobileView"], outputs: ["viewEvent", "openMeeting", "logAttendance", "leaveMeeting", "pageChange", "loadMeetings", "navigateToMeeting"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
281
279
|
}
|
|
282
280
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: UpcomingMeetingsEventsComponent, decorators: [{
|
|
283
281
|
type: Component,
|
|
@@ -286,7 +284,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
286
284
|
MatPaginatorModule,
|
|
287
285
|
LoaderComponent,
|
|
288
286
|
EventGroupCardComponent,
|
|
289
|
-
], encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n [meetingsLoading]=\"loadingEventIds.has(event.eventId)\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"] }]
|
|
287
|
+
], encapsulation: ViewEncapsulation.None, template: "<section\r\n class=\"ieeesa-upcoming-meetings-events\"\r\n [class.ieeesa-upcoming-meetings-events--mobile]=\"isMobileView\"\r\n>\r\n <header class=\"ieeesa-upcoming-meetings-events__header\">\r\n <!-- Section title (Req 5.1). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__heading\">\r\n <h2 class=\"ieeesa-upcoming-meetings-events__title\">\r\n {{ constants.upcomingSection.title }}\r\n </h2>\r\n </div>\r\n\r\n <!-- View All link + Expand/Collapse toggle (Req 5.1, 5.2, 5.3, 5.4, 14.3). -->\r\n <div class=\"ieeesa-upcoming-meetings-events__actions\">\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__view-all\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.viewAll\"\r\n (click)=\"onViewAll()\"\r\n >\r\n {{ constants.upcomingSection.viewAllLabel }}\r\n </button>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"ieeesa-upcoming-meetings-events__toggle\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n [attr.aria-label]=\"constants.upcomingSection.ariaLabel.toggle\"\r\n (click)=\"onToggleExpanded()\"\r\n >\r\n <span>{{ isExpanded ? constants.upcomingSection.collapseLabel : constants.upcomingSection.expandLabel }}</span>\r\n <i\r\n class=\"fa-solid\"\r\n [ngClass]=\"isExpanded ? 'fa-chevron-up' : 'fa-chevron-down'\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n </button>\r\n </div>\r\n </header>\r\n\r\n <!-- Collapsed summary: events / meetings / open-for-attendance counts.\r\n The open-for-attendance segment is green bold per Figma. -->\r\n <p\r\n *ngIf=\"!isExpanded && sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__summary\"\r\n >\r\n {{ eventCount }} events · {{ totalMeetingCount }} meetings ·\r\n <span class=\"ieeesa-upcoming-meetings-events__summary-open\">\r\n {{ totalOpenForAttendanceCount }} open for attendance\r\n </span>\r\n </p>\r\n\r\n <!-- Card list, shown only while expanded (Req 5.4). -->\r\n <div *ngIf=\"isExpanded\" class=\"ieeesa-upcoming-meetings-events__body\">\r\n <!-- Loader region (Req 13.1). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADING\"\r\n class=\"ieeesa-upcoming-meetings-events__loader\"\r\n >\r\n <ieeesa-loader></ieeesa-loader>\r\n </div>\r\n\r\n <!-- Content region: one card per event preserving input order (Req 5.5, 5.6, 13.2). -->\r\n <div\r\n *ngIf=\"sectionState === sectionStates.LOADED\"\r\n class=\"ieeesa-upcoming-meetings-events__cards\"\r\n >\r\n <ieeesa-event-group-card\r\n *ngFor=\"let event of pagedEvents; trackBy: trackByEventId\"\r\n [event]=\"event\"\r\n [permissions]=\"permissions\"\r\n [attendanceStates]=\"attendanceStates\"\r\n [inFlightMeetingIds]=\"inFlightMeetingIds\"\r\n [isMobileView]=\"isMobileView\"\r\n (viewEvent)=\"onViewEvent($event)\"\r\n (openMeeting)=\"onOpenMeeting($event)\"\r\n (logAttendance)=\"onLogAttendance($event)\"\r\n (leaveMeeting)=\"onLeaveMeeting($event)\"\r\n (pageChange)=\"onMeetingPageChange(event.eventId, $event)\"\r\n (loadMeetings)=\"onLoadEventMeetings(event.eventId, $event)\"\r\n (navigateToMeeting)=\"onNavigateToMeeting($event)\"\r\n ></ieeesa-event-group-card>\r\n\r\n <!-- Section-level paginator: 5 events/meetings per page (Req 3.x, design). -->\r\n <div\r\n *ngIf=\"totalItems > sectionPageSize\"\r\n class=\"ieeesa-upcoming-meetings-events__paginator\"\r\n >\r\n <span class=\"ieeesa-upcoming-meetings-events__paginator-range\">\r\n {{ sectionRangeLabel }}\r\n </span>\r\n <mat-paginator\r\n class=\"ieeesa-upcoming-meetings-events__paginator-control\"\r\n [pageIndex]=\"sectionPageIndex\"\r\n [pageSize]=\"sectionPageSize\"\r\n [length]=\"totalItems\"\r\n [hidePageSize]=\"true\"\r\n (page)=\"onSectionPageChange($event)\"\r\n ></mat-paginator>\r\n </div>\r\n </div>\r\n\r\n <!-- Empty-state region (Req 13.3). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.EMPTY\"\r\n class=\"ieeesa-upcoming-meetings-events__empty\"\r\n >\r\n {{ constants.upcomingSection.emptyMessage }}\r\n </p>\r\n\r\n <!-- Error region (Req 13.5). -->\r\n <p\r\n *ngIf=\"sectionState === sectionStates.ERROR\"\r\n class=\"ieeesa-upcoming-meetings-events__error\"\r\n role=\"alert\"\r\n >\r\n {{ constants.upcomingSection.errorMessage }}\r\n </p>\r\n </div>\r\n</section>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.ieeesa-upcoming-meetings-events{display:flex;flex-direction:column;gap:16px;background-color:#fff;border-radius:12px;box-shadow:0 1px 2px #0003;border:1px solid #e2e8f0;padding:20px 24px}.ieeesa-upcoming-meetings-events__header{display:flex;align-items:center;justify-content:space-between;gap:16px}.ieeesa-upcoming-meetings-events__heading{display:flex;min-width:0}.ieeesa-upcoming-meetings-events__title{margin:0;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#0f172a}.ieeesa-upcoming-meetings-events__actions{display:flex;align-items:center;gap:16px}.ieeesa-upcoming-meetings-events__view-all{flex-shrink:0;background:none;border:none;padding:0;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__view-all:hover{text-decoration:underline}.ieeesa-upcoming-meetings-events__toggle{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid #dbe2eb;border-radius:8px;background-color:#fff;cursor:pointer;font-family:Calibri Bold;font-weight:700;font-size:18px;color:#00629b}.ieeesa-upcoming-meetings-events__toggle:hover{border-color:#00629b}.ieeesa-upcoming-meetings-events__toggle i{font-size:.75rem}.ieeesa-upcoming-meetings-events__summary{margin:0;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__summary-open{font-family:Calibri Bold;font-weight:700;color:#15803d}.ieeesa-upcoming-meetings-events__body{display:flex;flex-direction:column}.ieeesa-upcoming-meetings-events__loader{display:flex;align-items:center;justify-content:center;padding:24px}.ieeesa-upcoming-meetings-events__cards{display:flex;flex-direction:column;gap:16px}.ieeesa-upcoming-meetings-events__paginator{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:12px;padding-top:8px}.ieeesa-upcoming-meetings-events__paginator-range{font-size:.8125rem;color:#939094}.ieeesa-upcoming-meetings-events__empty,.ieeesa-upcoming-meetings-events__error{margin:0;padding:16px;font-size:.875rem;color:#939094}.ieeesa-upcoming-meetings-events__error{color:#ba0c2f}.ieeesa-upcoming-meetings-events--mobile .ieeesa-upcoming-meetings-events__header{flex-wrap:wrap}\n"] }]
|
|
290
288
|
}], propDecorators: { events: [{
|
|
291
289
|
type: Input
|
|
292
290
|
}], sectionState: [{
|
|
@@ -299,8 +297,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
299
297
|
type: Input
|
|
300
298
|
}], isMobileView: [{
|
|
301
299
|
type: Input
|
|
302
|
-
}], loadingEventIds: [{
|
|
303
|
-
type: Input
|
|
304
300
|
}], viewAll: [{
|
|
305
301
|
type: Output
|
|
306
302
|
}], viewEvent: [{
|
|
@@ -322,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
322
318
|
}], expandedChange: [{
|
|
323
319
|
type: Output
|
|
324
320
|
}] } });
|
|
325
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUVMLGdCQUFnQixHQUNqQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQWVILE1BQU0sT0FBTywrQkFBK0I7SUFkNUM7UUFlRSx5REFBeUQ7UUFDekQsOERBQThEO1FBQzlELGNBQVMsR0FBUSxXQUFXLENBQUM7UUFFN0Isc0VBQXNFO1FBQzdELGtCQUFhLEdBQUcscUJBQXFCLENBQUM7UUFF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a0JBQWtCLDBKQUNsQixlQUFlLGdGQUNmLHVCQUF1Qjs7NEZBTWQsK0JBQStCO2tCQWQzQyxTQUFTOytCQUVFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUN4QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdJLE9BQU87c0JBQWhCLE1BQU07Z0JBR0csU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxXQUFXO3NCQUFwQixNQUFNO2dCQUdHLGFBQWE7c0JBQXRCLE1BQU07Z0JBR0csWUFBWTtzQkFBckIsTUFBTTtnQkFHRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNO2dCQU9HLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkF3SUgsUUFBUTtzQkFEWCxLQUFLO2dCQWVJLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICBQYWdlRXZlbnQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2UtYWN0aW9uLXBlcm1pc3Npb25zLm1vZGVsJztcclxuaW1wb3J0IHsgQXR0ZW5kYW5jZVN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F0dGVuZGFuY2Utc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBEYXNoYm9hcmRTZWN0aW9uU3RhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvZGFzaGJvYXJkLXNlY3Rpb24tc3RhdGUubW9kZWwnO1xyXG5pbXBvcnQgeyBQYWdlQ2hhbmdlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BhZ2UtY2hhbmdlLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBVcGNvbWluZ0V2ZW50LFxyXG4gIFVwY29taW5nSXRlbUtpbmQsXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL3VwY29taW5nLWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRHcm91cENhcmRDb21wb25lbnQgfSBmcm9tICcuLi9ldmVudC1ncm91cC1jYXJkL2V2ZW50LWdyb3VwLWNhcmQuY29tcG9uZW50JztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dHMgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuXHJcbi8qKlxyXG4gKiBVcGNvbWluZ19NZWV0aW5nc19FdmVudHMgcmVuZGVycyB0aGUgXCJVcGNvbWluZyBNZWV0aW5ncyAmIEV2ZW50c1wiIGRhc2hib2FyZFxyXG4gKiBzZWN0aW9uOiBhIHNlY3Rpb24gdGl0bGUgYW5kIFwiVmlldyBBbGxcIiBsaW5rLCBhIGNvbGxhcHNlL2V4cGFuZCB0b2dnbGUgdGhhdFxyXG4gKiBzdGFydHMgZXhwYW5kZWQsIGFuZCBvbmUge0BsaW5rIEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50fSBwZXIgdXBjb21pbmcgZXZlbnQuXHJcbiAqXHJcbiAqIFRoZSBzZWN0aW9uIGlzIGRyaXZlbiBieSBpdHMgYHNlY3Rpb25TdGF0ZWAgaW5wdXQ6IGl0IHNob3dzIHRoZSBMb2FkZXIgd2hpbGVcclxuICogYExPQURJTkdgLCB0aGUgZXZlbnQtZ3JvdXAgY2FyZHMgd2hpbGUgYExPQURFRGAsIHRoZSBlbXB0eS1zdGF0ZSBtZXNzYWdlIHdoaWxlXHJcbiAqIGBFTVBUWWAsIGFuZCB0aGUgZXJyb3IgbWVzc2FnZSB3aGlsZSBgRVJST1JgIOKAlCB0aGUgZm91ciByZWdpb25zIGFyZSBtdXR1YWxseVxyXG4gKiBleGNsdXNpdmUgKFJlcSAxMy4xLCAxMy4yLCAxMy4zLCAxMy41KS4gVGhlIGNvbXBvbmVudCBpcyBwdXJlbHlcclxuICogcHJlc2VudGF0aW9uYWw6IFwiVmlldyBBbGxcIiBlbWl0cyBgdmlld0FsbGAgKFJlcSA1LjEsIDUuMiksIHRoZSBjb2xsYXBzZSB0b2dnbGVcclxuICogZmxpcHMgYGlzRXhwYW5kZWRgIGFuZCB0aGUgY2FyZC1saXN0IHZpc2liaWxpdHkgd2hpbGUgZXhwb3NpbmdcclxuICogYFthdHRyLmFyaWEtZXhwYW5kZWRdYCAoUmVxIDUuMywgNS40LCAxNC4zKSwgYW5kIGVhY2ggY2FyZCBpcyByZW5kZXJlZCB2aWFcclxuICogYCpuZ0ZvcmAgd2l0aCB7QGxpbmsgdHJhY2tCeUV2ZW50SWR9IHRvIHByZXNlcnZlIGlucHV0IG9yZGVyIChSZXEgNS41LCA1LjYsXHJcbiAqIDE0LjQpLiBDYXJkIG91dHB1dHMgKGB2aWV3RXZlbnRgL2BvcGVuTWVldGluZ2AvYGxvZ0F0dGVuZGFuY2VgL2BsZWF2ZU1lZXRpbmdgKVxyXG4gKiBhcmUgYnViYmxlZCB1cHdhcmQgdW5jaGFuZ2VkLCBhbmQgZWFjaCBjYXJkJ3MgYHBhZ2VDaGFuZ2VgIGlzIG1hcHBlZCB0b1xyXG4gKiBgbWVldGluZ1BhZ2VDaGFuZ2VgIHRhZ2dlZCB3aXRoIHRoZSBvcmlnaW5hdGluZyBldmVudCBpZCAoUmVxIDYuOSkuXHJcbiAqIEBleHBvcnRcclxuICogQGNsYXNzIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIExvYWRlckNvbXBvbmVudCxcclxuICAgIEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnQge1xyXG4gIC8qKiBVc2VyLWZhY2luZyBzdHJpbmdzIHNvdXJjZWQgZnJvbSBgY29uc3RhbnRzLmpzb25gLiAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgY29uc3RhbnRzOiBhbnkgPSBzY3JlZW5UZXh0cztcclxuXHJcbiAgLyoqIEVudW0gcmVmZXJlbmNlIGZvciB0ZW1wbGF0ZSBjb21wYXJpc29ucyBhZ2FpbnN0IGBzZWN0aW9uU3RhdGVgLiAqL1xyXG4gIHJlYWRvbmx5IHNlY3Rpb25TdGF0ZXMgPSBEYXNoYm9hcmRTZWN0aW9uU3RhdGU7XHJcblxyXG4gIC8qKiBUaGUgdXBjb21pbmcgZXZlbnRzIHJlbmRlcmVkIGFzIGV2ZW50LWdyb3VwIGNhcmRzIChSZXEgNS41LCA1LjYpLiAqL1xyXG4gIEBJbnB1dCgpIGV2ZW50czogVXBjb21pbmdFdmVudFtdID0gW107XHJcblxyXG4gIC8qKiBUaGUgbG9hZC9lbXB0eS9lcnJvciBzdGF0dXMgZHJpdmluZyB0aGUgc2VjdGlvbidzIG11dHVhbGx5IGV4Y2x1c2l2ZSByZWdpb25zLiAqL1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25TdGF0ZTogRGFzaGJvYXJkU2VjdGlvblN0YXRlID0gRGFzaGJvYXJkU2VjdGlvblN0YXRlLkxPQURJTkc7XHJcblxyXG4gIC8qKiBIb3N0IHBlcm1pc3Npb25zIGdhdGluZyB0aGUgcGVyLXJvdyBsb2ctYXR0ZW5kYW5jZSAvIGxlYXZlLW1lZXRpbmcgYnV0dG9ucy4gKi9cclxuICBASW5wdXQoKSBwZXJtaXNzaW9uczogQXR0ZW5kYW5jZUFjdGlvblBlcm1pc3Npb25zID0ge1xyXG4gICAgY2FuTG9nQXR0ZW5kYW5jZTogZmFsc2UsXHJcbiAgICBjYW5MZWF2ZU1lZXRpbmc6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIC8qKiBNYXAgb2YgbWVldGluZyBpZCB0byBjdXJyZW50IGF0dGVuZGFuY2Ugc3RhdGUsIHBhc3NlZCBkb3duIHRvIGVhY2ggY2FyZC4gKi9cclxuICBASW5wdXQoKSBhdHRlbmRhbmNlU3RhdGVzOiBSZWNvcmQ8c3RyaW5nLCBBdHRlbmRhbmNlU3RhdGU+ID0ge307XHJcblxyXG4gIC8qKiBTZXQgb2YgbWVldGluZyBpZHMgd2l0aCBhbiBhdHRlbmRhbmNlIGFjdGlvbiBhd2FpdGluZyByZXNvbHV0aW9uLiAqL1xyXG4gIEBJbnB1dCgpIGluRmxpZ2h0TWVldGluZ0lkczogUmVhZG9ubHlTZXQ8c3RyaW5nPiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICAvKiogV2hldGhlciB0aGUgaG9zdCBoYXMgZGV0ZXJtaW5lZCB0aGUgdmlld3BvcnQgaXMgYXQvYmVsb3cgdGhlIG1vYmlsZSBicmVha3BvaW50LiAqL1xyXG4gIEBJbnB1dCgpIGlzTW9iaWxlVmlldyA9IGZhbHNlO1xyXG5cclxuICAvKiogRXZlbnQgaWRzIHdob3NlIGRyaWxsLWRvd24gbWVldGluZ3MgYXJlIGN1cnJlbnRseSBsb2FkaW5nIChzcGlubmVyKS4gKi9cclxuICBASW5wdXQoKSBsb2FkaW5nRXZlbnRJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFwiVmlldyBBbGxcIiBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDUuMikuICovXHJcbiAgQE91dHB1dCgpIHZpZXdBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBldmVudCBpZCB3aGVuIGEgY2FyZCdzIFwiVmlldyBFdmVudFwiIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgKFJlcSA2LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSB2aWV3RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgdGhlIG1lZXRpbmcgaWQgd2hlbiBhIGNhcmQncyBtZWV0aW5nLW5hbWUgbGluayBpcyBhY3RpdmF0ZWQgKFJlcSA3LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSBvcGVuTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgbWVldGluZyBpZCB3aGVuIGEgY2FyZCByZXF1ZXN0cyBsb2dnaW5nIGF0dGVuZGFuY2UgKFJlcSA3LjcpLiAqL1xyXG4gIEBPdXRwdXQoKSBsb2dBdHRlbmRhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBtZWV0aW5nIGlkIHdoZW4gYSBjYXJkIHJlcXVlc3RzIGxlYXZpbmcgdGhlIG1lZXRpbmcgKFJlcSA3LjgpLiAqL1xyXG4gIEBPdXRwdXQoKSBsZWF2ZU1lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWdnZWQgd2l0aCBpdHMgZXZlbnQgaWQgd2hlbiBhIGNhcmQgcGFnaW5hdGVzIChSZXEgNi45KS4gKi9cclxuICBAT3V0cHV0KCkgbWVldGluZ1BhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnRJZDogc3RyaW5nIH0gJiBQYWdlQ2hhbmdlPigpO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGV2ZW50IGlkICsgb25lLWJhc2VkIHBhZ2UgKyBzaXplIHRvIGxhemlseSBsb2FkIGFuIGV2ZW50J3MgY2hpbGQgbWVldGluZ3MuICovXHJcbiAgQE91dHB1dCgpIGxvYWRFdmVudE1lZXRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgYSBuYXZpZ2F0ZS10by1tZWV0aW5nIHJlcXVlc3QgKGV2ZW50SWQgKyBtZWV0aW5nSWQgWysgbG9nQXR0ZW5kYW5jZV0pIGZvciB0aGUgaG9zdCB0byByb3V0ZS4gKi9cclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb01lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50SWQ6IHN0cmluZztcclxuICAgIG1lZXRpbmdJZDogc3RyaW5nO1xyXG4gICAgbG9nQXR0ZW5kYW5jZT86IGJvb2xlYW47XHJcbiAgICBsZWF2ZU1lZXRpbmc/OiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWN0aW9uJ3MgY2FyZCBsaXN0IGlzIGN1cnJlbnRseSBleHBhbmRlZDsgc3RhcnRzIGNvbGxhcHNlZC4gKi9cclxuICBpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTZWN0aW9uLWxldmVsIHBhZ2Ugc2l6ZSDigJQgNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgcGVyIHRoZSBkZXNpZ24uICovXHJcbiAgcmVhZG9ubHkgc2VjdGlvblBhZ2VTaXplID0gNTtcclxuXHJcbiAgLyoqIFRoZSBjdXJyZW50IHplcm8tYmFzZWQgcGFnZSBpbmRleCBvZiB0aGUgc2VjdGlvbiBsaXN0LiAqL1xyXG4gIHNlY3Rpb25QYWdlSW5kZXggPSAwO1xyXG5cclxuICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBldmVudHMvbWVldGluZ3MgaW4gdGhlIHNlY3Rpb24gKHBhZ2luYXRvciBsZW5ndGgpLiAqL1xyXG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5ldmVudHM/Lmxlbmd0aCA/PyAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNsaWNlIG9mIGV2ZW50cy9tZWV0aW5ncyBmb3IgdGhlIGN1cnJlbnQgc2VjdGlvbiBwYWdlICg1IHBlciBwYWdlKSxcclxuICAgKiB1c2VkIGJ5IHRoZSBjYXJkIGAqbmdGb3JgLlxyXG4gICAqIEByZXR1cm4ge1VwY29taW5nRXZlbnRbXX0gVGhlIGV2ZW50cyBvbiB0aGUgY3VycmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHBhZ2VkRXZlbnRzKCk6IFVwY29taW5nRXZlbnRbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuc2VjdGlvblBhZ2VJbmRleCAqIHRoaXMuc2VjdGlvblBhZ2VTaXplO1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5zZWN0aW9uUGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGZpcnN0IGl0ZW0gc2hvd24gb24gdGhlIGN1cnJlbnQgcGFnZS4gKi9cclxuICBnZXQgc2VjdGlvblJhbmdlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMgPT09IDBcclxuICAgICAgPyAwXHJcbiAgICAgIDogdGhpcy5zZWN0aW9uUGFnZUluZGV4ICogdGhpcy5zZWN0aW9uUGFnZVNpemUgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGxhc3QgaXRlbSBzaG93biBvbiB0aGUgY3VycmVudCBwYWdlLiAqL1xyXG4gIGdldCBzZWN0aW9uUmFuZ2VFbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbihcclxuICAgICAgKHRoaXMuc2VjdGlvblBhZ2VJbmRleCArIDEpICogdGhpcy5zZWN0aW9uUGFnZVNpemUsXHJcbiAgICAgIHRoaXMudG90YWxJdGVtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzZWN0aW9uIHBhZ2luYXRvciByYW5nZSBsYWJlbCAoZS5nLiBcIjEtNSBvZiAyMCBNZWV0aW5ncyAmIEV2ZW50c1wiKVxyXG4gICAqIGJ1aWx0IGZyb20gdGhlIGBjb25zdGFudHMuanNvbmAgdGVtcGxhdGUuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHJhbmdlIGxhYmVsLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNlY3Rpb25SYW5nZUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9XHJcbiAgICAgIHRoaXMuY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LnBhZ2luYXRvcj8ucmFuZ2VUZW1wbGF0ZSA/P1xyXG4gICAgICAne3N0YXJ0fS17ZW5kfSBvZiB7dG90YWx9IE1lZXRpbmdzICYgRXZlbnRzJztcclxuICAgIHJldHVybiB0ZW1wbGF0ZVxyXG4gICAgICAucmVwbGFjZSgne3N0YXJ0fScsIGAke3RoaXMuc2VjdGlvblJhbmdlU3RhcnR9YClcclxuICAgICAgLnJlcGxhY2UoJ3tlbmR9JywgYCR7dGhpcy5zZWN0aW9uUmFuZ2VFbmR9YClcclxuICAgICAgLnJlcGxhY2UoJ3t0b3RhbH0nLCBgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWN0aW9uIHBhZ2luYXRvciBjaGFuZ2UsIHVwZGF0aW5nIHRoZSBjdXJyZW50IHNlY3Rpb24gcGFnZS5cclxuICAgKiBAcGFyYW0ge1BhZ2VFdmVudH0gZXZlbnQgLSBUaGUgTWF0ZXJpYWwgcGFnaW5hdG9yIHBhZ2UgZXZlbnQuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VjdGlvblBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9uUGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqIE51bWJlciBvZiBFVkVOVCByb3dzIGluIHRoZSBsaXN0IChmb3IgdGhlIGNvbGxhcHNlZCBzdW1tYXJ5KS4gKi9cclxuICBnZXQgZXZlbnRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAoZW50cnkpID0+IGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIGFjcm9zcyB0aGUgbGlzdDogZWFjaCBldmVudCdzIGBtZWV0aW5nQ291bnRgIHBsdXNcclxuICAgKiBvbmUgcGVyIHN0YW5kYWxvbmUgbWVldGluZyAoZm9yIHRoZSBjb2xsYXBzZWQgc3VtbWFyeSkuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbWVldGluZyBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE1lZXRpbmdDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkucmVkdWNlKCh0b3RhbCwgZW50cnkpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0b3RhbCArXHJcbiAgICAgICAgKGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICAgICAgID8gZW50cnkubWVldGluZ0NvdW50ID8/IDBcclxuICAgICAgICAgIDogMSlcclxuICAgICAgKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIG9wZW4gZm9yIGF0dGVuZGFuY2UgYWNyb3NzIHRoZSBsaXN0IChmb3IgdGhlXHJcbiAgICogY29sbGFwc2VkIHN1bW1hcnkpOiBlYWNoIGV2ZW50J3Mgb3BlbiBjb3VudCBwbHVzIGFueSBzdGFuZGFsb25lIG1lZXRpbmcgdGhhdFxyXG4gICAqIGlzIGF0dGVuZGFuY2UtZWxpZ2libGUuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5ldmVudHMgPz8gW10pLnJlZHVjZSgodG90YWwsIGVudHJ5KSA9PiB7XHJcbiAgICAgIGlmIChlbnRyeS5raW5kID09PSBVcGNvbWluZ0l0ZW1LaW5kLkVWRU5UKSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5Lm9wZW5Gb3JBdHRlbmRhbmNlQ291bnQgPz8gMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5LmF0dGVuZGFuY2VTdGF0ZSA/IDEgOiAwKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbGxhcHNlZCBzdW1tYXJ5IGxpbmUgKGUuZy4gXCIzIGV2ZW50cyDCtyA1MCBtZWV0aW5ncyDCtyAyMSBvcGVuIGZvclxyXG4gICAqIGF0dGVuZGFuY2VcIikgYnVpbHQgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYCB0ZW1wbGF0ZSBhbmQgdGhlIGNvdW50cy5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgY29sbGFwc2VkIHN1bW1hcnkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VkU3VtbWFyeSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdGVtcGxhdGUgPVxyXG4gICAgICB0aGlzLmNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5jb2xsYXBzZWRTdW1tYXJ5VGVtcGxhdGUgPz9cclxuICAgICAgJ3tldmVudHN9IGV2ZW50cyBcXHUwMGI3IHttZWV0aW5nc30gbWVldGluZ3MgXFx1MDBiNyB7b3Blbn0gb3BlbiBmb3IgYXR0ZW5kYW5jZSc7XHJcbiAgICByZXR1cm4gdGVtcGxhdGVcclxuICAgICAgLnJlcGxhY2UoJ3tldmVudHN9JywgYCR7dGhpcy5ldmVudENvdW50fWApXHJcbiAgICAgIC5yZXBsYWNlKCd7bWVldGluZ3N9JywgYCR7dGhpcy50b3RhbE1lZXRpbmdDb3VudH1gKVxyXG4gICAgICAucmVwbGFjZSgne29wZW59JywgYCR7dGhpcy50b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnR9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdGhlIGhvc3QvY29udGFpbmVyIHRvIG9wZW4gb3IgY2xvc2UgdGhlIHNlY3Rpb24gKGUuZy4gYSBcIkp1bXAgdG9cIlxyXG4gICAqIHNob3J0Y3V0IG9wZW5zIGl0KS4gV3JpdGluZyB0aGUgaW5wdXQgbWlycm9ycyB0aGUgdmFsdWUgb250byB0aGUgaW50ZXJuYWxcclxuICAgKiBleHBhbmQgc3RhdGUgd2hpbGUgbGVhdmluZyB0aGUgdXNlcidzIG93biB0b2dnbGUgZnJlZSB0byBjaGFuZ2UgaXQgYWZ0ZXIuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gISF2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgZXhwYW5kZWQgc3RhdGUgd2hlbmV2ZXIgdGhlIHVzZXIgdG9nZ2xlcyB0aGUgc2VjdGlvbiwgc28gYVxyXG4gICAqIHR3by13YXkgYFsoZXhwYW5kZWQpXWAgYmluZGluZyBrZWVwcyB0aGUgaG9zdCdzIGZsYWcgaW4gc3luYyAob3RoZXJ3aXNlIGFcclxuICAgKiBob3N0LW9wZW5lZCBzZWN0aW9uIHRoZSB1c2VyIHRoZW4gY29sbGFwc2VzIGxlYXZlcyB0aGUgaG9zdCBmbGFnIHN0YWxlLFxyXG4gICAqIG1ha2luZyBhIHJlcGVhdCBcIkp1bXAgdG9cIiBhIG5vLW9wKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRyYWNrQnlgIGZvciB0aGUgZXZlbnQtZ3JvdXAtY2FyZCBgKm5nRm9yYCwga2V5ZWQgYnkgdGhlIHN0YWJsZSBldmVudCBpZCBzb1xyXG4gICAqIEFuZ3VsYXIgcmVuZGVycyBleGFjdGx5IG9uZSBjYXJkIHBlciBldmVudCBpbiBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxNC40KS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgaXRlcmF0aW9uIGluZGV4IChmYWxsYmFjayBrZXkpLlxyXG4gICAqIEBwYXJhbSB7VXBjb21pbmdFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgZm9yIHRoaXMgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdGFibGUgdHJhY2sga2V5IChldmVudCBpZCkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RXZlbnRJZChpbmRleDogbnVtYmVyLCBldmVudDogVXBjb21pbmdFdmVudCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZXZlbnQ/LmV2ZW50SWQgPz8gYCR7aW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlY3Rpb24ncyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGUsIGludmVydGluZyB0aGUgY2FyZC1saXN0XHJcbiAgICogdmlzaWJpbGl0eSBhbmQgdGhlIGV4cG9zZWQgYGFyaWEtZXhwYW5kZWRgIHZhbHVlIChSZXEgNS40LCAxNC4zKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuaXNFeHBhbmRlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBcIlZpZXcgQWxsXCIgbGluaywgZW1pdHRpbmcgdGhlIGB2aWV3QWxsYCBpbnRlbnQgdG8gdGhlIGhvc3QgKFJlcSA1LjIpLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3QWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3QWxsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgXCJWaWV3IEV2ZW50XCIgYWN0aXZhdGlvbiB1cHdhcmQgKFJlcSA2LjQpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudElkIC0gVGhlIGV2ZW50IGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvblZpZXdFdmVudChldmVudElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0V2ZW50LmVtaXQoZXZlbnRJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIG1lZXRpbmctbmFtZSBsaW5rIGFjdGl2YXRpb24gdXB3YXJkIChSZXEgNy40KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVldGluZ0lkIC0gVGhlIG1lZXRpbmcgaWQgZW1pdHRlZCBieSB0aGUgY2FyZC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdChtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBsb2ctYXR0ZW5kYW5jZSByZXF1ZXN0IHVwd2FyZCAoUmVxIDcuNykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvZ0F0dGVuZGFuY2UobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nQXR0ZW5kYW5jZS5lbWl0KG1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxlYXZlLW1lZXRpbmcgcmVxdWVzdCB1cHdhcmQgKFJlcSA3LjgpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25MZWF2ZU1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubGVhdmVNZWV0aW5nLmVtaXQobWVldGluZ0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYSBjYXJkJ3MgYHBhZ2VDaGFuZ2VgIGludG8gYSBgbWVldGluZ1BhZ2VDaGFuZ2VgIHRhZ2dlZCB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmF0aW5nIGV2ZW50IGlkIHNvIHRoZSBob3N0IGNhbiBwYWdlIHRoZSBjb3JyZWN0IGV2ZW50IChSZXEgNi45KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBpZCBvZiB0aGUgZXZlbnQgd2hvc2UgY2FyZCBwYWdpbmF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYWdlQ2hhbmdlfSBwYWdlIC0gVGhlIHJlcXVlc3RlZCBwYWdlIGZyb20gdGhlIGNhcmQgcGFnaW5hdG9yLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZWV0aW5nUGFnZUNoYW5nZShldmVudElkOiBzdHJpbmcsIHBhZ2U6IFBhZ2VDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMubWVldGluZ1BhZ2VDaGFuZ2UuZW1pdCh7IGV2ZW50SWQsIC4uLnBhZ2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxhenkgY2hpbGQtbWVldGluZyBsb2FkIHJlcXVlc3QgdXB3YXJkLCB0YWdnZWQgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hdGluZyBldmVudCBpZCBzbyB0aGUgY29udGFpbmVyIGNhbiBmZXRjaCB0aGF0IGV2ZW50J3MgbWVldGluZ3MuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgZXZlbnQgd2hvc2UgbWVldGluZ3MgdG8gbG9hZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZSAtIFRoZSBvbmUtYmFzZWQgcGFnZSByZXF1ZXN0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvYWRFdmVudE1lZXRpbmdzKGV2ZW50SWQ6IHN0cmluZywgcmVxdWVzdDogeyBwYWdlOiBudW1iZXI7IHNpemU6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRFdmVudE1lZXRpbmdzLmVtaXQoeyBldmVudElkLCBwYWdlOiByZXF1ZXN0LnBhZ2UsIHNpemU6IHJlcXVlc3Quc2l6ZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgbmF2aWdhdGUtdG8tbWVldGluZyByZXF1ZXN0IHVwd2FyZCB1bmNoYW5nZWQuXHJcbiAgICogQHBhcmFtIHt7IGV2ZW50SWQ6IHN0cmluZzsgbWVldGluZ0lkOiBzdHJpbmcgfX0gcmVxdWVzdCAtIFRoZSBtZWV0aW5nIGlkZW50aXR5LlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25OYXZpZ2F0ZVRvTWVldGluZyhyZXF1ZXN0OiB7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcclxuICAgIGxvZ0F0dGVuZGFuY2U/OiBib29sZWFuO1xyXG4gICAgbGVhdmVNZWV0aW5nPzogYm9vbGVhbjtcclxuICB9KTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9NZWV0aW5nLmVtaXQocmVxdWVzdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzXCJcclxuICBbY2xhc3MuaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cy0tbW9iaWxlXT1cImlzTW9iaWxlVmlld1wiXHJcbj5cclxuICA8aGVhZGVyIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19faGVhZGVyXCI+XHJcbiAgICA8IS0tIFNlY3Rpb24gdGl0bGUgKFJlcSA1LjEpLiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19oZWFkaW5nXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3RpdGxlXCI+XHJcbiAgICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi50aXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBWaWV3IEFsbCBsaW5rICsgRXhwYW5kL0NvbGxhcHNlIHRvZ2dsZSAoUmVxIDUuMSwgNS4yLCA1LjMsIDUuNCwgMTQuMykuIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2FjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdmlldy1hbGxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudmlld0FsbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVmlld0FsbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cy51cGNvbWluZ1NlY3Rpb24udmlld0FsbExhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdG9nZ2xlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudG9nZ2xlXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVFeHBhbmRlZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7IGlzRXhwYW5kZWQgPyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmNvbGxhcHNlTGFiZWwgOiBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmV4cGFuZExhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRXhwYW5kZWQgPyAnZmEtY2hldnJvbi11cCcgOiAnZmEtY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDwhLS0gQ29sbGFwc2VkIHN1bW1hcnk6IGV2ZW50cyAvIG1lZXRpbmdzIC8gb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudHMuXHJcbiAgICAgICBUaGUgb3Blbi1mb3ItYXR0ZW5kYW5jZSBzZWdtZW50IGlzIGdyZWVuIGJvbGQgcGVyIEZpZ21hLiAtLT5cclxuICA8cFxyXG4gICAgKm5nSWY9XCIhaXNFeHBhbmRlZCAmJiBzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeVwiXHJcbiAgPlxyXG4gICAge3sgZXZlbnRDb3VudCB9fSBldmVudHMgJm1pZGRvdDsge3sgdG90YWxNZWV0aW5nQ291bnQgfX0gbWVldGluZ3MgJm1pZGRvdDtcclxuICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeS1vcGVuXCI+XHJcbiAgICAgIHt7IHRvdGFsT3BlbkZvckF0dGVuZGFuY2VDb3VudCB9fSBvcGVuIGZvciBhdHRlbmRhbmNlXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8IS0tIENhcmQgbGlzdCwgc2hvd24gb25seSB3aGlsZSBleHBhbmRlZCAoUmVxIDUuNCkuIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19ib2R5XCI+XHJcbiAgICA8IS0tIExvYWRlciByZWdpb24gKFJlcSAxMy4xKS4gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkxPQURJTkdcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtbG9hZGVyPjwvaWVlZXNhLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGVudCByZWdpb246IG9uZSBjYXJkIHBlciBldmVudCBwcmVzZXJ2aW5nIGlucHV0IG9yZGVyIChSZXEgNS41LCA1LjYsIDEzLjIpLiAtLT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19jYXJkc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtZXZlbnQtZ3JvdXAtY2FyZFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBldmVudCBvZiBwYWdlZEV2ZW50czsgdHJhY2tCeTogdHJhY2tCeUV2ZW50SWRcIlxyXG4gICAgICAgIFtldmVudF09XCJldmVudFwiXHJcbiAgICAgICAgW3Blcm1pc3Npb25zXT1cInBlcm1pc3Npb25zXCJcclxuICAgICAgICBbYXR0ZW5kYW5jZVN0YXRlc109XCJhdHRlbmRhbmNlU3RhdGVzXCJcclxuICAgICAgICBbaW5GbGlnaHRNZWV0aW5nSWRzXT1cImluRmxpZ2h0TWVldGluZ0lkc1wiXHJcbiAgICAgICAgW2lzTW9iaWxlVmlld109XCJpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgIFttZWV0aW5nc0xvYWRpbmddPVwibG9hZGluZ0V2ZW50SWRzLmhhcyhldmVudC5ldmVudElkKVwiXHJcbiAgICAgICAgKHZpZXdFdmVudCk9XCJvblZpZXdFdmVudCgkZXZlbnQpXCJcclxuICAgICAgICAob3Blbk1lZXRpbmcpPVwib25PcGVuTWVldGluZygkZXZlbnQpXCJcclxuICAgICAgICAobG9nQXR0ZW5kYW5jZSk9XCJvbkxvZ0F0dGVuZGFuY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxlYXZlTWVldGluZyk9XCJvbkxlYXZlTWVldGluZygkZXZlbnQpXCJcclxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvbk1lZXRpbmdQYWdlQ2hhbmdlKGV2ZW50LmV2ZW50SWQsICRldmVudClcIlxyXG4gICAgICAgIChsb2FkTWVldGluZ3MpPVwib25Mb2FkRXZlbnRNZWV0aW5ncyhldmVudC5ldmVudElkLCAkZXZlbnQpXCJcclxuICAgICAgICAobmF2aWdhdGVUb01lZXRpbmcpPVwib25OYXZpZ2F0ZVRvTWVldGluZygkZXZlbnQpXCJcclxuICAgICAgPjwvaWVlZXNhLWV2ZW50LWdyb3VwLWNhcmQ+XHJcblxyXG4gICAgICA8IS0tIFNlY3Rpb24tbGV2ZWwgcGFnaW5hdG9yOiA1IGV2ZW50cy9tZWV0aW5ncyBwZXIgcGFnZSAoUmVxIDMueCwgZGVzaWduKS4gLS0+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cInRvdGFsSXRlbXMgPiBzZWN0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fcGFnaW5hdG9yXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fcGFnaW5hdG9yLXJhbmdlXCI+XHJcbiAgICAgICAgICB7eyBzZWN0aW9uUmFuZ2VMYWJlbCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8bWF0LXBhZ2luYXRvclxyXG4gICAgICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19wYWdpbmF0b3ItY29udHJvbFwiXHJcbiAgICAgICAgICBbcGFnZUluZGV4XT1cInNlY3Rpb25QYWdlSW5kZXhcIlxyXG4gICAgICAgICAgW3BhZ2VTaXplXT1cInNlY3Rpb25QYWdlU2l6ZVwiXHJcbiAgICAgICAgICBbbGVuZ3RoXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCJcclxuICAgICAgICAgIChwYWdlKT1cIm9uU2VjdGlvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgPjwvbWF0LXBhZ2luYXRvcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEVtcHR5LXN0YXRlIHJlZ2lvbiAoUmVxIDEzLjMpLiAtLT5cclxuICAgIDxwXHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkVNUFRZXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19lbXB0eVwiXHJcbiAgICA+XHJcbiAgICAgIHt7IGNvbnN0YW50cy51cGNvbWluZ1NlY3Rpb24uZW1wdHlNZXNzYWdlIH19XHJcbiAgICA8L3A+XHJcblxyXG4gICAgPCEtLSBFcnJvciByZWdpb24gKFJlcSAxMy41KS4gLS0+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25TdGF0ZSA9PT0gc2VjdGlvblN0YXRlcy5FUlJPUlwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fZXJyb3JcIlxyXG4gICAgICByb2xlPVwiYWxlcnRcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmVycm9yTWVzc2FnZSB9fVxyXG4gICAgPC9wPlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcbiJdfQ==
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBjb21pbmctbWVldGluZ3MtZXZlbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC9zcmMvbGliL2NvbXBvbmVudHMvdXBjb21pbmctbWVldGluZ3MtZXZlbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQvc3JjL2xpYi9jb21wb25lbnRzL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsR0FFbkIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxFQUVMLGdCQUFnQixHQUNqQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3pGLE9BQU8sS0FBSyxXQUFXLE1BQU0sNkJBQTZCLENBQUM7Ozs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQWVILE1BQU0sT0FBTywrQkFBK0I7SUFkNUM7UUFlRSx5REFBeUQ7UUFDekQsOERBQThEO1FBQzlELGNBQVMsR0FBUSxXQUFXLENBQUM7UUFFN0Isc0VBQXNFO1FBQzdELGtCQUFhLEdBQUcscUJBQXFCLENBQUM7UUFF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QyxTQUFTOytCQUVFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsdUJBQXVCO3FCQUN4QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVc1QixNQUFNO3NCQUFkLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQU1HLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFHSSxPQUFPO3NCQUFoQixNQUFNO2dCQUdHLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csV0FBVztzQkFBcEIsTUFBTTtnQkFHRyxhQUFhO3NCQUF0QixNQUFNO2dCQUdHLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUdHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFPRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBd0lILFFBQVE7c0JBRFgsS0FBSztnQkFlSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgUGFnZUV2ZW50LFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLWFjdGlvbi1wZXJtaXNzaW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IEF0dGVuZGFuY2VTdGF0ZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdHRlbmRhbmNlLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgRGFzaGJvYXJkU2VjdGlvblN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Rhc2hib2FyZC1zZWN0aW9uLXN0YXRlLm1vZGVsJztcclxuaW1wb3J0IHsgUGFnZUNoYW5nZSB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdlLWNoYW5nZS5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgVXBjb21pbmdFdmVudCxcclxuICBVcGNvbWluZ0l0ZW1LaW5kLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy91cGNvbWluZy1ldmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEV2ZW50R3JvdXBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vZXZlbnQtZ3JvdXAtY2FyZC9ldmVudC1ncm91cC1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKipcclxuICogVXBjb21pbmdfTWVldGluZ3NfRXZlbnRzIHJlbmRlcnMgdGhlIFwiVXBjb21pbmcgTWVldGluZ3MgJiBFdmVudHNcIiBkYXNoYm9hcmRcclxuICogc2VjdGlvbjogYSBzZWN0aW9uIHRpdGxlIGFuZCBcIlZpZXcgQWxsXCIgbGluaywgYSBjb2xsYXBzZS9leHBhbmQgdG9nZ2xlIHRoYXRcclxuICogc3RhcnRzIGV4cGFuZGVkLCBhbmQgb25lIHtAbGluayBFdmVudEdyb3VwQ2FyZENvbXBvbmVudH0gcGVyIHVwY29taW5nIGV2ZW50LlxyXG4gKlxyXG4gKiBUaGUgc2VjdGlvbiBpcyBkcml2ZW4gYnkgaXRzIGBzZWN0aW9uU3RhdGVgIGlucHV0OiBpdCBzaG93cyB0aGUgTG9hZGVyIHdoaWxlXHJcbiAqIGBMT0FESU5HYCwgdGhlIGV2ZW50LWdyb3VwIGNhcmRzIHdoaWxlIGBMT0FERURgLCB0aGUgZW1wdHktc3RhdGUgbWVzc2FnZSB3aGlsZVxyXG4gKiBgRU1QVFlgLCBhbmQgdGhlIGVycm9yIG1lc3NhZ2Ugd2hpbGUgYEVSUk9SYCDigJQgdGhlIGZvdXIgcmVnaW9ucyBhcmUgbXV0dWFsbHlcclxuICogZXhjbHVzaXZlIChSZXEgMTMuMSwgMTMuMiwgMTMuMywgMTMuNSkuIFRoZSBjb21wb25lbnQgaXMgcHVyZWx5XHJcbiAqIHByZXNlbnRhdGlvbmFsOiBcIlZpZXcgQWxsXCIgZW1pdHMgYHZpZXdBbGxgIChSZXEgNS4xLCA1LjIpLCB0aGUgY29sbGFwc2UgdG9nZ2xlXHJcbiAqIGZsaXBzIGBpc0V4cGFuZGVkYCBhbmQgdGhlIGNhcmQtbGlzdCB2aXNpYmlsaXR5IHdoaWxlIGV4cG9zaW5nXHJcbiAqIGBbYXR0ci5hcmlhLWV4cGFuZGVkXWAgKFJlcSA1LjMsIDUuNCwgMTQuMyksIGFuZCBlYWNoIGNhcmQgaXMgcmVuZGVyZWQgdmlhXHJcbiAqIGAqbmdGb3JgIHdpdGgge0BsaW5rIHRyYWNrQnlFdmVudElkfSB0byBwcmVzZXJ2ZSBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LFxyXG4gKiAxNC40KS4gQ2FyZCBvdXRwdXRzIChgdmlld0V2ZW50YC9gb3Blbk1lZXRpbmdgL2Bsb2dBdHRlbmRhbmNlYC9gbGVhdmVNZWV0aW5nYClcclxuICogYXJlIGJ1YmJsZWQgdXB3YXJkIHVuY2hhbmdlZCwgYW5kIGVhY2ggY2FyZCdzIGBwYWdlQ2hhbmdlYCBpcyBtYXBwZWQgdG9cclxuICogYG1lZXRpbmdQYWdlQ2hhbmdlYCB0YWdnZWQgd2l0aCB0aGUgb3JpZ2luYXRpbmcgZXZlbnQgaWQgKFJlcSA2LjkpLlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBMb2FkZXJDb21wb25lbnQsXHJcbiAgICBFdmVudEdyb3VwQ2FyZENvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGNvbWluZy1tZWV0aW5ncy1ldmVudHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwY29taW5nLW1lZXRpbmdzLWV2ZW50cy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50IHtcclxuICAvKiogVXNlci1mYWNpbmcgc3RyaW5ncyBzb3VyY2VkIGZyb20gYGNvbnN0YW50cy5qc29uYC4gKi9cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gc2NyZWVuVGV4dHM7XHJcblxyXG4gIC8qKiBFbnVtIHJlZmVyZW5jZSBmb3IgdGVtcGxhdGUgY29tcGFyaXNvbnMgYWdhaW5zdCBgc2VjdGlvblN0YXRlYC4gKi9cclxuICByZWFkb25seSBzZWN0aW9uU3RhdGVzID0gRGFzaGJvYXJkU2VjdGlvblN0YXRlO1xyXG5cclxuICAvKiogVGhlIHVwY29taW5nIGV2ZW50cyByZW5kZXJlZCBhcyBldmVudC1ncm91cCBjYXJkcyAoUmVxIDUuNSwgNS42KS4gKi9cclxuICBASW5wdXQoKSBldmVudHM6IFVwY29taW5nRXZlbnRbXSA9IFtdO1xyXG5cclxuICAvKiogVGhlIGxvYWQvZW1wdHkvZXJyb3Igc3RhdHVzIGRyaXZpbmcgdGhlIHNlY3Rpb24ncyBtdXR1YWxseSBleGNsdXNpdmUgcmVnaW9ucy4gKi9cclxuICBASW5wdXQoKSBzZWN0aW9uU3RhdGU6IERhc2hib2FyZFNlY3Rpb25TdGF0ZSA9IERhc2hib2FyZFNlY3Rpb25TdGF0ZS5MT0FESU5HO1xyXG5cclxuICAvKiogSG9zdCBwZXJtaXNzaW9ucyBnYXRpbmcgdGhlIHBlci1yb3cgbG9nLWF0dGVuZGFuY2UgLyBsZWF2ZS1tZWV0aW5nIGJ1dHRvbnMuICovXHJcbiAgQElucHV0KCkgcGVybWlzc2lvbnM6IEF0dGVuZGFuY2VBY3Rpb25QZXJtaXNzaW9ucyA9IHtcclxuICAgIGNhbkxvZ0F0dGVuZGFuY2U6IGZhbHNlLFxyXG4gICAgY2FuTGVhdmVNZWV0aW5nOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICAvKiogTWFwIG9mIG1lZXRpbmcgaWQgdG8gY3VycmVudCBhdHRlbmRhbmNlIHN0YXRlLCBwYXNzZWQgZG93biB0byBlYWNoIGNhcmQuICovXHJcbiAgQElucHV0KCkgYXR0ZW5kYW5jZVN0YXRlczogUmVjb3JkPHN0cmluZywgQXR0ZW5kYW5jZVN0YXRlPiA9IHt9O1xyXG5cclxuICAvKiogU2V0IG9mIG1lZXRpbmcgaWRzIHdpdGggYW4gYXR0ZW5kYW5jZSBhY3Rpb24gYXdhaXRpbmcgcmVzb2x1dGlvbi4gKi9cclxuICBASW5wdXQoKSBpbkZsaWdodE1lZXRpbmdJZHM6IFJlYWRvbmx5U2V0PHN0cmluZz4gPSBuZXcgU2V0PHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIFdoZXRoZXIgdGhlIGhvc3QgaGFzIGRldGVybWluZWQgdGhlIHZpZXdwb3J0IGlzIGF0L2JlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludC4gKi9cclxuICBASW5wdXQoKSBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gdGhlIFwiVmlldyBBbGxcIiBsaW5rIGlzIGFjdGl2YXRlZCAoUmVxIDUuMikuICovXHJcbiAgQE91dHB1dCgpIHZpZXdBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBldmVudCBpZCB3aGVuIGEgY2FyZCdzIFwiVmlldyBFdmVudFwiIGJ1dHRvbiBpcyBhY3RpdmF0ZWQgKFJlcSA2LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSB2aWV3RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgdGhlIG1lZXRpbmcgaWQgd2hlbiBhIGNhcmQncyBtZWV0aW5nLW5hbWUgbGluayBpcyBhY3RpdmF0ZWQgKFJlcSA3LjQpLiAqL1xyXG4gIEBPdXRwdXQoKSBvcGVuTWVldGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvKiogQnViYmxlcyB0aGUgbWVldGluZyBpZCB3aGVuIGEgY2FyZCByZXF1ZXN0cyBsb2dnaW5nIGF0dGVuZGFuY2UgKFJlcSA3LjcpLiAqL1xyXG4gIEBPdXRwdXQoKSBsb2dBdHRlbmRhbmNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIC8qKiBCdWJibGVzIHRoZSBtZWV0aW5nIGlkIHdoZW4gYSBjYXJkIHJlcXVlc3RzIGxlYXZpbmcgdGhlIG1lZXRpbmcgKFJlcSA3LjgpLiAqL1xyXG4gIEBPdXRwdXQoKSBsZWF2ZU1lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgLyoqIEVtaXRzIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWdnZWQgd2l0aCBpdHMgZXZlbnQgaWQgd2hlbiBhIGNhcmQgcGFnaW5hdGVzIChSZXEgNi45KS4gKi9cclxuICBAT3V0cHV0KCkgbWVldGluZ1BhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXZlbnRJZDogc3RyaW5nIH0gJiBQYWdlQ2hhbmdlPigpO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGV2ZW50IGlkICsgb25lLWJhc2VkIHBhZ2UgKyBzaXplIHRvIGxhemlseSBsb2FkIGFuIGV2ZW50J3MgY2hpbGQgbWVldGluZ3MuICovXHJcbiAgQE91dHB1dCgpIGxvYWRFdmVudE1lZXRpbmdzID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBwYWdlOiBudW1iZXI7XHJcbiAgICBzaXplOiBudW1iZXI7XHJcbiAgfT4oKTtcclxuXHJcbiAgLyoqIEJ1YmJsZXMgYSBuYXZpZ2F0ZS10by1tZWV0aW5nIHJlcXVlc3QgKGV2ZW50SWQgKyBtZWV0aW5nSWQgWysgbG9nQXR0ZW5kYW5jZV0pIGZvciB0aGUgaG9zdCB0byByb3V0ZS4gKi9cclxuICBAT3V0cHV0KCkgbmF2aWdhdGVUb01lZXRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHtcclxuICAgIGV2ZW50SWQ6IHN0cmluZztcclxuICAgIG1lZXRpbmdJZDogc3RyaW5nO1xyXG4gICAgbG9nQXR0ZW5kYW5jZT86IGJvb2xlYW47XHJcbiAgICBsZWF2ZU1lZXRpbmc/OiBib29sZWFuO1xyXG4gIH0+KCk7XHJcblxyXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWN0aW9uJ3MgY2FyZCBsaXN0IGlzIGN1cnJlbnRseSBleHBhbmRlZDsgc3RhcnRzIGNvbGxhcHNlZC4gKi9cclxuICBpc0V4cGFuZGVkID0gZmFsc2U7XHJcblxyXG4gIC8qKiBTZWN0aW9uLWxldmVsIHBhZ2Ugc2l6ZSDigJQgNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgcGVyIHRoZSBkZXNpZ24uICovXHJcbiAgcmVhZG9ubHkgc2VjdGlvblBhZ2VTaXplID0gNTtcclxuXHJcbiAgLyoqIFRoZSBjdXJyZW50IHplcm8tYmFzZWQgcGFnZSBpbmRleCBvZiB0aGUgc2VjdGlvbiBsaXN0LiAqL1xyXG4gIHNlY3Rpb25QYWdlSW5kZXggPSAwO1xyXG5cclxuICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBldmVudHMvbWVldGluZ3MgaW4gdGhlIHNlY3Rpb24gKHBhZ2luYXRvciBsZW5ndGgpLiAqL1xyXG4gIGdldCB0b3RhbEl0ZW1zKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5ldmVudHM/Lmxlbmd0aCA/PyAwO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHNsaWNlIG9mIGV2ZW50cy9tZWV0aW5ncyBmb3IgdGhlIGN1cnJlbnQgc2VjdGlvbiBwYWdlICg1IHBlciBwYWdlKSxcclxuICAgKiB1c2VkIGJ5IHRoZSBjYXJkIGAqbmdGb3JgLlxyXG4gICAqIEByZXR1cm4ge1VwY29taW5nRXZlbnRbXX0gVGhlIGV2ZW50cyBvbiB0aGUgY3VycmVudCBwYWdlLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHBhZ2VkRXZlbnRzKCk6IFVwY29taW5nRXZlbnRbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IHRoaXMuc2VjdGlvblBhZ2VJbmRleCAqIHRoaXMuc2VjdGlvblBhZ2VTaXplO1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuc2xpY2Uoc3RhcnQsIHN0YXJ0ICsgdGhpcy5zZWN0aW9uUGFnZVNpemUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGZpcnN0IGl0ZW0gc2hvd24gb24gdGhlIGN1cnJlbnQgcGFnZS4gKi9cclxuICBnZXQgc2VjdGlvblJhbmdlU3RhcnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLnRvdGFsSXRlbXMgPT09IDBcclxuICAgICAgPyAwXHJcbiAgICAgIDogdGhpcy5zZWN0aW9uUGFnZUluZGV4ICogdGhpcy5zZWN0aW9uUGFnZVNpemUgKyAxO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGxhc3QgaXRlbSBzaG93biBvbiB0aGUgY3VycmVudCBwYWdlLiAqL1xyXG4gIGdldCBzZWN0aW9uUmFuZ2VFbmQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBNYXRoLm1pbihcclxuICAgICAgKHRoaXMuc2VjdGlvblBhZ2VJbmRleCArIDEpICogdGhpcy5zZWN0aW9uUGFnZVNpemUsXHJcbiAgICAgIHRoaXMudG90YWxJdGVtc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBzZWN0aW9uIHBhZ2luYXRvciByYW5nZSBsYWJlbCAoZS5nLiBcIjEtNSBvZiAyMCBNZWV0aW5ncyAmIEV2ZW50c1wiKVxyXG4gICAqIGJ1aWx0IGZyb20gdGhlIGBjb25zdGFudHMuanNvbmAgdGVtcGxhdGUuXHJcbiAgICogQHJldHVybiB7c3RyaW5nfSBUaGUgZm9ybWF0dGVkIHJhbmdlIGxhYmVsLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IHNlY3Rpb25SYW5nZUxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB0ZW1wbGF0ZSA9XHJcbiAgICAgIHRoaXMuY29uc3RhbnRzPy51cGNvbWluZ1NlY3Rpb24/LnBhZ2luYXRvcj8ucmFuZ2VUZW1wbGF0ZSA/P1xyXG4gICAgICAne3N0YXJ0fS17ZW5kfSBvZiB7dG90YWx9IE1lZXRpbmdzICYgRXZlbnRzJztcclxuICAgIHJldHVybiB0ZW1wbGF0ZVxyXG4gICAgICAucmVwbGFjZSgne3N0YXJ0fScsIGAke3RoaXMuc2VjdGlvblJhbmdlU3RhcnR9YClcclxuICAgICAgLnJlcGxhY2UoJ3tlbmR9JywgYCR7dGhpcy5zZWN0aW9uUmFuZ2VFbmR9YClcclxuICAgICAgLnJlcGxhY2UoJ3t0b3RhbH0nLCBgJHt0aGlzLnRvdGFsSXRlbXN9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWN0aW9uIHBhZ2luYXRvciBjaGFuZ2UsIHVwZGF0aW5nIHRoZSBjdXJyZW50IHNlY3Rpb24gcGFnZS5cclxuICAgKiBAcGFyYW0ge1BhZ2VFdmVudH0gZXZlbnQgLSBUaGUgTWF0ZXJpYWwgcGFnaW5hdG9yIHBhZ2UgZXZlbnQuXHJcbiAgICogQHJldHVybiB7dm9pZH1cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uU2VjdGlvblBhZ2VDaGFuZ2UoZXZlbnQ6IFBhZ2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWN0aW9uUGFnZUluZGV4ID0gZXZlbnQucGFnZUluZGV4O1xyXG4gIH1cclxuXHJcbiAgLyoqIE51bWJlciBvZiBFVkVOVCByb3dzIGluIHRoZSBsaXN0IChmb3IgdGhlIGNvbGxhcHNlZCBzdW1tYXJ5KS4gKi9cclxuICBnZXQgZXZlbnRDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkuZmlsdGVyKFxyXG4gICAgICAoZW50cnkpID0+IGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIGFjcm9zcyB0aGUgbGlzdDogZWFjaCBldmVudCdzIGBtZWV0aW5nQ291bnRgIHBsdXNcclxuICAgKiBvbmUgcGVyIHN0YW5kYWxvbmUgbWVldGluZyAoZm9yIHRoZSBjb2xsYXBzZWQgc3VtbWFyeSkuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgbWVldGluZyBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE1lZXRpbmdDb3VudCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuICh0aGlzLmV2ZW50cyA/PyBbXSkucmVkdWNlKCh0b3RhbCwgZW50cnkpID0+IHtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICB0b3RhbCArXHJcbiAgICAgICAgKGVudHJ5LmtpbmQgPT09IFVwY29taW5nSXRlbUtpbmQuRVZFTlRcclxuICAgICAgICAgID8gZW50cnkubWVldGluZ0NvdW50ID8/IDBcclxuICAgICAgICAgIDogMSlcclxuICAgICAgKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVG90YWwgbnVtYmVyIG9mIG1lZXRpbmdzIG9wZW4gZm9yIGF0dGVuZGFuY2UgYWNyb3NzIHRoZSBsaXN0IChmb3IgdGhlXHJcbiAgICogY29sbGFwc2VkIHN1bW1hcnkpOiBlYWNoIGV2ZW50J3Mgb3BlbiBjb3VudCBwbHVzIGFueSBzdGFuZGFsb25lIG1lZXRpbmcgdGhhdFxyXG4gICAqIGlzIGF0dGVuZGFuY2UtZWxpZ2libGUuXHJcbiAgICogQHJldHVybiB7bnVtYmVyfSBUaGUgdG90YWwgb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldCB0b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiAodGhpcy5ldmVudHMgPz8gW10pLnJlZHVjZSgodG90YWwsIGVudHJ5KSA9PiB7XHJcbiAgICAgIGlmIChlbnRyeS5raW5kID09PSBVcGNvbWluZ0l0ZW1LaW5kLkVWRU5UKSB7XHJcbiAgICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5Lm9wZW5Gb3JBdHRlbmRhbmNlQ291bnQgPz8gMCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRvdGFsICsgKGVudHJ5LmF0dGVuZGFuY2VTdGF0ZSA/IDEgOiAwKTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGNvbGxhcHNlZCBzdW1tYXJ5IGxpbmUgKGUuZy4gXCIzIGV2ZW50cyDCtyA1MCBtZWV0aW5ncyDCtyAyMSBvcGVuIGZvclxyXG4gICAqIGF0dGVuZGFuY2VcIikgYnVpbHQgZnJvbSB0aGUgYGNvbnN0YW50cy5qc29uYCB0ZW1wbGF0ZSBhbmQgdGhlIGNvdW50cy5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBmb3JtYXR0ZWQgY29sbGFwc2VkIHN1bW1hcnkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgY29sbGFwc2VkU3VtbWFyeSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdGVtcGxhdGUgPVxyXG4gICAgICB0aGlzLmNvbnN0YW50cz8udXBjb21pbmdTZWN0aW9uPy5jb2xsYXBzZWRTdW1tYXJ5VGVtcGxhdGUgPz9cclxuICAgICAgJ3tldmVudHN9IGV2ZW50cyBcXHUwMGI3IHttZWV0aW5nc30gbWVldGluZ3MgXFx1MDBiNyB7b3Blbn0gb3BlbiBmb3IgYXR0ZW5kYW5jZSc7XHJcbiAgICByZXR1cm4gdGVtcGxhdGVcclxuICAgICAgLnJlcGxhY2UoJ3tldmVudHN9JywgYCR7dGhpcy5ldmVudENvdW50fWApXHJcbiAgICAgIC5yZXBsYWNlKCd7bWVldGluZ3N9JywgYCR7dGhpcy50b3RhbE1lZXRpbmdDb3VudH1gKVxyXG4gICAgICAucmVwbGFjZSgne29wZW59JywgYCR7dGhpcy50b3RhbE9wZW5Gb3JBdHRlbmRhbmNlQ291bnR9YCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvd3MgdGhlIGhvc3QvY29udGFpbmVyIHRvIG9wZW4gb3IgY2xvc2UgdGhlIHNlY3Rpb24gKGUuZy4gYSBcIkp1bXAgdG9cIlxyXG4gICAqIHNob3J0Y3V0IG9wZW5zIGl0KS4gV3JpdGluZyB0aGUgaW5wdXQgbWlycm9ycyB0aGUgdmFsdWUgb250byB0aGUgaW50ZXJuYWxcclxuICAgKiBleHBhbmQgc3RhdGUgd2hpbGUgbGVhdmluZyB0aGUgdXNlcidzIG93biB0b2dnbGUgZnJlZSB0byBjaGFuZ2UgaXQgYWZ0ZXIuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0V4cGFuZGVkID0gISF2YWx1ZTtcclxuICB9XHJcbiAgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNFeHBhbmRlZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSBuZXcgZXhwYW5kZWQgc3RhdGUgd2hlbmV2ZXIgdGhlIHVzZXIgdG9nZ2xlcyB0aGUgc2VjdGlvbiwgc28gYVxyXG4gICAqIHR3by13YXkgYFsoZXhwYW5kZWQpXWAgYmluZGluZyBrZWVwcyB0aGUgaG9zdCdzIGZsYWcgaW4gc3luYyAob3RoZXJ3aXNlIGFcclxuICAgKiBob3N0LW9wZW5lZCBzZWN0aW9uIHRoZSB1c2VyIHRoZW4gY29sbGFwc2VzIGxlYXZlcyB0aGUgaG9zdCBmbGFnIHN0YWxlLFxyXG4gICAqIG1ha2luZyBhIHJlcGVhdCBcIkp1bXAgdG9cIiBhIG5vLW9wKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogYHRyYWNrQnlgIGZvciB0aGUgZXZlbnQtZ3JvdXAtY2FyZCBgKm5nRm9yYCwga2V5ZWQgYnkgdGhlIHN0YWJsZSBldmVudCBpZCBzb1xyXG4gICAqIEFuZ3VsYXIgcmVuZGVycyBleGFjdGx5IG9uZSBjYXJkIHBlciBldmVudCBpbiBpbnB1dCBvcmRlciAoUmVxIDUuNSwgNS42LCAxNC40KS5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXggLSBUaGUgaXRlcmF0aW9uIGluZGV4IChmYWxsYmFjayBrZXkpLlxyXG4gICAqIEBwYXJhbSB7VXBjb21pbmdFdmVudH0gZXZlbnQgLSBUaGUgZXZlbnQgZm9yIHRoaXMgY2FyZC5cclxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBzdGFibGUgdHJhY2sga2V5IChldmVudCBpZCkuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5RXZlbnRJZChpbmRleDogbnVtYmVyLCBldmVudDogVXBjb21pbmdFdmVudCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gZXZlbnQ/LmV2ZW50SWQgPz8gYCR7aW5kZXh9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRvZ2dsZXMgdGhlIHNlY3Rpb24ncyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGUsIGludmVydGluZyB0aGUgY2FyZC1saXN0XHJcbiAgICogdmlzaWJpbGl0eSBhbmQgdGhlIGV4cG9zZWQgYGFyaWEtZXhwYW5kZWRgIHZhbHVlIChSZXEgNS40LCAxNC4zKS5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uVG9nZ2xlRXhwYW5kZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRXhwYW5kZWQgPSAhdGhpcy5pc0V4cGFuZGVkO1xyXG4gICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuaXNFeHBhbmRlZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBcIlZpZXcgQWxsXCIgbGluaywgZW1pdHRpbmcgdGhlIGB2aWV3QWxsYCBpbnRlbnQgdG8gdGhlIGhvc3QgKFJlcSA1LjIpLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WaWV3QWxsKCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3QWxsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgXCJWaWV3IEV2ZW50XCIgYWN0aXZhdGlvbiB1cHdhcmQgKFJlcSA2LjQpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudElkIC0gVGhlIGV2ZW50IGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvblZpZXdFdmVudChldmVudElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0V2ZW50LmVtaXQoZXZlbnRJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIG1lZXRpbmctbmFtZSBsaW5rIGFjdGl2YXRpb24gdXB3YXJkIChSZXEgNy40KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gbWVldGluZ0lkIC0gVGhlIG1lZXRpbmcgaWQgZW1pdHRlZCBieSB0aGUgY2FyZC5cclxuICAgKiBAbWVtYmVyb2YgVXBjb21pbmdNZWV0aW5nc0V2ZW50c0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3Blbk1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMub3Blbk1lZXRpbmcuZW1pdChtZWV0aW5nSWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnViYmxlcyBhIGNhcmQncyBsb2ctYXR0ZW5kYW5jZSByZXF1ZXN0IHVwd2FyZCAoUmVxIDcuNykuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lZXRpbmdJZCAtIFRoZSBtZWV0aW5nIGlkIGVtaXR0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvZ0F0dGVuZGFuY2UobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubG9nQXR0ZW5kYW5jZS5lbWl0KG1lZXRpbmdJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxlYXZlLW1lZXRpbmcgcmVxdWVzdCB1cHdhcmQgKFJlcSA3LjgpLlxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZWV0aW5nSWQgLSBUaGUgbWVldGluZyBpZCBlbWl0dGVkIGJ5IHRoZSBjYXJkLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25MZWF2ZU1lZXRpbmcobWVldGluZ0lkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubGVhdmVNZWV0aW5nLmVtaXQobWVldGluZ0lkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcHMgYSBjYXJkJ3MgYHBhZ2VDaGFuZ2VgIGludG8gYSBgbWVldGluZ1BhZ2VDaGFuZ2VgIHRhZ2dlZCB3aXRoIHRoZVxyXG4gICAqIG9yaWdpbmF0aW5nIGV2ZW50IGlkIHNvIHRoZSBob3N0IGNhbiBwYWdlIHRoZSBjb3JyZWN0IGV2ZW50IChSZXEgNi45KS5cclxuICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnRJZCAtIFRoZSBpZCBvZiB0aGUgZXZlbnQgd2hvc2UgY2FyZCBwYWdpbmF0ZWQuXHJcbiAgICogQHBhcmFtIHtQYWdlQ2hhbmdlfSBwYWdlIC0gVGhlIHJlcXVlc3RlZCBwYWdlIGZyb20gdGhlIGNhcmQgcGFnaW5hdG9yLlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25NZWV0aW5nUGFnZUNoYW5nZShldmVudElkOiBzdHJpbmcsIHBhZ2U6IFBhZ2VDaGFuZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMubWVldGluZ1BhZ2VDaGFuZ2UuZW1pdCh7IGV2ZW50SWQsIC4uLnBhZ2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWJibGVzIGEgY2FyZCdzIGxhenkgY2hpbGQtbWVldGluZyBsb2FkIHJlcXVlc3QgdXB3YXJkLCB0YWdnZWQgd2l0aCB0aGVcclxuICAgKiBvcmlnaW5hdGluZyBldmVudCBpZCBzbyB0aGUgY29udGFpbmVyIGNhbiBmZXRjaCB0aGF0IGV2ZW50J3MgbWVldGluZ3MuXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50SWQgLSBUaGUgZXZlbnQgd2hvc2UgbWVldGluZ3MgdG8gbG9hZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gcGFnZSAtIFRoZSBvbmUtYmFzZWQgcGFnZSByZXF1ZXN0ZWQgYnkgdGhlIGNhcmQuXHJcbiAgICogQG1lbWJlcm9mIFVwY29taW5nTWVldGluZ3NFdmVudHNDb21wb25lbnRcclxuICAgKi9cclxuICBvbkxvYWRFdmVudE1lZXRpbmdzKGV2ZW50SWQ6IHN0cmluZywgcmVxdWVzdDogeyBwYWdlOiBudW1iZXI7IHNpemU6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRFdmVudE1lZXRpbmdzLmVtaXQoeyBldmVudElkLCBwYWdlOiByZXF1ZXN0LnBhZ2UsIHNpemU6IHJlcXVlc3Quc2l6ZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJ1YmJsZXMgYSBjYXJkJ3MgbmF2aWdhdGUtdG8tbWVldGluZyByZXF1ZXN0IHVwd2FyZCB1bmNoYW5nZWQuXHJcbiAgICogQHBhcmFtIHt7IGV2ZW50SWQ6IHN0cmluZzsgbWVldGluZ0lkOiBzdHJpbmcgfX0gcmVxdWVzdCAtIFRoZSBtZWV0aW5nIGlkZW50aXR5LlxyXG4gICAqIEBtZW1iZXJvZiBVcGNvbWluZ01lZXRpbmdzRXZlbnRzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25OYXZpZ2F0ZVRvTWVldGluZyhyZXF1ZXN0OiB7XHJcbiAgICBldmVudElkOiBzdHJpbmc7XHJcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcclxuICAgIGxvZ0F0dGVuZGFuY2U/OiBib29sZWFuO1xyXG4gICAgbGVhdmVNZWV0aW5nPzogYm9vbGVhbjtcclxuICB9KTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlVG9NZWV0aW5nLmVtaXQocmVxdWVzdCk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzXCJcclxuICBbY2xhc3MuaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50cy0tbW9iaWxlXT1cImlzTW9iaWxlVmlld1wiXHJcbj5cclxuICA8aGVhZGVyIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19faGVhZGVyXCI+XHJcbiAgICA8IS0tIFNlY3Rpb24gdGl0bGUgKFJlcSA1LjEpLiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19oZWFkaW5nXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3RpdGxlXCI+XHJcbiAgICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi50aXRsZSB9fVxyXG4gICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBWaWV3IEFsbCBsaW5rICsgRXhwYW5kL0NvbGxhcHNlIHRvZ2dsZSAoUmVxIDUuMSwgNS4yLCA1LjMsIDUuNCwgMTQuMykuIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2FjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdmlldy1hbGxcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudmlld0FsbFwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uVmlld0FsbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IGNvbnN0YW50cy51cGNvbWluZ1NlY3Rpb24udmlld0FsbExhYmVsIH19XHJcbiAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fdG9nZ2xlXCJcclxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5hcmlhTGFiZWwudG9nZ2xlXCJcclxuICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVFeHBhbmRlZCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuPnt7IGlzRXhwYW5kZWQgPyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmNvbGxhcHNlTGFiZWwgOiBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmV4cGFuZExhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDxpXHJcbiAgICAgICAgICBjbGFzcz1cImZhLXNvbGlkXCJcclxuICAgICAgICAgIFtuZ0NsYXNzXT1cImlzRXhwYW5kZWQgPyAnZmEtY2hldnJvbi11cCcgOiAnZmEtY2hldnJvbi1kb3duJ1wiXHJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9oZWFkZXI+XHJcblxyXG4gIDwhLS0gQ29sbGFwc2VkIHN1bW1hcnk6IGV2ZW50cyAvIG1lZXRpbmdzIC8gb3Blbi1mb3ItYXR0ZW5kYW5jZSBjb3VudHMuXHJcbiAgICAgICBUaGUgb3Blbi1mb3ItYXR0ZW5kYW5jZSBzZWdtZW50IGlzIGdyZWVuIGJvbGQgcGVyIEZpZ21hLiAtLT5cclxuICA8cFxyXG4gICAgKm5nSWY9XCIhaXNFeHBhbmRlZCAmJiBzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeVwiXHJcbiAgPlxyXG4gICAge3sgZXZlbnRDb3VudCB9fSBldmVudHMgJm1pZGRvdDsge3sgdG90YWxNZWV0aW5nQ291bnQgfX0gbWVldGluZ3MgJm1pZGRvdDtcclxuICAgIDxzcGFuIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fc3VtbWFyeS1vcGVuXCI+XHJcbiAgICAgIHt7IHRvdGFsT3BlbkZvckF0dGVuZGFuY2VDb3VudCB9fSBvcGVuIGZvciBhdHRlbmRhbmNlXHJcbiAgICA8L3NwYW4+XHJcbiAgPC9wPlxyXG5cclxuICA8IS0tIENhcmQgbGlzdCwgc2hvd24gb25seSB3aGlsZSBleHBhbmRlZCAoUmVxIDUuNCkuIC0tPlxyXG4gIDxkaXYgKm5nSWY9XCJpc0V4cGFuZGVkXCIgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19ib2R5XCI+XHJcbiAgICA8IS0tIExvYWRlciByZWdpb24gKFJlcSAxMy4xKS4gLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwic2VjdGlvblN0YXRlID09PSBzZWN0aW9uU3RhdGVzLkxPQURJTkdcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2xvYWRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtbG9hZGVyPjwvaWVlZXNhLWxvYWRlcj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGVudCByZWdpb246IG9uZSBjYXJkIHBlciBldmVudCBwcmVzZXJ2aW5nIGlucHV0IG9yZGVyIChSZXEgNS41LCA1LjYsIDEzLjIpLiAtLT5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuTE9BREVEXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtdXBjb21pbmctbWVldGluZ3MtZXZlbnRzX19jYXJkc1wiXHJcbiAgICA+XHJcbiAgICAgIDxpZWVlc2EtZXZlbnQtZ3JvdXAtY2FyZFxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBldmVudCBvZiBwYWdlZEV2ZW50czsgdHJhY2tCeTogdHJhY2tCeUV2ZW50SWRcIlxyXG4gICAgICAgIFtldmVudF09XCJldmVudFwiXHJcbiAgICAgICAgW3Blcm1pc3Npb25zXT1cInBlcm1pc3Npb25zXCJcclxuICAgICAgICBbYXR0ZW5kYW5jZVN0YXRlc109XCJhdHRlbmRhbmNlU3RhdGVzXCJcclxuICAgICAgICBbaW5GbGlnaHRNZWV0aW5nSWRzXT1cImluRmxpZ2h0TWVldGluZ0lkc1wiXHJcbiAgICAgICAgW2lzTW9iaWxlVmlld109XCJpc01vYmlsZVZpZXdcIlxyXG4gICAgICAgICh2aWV3RXZlbnQpPVwib25WaWV3RXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9wZW5NZWV0aW5nKT1cIm9uT3Blbk1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxvZ0F0dGVuZGFuY2UpPVwib25Mb2dBdHRlbmRhbmNlKCRldmVudClcIlxyXG4gICAgICAgIChsZWF2ZU1lZXRpbmcpPVwib25MZWF2ZU1lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25NZWV0aW5nUGFnZUNoYW5nZShldmVudC5ldmVudElkLCAkZXZlbnQpXCJcclxuICAgICAgICAobG9hZE1lZXRpbmdzKT1cIm9uTG9hZEV2ZW50TWVldGluZ3MoZXZlbnQuZXZlbnRJZCwgJGV2ZW50KVwiXHJcbiAgICAgICAgKG5hdmlnYXRlVG9NZWV0aW5nKT1cIm9uTmF2aWdhdGVUb01lZXRpbmcoJGV2ZW50KVwiXHJcbiAgICAgID48L2llZWVzYS1ldmVudC1ncm91cC1jYXJkPlxyXG5cclxuICAgICAgPCEtLSBTZWN0aW9uLWxldmVsIHBhZ2luYXRvcjogNSBldmVudHMvbWVldGluZ3MgcGVyIHBhZ2UgKFJlcSAzLngsIGRlc2lnbikuIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJ0b3RhbEl0ZW1zID4gc2VjdGlvblBhZ2VTaXplXCJcclxuICAgICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvclwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX3BhZ2luYXRvci1yYW5nZVwiPlxyXG4gICAgICAgICAge3sgc2VjdGlvblJhbmdlTGFiZWwgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1wYWdpbmF0b3JcclxuICAgICAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fcGFnaW5hdG9yLWNvbnRyb2xcIlxyXG4gICAgICAgICAgW3BhZ2VJbmRleF09XCJzZWN0aW9uUGFnZUluZGV4XCJcclxuICAgICAgICAgIFtwYWdlU2l6ZV09XCJzZWN0aW9uUGFnZVNpemVcIlxyXG4gICAgICAgICAgW2xlbmd0aF09XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgIFtoaWRlUGFnZVNpemVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocGFnZSk9XCJvblNlY3Rpb25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgID48L21hdC1wYWdpbmF0b3I+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFbXB0eS1zdGF0ZSByZWdpb24gKFJlcSAxMy4zKS4gLS0+XHJcbiAgICA8cFxyXG4gICAgICAqbmdJZj1cInNlY3Rpb25TdGF0ZSA9PT0gc2VjdGlvblN0YXRlcy5FTVBUWVwiXHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLXVwY29taW5nLW1lZXRpbmdzLWV2ZW50c19fZW1wdHlcIlxyXG4gICAgPlxyXG4gICAgICB7eyBjb25zdGFudHMudXBjb21pbmdTZWN0aW9uLmVtcHR5TWVzc2FnZSB9fVxyXG4gICAgPC9wPlxyXG5cclxuICAgIDwhLS0gRXJyb3IgcmVnaW9uIChSZXEgMTMuNSkuIC0tPlxyXG4gICAgPHBcclxuICAgICAgKm5nSWY9XCJzZWN0aW9uU3RhdGUgPT09IHNlY3Rpb25TdGF0ZXMuRVJST1JcIlxyXG4gICAgICBjbGFzcz1cImllZWVzYS11cGNvbWluZy1tZWV0aW5ncy1ldmVudHNfX2Vycm9yXCJcclxuICAgICAgcm9sZT1cImFsZXJ0XCJcclxuICAgID5cclxuICAgICAge3sgY29uc3RhbnRzLnVwY29taW5nU2VjdGlvbi5lcnJvck1lc3NhZ2UgfX1cclxuICAgIDwvcD5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|