@eui/ecl 18.0.0-next.59 → 18.0.0-next.60
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/docs/components/EclAccordionComponent.html +1 -1
- package/docs/components/EclAccordionItemComponent.html +1 -1
- package/docs/components/EclAppComponent.html +1 -1
- package/docs/components/EclBannerComponent.html +1 -1
- package/docs/components/EclBlockquoteComponent.html +1 -1
- package/docs/components/EclBreadcrumbComponent.html +2 -2
- package/docs/components/EclBreadcrumbSegmentComponent.html +39 -57
- package/docs/components/EclButtonComponent.html +1 -1
- package/docs/components/EclCardBodyComponent.html +1 -1
- package/docs/components/EclCardComponent.html +1 -1
- package/docs/components/EclCarouselComponent.html +1 -1
- package/docs/components/EclCarouselItemComponent.html +1 -1
- package/docs/components/EclCategoryFilterComponent.html +1 -1
- package/docs/components/EclCategoryFilterItemComponent.html +1 -1
- package/docs/components/EclCategoryFilterListComponent.html +1 -1
- package/docs/components/EclCheckboxHelpComponent.html +1 -1
- package/docs/components/EclCheckboxLabelComponent.html +1 -1
- package/docs/components/EclContentBlockComponent.html +1 -1
- package/docs/components/EclContentItemComponent.html +1 -1
- package/docs/components/EclDateBlockComponent.html +1 -1
- package/docs/components/EclDescriptionListDefinitionComponent.html +1 -1
- package/docs/components/EclExpandableComponent.html +1 -1
- package/docs/components/EclFactFiguresComponent.html +1 -1
- package/docs/components/EclFactFiguresDescriptionComponent.html +1 -1
- package/docs/components/EclFactFiguresItemComponent.html +1 -1
- package/docs/components/EclFactFiguresTitleComponent.html +1 -1
- package/docs/components/EclFactFiguresValueComponent.html +1 -1
- package/docs/components/EclFactFiguresViewAllComponent.html +1 -1
- package/docs/components/EclFeaturedComponent.html +1 -1
- package/docs/components/EclFeaturedItemComponent.html +1 -1
- package/docs/components/EclFeaturedItemDescriptionComponent.html +1 -1
- package/docs/components/EclFeaturedItemFooterComponent.html +1 -1
- package/docs/components/EclFileComponent.html +1 -1
- package/docs/components/EclFileItemComponent.html +1 -1
- package/docs/components/EclFileItemsComponent.html +1 -1
- package/docs/components/EclFileTaxonomyComponent.html +1 -1
- package/docs/components/EclFormGroupComponent.html +1 -1
- package/docs/components/EclFormLabelComponent.html +1 -1
- package/docs/components/EclGalleryComponent.html +1 -1
- package/docs/components/EclGalleryFooterComponent.html +1 -1
- package/docs/components/EclGalleryItemComponent.html +1 -1
- package/docs/components/EclIconComponent.html +1 -1
- package/docs/components/EclInpageNavigationComponent.html +1 -1
- package/docs/components/EclInpageNavigationItemComponent.html +1 -1
- package/docs/components/EclListIllustrationComponent.html +1 -1
- package/docs/components/EclListIllustrationItemComponent.html +1 -1
- package/docs/components/EclLoadingIndicatorComponent.html +1 -1
- package/docs/components/EclMediaContainerComponent.html +1 -1
- package/docs/components/EclMenuComponent.html +1 -1
- package/docs/components/EclMenuItemComponent.html +1 -1
- package/docs/components/EclMenuMegaComponent.html +1 -1
- package/docs/components/EclMenuMegaItemComponent.html +1 -1
- package/docs/components/EclModalBodyComponent.html +1 -1
- package/docs/components/EclModalComponent.html +1 -1
- package/docs/components/EclModalFooterComponent.html +1 -1
- package/docs/components/EclModalHeaderComponent.html +1 -1
- package/docs/components/EclMultiselectComponent.html +1 -1
- package/docs/components/EclMultiselectDropdownComponent.html +1 -1
- package/docs/components/EclMultiselectInputComponent.html +1 -1
- package/docs/components/EclMultiselectOptgroupComponent.html +1 -1
- package/docs/components/EclMultiselectOptionComponent.html +1 -1
- package/docs/components/EclNavigationListComponent.html +1 -1
- package/docs/components/EclNavigationListImageComponent.html +1 -1
- package/docs/components/EclNavigationListItemComponent.html +1 -1
- package/docs/components/EclNewsTickerComponent.html +1 -1
- package/docs/components/EclNewsTickerItemComponent.html +1 -1
- package/docs/components/EclNotificationComponent.html +1 -1
- package/docs/components/EclPageHeaderComponent.html +1 -1
- package/docs/components/EclPaginationComponent.html +1 -1
- package/docs/components/EclPaginationItemComponent.html +1 -1
- package/docs/components/EclPopoverComponent.html +1 -1
- package/docs/components/EclRadioHelpComponent.html +1 -1
- package/docs/components/EclRadioLabelComponent.html +1 -1
- package/docs/components/EclRangeValueComponent.html +1 -1
- package/docs/components/EclRatingFieldComponent.html +1 -1
- package/docs/components/EclSearchFormComponent.html +1 -1
- package/docs/components/EclSelectContainerComponent.html +1 -1
- package/docs/components/EclSiteFooterComponent.html +1 -1
- package/docs/components/EclSiteFooterFixedContentECComponent.html +1 -1
- package/docs/components/EclSiteFooterFixedContentEUComponent.html +1 -1
- package/docs/components/EclSiteHeaderActionComponent.html +1 -1
- package/docs/components/EclSiteHeaderBannerTopComponent.html +1 -1
- package/docs/components/EclSiteHeaderComponent.html +1 -1
- package/docs/components/EclSiteHeaderEnvironmentComponent.html +14 -2
- package/docs/components/EclSiteHeaderLanguageComponent.html +2 -20
- package/docs/components/EclSiteHeaderLanguagePopoverComponent.html +1 -1
- package/docs/components/EclSiteHeaderLoginComponent.html +1 -1
- package/docs/components/EclSiteHeaderNotificationComponent.html +1 -1
- package/docs/components/EclSiteHeaderSearchComponent.html +1 -1
- package/docs/components/EclSocialMediaFollowComponent.html +1 -1
- package/docs/components/EclSocialMediaFollowItemComponent.html +1 -1
- package/docs/components/EclSocialMediaShareComponent.html +1 -1
- package/docs/components/EclSocialMediaShareItemComponent.html +1 -1
- package/docs/components/EclStickyContainerComponent.html +1 -1
- package/docs/components/EclTabComponent.html +1 -1
- package/docs/components/EclTabLabelComponent.html +1 -1
- package/docs/components/EclTabMoreComponent.html +1 -1
- package/docs/components/EclTableSortButtonComponent.html +1 -1
- package/docs/components/EclTabsComponent.html +1 -1
- package/docs/components/EclTagComponent.html +1 -1
- package/docs/components/EclTimelineComponent.html +1 -1
- package/docs/components/EclTimelineItemComponent.html +1 -1
- package/docs/components/EclTimelineItemTogglerComponent.html +1 -1
- package/docs/dependencies.html +1 -1
- package/docs/index.html +1 -1
- package/docs/js/menu-wc.js +6 -87
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +0 -1
- package/docs/modules/EclBannerComponentModule.html +0 -6
- package/docs/modules/EclBreadcrumbComponentModule.html +0 -6
- package/docs/modules/EclCardComponentModule.html +0 -6
- package/docs/modules/EclCarouselComponentModule.html +0 -6
- package/docs/modules/EclCheckboxModule.html +0 -6
- package/docs/modules/EclContentBlockComponentModule.html +0 -6
- package/docs/modules/EclContentItemComponentModule.html +0 -6
- package/docs/modules/EclFeaturedModule.html +0 -6
- package/docs/modules/EclFileComponentModule.html +0 -6
- package/docs/modules/EclGalleryComponentModule.html +0 -6
- package/docs/modules/EclListDirectiveModule.html +0 -6
- package/docs/modules/EclListIllustrationComponentModule.html +0 -6
- package/docs/modules/EclMediaContainerComponentModule.html +0 -6
- package/docs/modules/EclMenuComponentModule.html +0 -6
- package/docs/modules/EclModalComponentModule.html +0 -6
- package/docs/modules/EclNavigationListComponentModule.html +0 -6
- package/docs/modules/EclPageHeaderComponentModule.html +0 -6
- package/docs/modules/EclPopoverComponentModule.html +0 -6
- package/docs/modules/EclRangeDirectiveModule.html +0 -6
- package/docs/modules/EclRatingFieldComponentModule.html +0 -6
- package/docs/modules/EclSelectDirectiveModule.html +0 -6
- package/docs/modules/EclSiteFooterComponentModule.html +0 -6
- package/docs/modules/EclSiteHeaderComponentModule.html +0 -6
- package/docs/modules/EclSocialMediaFollowComponentModule.html +0 -6
- package/docs/modules/EclSocialMediaShareComponentModule.html +0 -6
- package/docs/modules/EclTableDirectiveModule.html +0 -6
- package/docs/modules/EclTabsComponentModule.html +0 -6
- package/esm2022/lib/components/ecl-banner/ecl-banner.module.mjs +1 -5
- package/esm2022/lib/components/ecl-banner/index.mjs +1 -2
- package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.mjs +15 -13
- package/esm2022/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.mjs +3 -18
- package/esm2022/lib/components/ecl-card/ecl-card.component.mjs +1 -1
- package/esm2022/lib/components/ecl-date-picker/ecl-date-picker.directive.mjs +2 -2
- package/esm2022/lib/components/ecl-file-upload/ecl-file-upload.directive.mjs +2 -2
- package/esm2022/lib/components/ecl-menu/ecl-menu/ecl-menu-item.component.mjs +4 -4
- package/esm2022/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.mjs +13 -12
- package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs +5 -5
- package/fesm2022/eui-ecl.mjs +1576 -1610
- package/fesm2022/eui-ecl.mjs.map +4 -4
- package/lib/components/ecl-banner/ecl-banner.module.d.ts +4 -5
- package/lib/components/ecl-banner/ecl-banner.module.d.ts.map +1 -1
- package/lib/components/ecl-banner/index.d.ts +0 -1
- package/lib/components/ecl-banner/index.d.ts.map +1 -1
- package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts +7 -6
- package/lib/components/ecl-breadcrumb/ecl-breadcrumb-segment.component.d.ts.map +1 -1
- package/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts +0 -4
- package/lib/components/ecl-breadcrumb/ecl-breadcrumb.component.d.ts.map +1 -1
- package/lib/components/ecl-card/ecl-card.component.d.ts.map +1 -1
- package/lib/components/ecl-file-upload/ecl-file-upload.directive.d.ts.map +1 -1
- package/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts +3 -2
- package/lib/components/ecl-site-header/ecl-site-header-environment/ecl-site-header-environment.component.d.ts.map +1 -1
- package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts +4 -4
- package/lib/components/ecl-site-header/language/ecl-site-header-language.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/docs/directives/EclBannerCreditDirective.html +0 -498
- package/esm2022/lib/components/ecl-banner/ecl-banner-credit.directive.mjs +0 -21
- package/lib/components/ecl-banner/ecl-banner-credit.directive.d.ts +0 -8
- package/lib/components/ecl-banner/ecl-banner-credit.directive.d.ts.map +0 -1
|
@@ -204,7 +204,7 @@ export class EclMenuItemComponent extends ECLBaseDirective {
|
|
|
204
204
|
const currentItem = this.el.nativeElement;
|
|
205
205
|
const currentLink = this.menuLink.nativeElement;
|
|
206
206
|
if (isMobileBreakpoint) {
|
|
207
|
-
|
|
207
|
+
this.renderer.setStyle(currentLink, 'width', '100%');
|
|
208
208
|
return;
|
|
209
209
|
}
|
|
210
210
|
this.renderer.setStyle(currentItem, 'alignItems', 'flex-start');
|
|
@@ -248,7 +248,7 @@ export class EclMenuItemComponent extends ECLBaseDirective {
|
|
|
248
248
|
this.renderer.setStyle(currentLink, 'white-space', 'nowrap');
|
|
249
249
|
const linkWidth = currentLink.offsetWidth;
|
|
250
250
|
if (maxLines === 1) {
|
|
251
|
-
|
|
251
|
+
this.renderer.setStyle(currentLink, 'width', `${linkWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);
|
|
252
252
|
this.renderer.removeStyle(currentLink, 'white-space');
|
|
253
253
|
return;
|
|
254
254
|
}
|
|
@@ -263,7 +263,7 @@ export class EclMenuItemComponent extends ECLBaseDirective {
|
|
|
263
263
|
wordWidth += Math.ceil((wordsArray[cnt].length + 1) * letterWidth);
|
|
264
264
|
cnt++;
|
|
265
265
|
}
|
|
266
|
-
|
|
266
|
+
this.renderer.setStyle(currentLink, 'width', `${wordWidth + parseInt(linkStyle.paddingLeft, 10) + parseInt(linkStyle.paddingRight, 10)}px`);
|
|
267
267
|
this.renderer.removeStyle(currentLink, 'white-space');
|
|
268
268
|
}
|
|
269
269
|
getClassDependingChildrenCnt() {
|
|
@@ -362,4 +362,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
|
|
|
362
362
|
type: HostListener,
|
|
363
363
|
args: ['mouseleave', ['$event']]
|
|
364
364
|
}] } });
|
|
365
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBRXZCLHNCQUFzQixHQUN6QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBYXRFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFrQnRELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENB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c0JBQ2hELFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLG9CQUFvQjtnQkF5Q2pDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNdEMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgRWNsTWVudUl0ZW1DYXJldEV2ZW50LFxuICAgIEVjbE1lbnVJdGVtRm9jdXNFdmVudCxcbiAgICBFY2xNZW51SXRlbUhvdmVyRXZlbnQsXG4gICAgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50LFxuICAgIEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LFxuICAgIEVjbE1lbnVJdGVtUGFyZW50Rm9jdXNFdmVudCxcbiAgICBFY2xNZW51SXRlbVNlbGVjdEV2ZW50LFxufSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51TWVnYUNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1tZW51LW1lZ2EvZWNsLW1lbnUtbWVnYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFyYW1zLCBRdWVyeVBhcmFtc0hhbmRsaW5nIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVjbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1idXR0b24nO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuY29uc3QgZW51bSBDb2xUcmlnZ2VyIHtcbiAgICBDT0wxX1RSSUdHRVIgPSA1LFxuICAgIENPTDJfVFJJR0dFUiA9IDksXG4gICAgQ09MM19UUklHR0VSID0gMTMsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEVjbE1lbnVJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyB8IGFueVtdID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogUGFyYW1zIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogUXVlcnlQYXJhbXNIYW5kbGluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZiA9ICcnO1xuICAgIEBJbnB1dCgpIHRhcmdldCA9ICcnO1xuICAgIEBJbnB1dCgpIGlzQ3VycmVudCA9IGZhbHNlO1xuXG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbjtcbiAgICBpc0Z1bGwgPSBmYWxzZTtcbiAgICBpc0hvdmVyZWQgPSBmYWxzZTtcbiAgICBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBpc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3RpdGVtJztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnVfX2l0ZW0nKSxcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50ID8gJ2VjbC1tZW51X19pdGVtLS1jdXJyZW50JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGVkID8gJ2VjbC1tZW51X19pdGVtLS1leHBhbmRlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2xhc3NEZXBlbmRpbmdDaGlsZHJlbkNudCgpLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xNZW51TWVnYUNvbXBvbmVudCkpIHN1Ym1lbnU6IEVjbE1lbnVNZWdhQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVMaW5rJykgbWVudUxpbms6IEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoRWNsQnV0dG9uQ29tcG9uZW50KSBtZW51QnV0dG9uOiBFY2xCdXR0b25Db21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtQ2FyZXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtQ2FyZXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1Ib3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1Ib3ZlckV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUhvdmVyT3V0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVNZWdhSXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1Gb2N1c0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9faXRlbS0taGFzLWNoaWxkcmVuJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpXG4gICAgZ2V0IGhhc0VjbENoaWxkcmVuRGF0YUF0dHJpYnV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gfHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcbiAgICBnZXQgaXNBcmlhRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuID8gdGhpcy5pc0hvdmVyZWQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zdWJtZW51O1xuICAgIH1cblxuICAgIGdldCBjaGlsZHJlbigpOiBBcnJheTxFY2xNZW51SXRlbT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiA/IHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLnRvQXJyYXkoKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGFyZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgY2RrQnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb25JdGVtRm9jdXMoZXZ0OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1Gb2N1cy5uZXh0KG5ldyBFY2xNZW51SXRlbUZvY3VzRXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNhcmV0Q2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1DYXJldC5uZXh0KG5ldyBFY2xNZW51SXRlbUNhcmV0RXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25JdGVtTW91c2VFbnRlcihldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUhvdmVyLm5leHQobmV3IEVjbE1lbnVJdGVtSG92ZXJFdmVudCh0aGlzLCBldnQpKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1Nb3VzZUxlYXZlKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtSG92ZXJPdXQubmV4dChuZXcgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChpdC5tZW51SXRlbSwgaXQuZG9tRXZlbnQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVNZWdhSXRlbVBhcmVudEZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVBhcmVudEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRm9jdXNGcm9tU3VibWVudSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1N1Ym1lbnVBbnlTZWxlY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c0Zyb21TdWJtZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQnV0dG9uRm9jdXMoKTtcbiAgICAgICAgdGhpcy5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Gb2N1c0Zyb21OZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51QnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLm9uQnV0dG9uRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXNGcm9tUHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkxpbmtGb2N1cygpO1xuICAgIH1cblxuICAgIG9uQnV0dG9uS2V5ZG93bihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RNZWdhTWVudUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19SSUdIVDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfTEVGVDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5UQUI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51SXRlbUtleWRvd24ubmV4dChuZXcgRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQodGhpcywgZXZ0IGFzIEtleWJvYXJkRXZlbnQpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25MaW5rS2V5ZG93bihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxpbmtOZXh0Rm9jdXMoZXZ0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfUklHSFQ6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTGlua05leHRGb2N1cyhldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0xFRlQ6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVTQ0FQRToge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRXNjYXBlKGV2dCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja01lbnVJdGVtKG1heExpbmVzOiBudW1iZXIsIGlzTW9iaWxlQnJlYWtwb2ludDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAobWF4TGluZXMgPCAxKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rID0gdGhpcy5tZW51TGluay5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICBjdXJyZW50TGluay5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRJdGVtLCAnYWxpZ25JdGVtcycsICdmbGV4LXN0YXJ0Jyk7XG4gICAgICAgIGNvbnN0IGxpbmtTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGN1cnJlbnRMaW5rKTtcblxuICAgICAgICBjb25zdCBtYXhIZWlnaHQgPSB0aGlzLmdldE1lbnVJdGVtTGlua01heEhlaWdodChsaW5rU3R5bGUsIG1heExpbmVzKTtcblxuICAgICAgICBpZiAoY3VycmVudExpbmsub2Zmc2V0SGVpZ2h0ID4gbWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZU1lbnVJdGVtTGlua1dpZHRoKGN1cnJlbnRMaW5rLCBtYXhMaW5lcywgbGlua1N0eWxlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRJdGVtLCAnYWxpZ25JdGVtcycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25MaW5rRXNjYXBlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWVudUJ1dHRvbikge1xuICAgICAgICAgICAgdGhpcy5tZW51QnV0dG9uLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVudUxpbmsubmF0aXZlRWxlbWVudC5ibHVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNlbGVjdEZpcnN0TWVnYU1lbnVJdGVtKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Ym1lbnUuc2VsZWN0Rmlyc3RTdWJJdGVtKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxpbmtGb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51TGluay5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxpbmtOZXh0Rm9jdXMoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51QnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLm9uQnV0dG9uRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQnV0dG9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUJ1dHRvbi5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNZW51SXRlbUxpbmtNYXhIZWlnaHQobGlua1N0eWxlOiBDU1NTdHlsZURlY2xhcmF0aW9uLCBtYXhMaW5lczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KGxpbmtTdHlsZS5saW5lSGVpZ2h0LCAxMCkgKiBtYXhMaW5lcyArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nVG9wLCAxMCkgKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0JvdHRvbSwgMTApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbms6IEhUTUxBbmNob3JFbGVtZW50LCBtYXhMaW5lczogbnVtYmVyLCBsaW5rU3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjdXJyZW50TGluaywgJ3doaXRlLXNwYWNlJywgJ25vd3JhcCcpO1xuICAgICAgICBjb25zdCBsaW5rV2lkdGggPSBjdXJyZW50TGluay5vZmZzZXRXaWR0aDtcbiAgICAgICAgaWYgKG1heExpbmVzID09PSAxKSB7XG4gICAgICAgICAgICBjdXJyZW50TGluay5zdHlsZS53aWR0aCA9IGAke2xpbmtXaWR0aCArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nTGVmdCwgMTApICsgcGFyc2VJbnQobGlua1N0eWxlLnBhZGRpbmdSaWdodCwgMTApfXB4YDtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudExpbmssICd3aGl0ZS1zcGFjZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRleHRTaXplID0gY3VycmVudExpbmsudGV4dC5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGxldHRlcldpZHRoID0gTWF0aC5jZWlsKGxpbmtXaWR0aCAvIHRleHRTaXplKTtcbiAgICAgICAgY29uc3Qgd29yZHNBcnJheSA9IGN1cnJlbnRMaW5rLnRleHQudHJpbSgpLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGdvYWxXaWR0aCA9IE1hdGguY2VpbChsaW5rV2lkdGggLyBtYXhMaW5lcyk7XG4gICAgICAgIGNvbnN0IGZpcnN0V29yZCA9IHdvcmRzQXJyYXlbMF07XG4gICAgICAgIGxldCBjbnQgPSAxO1xuICAgICAgICBsZXQgd29yZFdpZHRoID0gTWF0aC5jZWlsKChmaXJzdFdvcmQubGVuZ3RoICsgMSkgKiBsZXR0ZXJXaWR0aCk7XG4gICAgICAgIHdoaWxlICh3b3JkV2lkdGggPCBnb2FsV2lkdGgpIHtcbiAgICAgICAgICAgIHdvcmRXaWR0aCArPSBNYXRoLmNlaWwoKHdvcmRzQXJyYXlbY250XS5sZW5ndGggKyAxKSAqIGxldHRlcldpZHRoKTtcbiAgICAgICAgICAgIGNudCsrO1xuICAgICAgICB9XG4gICAgICAgIGN1cnJlbnRMaW5rLnN0eWxlLndpZHRoID0gYCR7d29yZFdpZHRoICsgcGFyc2VJbnQobGlua1N0eWxlLnBhZGRpbmdMZWZ0LCAxMCkgKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ1JpZ2h0LCAxMCl9cHhgO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENsYXNzRGVwZW5kaW5nQ2hpbGRyZW5DbnQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDFfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDJfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDInO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDNfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDMnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnVsbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tZnVsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzU3VibWVudUFueVNlbGVjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Ym1lbnUgJiYgISF0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5maW5kKChpdCkgPT4gaXQuaXNDdXJyZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAaWYgKGhyZWYpIHtcbiAgICA8YVxuICAgICAgICAjbWVudUxpbmtcbiAgICAgICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgICAgICBbaHJlZl09XCJocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCJ0YXJnZXRcIlxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19saW5rXCJcbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkxpbmtLZXlkb3duKCRldmVudClcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG59IEBlbHNlIHtcbiAgICA8YVxuICAgICAgICAjbWVudUxpbmtcbiAgICAgICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmtcIlxuICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2xpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAgICAgKGZvY3VzKT1cIm9uSXRlbUZvY3VzKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uTGlua0tleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbn1cblxuQGlmIChoYXNDaGlsZHJlbikge1xuICAgIEBpZiAoaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgaXNJY29uT25seVxuICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2J1dHRvbi1jYXJldFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBY2Nlc3MgaXRlbSdzIGNoaWxkcmVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DYXJldENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25CdXR0b25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPjwvZWNsLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgIGlzSWNvbk9ubHlcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19idXR0b24tY2FyZXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWNjZXNzIGl0ZW0ncyBjaGlsZHJlblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uQnV0dG9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJ4c1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIiBjbGFzcz1cImVjbC1idXR0b25fX2ljb25cIj48L2VjbC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG59XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1tZW51LW1lZ2FcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
365
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZWNsLW1lbnUvZWNsLW1lbnUvZWNsLW1lbnUtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDSCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIsdUJBQXVCLEVBRXZCLHNCQUFzQixHQUN6QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQXNCLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBYXRFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFrQnRELElBQ0ksVUFBVTtRQUNWLE9BQU87WUFDSCxLQUFLLENB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O3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBSUgsMkJBQTJCO3NCQUY5QixXQUFXO3VCQUFDLG9DQUFvQzs7c0JBQ2hELFdBQVc7dUJBQUMsb0JBQW9CO2dCQU03QixjQUFjO3NCQURqQixXQUFXO3VCQUFDLG9CQUFvQjtnQkF5Q2pDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNdEMsZ0JBQWdCO3NCQURmLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVjbE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLW1lbnUtaXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBFQ0xCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZWNsLWJhc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7XG4gICAgRWNsTWVudUl0ZW1DYXJldEV2ZW50LFxuICAgIEVjbE1lbnVJdGVtRm9jdXNFdmVudCxcbiAgICBFY2xNZW51SXRlbUhvdmVyRXZlbnQsXG4gICAgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50LFxuICAgIEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50LFxuICAgIEVjbE1lbnVJdGVtUGFyZW50Rm9jdXNFdmVudCxcbiAgICBFY2xNZW51SXRlbVNlbGVjdEV2ZW50LFxufSBmcm9tICcuLi9jb21tb24vZWNsLW1lbnUtaXRlbS5ldmVudCc7XG5pbXBvcnQgeyBFY2xNZW51TWVnYUNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1tZW51LW1lZ2EvZWNsLW1lbnUtbWVnYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFyYW1zLCBRdWVyeVBhcmFtc0hhbmRsaW5nIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVjbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VjbC1idXR0b24nO1xuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcblxuY29uc3QgZW51bSBDb2xUcmlnZ2VyIHtcbiAgICBDT0wxX1RSSUdHRVIgPSA1LFxuICAgIENPTDJfVFJJR0dFUiA9IDksXG4gICAgQ09MM19UUklHR0VSID0gMTMsXG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZWNsLW1lbnUtaXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEVjbE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgRUNMQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEVjbE1lbnVJdGVtLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIEBJbnB1dCgpIHJvdXRlckxpbms6IHN0cmluZyB8IGFueVtdID0gbnVsbDtcbiAgICBASW5wdXQoKSBxdWVyeVBhcmFtczogUGFyYW1zIHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZzogUXVlcnlQYXJhbXNIYW5kbGluZyA9IG51bGw7XG4gICAgQElucHV0KCkgaHJlZiA9ICcnO1xuICAgIEBJbnB1dCgpIHRhcmdldCA9ICcnO1xuICAgIEBJbnB1dCgpIGlzQ3VycmVudCA9IGZhbHNlO1xuXG4gICAgaXNFeHBhbmRlZDogYm9vbGVhbjtcbiAgICBpc0Z1bGwgPSBmYWxzZTtcbiAgICBpc0hvdmVyZWQgPSBmYWxzZTtcbiAgICBpc01vYmlsZUJyZWFrcG9pbnQgPSBmYWxzZTtcbiAgICBpc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJvbGUnKSByb2xlID0gJ2xpc3RpdGVtJztcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLW1lbnVfX2l0ZW0nKSxcbiAgICAgICAgICAgIHRoaXMuaXNDdXJyZW50ID8gJ2VjbC1tZW51X19pdGVtLS1jdXJyZW50JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc0V4cGFuZGVkID8gJ2VjbC1tZW51X19pdGVtLS1leHBhbmRlZCcgOiAnJyxcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2xhc3NEZXBlbmRpbmdDaGlsZHJlbkNudCgpLFxuICAgICAgICBdXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cblxuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBFY2xNZW51TWVnYUNvbXBvbmVudCkpIHN1Ym1lbnU6IEVjbE1lbnVNZWdhQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVMaW5rJykgbWVudUxpbms6IEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoRWNsQnV0dG9uQ29tcG9uZW50KSBtZW51QnV0dG9uOiBFY2xCdXR0b25Db21wb25lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1TZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVJdGVtQ2FyZXQgPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtQ2FyZXRFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1Ib3ZlciA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1Ib3ZlckV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUhvdmVyT3V0ID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xNZW51SXRlbUhvdmVyT3V0RXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIG1lbnVNZWdhSXRlbVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1TZWxlY3RFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbWVudUl0ZW1Gb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsTWVudUl0ZW1Gb2N1c0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBtZW51SXRlbUtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5lY2wtbWVudV9faXRlbS0taGFzLWNoaWxkcmVuJylcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1oYXNwb3B1cCcpXG4gICAgZ2V0IGhhc0VjbENoaWxkcmVuRGF0YUF0dHJpYnV0ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzQ2hpbGRyZW4gfHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcbiAgICBnZXQgaXNBcmlhRXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhc0NoaWxkcmVuID8gdGhpcy5pc0hvdmVyZWQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5zdWJtZW51O1xuICAgIH1cblxuICAgIGdldCBjaGlsZHJlbigpOiBBcnJheTxFY2xNZW51SXRlbT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5oYXNDaGlsZHJlbiA/IHRoaXMuc3VibWVudS5lY2xNZW51TWVnYUl0ZW1zLnRvQXJyYXkoKSA6IFtdO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGFyZjogQXBwbGljYXRpb25SZWYsXG4gICAgICAgIHByaXZhdGUgY2RrQnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb25JdGVtRm9jdXMoZXZ0OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1Gb2N1cy5uZXh0KG5ldyBFY2xNZW51SXRlbUZvY3VzRXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgb25JdGVtQ2xpY2soZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtU2VsZWN0Lm5leHQobmV3IEVjbE1lbnVJdGVtU2VsZWN0RXZlbnQodGhpcywgZXZ0KSk7XG5cbiAgICAgICAgaWYgKCF0aGlzLmhyZWYpIHtcbiAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uSXRlbUNhcmV0Q2xpY2soZXZ0OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVudUl0ZW1DYXJldC5uZXh0KG5ldyBFY2xNZW51SXRlbUNhcmV0RXZlbnQodGhpcywgZXZ0KSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicsIFsnJGV2ZW50J10pXG4gICAgb25JdGVtTW91c2VFbnRlcihldnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51SXRlbUhvdmVyLm5leHQobmV3IEVjbE1lbnVJdGVtSG92ZXJFdmVudCh0aGlzLCBldnQpKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnXSlcbiAgICBvbkl0ZW1Nb3VzZUxlYXZlKGV2dDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVJdGVtSG92ZXJPdXQubmV4dChuZXcgRWNsTWVudUl0ZW1Ib3Zlck91dEV2ZW50KHRoaXMsIGV2dCkpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3VibWVudSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVJdGVtU2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVNlbGVjdEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51TWVnYUl0ZW1TZWxlY3QubmV4dChuZXcgRWNsTWVudUl0ZW1TZWxlY3RFdmVudChpdC5tZW51SXRlbSwgaXQuZG9tRXZlbnQpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJtZW51Lm1lbnVNZWdhSXRlbVBhcmVudEZvY3VzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGl0OiBFY2xNZW51SXRlbVBhcmVudEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uRm9jdXNGcm9tU3VibWVudSgpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1N1Ym1lbnVBbnlTZWxlY3Rpb25zKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ3VycmVudCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vYnNlcnZlQnJlYWtwb2ludENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25Gb2N1c0Zyb21TdWJtZW51KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQnV0dG9uRm9jdXMoKTtcbiAgICAgICAgdGhpcy5pc0hvdmVyZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc0V4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgb25Gb2N1c0Zyb21OZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51QnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLm9uQnV0dG9uRm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRm9jdXNGcm9tUHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkxpbmtGb2N1cygpO1xuICAgIH1cblxuICAgIG9uQnV0dG9uS2V5ZG93bihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RNZWdhTWVudUl0ZW0oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19SSUdIVDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfTEVGVDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRm9jdXMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5UQUI6IHtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51SXRlbUtleWRvd24ubmV4dChuZXcgRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQodGhpcywgZXZ0IGFzIEtleWJvYXJkRXZlbnQpKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5FU0NBUEU6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25MaW5rS2V5ZG93bihldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoKGV2dCBhcyBLZXlib2FyZEV2ZW50KS5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19ET1dOOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkxpbmtOZXh0Rm9jdXMoZXZ0KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgS2V5Q29kZS5BUlJPV19VUDoge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUl0ZW1LZXlkb3duLm5leHQobmV3IEVjbE1lbnVJdGVtS2V5ZG93bkV2ZW50KHRoaXMsIGV2dCBhcyBLZXlib2FyZEV2ZW50KSk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuQVJST1dfUklHSFQ6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uTGlua05leHRGb2N1cyhldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkFSUk9XX0xFRlQ6IHtcbiAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVJdGVtS2V5ZG93bi5uZXh0KG5ldyBFY2xNZW51SXRlbUtleWRvd25FdmVudCh0aGlzLCBldnQgYXMgS2V5Ym9hcmRFdmVudCkpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVOVEVSOiB7XG4gICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkl0ZW1DbGljayhldnQpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVTQ0FQRToge1xuICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMub25MaW5rRXNjYXBlKGV2dCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGVja01lbnVJdGVtKG1heExpbmVzOiBudW1iZXIsIGlzTW9iaWxlQnJlYWtwb2ludDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAobWF4TGluZXMgPCAxKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY3VycmVudEl0ZW0gPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMaW5rID0gdGhpcy5tZW51TGluay5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAoaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRMaW5rLCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJywgJ2ZsZXgtc3RhcnQnKTtcbiAgICAgICAgY29uc3QgbGlua1N0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoY3VycmVudExpbmspO1xuXG4gICAgICAgIGNvbnN0IG1heEhlaWdodCA9IHRoaXMuZ2V0TWVudUl0ZW1MaW5rTWF4SGVpZ2h0KGxpbmtTdHlsZSwgbWF4TGluZXMpO1xuXG4gICAgICAgIGlmIChjdXJyZW50TGluay5vZmZzZXRIZWlnaHQgPiBtYXhIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuY2hhbmdlTWVudUl0ZW1MaW5rV2lkdGgoY3VycmVudExpbmssIG1heExpbmVzLCBsaW5rU3R5bGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY3VycmVudEl0ZW0sICdhbGlnbkl0ZW1zJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkxpbmtFc2NhcGUoZXZ0OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZW51QnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVCdXR0b24uZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51TGluay5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2VsZWN0Rmlyc3RNZWdhTWVudUl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VibWVudS5zZWxlY3RGaXJzdFN1Ykl0ZW0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTGlua0ZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1lbnVMaW5rLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uTGlua05leHRGb2N1cyhldnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1lbnVCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMub25CdXR0b25Gb2N1cygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tZW51SXRlbUtleWRvd24ubmV4dChuZXcgRWNsTWVudUl0ZW1LZXlkb3duRXZlbnQodGhpcywgZXZ0IGFzIEtleWJvYXJkRXZlbnQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgb25CdXR0b25Gb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZW51QnV0dG9uLmVsLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldE1lbnVJdGVtTGlua01heEhlaWdodChsaW5rU3R5bGU6IENTU1N0eWxlRGVjbGFyYXRpb24sIG1heExpbmVzOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gcGFyc2VJbnQobGlua1N0eWxlLmxpbmVIZWlnaHQsIDEwKSAqIG1heExpbmVzICsgcGFyc2VJbnQobGlua1N0eWxlLnBhZGRpbmdUb3AsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nQm90dG9tLCAxMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VNZW51SXRlbUxpbmtXaWR0aChjdXJyZW50TGluazogSFRNTEFuY2hvckVsZW1lbnQsIG1heExpbmVzOiBudW1iZXIsIGxpbmtTdHlsZTogQ1NTU3R5bGVEZWNsYXJhdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnLCAnbm93cmFwJyk7XG4gICAgICAgIGNvbnN0IGxpbmtXaWR0aCA9IGN1cnJlbnRMaW5rLm9mZnNldFdpZHRoO1xuICAgICAgICBpZiAobWF4TGluZXMgPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY3VycmVudExpbmssICd3aWR0aCcsIGAke2xpbmtXaWR0aCArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nTGVmdCwgMTApICsgcGFyc2VJbnQobGlua1N0eWxlLnBhZGRpbmdSaWdodCwgMTApfXB4YCk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZXh0U2l6ZSA9IGN1cnJlbnRMaW5rLnRleHQubGVuZ3RoO1xuICAgICAgICBjb25zdCBsZXR0ZXJXaWR0aCA9IE1hdGguY2VpbChsaW5rV2lkdGggLyB0ZXh0U2l6ZSk7XG4gICAgICAgIGNvbnN0IHdvcmRzQXJyYXkgPSBjdXJyZW50TGluay50ZXh0LnRyaW0oKS5zcGxpdCgnICcpO1xuICAgICAgICBjb25zdCBnb2FsV2lkdGggPSBNYXRoLmNlaWwobGlua1dpZHRoIC8gbWF4TGluZXMpO1xuICAgICAgICBjb25zdCBmaXJzdFdvcmQgPSB3b3Jkc0FycmF5WzBdO1xuICAgICAgICBsZXQgY250ID0gMTtcbiAgICAgICAgbGV0IHdvcmRXaWR0aCA9IE1hdGguY2VpbCgoZmlyc3RXb3JkLmxlbmd0aCArIDEpICogbGV0dGVyV2lkdGgpO1xuICAgICAgICB3aGlsZSAod29yZFdpZHRoIDwgZ29hbFdpZHRoKSB7XG4gICAgICAgICAgICB3b3JkV2lkdGggKz0gTWF0aC5jZWlsKCh3b3Jkc0FycmF5W2NudF0ubGVuZ3RoICsgMSkgKiBsZXR0ZXJXaWR0aCk7XG4gICAgICAgICAgICBjbnQrKztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGN1cnJlbnRMaW5rLCAnd2lkdGgnLCBgJHt3b3JkV2lkdGggKyBwYXJzZUludChsaW5rU3R5bGUucGFkZGluZ0xlZnQsIDEwKSArIHBhcnNlSW50KGxpbmtTdHlsZS5wYWRkaW5nUmlnaHQsIDEwKX1weGApO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGN1cnJlbnRMaW5rLCAnd2hpdGUtc3BhY2UnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENsYXNzRGVwZW5kaW5nQ2hpbGRyZW5DbnQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2hpbGRyZW4pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDFfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDEnO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDJfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDInO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5sZW5ndGggPCBDb2xUcmlnZ2VyLkNPTDNfVFJJR0dFUikge1xuICAgICAgICAgICAgICAgIHJldHVybiAnZWNsLW1lbnVfX2l0ZW0tLWNvbDMnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzRnVsbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlY2wtbWVudV9faXRlbS0tZnVsbCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByaXZhdGUgaGFzU3VibWVudUFueVNlbGVjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnN1Ym1lbnUgJiYgISF0aGlzLnN1Ym1lbnUuZWNsTWVudU1lZ2FJdGVtcy5maW5kKChpdCkgPT4gaXQuaXNDdXJyZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jZGtCcmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgICAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5IYW5kc2V0LCBCcmVha3BvaW50cy5UYWJsZXQsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGVCcmVha3BvaW50ID0gcmVzdWx0Lm1hdGNoZXM7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG59XG4iLCJAaWYgKGhyZWYpIHtcbiAgICA8YVxuICAgICAgICAjbWVudUxpbmtcbiAgICAgICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgICAgICBbaHJlZl09XCJocmVmXCJcbiAgICAgICAgW3RhcmdldF09XCJ0YXJnZXRcIlxuICAgICAgICBjbGFzcz1cImVjbC1tZW51X19saW5rXCJcbiAgICAgICAgW2NsYXNzLmVjbC1tZW51X19saW5rLS1jdXJyZW50XT1cImlzQ3VycmVudFwiXG4gICAgICAgIChmb2N1cyk9XCJvbkl0ZW1Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bik9XCJvbkxpbmtLZXlkb3duKCRldmVudClcIj5cbiAgICAgICAge3sgbGFiZWwgfX1cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2E+XG59IEBlbHNlIHtcbiAgICA8YVxuICAgICAgICAjbWVudUxpbmtcbiAgICAgICAgdmFyaWFudD1cInN0YW5kYWxvbmVcIlxuICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICBbcm91dGVyTGlua109XCJyb3V0ZXJMaW5rXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCJcbiAgICAgICAgW3F1ZXJ5UGFyYW1zSGFuZGxpbmddPVwicXVlcnlQYXJhbXNIYW5kbGluZ1wiXG4gICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2xpbmtcIlxuICAgICAgICBbY2xhc3MuZWNsLW1lbnVfX2xpbmstLWN1cnJlbnRdPVwiaXNDdXJyZW50XCJcbiAgICAgICAgKGZvY3VzKT1cIm9uSXRlbUZvY3VzKCRldmVudClcIlxuICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duKT1cIm9uTGlua0tleWRvd24oJGV2ZW50KVwiPlxuICAgICAgICB7eyBsYWJlbCB9fVxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYT5cbn1cblxuQGlmIChoYXNDaGlsZHJlbikge1xuICAgIEBpZiAoaXNNb2JpbGVCcmVha3BvaW50KSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGVjbEJ1dHRvblxuICAgICAgICAgICAgaXNJY29uT25seVxuICAgICAgICAgICAgdmFyaWFudD1cImdob3N0XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZWNsLW1lbnVfX2J1dHRvbi1jYXJldFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBY2Nlc3MgaXRlbSdzIGNoaWxkcmVuXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkl0ZW1DYXJldENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwib25CdXR0b25LZXlkb3duKCRldmVudClcIj5cbiAgICAgICAgICAgIDxlY2wtaWNvbiBpY29uPVwiY29ybmVyLWFycm93XCIgc2l6ZT1cInhzXCIgdHJhbnNmb3JtPVwicm90YXRlLTE4MFwiIGNsYXNzPVwiZWNsLWJ1dHRvbl9faWNvblwiPjwvZWNsLWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBlY2xCdXR0b25cbiAgICAgICAgICAgIGlzSWNvbk9ubHlcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJnaG9zdFwiXG4gICAgICAgICAgICBjbGFzcz1cImVjbC1tZW51X19idXR0b24tY2FyZXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBhcmlhLWxhYmVsPVwiQWNjZXNzIGl0ZW0ncyBjaGlsZHJlblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzQXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uQnV0dG9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZWNsLWljb24gaWNvbj1cImNvcm5lci1hcnJvd1wiIHNpemU9XCJ4c1wiIHRyYW5zZm9ybT1cInJvdGF0ZS0xODBcIiBjbGFzcz1cImVjbC1idXR0b25fX2ljb25cIj48L2VjbC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICB9XG59XG5cbjxuZy1jb250ZW50IHNlbGVjdD1cImVjbC1tZW51LW1lZ2FcIj48L25nLWNvbnRlbnQ+XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -8,20 +8,21 @@ export class EclSiteHeaderEnvironmentComponent extends ECLBaseDirective {
|
|
|
8
8
|
get cssClasses() {
|
|
9
9
|
return [super.getCssClasses(''), 'ecl-u-type-xl ecl-u-bg-error ecl-u-type-color-white'].join(' ');
|
|
10
10
|
}
|
|
11
|
-
constructor(el, cdkBreakpointObserver) {
|
|
11
|
+
constructor(el, cdkBreakpointObserver, renderer) {
|
|
12
12
|
super();
|
|
13
13
|
this.el = el;
|
|
14
14
|
this.cdkBreakpointObserver = cdkBreakpointObserver;
|
|
15
|
+
this.renderer = renderer;
|
|
15
16
|
this.destroy$ = new Subject();
|
|
16
17
|
this.isMobile = false;
|
|
17
18
|
}
|
|
18
19
|
ngAfterViewInit() {
|
|
19
20
|
const el = this.el.nativeElement;
|
|
20
|
-
this.parentEl = el
|
|
21
|
+
this.parentEl = this.renderer.parentNode(el);
|
|
21
22
|
if (this.parentEl) {
|
|
22
|
-
this.
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
23
|
+
this.renderer.setStyle(this.parentEl, 'display', 'flex');
|
|
24
|
+
this.renderer.setStyle(this.parentEl, 'alignItems', 'center');
|
|
25
|
+
this.renderer.setStyle(this.parentEl, 'position', 'relative');
|
|
25
26
|
}
|
|
26
27
|
this.observeBreakpointChanges();
|
|
27
28
|
}
|
|
@@ -41,24 +42,24 @@ export class EclSiteHeaderEnvironmentComponent extends ECLBaseDirective {
|
|
|
41
42
|
}
|
|
42
43
|
manageMobile() {
|
|
43
44
|
if (this.parentEl) {
|
|
44
|
-
this.
|
|
45
|
-
this.el.nativeElement
|
|
45
|
+
this.renderer.setStyle(this.parentEl, 'display', 'block');
|
|
46
|
+
this.renderer.setStyle(this.el.nativeElement, 'width', 'unset');
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
manageDesktop() {
|
|
49
50
|
if (this.parentEl) {
|
|
50
|
-
this.
|
|
51
|
-
this.el.nativeElement
|
|
51
|
+
this.renderer.setStyle(this.parentEl, 'display', 'flex');
|
|
52
|
+
this.renderer.setStyle(this.el.nativeElement, 'width', '100%');
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EclSiteHeaderEnvironmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EclSiteHeaderEnvironmentComponent, deps: [{ token: i0.ElementRef }, { token: i1.BreakpointObserver }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
56
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-rc.0", type: EclSiteHeaderEnvironmentComponent, selector: "[eclSiteHeaderEnvironment]", host: { properties: { "class": "this.cssClasses" } }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }); }
|
|
56
57
|
}
|
|
57
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EclSiteHeaderEnvironmentComponent, decorators: [{
|
|
58
59
|
type: Component,
|
|
59
60
|
args: [{ selector: '[eclSiteHeaderEnvironment]', template: '<ng-content></ng-content>', styles: [":host{position:absolute;width:100%;font-size:1.3rem;padding:.3rem;opacity:.6;text-align:center;transform:rotate(-10deg)}@media print{:host{display:none}}\n"] }]
|
|
60
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.BreakpointObserver }], propDecorators: { cssClasses: [{
|
|
61
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.BreakpointObserver }, { type: i0.Renderer2 }], propDecorators: { cssClasses: [{
|
|
61
62
|
type: HostBinding,
|
|
62
63
|
args: ['class']
|
|
63
64
|
}] } });
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLWVudmlyb25tZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvZWNsLXNpdGUtaGVhZGVyLWVudmlyb25tZW50L2VjbC1zaXRlLWhlYWRlci1lbnZpcm9ubWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQWMsV0FBVyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUEwQjNDLE1BQU0sT0FBTyxpQ0FBa0MsU0FBUSxnQkFBZ0I7SUFDbkUsSUFDSSxVQUFVO1FBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEVBQUUscURBQXFELENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUtELFlBQ1ksRUFBYyxFQUNkLHFCQUF5QyxFQUN6QyxRQUFtQjtRQUUzQixLQUFLLEVBQUUsQ0FBQztRQUpBLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCwwQkFBcUIsR0FBckIscUJBQXFCLENBQW9CO1FBQ3pDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFQdkIsYUFBUSxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ3BELGFBQVEsR0FBRyxLQUFLLENBQUM7SUFTekIsQ0FBQztJQUVELGVBQWU7UUFDWCxNQUFNLEVBQUUsR0FBZ0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU3QyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBRUQsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVPLHdCQUF3QjtRQUM1QixJQUFJLENBQUMscUJBQXFCO2FBQ3JCLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQy9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0wsQ0FBQzttSEF4RFEsaUNBQWlDO3VHQUFqQyxpQ0FBaUMsK0lBcEJoQywyQkFBMkI7O2dHQW9CNUIsaUNBQWlDO2tCQXZCN0MsU0FBUzsrQkFFSSw0QkFBNEIsWUFDNUIsMkJBQTJCO3dJQXNCakMsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2VjbFNpdGVIZWFkZXJFbnZpcm9ubWVudF0nLFxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgICAgIDpob3N0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC4zcmVtO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgYCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyRW52aXJvbm1lbnRDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgZ2V0IGNzc0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFtzdXBlci5nZXRDc3NDbGFzc2VzKCcnKSwgJ2VjbC11LXR5cGUteGwgZWNsLXUtYmctZXJyb3IgZWNsLXUtdHlwZS1jb2xvci13aGl0ZSddLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBpc01vYmlsZSA9IGZhbHNlO1xuICAgIHByaXZhdGUgcGFyZW50RWw6IEhUTUxFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2RrQnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXIsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsOiBIVE1MRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5wYXJlbnRFbCA9IHRoaXMucmVuZGVyZXIucGFyZW50Tm9kZShlbCk7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50RWwpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wYXJlbnRFbCwgJ2Rpc3BsYXknLCAnZmxleCcpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudEVsLCAnYWxpZ25JdGVtcycsICdjZW50ZXInKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wYXJlbnRFbCwgJ3Bvc2l0aW9uJywgJ3JlbGF0aXZlJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9ic2VydmVCcmVha3BvaW50Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb2JzZXJ2ZUJyZWFrcG9pbnRDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNka0JyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUoWycobWF4LXdpZHRoOiA0ODBweCknXSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNNb2JpbGUgPSByZXN1bHQubWF0Y2hlcztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1hbmFnZU1vYmlsZSgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlRGVza3RvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlTW9iaWxlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRFbCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudEVsLCAnZGlzcGxheScsICdibG9jaycpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsICd1bnNldCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VEZXNrdG9wKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYXJlbnRFbCkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnBhcmVudEVsLCAnZGlzcGxheScsICdmbGV4Jyk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgJzEwMCUnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
package/esm2022/lib/components/ecl-site-header/language/ecl-site-header-language.component.mjs
CHANGED
|
@@ -48,13 +48,15 @@ export class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
48
48
|
}
|
|
49
49
|
ngOnInit() {
|
|
50
50
|
this.updateLanguages();
|
|
51
|
-
this.handleWindowResize();
|
|
52
51
|
}
|
|
53
52
|
ngOnChanges(changes) {
|
|
54
53
|
if (changes['languageCodes']) {
|
|
55
54
|
this.updateLanguages();
|
|
56
55
|
}
|
|
57
56
|
}
|
|
57
|
+
ngAfterViewInit() {
|
|
58
|
+
this.handleWindowResize();
|
|
59
|
+
}
|
|
58
60
|
ngOnDestroy() {
|
|
59
61
|
this.destroy$.next(true);
|
|
60
62
|
this.destroy$.complete();
|
|
@@ -148,7 +150,7 @@ export class EclSiteHeaderLanguageComponent extends ECLBaseDirective {
|
|
|
148
150
|
});
|
|
149
151
|
}
|
|
150
152
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i0, type: EclSiteHeaderLanguageComponent, deps: [{ token: i1.EclLanguageService }, { token: i2.EclSiteHeaderComponent }, { token: i1.EclThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
151
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: EclSiteHeaderLanguageComponent, selector: "ecl-site-header-language", inputs: { languageCode: "languageCode", languageCodes: "languageCodes"
|
|
153
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: EclSiteHeaderLanguageComponent, selector: "ecl-site-header-language", inputs: { languageCode: "languageCode", languageCodes: "languageCodes" }, outputs: { languageClick: "languageClick", languageSelected: "languageSelected" }, host: { listeners: { "eclClickOutside": "onClickOutside()", "document:keydown.escape": "onEscapeKeydownHandler()" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "languagePopoverElement", first: true, predicate: ["languagePopover"], descendants: true, read: ElementRef }, { propertyName: "languageLinkElement", first: true, predicate: ["languageLink"], descendants: true, read: ElementRef }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: i3.ECLClickOutsideDirective, outputs: ["eclClickOutside", "eclClickOutside"] }], ngImport: i0, template: "<a\n href=\"#\"\n #languageLink\n class=\"ecl-button ecl-button--tertiary ecl-site-header__language-selector\"\n aria-controls=\"language-list-overlay\"\n role=\"button\"\n [attr.aria-label]=\"'ecl.language-list.SELECT-LANGUAGE-EXT' | translate: { currentLang: getLanguageLabel() }\"\n [attr.aria-expanded]=\"isLanguagesDropdownVisible\"\n (click)=\"onLanguageClick($event)\"\n (keydown.space)=\"onLanguageClick($event)\">\n <span class=\"ecl-site-header__language-icon\">\n <ecl-icon icon=\"global\" size=\"s\" class=\"ecl-site-header__icon\"></ecl-icon>\n </span>\n @if(eclThemeService.isEC$ | async) {\n {{ languageCode }}\n } @else {\n {{ getLanguageLabel() }}\n }\n</a>\n@if(hasLanguageCodes()) {\n<ecl-site-header-language-popover\n #languagePopover\n [languageCode]=\"languageCode\"\n [euLanguages]=\"euLanguages\"\n [nonEuLanguages]=\"nonEuLanguages\"\n [euColumnsCount]=\"euColumnsCount\"\n [nonEuColumnsCount]=\"nonEuColumnsCount\"\n [isHidden]=\"!isLanguagesDropdownVisible\"\n [isStack]=\"isStack\"\n [isPushRight]=\"isPushRight\"\n [isFull]=\"isFull\"\n [rightPosition]=\"rightPosition\"\n [languageArrowPosition]=\"languageArrowPosition\"\n (languageSelected)=\"onLanguageSelected($event)\"\n (languageClosed)=\"onLanguageClosed($event)\">\n</ecl-site-header-language-popover>\n}", dependencies: [{ kind: "component", type: i4.EclIconComponent, selector: "ecl-icon", inputs: ["iconSet", "icon", "size", "color", "transform", "ariaLabelledby", "role", "ariaHidden", "focusable"] }, { kind: "component", type: i5.EclSiteHeaderLanguagePopoverComponent, selector: "ecl-site-header-language-popover", inputs: ["languageCode", "euLanguages", "nonEuLanguages", "euColumnsCount", "nonEuColumnsCount", "isHidden", "isPushRight", "isStack", "isFull", "rightPosition", "languageArrowPosition"], outputs: ["languageClosed", "languageSelected"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] }); }
|
|
152
154
|
}
|
|
153
155
|
__decorate([
|
|
154
156
|
coerceElement
|
|
@@ -168,8 +170,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
|
|
|
168
170
|
type: Input
|
|
169
171
|
}], languageCodes: [{
|
|
170
172
|
type: Input
|
|
171
|
-
}], languageLabel: [{
|
|
172
|
-
type: Input
|
|
173
173
|
}], languagePopoverElement: [{
|
|
174
174
|
type: ViewChild,
|
|
175
175
|
args: ['languagePopover', { read: ElementRef }]
|
|
@@ -190,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ng
|
|
|
190
190
|
type: HostListener,
|
|
191
191
|
args: ['document:keydown.escape']
|
|
192
192
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbGFuZ3VhZ2UvZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbGFuZ3VhZ2UvZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBbUMsa0NBQWtDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7O0FBRW5JLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUFZO0NBQUc7QUFZcEUsTUFBTSxPQUFPLDhCQUErQixTQUFRLGdCQUFnQjtJQUloRSxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGFBQWEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMs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UUFBUSxhQUFhLFFBQVEsU0FBUyxHQUFHLENBQUM7Z0JBQzNFLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO21IQXJMUSw4QkFBOEI7dUdBQTlCLDhCQUE4QixzZ0JBb0JjLFVBQVUsOEdBQ2IsVUFBVSx3TEN6RGhFLHczQ0FvQ0M7O0FEb0JzRTtJQUFsRSxhQUFhOzhFQUF5RjtBQUN2QztJQUEvRCxhQUFhOzJFQUFtRjtnR0FyQnhGLDhCQUE4QjtrQkFWMUMsU0FBUzsrQkFDSSwwQkFBMEIsa0JBRXBCO3dCQUNaOzRCQUNJLFNBQVMsRUFBRSx3QkFBd0I7NEJBQ25DLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO3lCQUMvQjtxQkFDSjswSkFJRCxZQUFZO3NCQURYLEtBQUs7Z0JBUUssYUFBYTtzQkFEdkIsS0FBSztnQkFVRyxhQUFhO3NCQUFyQixLQUFLO2dCQUU2RCxzQkFBc0I7c0JBQXpFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNELG1CQUFtQjtzQkFBbkUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUVwRCxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFtQkgsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBZ0VwQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjbExhbmd1YWdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgRWNsQmFzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWwvZWNsLWJhc2UuZXZlbnQnO1xuaW1wb3J0IHsgRWNsTGFuZ3VhZ2VTZXJ2aWNlLCBFY2xUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFQ0xDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9kaXJlY3RpdmVzL2VjbC1jbGljay1vdXRzaWRlJztcbmltcG9ydCB7IEVDTEJhc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9lY2wtYmFzZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRWNsU2l0ZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2VjbC1zaXRlLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWNsU2l0ZUhlYWRlckxhbmd1YWdlQ2xvc2VFdmVudCwgRWNsU2l0ZUhlYWRlckxhbmd1YWdlU2VsZWN0ZWRFdmVudCB9IGZyb20gJy4vZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLXBvcG92ZXIuY29tcG9uZW50JztcblxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsaWNrRXZlbnQgZXh0ZW5kcyBFY2xCYXNlRXZlbnQge31cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlY2wtc2l0ZS1oZWFkZXItbGFuZ3VhZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9lY2wtc2l0ZS1oZWFkZXItbGFuZ3VhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogRUNMQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICAgICAgICAgICAgb3V0cHV0czogWydlY2xDbGlja091dHNpZGUnXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDb21wb25lbnQgZXh0ZW5kcyBFQ0xCYXNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KClcbiAgICBsYW5ndWFnZUNvZGUgPSAnZW4nO1xuXG4gICAgcHVibGljIGdldCBsYW5ndWFnZUNvZGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VDb2RlcztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbGFuZ3VhZ2VDb2Rlcyh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9sYW5ndWFnZUNvZGVzID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBAZGVwcmVjYXRlZCBsYW5ndWFnZUxhYmVsIGlzIGF1dG9tYXRpY2FsbHkgdHJhbnNsYXRlZFxuICAgICAqICAgICAgICAgICAgIHVzaW5nIGxhbmd1YWdlQ29kZS4gVG8gYmUgcmVtb3ZlZCBpbiAxOFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhbmd1YWdlTGFiZWw6IHN0cmluZztcblxuICAgIEBjb2VyY2VFbGVtZW50IEBWaWV3Q2hpbGQoJ2xhbmd1YWdlUG9wb3ZlcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsYW5ndWFnZVBvcG92ZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICBAY29lcmNlRWxlbWVudCBAVmlld0NoaWxkKCdsYW5ndWFnZUxpbmsnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbGFuZ3VhZ2VMaW5rRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBAT3V0cHV0KCkgbGFuZ3VhZ2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2l0ZUhlYWRlckxhbmd1YWdlQ2xpY2tFdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgbGFuZ3VhZ2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWNsU2l0ZUhlYWRlckxhbmd1YWdlU2VsZWN0ZWRFdmVudD4oKTtcblxuICAgIHJlYWRvbmx5IE1PQklMRV9CUkVBS1BPSU5UID0gNzY4O1xuICAgIHJlYWRvbmx5IExBTkdVQUdFX01BWF9DT0xVTU5TID0gODtcbiAgICBpc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuICAgIGlzUHVzaFJpZ2h0OiBib29sZWFuO1xuICAgIGlzU3RhY2s6IGJvb2xlYW47XG4gICAgaXNGdWxsOiBib29sZWFuO1xuICAgIGxhbmd1YWdlQXJyb3dQb3NpdGlvbjogc3RyaW5nO1xuICAgIHJpZ2h0UG9zaXRpb246IHN0cmluZztcbiAgICBldUxhbmd1YWdlczogQXJyYXk8RWNsTGFuZ3VhZ2U+ID0gW107XG4gICAgbm9uRXVMYW5ndWFnZXM6IEFycmF5PEVjbExhbmd1YWdlPiA9IFtdO1xuICAgIGV1Q29sdW1uc0NvdW50ID0gMTtcbiAgICBub25FdUNvbHVtbnNDb3VudCA9IDE7XG4gICAgcHJpdmF0ZSBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gICAgcHJpdmF0ZSBfbGFuZ3VhZ2VDb2RlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgIHByaXZhdGUgUkVTSVpFX0RFQk9VTkNFX1RJTUUgPSAyMDA7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBnZXQgY3NzQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW3N1cGVyLmdldENzc0NsYXNzZXMoJ2VjbC1zaXRlLWhlYWRlcl9fbGFuZ3VhZ2UnKV0uam9pbignICcpLnRyaW0oKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlY2xMYW5ndWFnZVNlcnZpY2U6IEVjbExhbmd1YWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlY2xTaXRlSGVhZGVyOiBFY2xTaXRlSGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBwcm90ZWN0ZWQgZWNsVGhlbWVTZXJ2aWNlOiBFY2xUaGVtZVNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VzKCk7XG4gICAgICAgIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1snbGFuZ3VhZ2VDb2RlcyddKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUxhbmd1YWdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGdldExhbmd1YWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlQnlDb2RlKHRoaXMubGFuZ3VhZ2VDb2RlKT8ubGFiZWw7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNsaWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9ICF0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlO1xuICAgICAgICBpZiAodGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3BvdmVyUG9zaXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1c2hSaWdodCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQXJyb3dQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYW5ndWFnZUNsaWNrLm5leHQobmV3IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsaWNrRXZlbnQoKSk7XG5cbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNsb3NlZChldnQ6IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsb3NlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uTGFuZ3VhZ2VTZWxlY3RlZChldnQ6IEVjbFNpdGVIZWFkZXJMYW5ndWFnZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGUgPSBldnQubGFuZ3VhZ2UuY29kZTtcblxuICAgICAgICB0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZWxlY3RlZC5uZXh0KG5ldyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VTZWxlY3RlZEV2ZW50KGV2dC5sYW5ndWFnZSkpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2VjbENsaWNrT3V0c2lkZScpXG4gICAgb25DbGlja091dHNpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMYW5ndWFnZXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gICAgb25Fc2NhcGVLZXlkb3duSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNMYW5ndWFnZUNvZGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUNvZGVzICYmIHRoaXMubGFuZ3VhZ2VDb2Rlcy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5SRVNJWkVfREVCT1VOQ0VfVElNRSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMYW5ndWFnZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlcyA9IHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlc0J5Q29kZXModGhpcy5sYW5ndWFnZUNvZGVzKTtcblxuICAgICAgICB0aGlzLmV1TGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLmZpbHRlcigoaXRlbSkgPT4gdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UuaXNFdUxhbmd1YWdlKGl0ZW0uY29kZSkpO1xuXG4gICAgICAgIHRoaXMubm9uRXVMYW5ndWFnZXMgPSBsYW5ndWFnZXMuZmlsdGVyKChpdGVtKSA9PiAhdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UuaXNFdUxhbmd1YWdlKGl0ZW0uY29kZSkpO1xuXG4gICAgICAgIHRoaXMuZXVDb2x1bW5zQ291bnQgPSBNYXRoLmNlaWwodGhpcy5ldUxhbmd1YWdlcy5sZW5ndGggLyB0aGlzLkxBTkdVQUdFX01BWF9DT0xVTU5TKTtcblxuICAgICAgICB0aGlzLm5vbkV1Q29sdW1uc0NvdW50ID0gTWF0aC5jZWlsKHRoaXMubm9uRXVMYW5ndWFnZXMubGVuZ3RoIC8gdGhpcy5MQU5HVUFHRV9NQVhfQ09MVU1OUyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3BvdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzTGFuZ3VhZ2VDb2RlcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyb3dTaXplID0gJzAuNXJlbSc7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuZWNsU2l0ZUhlYWRlci50b3BDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua1JlY3QgPSB0aGlzLmxhbmd1YWdlTGlua0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9wb3ZlclJlY3QgPSB0aGlzLmxhbmd1YWdlUG9wb3ZlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCB2dyA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1c2hSaWdodCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQXJyb3dQb3NpdGlvbiA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIGlmIChwb3BvdmVyUmVjdC53aWR0aCA+IGNvbnRhaW5lclJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9uRXVMYW5ndWFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vbkV1Q29sdW1uc0NvdW50ID0gTWF0aC5tYXgodGhpcy5ldUNvbHVtbnNDb3VudCwgdGhpcy5ub25FdUNvbHVtbnNDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocG9wb3ZlclJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJvd1Bvc2l0aW9uID0gY29udGFpbmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0ICsgbGlua1JlY3Qud2lkdGggLyAyO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQdXNoUmlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0UG9zaXRpb24gPSBgLSR7Y29udGFpbmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUFycm93UG9zaXRpb24gPSBgY2FsYygke2Fycm93UG9zaXRpb259cHggLSAke2Fycm93U2l6ZX0pYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodncgPCB0aGlzLk1PQklMRV9CUkVBS1BPSU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFycm93UG9zaXRpb24gPSBwb3BvdmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0ICsgbGlua1JlY3Qud2lkdGggLyAyO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUFycm93UG9zaXRpb24gPSBgY2FsYygke2Fycm93UG9zaXRpb259cHggLSAke2Fycm93U2l6ZX0pYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxhXG4gICAgaHJlZj1cIiNcIlxuICAgICNsYW5ndWFnZUxpbmtcbiAgICBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tdGVydGlhcnkgZWNsLXNpdGUtaGVhZGVyX19sYW5ndWFnZS1zZWxlY3RvclwiXG4gICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLWxpc3Qtb3ZlcmxheVwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInZWNsLmxhbmd1YWdlLWxpc3QuU0VMRUNULUxBTkdVQUdFLUVYVCcgfCB0cmFuc2xhdGU6IHsgY3VycmVudExhbmc6IGdldExhbmd1YWdlTGFiZWwoKSB9XCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlXCJcbiAgICAoY2xpY2spPVwib25MYW5ndWFnZUNsaWNrKCRldmVudClcIlxuICAgIChrZXlkb3duLnNwYWNlKT1cIm9uTGFuZ3VhZ2VDbGljaygkZXZlbnQpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xhbmd1YWdlLWljb25cIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJnbG9iYWxcIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19pY29uXCI+PC9lY2wtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgQGlmKGVjbFRoZW1lU2VydmljZS5pc0VDJCB8IGFzeW5jKSB7XG4gICAgICAgIHt7IGxhbmd1YWdlQ29kZSB9fVxuICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBnZXRMYW5ndWFnZUxhYmVsKCkgfX1cbiAgICB9XG48L2E+XG5AaWYoaGFzTGFuZ3VhZ2VDb2RlcygpKSB7XG48ZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLXBvcG92ZXJcbiAgICAjbGFuZ3VhZ2VQb3BvdmVyXG4gICAgW2xhbmd1YWdlQ29kZV09XCJsYW5ndWFnZUNvZGVcIlxuICAgIFtldUxhbmd1YWdlc109XCJldUxhbmd1YWdlc1wiXG4gICAgW25vbkV1TGFuZ3VhZ2VzXT1cIm5vbkV1TGFuZ3VhZ2VzXCJcbiAgICBbZXVDb2x1bW5zQ291bnRdPVwiZXVDb2x1bW5zQ291bnRcIlxuICAgIFtub25FdUNvbHVtbnNDb3VudF09XCJub25FdUNvbHVtbnNDb3VudFwiXG4gICAgW2lzSGlkZGVuXT1cIiFpc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZVwiXG4gICAgW2lzU3RhY2tdPVwiaXNTdGFja1wiXG4gICAgW2lzUHVzaFJpZ2h0XT1cImlzUHVzaFJpZ2h0XCJcbiAgICBbaXNGdWxsXT1cImlzRnVsbFwiXG4gICAgW3JpZ2h0UG9zaXRpb25dPVwicmlnaHRQb3NpdGlvblwiXG4gICAgW2xhbmd1YWdlQXJyb3dQb3NpdGlvbl09XCJsYW5ndWFnZUFycm93UG9zaXRpb25cIlxuICAgIChsYW5ndWFnZVNlbGVjdGVkKT1cIm9uTGFuZ3VhZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAobGFuZ3VhZ2VDbG9zZWQpPVwib25MYW5ndWFnZUNsb3NlZCgkZXZlbnQpXCI+XG48L2VjbC1zaXRlLWhlYWRlci1sYW5ndWFnZS1wb3BvdmVyPlxufSJdfQ==
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbGFuZ3VhZ2UvZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9lY2wtc2l0ZS1oZWFkZXIvbGFuZ3VhZ2UvZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELE9BQU8sRUFBbUMsa0NBQWtDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7O0FBRW5JLE1BQU0sT0FBTywrQkFBZ0MsU0FBUSxZQUFZO0NBQUc7QUFZcEUsTUFBTSxPQUFPLDhCQUErQixTQUFRLGdCQUFnQjtJQUdoRSxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNXLGFBQWEsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLENBQUMs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QUksQ0FBQyxxQkFBcUIsR0FBRyxRQUFRLGFBQWEsUUFBUSxTQUFTLEdBQUcsQ0FBQztnQkFDM0UsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7bUhBakxRLDhCQUE4Qjt1R0FBOUIsOEJBQThCLHNlQWFjLFVBQVUsOEdBQ2IsVUFBVSx3TENuRGhFLHczQ0FvQ0M7O0FEY3NFO0lBQWxFLGFBQWE7OEVBQXlGO0FBQ3ZDO0lBQS9ELGFBQWE7MkVBQW1GO2dHQWR4Riw4QkFBOEI7a0JBVjFDLFNBQVM7K0JBQ0ksMEJBQTBCLGtCQUVwQjt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsd0JBQXdCOzRCQUNuQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt5QkFDL0I7cUJBQ0o7MEpBR1EsWUFBWTtzQkFBcEIsS0FBSztnQkFPSyxhQUFhO3NCQUR2QixLQUFLO2dCQU02RCxzQkFBc0I7c0JBQXpFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUNELG1CQUFtQjtzQkFBbkUsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUVwRCxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFtQkgsVUFBVTtzQkFEYixXQUFXO3VCQUFDLE9BQU87Z0JBbUVwQixjQUFjO3NCQURiLFlBQVk7dUJBQUMsaUJBQWlCO2dCQU0vQixzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBBZnRlclZpZXdJbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvZXJjZUVsZW1lbnQgfSBmcm9tICdAZXVpL2Jhc2UnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWNsTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFY2xCYXNlRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9lY2wtYmFzZS5ldmVudCc7XG5pbXBvcnQgeyBFY2xMYW5ndWFnZVNlcnZpY2UsIEVjbFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEVDTENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2RpcmVjdGl2ZXMvZWNsLWNsaWNrLW91dHNpZGUnO1xuaW1wb3J0IHsgRUNMQmFzZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2VjbC1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFY2xTaXRlSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vZWNsLXNpdGUtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDbG9zZUV2ZW50LCBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VTZWxlY3RlZEV2ZW50IH0gZnJvbSAnLi9lY2wtc2l0ZS1oZWFkZXItbGFuZ3VhZ2UtcG9wb3Zlci5jb21wb25lbnQnO1xuXG5leHBvcnQgY2xhc3MgRWNsU2l0ZUhlYWRlckxhbmd1YWdlQ2xpY2tFdmVudCBleHRlbmRzIEVjbEJhc2VFdmVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VjbC1zaXRlLWhlYWRlci1sYW5ndWFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VjbC1zaXRlLWhlYWRlci1sYW5ndWFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBFQ0xDbGlja091dHNpZGVEaXJlY3RpdmUsXG4gICAgICAgICAgICBvdXRwdXRzOiBbJ2VjbENsaWNrT3V0c2lkZSddLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNvbXBvbmVudCBleHRlbmRzIEVDTEJhc2VEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBsYW5ndWFnZUNvZGUgPSAnZW4nO1xuXG4gICAgcHVibGljIGdldCBsYW5ndWFnZUNvZGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2VDb2RlcztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgbGFuZ3VhZ2VDb2Rlcyh2YWx1ZTogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICB0aGlzLl9sYW5ndWFnZUNvZGVzID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VzKCk7XG4gICAgfVxuXG4gICAgQGNvZXJjZUVsZW1lbnQgQFZpZXdDaGlsZCgnbGFuZ3VhZ2VQb3BvdmVyJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGxhbmd1YWdlUG9wb3ZlckVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIEBjb2VyY2VFbGVtZW50IEBWaWV3Q2hpbGQoJ2xhbmd1YWdlTGluaycsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBsYW5ndWFnZUxpbmtFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIEBPdXRwdXQoKSBsYW5ndWFnZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VDbGlja0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBsYW5ndWFnZVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VTZWxlY3RlZEV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgTU9CSUxFX0JSRUFLUE9JTlQgPSA3Njg7XG4gICAgcmVhZG9ubHkgTEFOR1VBR0VfTUFYX0NPTFVNTlMgPSA4O1xuICAgIGlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgaXNQdXNoUmlnaHQ6IGJvb2xlYW47XG4gICAgaXNTdGFjazogYm9vbGVhbjtcbiAgICBpc0Z1bGw6IGJvb2xlYW47XG4gICAgbGFuZ3VhZ2VBcnJvd1Bvc2l0aW9uOiBzdHJpbmc7XG4gICAgcmlnaHRQb3NpdGlvbjogc3RyaW5nO1xuICAgIGV1TGFuZ3VhZ2VzOiBBcnJheTxFY2xMYW5ndWFnZT4gPSBbXTtcbiAgICBub25FdUxhbmd1YWdlczogQXJyYXk8RWNsTGFuZ3VhZ2U+ID0gW107XG4gICAgZXVDb2x1bW5zQ291bnQgPSAxO1xuICAgIG5vbkV1Q29sdW1uc0NvdW50ID0gMTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbiAgICBwcml2YXRlIF9sYW5ndWFnZUNvZGVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gICAgcHJpdmF0ZSBSRVNJWkVfREVCT1VOQ0VfVElNRSA9IDIwMDtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjc3NDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBbc3VwZXIuZ2V0Q3NzQ2xhc3NlcygnZWNsLXNpdGUtaGVhZGVyX19sYW5ndWFnZScpXS5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVjbExhbmd1YWdlU2VydmljZTogRWNsTGFuZ3VhZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVjbFNpdGVIZWFkZXI6IEVjbFNpdGVIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIHByb3RlY3RlZCBlY2xUaGVtZVNlcnZpY2U6IEVjbFRoZW1lU2VydmljZSxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVMYW5ndWFnZXMoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydsYW5ndWFnZUNvZGVzJ10pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTGFuZ3VhZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFuZGxlV2luZG93UmVzaXplKCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIGdldExhbmd1YWdlTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlQnlDb2RlKHRoaXMubGFuZ3VhZ2VDb2RlKT8ubGFiZWw7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNsaWNrKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9ICF0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlO1xuICAgICAgICBpZiAodGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVQb3BvdmVyUG9zaXRpb24oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1c2hSaWdodCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQXJyb3dQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sYW5ndWFnZUNsaWNrLm5leHQobmV3IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsaWNrRXZlbnQoKSk7XG5cbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgb25MYW5ndWFnZUNsb3NlZChldnQ6IEVjbFNpdGVIZWFkZXJMYW5ndWFnZUNsb3NlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uTGFuZ3VhZ2VTZWxlY3RlZChldnQ6IEVjbFNpdGVIZWFkZXJMYW5ndWFnZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sYW5ndWFnZUNvZGUgPSBldnQubGFuZ3VhZ2UuY29kZTtcblxuICAgICAgICB0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMubGFuZ3VhZ2VTZWxlY3RlZC5uZXh0KG5ldyBFY2xTaXRlSGVhZGVyTGFuZ3VhZ2VTZWxlY3RlZEV2ZW50KGV2dC5sYW5ndWFnZSkpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2VjbENsaWNrT3V0c2lkZScpXG4gICAgb25DbGlja091dHNpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMYW5ndWFnZXNEcm9wZG93blZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScpXG4gICAgb25Fc2NhcGVLZXlkb3duSGFuZGxlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYXNMYW5ndWFnZUNvZGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sYW5ndWFnZUNvZGVzICYmIHRoaXMubGFuZ3VhZ2VDb2Rlcy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGhhbmRsZVdpbmRvd1Jlc2l6ZSgpOiB2b2lkIHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUodGhpcy5SRVNJWkVfREVCT1VOQ0VfVElNRSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlUG9wb3ZlclBvc2l0aW9uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVMYW5ndWFnZXMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlcyA9IHRoaXMuZWNsTGFuZ3VhZ2VTZXJ2aWNlLmdldExhbmd1YWdlc0J5Q29kZXModGhpcy5sYW5ndWFnZUNvZGVzKTtcblxuICAgICAgICB0aGlzLmV1TGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzLmZpbHRlcigoaXRlbSkgPT4gdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UuaXNFdUxhbmd1YWdlKGl0ZW0uY29kZSkpO1xuXG4gICAgICAgIHRoaXMubm9uRXVMYW5ndWFnZXMgPSBsYW5ndWFnZXMuZmlsdGVyKChpdGVtKSA9PiAhdGhpcy5lY2xMYW5ndWFnZVNlcnZpY2UuaXNFdUxhbmd1YWdlKGl0ZW0uY29kZSkpO1xuXG4gICAgICAgIHRoaXMuZXVDb2x1bW5zQ291bnQgPSBNYXRoLmNlaWwodGhpcy5ldUxhbmd1YWdlcy5sZW5ndGggLyB0aGlzLkxBTkdVQUdFX01BWF9DT0xVTU5TKTtcblxuICAgICAgICB0aGlzLm5vbkV1Q29sdW1uc0NvdW50ID0gTWF0aC5jZWlsKHRoaXMubm9uRXVMYW5ndWFnZXMubGVuZ3RoIC8gdGhpcy5MQU5HVUFHRV9NQVhfQ09MVU1OUyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYWxjdWxhdGVQb3BvdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzTGFuZ3VhZ2VDb2RlcygpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXJyb3dTaXplID0gJzAuNXJlbSc7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyRWxlbWVudCA9IHRoaXMuZWNsU2l0ZUhlYWRlci50b3BDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgbGlua1JlY3QgPSB0aGlzLmxhbmd1YWdlTGlua0VsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9wb3ZlclJlY3QgPSB0aGlzLmxhbmd1YWdlUG9wb3ZlckVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2NyZWVuV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgICAgICAgICBjb25zdCB2dyA9IE1hdGgubWF4KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCB8fCAwLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1B1c2hSaWdodCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRQb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aGlzLmxhbmd1YWdlQXJyb3dQb3NpdGlvbiA9IHVuZGVmaW5lZDtcblxuICAgICAgICAgICAgICAgIGlmIChwb3BvdmVyUmVjdC53aWR0aCA+IGNvbnRhaW5lclJlY3Qud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1N0YWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9uRXVMYW5ndWFnZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vbkV1Q29sdW1uc0NvdW50ID0gTWF0aC5tYXgodGhpcy5ldUNvbHVtbnNDb3VudCwgdGhpcy5ub25FdUNvbHVtbnNDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocG9wb3ZlclJlY3QucmlnaHQgPiBzY3JlZW5XaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcnJvd1Bvc2l0aW9uID0gY29udGFpbmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0ICsgbGlua1JlY3Qud2lkdGggLyAyO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQdXNoUmlnaHQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0UG9zaXRpb24gPSBgLSR7Y29udGFpbmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0fXB4YDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUFycm93UG9zaXRpb24gPSBgY2FsYygke2Fycm93UG9zaXRpb259cHggLSAke2Fycm93U2l6ZX0pYDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodncgPCB0aGlzLk1PQklMRV9CUkVBS1BPSU5UKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFycm93UG9zaXRpb24gPSBwb3BvdmVyUmVjdC5yaWdodCAtIGxpbmtSZWN0LnJpZ2h0ICsgbGlua1JlY3Qud2lkdGggLyAyO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNGdWxsID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYW5ndWFnZUFycm93UG9zaXRpb24gPSBgY2FsYygke2Fycm93UG9zaXRpb259cHggLSAke2Fycm93U2l6ZX0pYDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxhXG4gICAgaHJlZj1cIiNcIlxuICAgICNsYW5ndWFnZUxpbmtcbiAgICBjbGFzcz1cImVjbC1idXR0b24gZWNsLWJ1dHRvbi0tdGVydGlhcnkgZWNsLXNpdGUtaGVhZGVyX19sYW5ndWFnZS1zZWxlY3RvclwiXG4gICAgYXJpYS1jb250cm9scz1cImxhbmd1YWdlLWxpc3Qtb3ZlcmxheVwiXG4gICAgcm9sZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCInZWNsLmxhbmd1YWdlLWxpc3QuU0VMRUNULUxBTkdVQUdFLUVYVCcgfCB0cmFuc2xhdGU6IHsgY3VycmVudExhbmc6IGdldExhbmd1YWdlTGFiZWwoKSB9XCJcbiAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzTGFuZ3VhZ2VzRHJvcGRvd25WaXNpYmxlXCJcbiAgICAoY2xpY2spPVwib25MYW5ndWFnZUNsaWNrKCRldmVudClcIlxuICAgIChrZXlkb3duLnNwYWNlKT1cIm9uTGFuZ3VhZ2VDbGljaygkZXZlbnQpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJlY2wtc2l0ZS1oZWFkZXJfX2xhbmd1YWdlLWljb25cIj5cbiAgICAgICAgPGVjbC1pY29uIGljb249XCJnbG9iYWxcIiBzaXplPVwic1wiIGNsYXNzPVwiZWNsLXNpdGUtaGVhZGVyX19pY29uXCI+PC9lY2wtaWNvbj5cbiAgICA8L3NwYW4+XG4gICAgQGlmKGVjbFRoZW1lU2VydmljZS5pc0VDJCB8IGFzeW5jKSB7XG4gICAgICAgIHt7IGxhbmd1YWdlQ29kZSB9fVxuICAgIH0gQGVsc2Uge1xuICAgICAgICB7eyBnZXRMYW5ndWFnZUxhYmVsKCkgfX1cbiAgICB9XG48L2E+XG5AaWYoaGFzTGFuZ3VhZ2VDb2RlcygpKSB7XG48ZWNsLXNpdGUtaGVhZGVyLWxhbmd1YWdlLXBvcG92ZXJcbiAgICAjbGFuZ3VhZ2VQb3BvdmVyXG4gICAgW2xhbmd1YWdlQ29kZV09XCJsYW5ndWFnZUNvZGVcIlxuICAgIFtldUxhbmd1YWdlc109XCJldUxhbmd1YWdlc1wiXG4gICAgW25vbkV1TGFuZ3VhZ2VzXT1cIm5vbkV1TGFuZ3VhZ2VzXCJcbiAgICBbZXVDb2x1bW5zQ291bnRdPVwiZXVDb2x1bW5zQ291bnRcIlxuICAgIFtub25FdUNvbHVtbnNDb3VudF09XCJub25FdUNvbHVtbnNDb3VudFwiXG4gICAgW2lzSGlkZGVuXT1cIiFpc0xhbmd1YWdlc0Ryb3Bkb3duVmlzaWJsZVwiXG4gICAgW2lzU3RhY2tdPVwiaXNTdGFja1wiXG4gICAgW2lzUHVzaFJpZ2h0XT1cImlzUHVzaFJpZ2h0XCJcbiAgICBbaXNGdWxsXT1cImlzRnVsbFwiXG4gICAgW3JpZ2h0UG9zaXRpb25dPVwicmlnaHRQb3NpdGlvblwiXG4gICAgW2xhbmd1YWdlQXJyb3dQb3NpdGlvbl09XCJsYW5ndWFnZUFycm93UG9zaXRpb25cIlxuICAgIChsYW5ndWFnZVNlbGVjdGVkKT1cIm9uTGFuZ3VhZ2VTZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAobGFuZ3VhZ2VDbG9zZWQpPVwib25MYW5ndWFnZUNsb3NlZCgkZXZlbnQpXCI+XG48L2VjbC1zaXRlLWhlYWRlci1sYW5ndWFnZS1wb3BvdmVyPlxufSJdfQ==
|