@rededor/site-front-end-lib 0.0.71 → 0.0.73

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.
@@ -33,6 +33,10 @@ export class SectionNavigationComponent {
33
33
  this.sectionChange = new EventEmitter();
34
34
  this.styleBinding = {
35
35
  '--color-base': this.curaService.getColor('primary-base'),
36
+ '--color-text': this.curaService.getColor('neutral-base'),
37
+ '--color-active-text': this.curaService.getColor('neutral-purewhite'),
38
+ '--font-size': this.curaService.getFontSize(),
39
+ '--font-weight-active': this.curaService.getFontWeights()['medium'],
36
40
  };
37
41
  this.scrollSub = null;
38
42
  this.scrollToMenuAnchorSubject = new BehaviorSubject(-1);
@@ -115,11 +119,11 @@ export class SectionNavigationComponent {
115
119
  }
116
120
  }
117
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n >\n <cura-paragraph\n size=\"xsmall\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n [color]=\"activeSection() === section.id ? 'neutral-purewhite' : 'neutral-dark'\"\n >\n {{ section.title }}\n </cura-paragraph>\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none}cura-paragraph{--margin-block: 0 !important;position:relative;padding:12px 8px;font-weight:500}cura-paragraph.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:var(--font-size);font-weight:var(--font-weight-active);color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--color-active-text)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
119
123
  }
120
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, decorators: [{
121
125
  type: Component,
122
- args: [{ selector: 'nav[rdsite-section-navigation]', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n >\n <cura-paragraph\n size=\"xsmall\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n [color]=\"activeSection() === section.id ? 'neutral-purewhite' : 'neutral-dark'\"\n >\n {{ section.title }}\n </cura-paragraph>\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none}cura-paragraph{--margin-block: 0 !important;position:relative;padding:12px 8px;font-weight:500}cura-paragraph.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base)}\n"] }]
126
+ args: [{ selector: 'nav[rdsite-section-navigation]', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:var(--font-size);font-weight:var(--font-weight-active);color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--color-active-text)}\n"] }]
123
127
  }], ctorParameters: () => [], propDecorators: { onWindowResize: [{
124
128
  type: HostListener,
125
129
  args: ['window:resize']
@@ -139,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
139
143
  type: ViewChild,
140
144
  args: ['navigationMenu', { static: true }]
141
145
  }] } });
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VjdGlvbi1uYXZpZ2F0aW9uL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBRVQsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVTlDLE1BQU0sT0FBTywwQkFBMEI7SUFXckMsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQ0ksa0JBQWtCLENBQUMsS0FBOEI7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FB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QUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWpDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDZixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQTFJVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1ZUNoQ3ZDLGtoQ0EwQkEsNHlCRENZLFlBQVk7OzRGQUtYLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSxnQ0FBZ0MsY0FDOUIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLFdBQ2QsQ0FBQyxzQkFBc0IsQ0FBQzt3REFlakMsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWU7Z0JBTXpCLGtCQUFrQjtzQkFEckIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBYXJCLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFNTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNO2dCQUdlLFlBQVk7c0JBQWpDLFdBQVc7dUJBQUMsT0FBTztnQkFJMkIsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2VjdGlvbk5hdmlnYXRpb25EYXRhLCBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWN0aW9uLW5hdmlnYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2Nyb2xsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Njcm9sbC1zZXJ2aWNlL3Njcm9sbC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VyYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXJhL2N1cmEuc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hdltyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsU2VydmljZSA9IGluamVjdChTY3JvbGxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJhU2VydmljZSA9IGluamVjdChDdXJhU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgc2VjdGlvbnMgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25EYXRhW10+KFtdKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBhY3RpdmVTZWN0aW9uID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIGlzTW9iaWxlOiBib29sZWFuID0gd2luZG93LmlubmVyV2lkdGggPCA3Njg7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODtcbiAgfVxuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCBuYXZpZ2F0aW9uU2VjdGlvbnModmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdKSB7XG4gICAgaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ08gU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgcmVxdWVyIHBlbG8gbWVub3MgdW1hIHNlw6fDo28uJyk7XG4gICAgfVxuICAgIHRoaXMuc2VjdGlvbnMuc2V0KHZhbHVlKTtcblxuICAgIGlmICghdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodmFsdWVbMF0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBuYXZpZ2F0aW9uQ29uZmlnKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBhcmlhTGFiZWwgPSAnTmF2ZWdhw6fDo28gZGEgcMOhZ2luYSc7XG5cbiAgQE91dHB1dCgpXG4gIHNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlY3Rpb25OYXZpZ2F0aW9uRGF0YT4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgc3R5bGVCaW5kaW5nID0ge1xuICAgICctLWNvbG9yLWJhc2UnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCdwcmltYXJ5LWJhc2UnKSxcbiAgfTtcblxuICBAVmlld0NoaWxkKCduYXZpZ2F0aW9uTWVudScsIHsgc3RhdGljOiB0cnVlIH0pIG5hdmlnYXRpb25NZW51ITogRWxlbWVudFJlZjxIVE1MVUxpc3RFbGVtZW50PjtcblxuICBwcml2YXRlIHNjcm9sbFN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc2Nyb2xsVG9NZW51QW5jaG9yU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTEpO1xuICBwcml2YXRlIGhvcml6b250YWxTY3JvbGxTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuc2VjdGlvbnMoKTtcbiAgICAgIGlmIChzZWN0aW9ucy5sZW5ndGggJiYgIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XG4gICAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQoc2VjdGlvbnNbMF0uaWQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3Qgc2VjdGlvbnMgPSB0aGlzLnNlY3Rpb25zKCk7XG4gICAgaWYgKCFzZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTyBTZWN0aW9uTmF2aWdhdGlvbkNvbXBvbmVudCByZXF1ZXIgcGVsbyBtZW5vcyB1bWEgc2XDp8Ojby4nKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYWN0aXZlU2VjdGlvbigpKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHNlY3Rpb25zWzBdLmlkKTtcbiAgICB9XG5cbiAgICB0aGlzLmhvcml6b250YWxTY3JvbGxTdWIgPSB0aGlzLnNjcm9sbFRvTWVudUFuY2hvclN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoNTApKS5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICBpZiAoaW5kZXggPiAtMSAmJiB0aGlzLmlzTW9iaWxlKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9NZW51QW5jaG9yKGluZGV4KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNjcm9sbFN1YiA9IGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnKVxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbldpbmRvd1Njcm9sbCgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25XaW5kb3dTY3JvbGwoKTogdm9pZCB7XG4gICAgY29uc3QgbmF2SGVpZ2h0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5yZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uJyk/LmNsaWVudEhlaWdodCB8fCAwO1xuICAgIGxldCBhY3RpdmVJbmRleCA9IC0xO1xuICAgIGxldCBtaW5EaWZmID0gSW5maW5pdHk7XG5cbiAgICB0aGlzLnNlY3Rpb25zKCkuZm9yRWFjaCgoc2VjdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWN0aW9uLmlkKTtcbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGRpZmYgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIG5hdkhlaWdodDtcbiAgICAgICAgaWYgKGRpZmYgPj0gMCAmJiBkaWZmIDwgbWluRGlmZikge1xuICAgICAgICAgIG1pbkRpZmYgPSBkaWZmO1xuICAgICAgICAgIGFjdGl2ZUluZGV4ID0gaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhY3RpdmVJbmRleCA9PT0gLTEgJiYgdGhpcy5zZWN0aW9ucygpLmxlbmd0aCkge1xuICAgICAgYWN0aXZlSW5kZXggPSB0aGlzLnNlY3Rpb25zKCkubGVuZ3RoIC0gMTtcbiAgICB9XG5cbiAgICBpZiAoYWN0aXZlSW5kZXggPiAtMSAmJiB0aGlzLmFjdGl2ZVNlY3Rpb24oKSAhPT0gdGhpcy5zZWN0aW9ucygpW2FjdGl2ZUluZGV4XS5pZCkge1xuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldCh0aGlzLnNlY3Rpb25zKClbYWN0aXZlSW5kZXhdLmlkKTtcbiAgICAgIHRoaXMuc2Nyb2xsVG9NZW51QW5jaG9yU3ViamVjdC5uZXh0KGFjdGl2ZUluZGV4KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvTWVudUFuY2hvcihpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgbGlua3MgPSB0aGlzLm5hdmlnYXRpb25NZW51Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYScpO1xuICAgIGNvbnN0IGFjdGl2ZUxpbmsgPSBsaW5rc1tpbmRleF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgaWYgKGFjdGl2ZUxpbmspIHtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMubmF2aWdhdGlvbk1lbnUubmF0aXZlRWxlbWVudDtcbiAgICAgIGNvbnRhaW5lci5zY3JvbGxUbyh7IGxlZnQ6IGFjdGl2ZUxpbmsub2Zmc2V0TGVmdCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VjdGlvbkNsaWNrKHNlY3Rpb246IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgaWYgKCFjb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbmF2aWdhdGlvbkNvbmZpZyDDqSBvYnJpZ2F0w7NyaW8uJyk7XG4gICAgfVxuICAgIGNvbnN0IHN1Y2Nlc3MgPSB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG9FbGVtZW50KHNlY3Rpb24uaWQsIGNvbmZpZy5vZmZzZXRUb3AsIGNvbmZpZy5zbW9vdGhTY3JvbGwpO1xuXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQoc2VjdGlvbi5pZCk7XG4gICAgICB0aGlzLnNlY3Rpb25DaGFuZ2UuZW1pdChzZWN0aW9uKTtcblxuICAgICAgaWYgKHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlY3Rpb25zKCkuZmluZEluZGV4KChzKSA9PiBzLmlkID09PSBzZWN0aW9uLmlkKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICB0aGlzLnNjcm9sbFRvTWVudUFuY2hvclN1YmplY3QubmV4dChpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIiBbc3R5bGUudG9wLnB4XT1cImNvbmZpZygpPy5vZmZzZXRUb3AgfHwgMFwiPlxuICA8dWwgI25hdmlnYXRpb25NZW51IGNsYXNzPVwicmRzaXRlLXNlY3Rpb24tbmF2aWdhdGlvbi1tZW51XCIgcm9sZT1cIm1lbnViYXJcIj5cbiAgICBAZm9yIChzZWN0aW9uIG9mIHNlY3Rpb25zKCk7IHRyYWNrIHNlY3Rpb24uaWQpIHtcbiAgICAgIEBpZiAoc2VjdGlvbi50aXRsZSkge1xuICAgICAgICA8bGkgcm9sZT1cIm5vbmVcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgdGFyZ2V0PVwiX3NlbGZcIlxuICAgICAgICAgICAgcm9sZT1cIm1lbnVpdGVtXCJcbiAgICAgICAgICAgIFtocmVmXT1cIicjJyArIHNlY3Rpb24uaWRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCA/ICdwYWdlJyA6IG51bGxcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyBvblNlY3Rpb25DbGljayhzZWN0aW9uKVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidOYXZlZ2FyIHBhcmEgJyArIHNlY3Rpb24udGl0bGVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjdXJhLXBhcmFncmFwaFxuICAgICAgICAgICAgICBzaXplPVwieHNtYWxsXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCB9XCJcbiAgICAgICAgICAgICAgW2NvbG9yXT1cImFjdGl2ZVNlY3Rpb24oKSA9PT0gc2VjdGlvbi5pZCA/ICduZXV0cmFsLXB1cmV3aGl0ZScgOiAnbmV1dHJhbC1kYXJrJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICAgIDwvY3VyYS1wYXJhZ3JhcGg+XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIH1cbiAgPC91bD5cbjwvbmF2PlxuIl19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1uYXZpZ2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpdGUtZnJvbnQtZW5kLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc2VjdGlvbi1uYXZpZ2F0aW9uL3NlY3Rpb24tbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NlY3Rpb24tbmF2aWdhdGlvbi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBRVQsc0JBQXNCLEVBQ3RCLFdBQVcsRUFDWCxZQUFZLEdBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVTlDLE1BQU0sT0FBTywwQkFBMEI7SUFXckMsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQ0ksa0JBQWtCLENBQUMsS0FBOEI7UUFDbkQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUNuQixNQUFNLElBQUksS0FB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MkIsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgc2lnbmFsLFxuICBlZmZlY3QsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBpbmplY3QsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2VjdGlvbk5hdmlnYXRpb25EYXRhLCBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9zZWN0aW9uLW5hdmlnYXRpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2Nyb2xsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Njcm9sbC1zZXJ2aWNlL3Njcm9sbC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VyYVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jdXJhL2N1cmEuc2VydmljZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hdltyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9uLW5hdmlnYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsU2VydmljZSA9IGluamVjdChTY3JvbGxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJhU2VydmljZSA9IGluamVjdChDdXJhU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgc2VjdGlvbnMgPSBzaWduYWw8U2VjdGlvbk5hdmlnYXRpb25EYXRhW10+KFtdKTtcbiAgcmVhZG9ubHkgY29uZmlnID0gc2lnbmFsPFNlY3Rpb25OYXZpZ2F0aW9uQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICByZWFkb25seSBhY3RpdmVTZWN0aW9uID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIGlzTW9iaWxlOiBib29sZWFuID0gd2luZG93LmlubmVyV2lkdGggPCA3Njg7XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uV2luZG93UmVzaXplKCk6IHZvaWQge1xuICAgIHRoaXMuaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODtcbiAgfVxuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCBuYXZpZ2F0aW9uU2VjdGlvbnModmFsdWU6IFNlY3Rpb25OYXZpZ2F0aW9uRGF0YVtdKSB7XG4gICAgaWYgKCF2YWx1ZT8ubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ08gU2VjdGlvbk5hdmlnYXRpb25Db21wb25lbnQgcmVxdWVyIHBlbG8gbWVub3MgdW1hIHNlw6fDo28uJyk7XG4gICAgfVxuICAgIHRoaXMuc2VjdGlvbnMuc2V0KHZhbHVlKTtcblxuICAgIGlmICghdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQodmFsdWVbMF0uaWQpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBuYXZpZ2F0aW9uQ29uZmlnKHZhbHVlOiBTZWN0aW9uTmF2aWdhdGlvbkNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnLnNldCh2YWx1ZSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBhcmlhTGFiZWwgPSAnTmF2ZWdhw6fDo28gZGEgcMOhZ2luYSc7XG5cbiAgQE91dHB1dCgpXG4gIHNlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlY3Rpb25OYXZpZ2F0aW9uRGF0YT4oKTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJykgc3R5bGVCaW5kaW5nID0ge1xuICAgICctLWNvbG9yLWJhc2UnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCdwcmltYXJ5LWJhc2UnKSxcbiAgICAnLS1jb2xvci10ZXh0JzogdGhpcy5jdXJhU2VydmljZS5nZXRDb2xvcignbmV1dHJhbC1iYXNlJyksXG4gICAgJy0tY29sb3ItYWN0aXZlLXRleHQnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldENvbG9yKCduZXV0cmFsLXB1cmV3aGl0ZScpLFxuICAgICctLWZvbnQtc2l6ZSc6IHRoaXMuY3VyYVNlcnZpY2UuZ2V0Rm9udFNpemUoKSxcbiAgICAnLS1mb250LXdlaWdodC1hY3RpdmUnOiB0aGlzLmN1cmFTZXJ2aWNlLmdldEZvbnRXZWlnaHRzKClbJ21lZGl1bSddLFxuICB9O1xuXG4gIEBWaWV3Q2hpbGQoJ25hdmlnYXRpb25NZW51JywgeyBzdGF0aWM6IHRydWUgfSkgbmF2aWdhdGlvbk1lbnUhOiBFbGVtZW50UmVmPEhUTUxVTGlzdEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgc2Nyb2xsU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBzY3JvbGxUb01lbnVBbmNob3JTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigtMSk7XG4gIHByaXZhdGUgaG9yaXpvbnRhbFNjcm9sbFN1YjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlY3Rpb25zID0gdGhpcy5zZWN0aW9ucygpO1xuICAgICAgaWYgKHNlY3Rpb25zLmxlbmd0aCAmJiAhdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcbiAgICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldChzZWN0aW9uc1swXS5pZCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBzZWN0aW9ucyA9IHRoaXMuc2VjdGlvbnMoKTtcbiAgICBpZiAoIXNlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPIFNlY3Rpb25OYXZpZ2F0aW9uQ29tcG9uZW50IHJlcXVlciBwZWxvIG1lbm9zIHVtYSBzZcOnw6NvLicpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hY3RpdmVTZWN0aW9uKCkpIHtcbiAgICAgIHRoaXMuYWN0aXZlU2VjdGlvbi5zZXQoc2VjdGlvbnNbMF0uaWQpO1xuICAgIH1cblxuICAgIHRoaXMuaG9yaXpvbnRhbFNjcm9sbFN1YiA9IHRoaXMuc2Nyb2xsVG9NZW51QW5jaG9yU3ViamVjdC5waXBlKGRlYm91bmNlVGltZSg1MCkpLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgIGlmIChpbmRleCA+IC0xICYmIHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3IoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU3ViID0gZnJvbUV2ZW50KHdpbmRvdywgJ3Njcm9sbCcpXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uV2luZG93U2Nyb2xsKCkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zY3JvbGxTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5ob3Jpem9udGFsU2Nyb2xsU3ViPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbldpbmRvd1Njcm9sbCgpOiB2b2lkIHtcbiAgICBjb25zdCBuYXZIZWlnaHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignLnJkc2l0ZS1zZWN0aW9uLW5hdmlnYXRpb24nKT8uY2xpZW50SGVpZ2h0IHx8IDA7XG4gICAgbGV0IGFjdGl2ZUluZGV4ID0gLTE7XG4gICAgbGV0IG1pbkRpZmYgPSBJbmZpbml0eTtcblxuICAgIHRoaXMuc2VjdGlvbnMoKS5mb3JFYWNoKChzZWN0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlY3Rpb24uaWQpO1xuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZGlmZiA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wIC0gbmF2SGVpZ2h0O1xuICAgICAgICBpZiAoZGlmZiA+PSAwICYmIGRpZmYgPCBtaW5EaWZmKSB7XG4gICAgICAgICAgbWluRGlmZiA9IGRpZmY7XG4gICAgICAgICAgYWN0aXZlSW5kZXggPSBpbmRleDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGFjdGl2ZUluZGV4ID09PSAtMSAmJiB0aGlzLnNlY3Rpb25zKCkubGVuZ3RoKSB7XG4gICAgICBhY3RpdmVJbmRleCA9IHRoaXMuc2VjdGlvbnMoKS5sZW5ndGggLSAxO1xuICAgIH1cblxuICAgIGlmIChhY3RpdmVJbmRleCA+IC0xICYmIHRoaXMuYWN0aXZlU2VjdGlvbigpICE9PSB0aGlzLnNlY3Rpb25zKClbYWN0aXZlSW5kZXhdLmlkKSB7XG4gICAgICB0aGlzLmFjdGl2ZVNlY3Rpb24uc2V0KHRoaXMuc2VjdGlvbnMoKVthY3RpdmVJbmRleF0uaWQpO1xuICAgICAgdGhpcy5zY3JvbGxUb01lbnVBbmNob3JTdWJqZWN0Lm5leHQoYWN0aXZlSW5kZXgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9NZW51QW5jaG9yKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBsaW5rcyA9IHRoaXMubmF2aWdhdGlvbk1lbnUubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhJyk7XG4gICAgY29uc3QgYWN0aXZlTGluayA9IGxpbmtzW2luZGV4XSBhcyBIVE1MRWxlbWVudDtcbiAgICBpZiAoYWN0aXZlTGluaykge1xuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5uYXZpZ2F0aW9uTWVudS5uYXRpdmVFbGVtZW50O1xuICAgICAgY29udGFpbmVyLnNjcm9sbFRvKHsgbGVmdDogYWN0aXZlTGluay5vZmZzZXRMZWZ0LCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxuICB9XG5cbiAgb25TZWN0aW9uQ2xpY2soc2VjdGlvbjogU2VjdGlvbk5hdmlnYXRpb25EYXRhKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCduYXZpZ2F0aW9uQ29uZmlnIMOpIG9icmlnYXTDs3Jpby4nKTtcbiAgICB9XG4gICAgY29uc3Qgc3VjY2VzcyA9IHRoaXMuc2Nyb2xsU2VydmljZS5zY3JvbGxUb0VsZW1lbnQoc2VjdGlvbi5pZCwgY29uZmlnLm9mZnNldFRvcCwgY29uZmlnLnNtb290aFNjcm9sbCk7XG5cbiAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgdGhpcy5hY3RpdmVTZWN0aW9uLnNldChzZWN0aW9uLmlkKTtcbiAgICAgIHRoaXMuc2VjdGlvbkNoYW5nZS5lbWl0KHNlY3Rpb24pO1xuXG4gICAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VjdGlvbnMoKS5maW5kSW5kZXgoKHMpID0+IHMuaWQgPT09IHNlY3Rpb24uaWQpO1xuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9NZW51QW5jaG9yU3ViamVjdC5uZXh0KGluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPG5hdiBjbGFzcz1cInJkc2l0ZS1zZWN0aW9uLW5hdmlnYXRpb25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiIFtzdHlsZS50b3AucHhdPVwiY29uZmlnKCk/Lm9mZnNldFRvcCB8fCAwXCI+XG4gIDx1bCAjbmF2aWdhdGlvbk1lbnUgY2xhc3M9XCJyZHNpdGUtc2VjdGlvbi1uYXZpZ2F0aW9uLW1lbnVcIiByb2xlPVwibWVudWJhclwiPlxuICAgIEBmb3IgKHNlY3Rpb24gb2Ygc2VjdGlvbnMoKTsgdHJhY2sgc2VjdGlvbi5pZCkge1xuICAgICAgQGlmIChzZWN0aW9uLnRpdGxlKSB7XG4gICAgICAgIDxsaSByb2xlPVwibm9uZVwiPlxuICAgICAgICAgIDxhXG4gICAgICAgICAgICB0YXJnZXQ9XCJfc2VsZlwiXG4gICAgICAgICAgICByb2xlPVwibWVudWl0ZW1cIlxuICAgICAgICAgICAgW2hyZWZdPVwiJyMnICsgc2VjdGlvbi5pZFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IG9uU2VjdGlvbkNsaWNrKHNlY3Rpb24pXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05hdmVnYXIgcGFyYSAnICsgc2VjdGlvbi50aXRsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlU2VjdGlvbigpID09PSBzZWN0aW9uLmlkIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlY3Rpb24udGl0bGUgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgfVxuICA8L3VsPlxuPC9uYXY+XG4iXX0=
@@ -377,6 +377,9 @@ export class SeoService {
377
377
  this.canonicalTag = this.getCanonicalTag();
378
378
  }
379
379
  let path = this.document.location.pathname;
380
+ if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {
381
+ path = path.replace(this.libConfig?.siteSufix, '');
382
+ }
380
383
  if (!path.startsWith('/')) {
381
384
  path = `/${path}`;
382
385
  }
@@ -477,4 +480,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
477
480
  type: Inject,
478
481
  args: [DOCUMENT]
479
482
  }] }] });
480
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXVCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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V0FBVyxDQUFDO0lBQ2pDLENBQUM7K0dBcGZVLFVBQVUsbUZBMkJYLFVBQVUsYUFDVixRQUFRO21IQTVCUCxVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTRCSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgKiBhcyBoZSBmcm9tICdoZSc7XG5cbmltcG9ydCB7IFNvY2lhbE1ldGFQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NvY2lhbC1tZXRhLXByb3BlcnRpZXMubW9kZWwnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYnNJdGVtcyB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1icy9icmVhZGNydW1icy1pdGVtcy5tb2RlbCc7XG5pbXBvcnQgeyBCcmVhZGNydW1ic0pzb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWpzb24taXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9VbmlkYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tdW5pZGFkZS5tb2RlbCc7XG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XG5pbXBvcnQgeyBnZXRTaXRlVXJsLCByZW1vdmVIdG1sVGFncyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTZW9TZXJ2aWNlIHtcbiAgcHVibGljIHNlcGFyYXRvciA9ICcgLSAnO1xuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcbiAgcHVibGljIGFjdGl2ZURlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgc2FtZUFzID0gW1xuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxuICAgICdodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3JlZGVkb3Jfb2ZpY2lhbC8nLFxuICAgICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9yZWRlZG9yLXNhb2x1aXonLFxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxuICBdO1xuICBwdWJsaWMgdHdpdHRlclVzZXIgPSAnQHJlZGVkb3InO1xuXG4gIHByaXZhdGUgY2Fub25pY2FsVGFnITogSFRNTExpbmtFbGVtZW50O1xuICBwcml2YXRlIGpzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnSWQgPSAnYnJlYWRjcnVtYnNKU09OJztcblxuICBwdWJsaWMgdW5pZGFkZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHVuaWRhZGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVTbHVnOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgcHVibGljIHNldEZ1bGxTZW8oZGF0YTogU2VvRGF0YSkge1xuICAgIHRoaXMuc2V0VGl0bGUoZGF0YS50aXRsZS50ZXh0LCAhIWRhdGEudGl0bGUuc3ViKTtcbiAgICB0aGlzLnNldERlc2NyaXB0aW9uKGRhdGEuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMuc2V0Q2Fub25pY2FsSHJlZihkYXRhLmNhbm9uaWNhbCk7XG4gICAgdGhpcy5zZXRQYWdlSnNvbigpO1xuICAgIHRoaXMuc2V0U29jaWFsVGFncyhkYXRhLnNvY2lhbFRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0YWcgZGVzY3JpcHRpb24gZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgZGVzY3Jpw6fDo28gPHN0cmluZz5cbiAgICovXG4gIHB1YmxpYyBzZXREZXNjcmlwdGlvbihjb250ZW50OiBzdHJpbmcpOiBTZW9TZXJ2aWNlIHtcbiAgICBjb25zdCBkZXNjVGFnID0gdGhpcy5tZXRhLmdldFRhZyhcIm5hbWU9J2Rlc2NyaXB0aW9uJ1wiKTtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uID0gY29udGVudDtcbiAgICBjb25zdCB0YWdDb250ZW50ID0geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH07XG4gICAgaWYgKGRlc2NUYWcpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcodGFnQ29udGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcodGFnQ29udGVudCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XG4gICAgY29uc3QgbWV0YXRhZyA9IHRoaXMubWV0YS5nZXRUYWcoYCR7dHlwZX09JyR7dGFnfSdgKTtcbiAgICBjb250ZW50ID0gaGUuZGVjb2RlKGNvbnRlbnQpO1xuICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICBjb25zdCB0YWdDb250ZW50ID0ge1xuICAgICAgW3R5cGVdOiB0YWcsXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgaWYgKCFtZXRhdGFnKSB7XG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbWV0YSB0YWdzIGRhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gYXR0ciBhdHJpYnV0byBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKHRhZzogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGF0dHI6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XG4gICAgaWYgKG1ldGF0YWcpIHtcbiAgICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoYCR7YXR0cn09JHtjb250ZW50fWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgRmFjZWJvb2tcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gcGFyYSBvIGZhY2Vib29rXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gZmFjZWJvb2tcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBkZWZpbmnDp8OjbyBkbyBmYWNlYm9va1xuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIGZhY2Vib29rXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YUZhY2Vib29rKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVybDogc3RyaW5nLCBpbWc6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp1cmwnLCB1cmwsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCB0aXRsZSwgJ3Byb3BlcnR5Jyk7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAncHJvcGVydHknKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnR5cGUnLCAnd2Vic2l0ZScsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBpbWcgPz8gJycsICdwcm9wZXJ0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBUd2l0dGVyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyB0d2l0dGVyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gdXJsIHVybCBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIHR3aXR0ZXJcbiAgICovXG4gIHB1YmxpYyBzZXRNZXRhVHdpdHRlcih0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgdXJsLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjp0aXRsZScsIHRpdGxlLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjppbWFnZScsIGltZyA/PyAnJywgJ25hbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGFncyBkZSByZWRlcyBzb2NpYWlzIChUd2l0dGVyIGUgT3BlbiBHcmFwaClcbiAgICogQHBhcmFtIHByb3BlcnRpZXNcbiAgICovXG4gIHNldFNvY2lhbFRhZ3MocHJvcGVydGllcz86IFNvY2lhbE1ldGFQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgbGV0IGRlZmF1bHRQcm9wZXJ0aWVzOiBTb2NpYWxNZXRhUHJvcGVydGllcyA9IHtcbiAgICAgIHR3aXR0ZXJDYXJkOiAnc3VtbWFyeScsXG4gICAgICB0d2l0dGVyU2l0ZTogdGhpcy50d2l0dGVyVXNlcixcbiAgICAgIHR5cGU6ICd3ZWJzaXRlJyxcbiAgICAgIHRpdGxlOiB0aGlzLmdldFRpdGxlKCksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWAsXG4gICAgICBpbWFnZTogdGhpcy5saWJDb25maWc/LmxvZ29QYXRoID8gYCR7c2l0ZXVybH0ke3RoaXMubGliQ29uZmlnLmxvZ29QYXRofWAgOiAnaHR0cHM6Ly93d3cucmVkZWRvcnNhb2x1aXouY29tLmJyL2Fzc2V0cy9pbWdzL2xvZ28tcmVkZWRvci1ibHVlLnBuZycsXG4gICAgfTtcbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXMgPSB7IC4uLmRlZmF1bHRQcm9wZXJ0aWVzLCAuLi5wcm9wZXJ0aWVzIH07XG4gICAgfVxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpjYXJkJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlckNhcmQgfHwgJycsICduYW1lJylcbiAgICAgIC5zZXRNZXRhVGFnKCd0d2l0dGVyOnNpdGUnLCBkZWZhdWx0UHJvcGVydGllcy50d2l0dGVyU2l0ZSB8fCAnJywgJ25hbWUnKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnR5cGUnLCBkZWZhdWx0UHJvcGVydGllcy50eXBlIHx8ICcnLCAncHJvcGVydHknKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgZGVmYXVsdFByb3BlcnRpZXMudGl0bGUgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZWZhdWx0UHJvcGVydGllcy5kZXNjcmlwdGlvbiB8fCAnJywgJ3Byb3BlcnR5JylcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp1cmwnLCBkZWZhdWx0UHJvcGVydGllcy51cmwgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBkZWZhdWx0UHJvcGVydGllcy5pbWFnZSB8fCAnJywgJ3Byb3BlcnR5Jyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdMOtdHVsbyBkYSBww6FnaW5hXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIGRhIHDDoWdpbmEgPHN0cmluZz5cbiAgICogQHBhcmFtIHN1YiBTZSDDqSBzdWJzaXRlIGFjcmVzY2VudGEgdW5pZGFkZSA8Ym9vbGVhbj5cbiAgICovXG4gIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCBzdWIgPSBmYWxzZSkge1xuICAgIGlmICh0aXRsZSAmJiB0aXRsZSAhPT0gJycpIHtcbiAgICAgIHRpdGxlID0gaGUuZGVjb2RlKHRpdGxlKTtcbiAgICAgIHRpdGxlID0gcmVtb3ZlSHRtbFRhZ3ModGl0bGUpO1xuICAgICAgaWYgKHN1Yikge1xuICAgICAgICB0aXRsZSA9IGhlLmRlY29kZShgJHt0aXRsZX0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBPYnRlbSB0w610dWxvIGF0dWFsIGRhIHDDoWdpbmEgKi9cbiAgcHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUuZ2V0VGl0bGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQ0MDRUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudCAhPT0gJycpIHtcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcbiAgICAgIGlmICh0aGlzLnVuaWRhZGVOYW1lKSB7XG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNDA0IC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldDUwMFRpdGxlKGNvbXBvbmVudDogc3RyaW5nID0gJ0RlZmF1bHQgQ29tcG9uZW50Jykge1xuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xuICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGNvbXBvbmVudCk7XG4gICAgICBjb21wb25lbnQgPSByZW1vdmVIdG1sVGFncyhjb21wb25lbnQpO1xuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcbiAgICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGAke2NvbXBvbmVudH0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdGl0bGUgPSBgRXJybyA1MDAgLSAke2NvbXBvbmVudH0gLSAke3RoaXMubGliQ29uZmlnPy5zaXRlTmFtZX0gLSAke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgSlNPTiBkZSBicmVhZGNydW1icyAqL1xuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzSlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XG4gICAgY29uc3QgdGFnOiBIVE1MU2NyaXB0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgdGFnLmlkID0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZDtcbiAgICB0YWcudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRhZztcbiAgICByZXR1cm4gdGFnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRCcmVhZGNydW1ic0pTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLmlkID09PSB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZ0lkKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVCcmVhZGNydW1ic0pTT05UYWcoKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmUgbyBKU09OIGRlIGJyZWFkY3J1bWJzIGRhIHDDoWdpbmEgKi9cbiAgcHVibGljIHNldEJyZWFkY3J1bWJzSnNvbihpdGVtczogQnJlYWRjcnVtYnNJdGVtc1tdKSB7XG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0aGlzLmdldEJyZWFkY3J1bWJzSlNPTlRhZygpO1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxuICAgICAgJ0B0eXBlJzogJ0JyZWFkY3J1bWJMaXN0JyxcbiAgICAgIGl0ZW1MaXN0RWxlbWVudDogdGhpcy5nZXRKc29uQnJlYWRjcnVtYkl0ZW1zKGl0ZW1zKSxcbiAgICB9O1xuICAgIHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIENvbnZlcnRlIGl0ZW5zIGRvIGJyZWFkY3J1bWIgZW0gaXRlbnMgZG8gSlNPTiAqL1xuICBwcml2YXRlIGdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSk6IEJyZWFkY3J1bWJzSnNvbkl0ZW1bXSB7XG4gICAgY29uc3QganNvbkl0ZW1zID0gW1xuICAgICAge1xuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxuICAgICAgICBwb3NpdGlvbjogMSxcbiAgICAgICAgaXRlbTogeyAnQGlkJzogdGhpcy5nZXRCcmVhZGNydW1iSXRlbVVybChbJy8nXSksIG5hbWU6IGhlLmVuY29kZSgnUMOhZ2luYSBJbmljaWFsJykgfSxcbiAgICAgIH0gYXMgQnJlYWRjcnVtYnNKc29uSXRlbSxcbiAgICBdO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgIGNvbnN0IGpzb25JdGVtOiBCcmVhZGNydW1ic0pzb25JdGVtID0ge1xuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxuICAgICAgICBwb3NpdGlvbjogaSArIDIsXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoaXRlbT8udXJsIHx8IFtdKSwgbmFtZTogaGUuZW5jb2RlKGl0ZW0ubGFiZWwpIH0sXG4gICAgICB9O1xuICAgICAganNvbkl0ZW1zLnB1c2goanNvbkl0ZW0pO1xuICAgIH0pO1xuICAgIHJldHVybiBqc29uSXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogTW9udGEgYSB1cmwgZG8gaXRlbSBkZSBicmVhZGNydW1iIHByb3ZlbmllbnRlIGRvIGFycmF5IGRlIHVybHNcbiAgICogb3UgZG8gY2FtaW5obyBkYSBwcsOzcHJpYSBww6FnaW5hLCBjb25mb3JtZSBjYXNvIGRvIMO6bHRpbW8gaXRlbS5cbiAgICovXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYkl0ZW1VcmwodXJsOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGlmICghdXJsIHx8IHVybC5sZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICAgIHJldHVybiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YDtcbiAgICB9XG4gICAgdXJsID0gdXJsLmZpbHRlcigodSkgPT4gdSAhPT0gdGhpcy51bmlkYWRlUGF0aCk7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHt1bmlkYWRlUGF0aH0vJHt1cmwuam9pbignLycpLnJlcGxhY2UoL15cXC8/LywgJycpfWA7XG4gICAgcmV0dXJuIGAke3NpdGV1cmx9JHtmdWxsUGF0aH1gLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gIH1cblxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgbyBKU09OIGRlIFNFTyAqL1xuICBwcml2YXRlIGNyZWF0ZUpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRhZy5pZCA9IHRoaXMuanNvblRhZ0lkO1xuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRoaXMuanNvblRhZyA9IHRhZztcbiAgICByZXR1cm4gdGFnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5qc29uVGFnSWQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUpTT05UYWcoKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmUgSlNPTiBwYXJhIFNFTyBzb21lbnRlIHF1YW5kbyBubyBzZXJ2aWRvciAqL1xuICBwdWJsaWMgc2V0UGFnZUpzb24oKSB7XG4gICAgdGhpcy5qc29uVGFnID0gdGhpcy5nZXRKU09OVGFnKCk7XG4gICAgY29uc3QgZ3JhcGggPSBbdGhpcy5nZXRPcmdKc29uKCksIHRoaXMuZ2V0V2Vic2l0ZUpzb24oKSwgdGhpcy5nZXRXZWJwYWdlSnNvbigpXTtcbiAgICBjb25zdCBqc29uID0geyAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLCAnQGdyYXBoJzogZ3JhcGggfTtcbiAgICB0aGlzLmpzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogT2J0ZW0gSlNPTiBkYSBPcmdhbml6YcOnw6NvICovXG4gIHByaXZhdGUgZ2V0T3JnSnNvbigpIHtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9I29yZ2FuaXphdGlvbmAsXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXG4gICAgICB1cmw6IGAke3NpdGV1cmx9YCxcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPYnRlbSBKU09OIGRvIFdlYnNpdGUgKHBvcnRhbCwgdW5pZGFkZXMsIGV0YykgKi9cbiAgcHJpdmF0ZSBnZXRXZWJzaXRlSnNvbigpIHtcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgLFxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9YCxcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxuICAgIH07XG4gIH1cblxuICAvKiogT2J0ZW0gSnNvbiBkYSBww6FnaW5hICovXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3Qgc2l0ZVVSTCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgY29uc3QgZGVzYyA9IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPyB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICdAaWQnOiBgJHtwYWdlUGF0aH0jd2VicGFnZWAsXG4gICAgICB1cmw6IHBhZ2VQYXRoLFxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcbiAgICAgIG5hbWU6IHRoaXMuZ2V0VGl0bGUoKSxcbiAgICAgIGlzUGFydE9mOiB7ICdAaWQnOiBgJHtzaXRlVVJMfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgIH0sXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jb3JnYW5pemF0aW9uYCB9LFxuICAgICAgZGVzY3JpcHRpb246IGRlc2MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pZGFkZVBhdGgoKSB7XG4gICAgbGV0IHVuaWRhZGVQYXRoID0gJyc7XG4gICAgaWYgKHRoaXMudW5pZGFkZSAmJiB0aGlzLnVuaWRhZGVQYXRoKSB7XG4gICAgICB1bmlkYWRlUGF0aCA9IHRoaXMudW5pZGFkZT8ucGF0aCA9PT0gJy8nID8gJycgOiB0aGlzLnVuaWRhZGVQYXRoPy5zdWJzdHJpbmcoMCwgdGhpcy51bmlkYWRlUGF0aD8ubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiB1bmlkYWRlUGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnTDqW0gYSBVUkwgY2Fuw7RuaWNhIGRhIHDDoWdpbmEuXG4gICAqIEByZXR1cm5zIEEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxuICAgKi9cbiAgcHVibGljIGdldENhbm9uaWNhbEhyZWYoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbm9uaWNhbFRhZy5ocmVmO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHBhcmEgbGlua3MgY2Fub25pY2FscyBubyBoZWFkICovXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB0aGlzLmRvY3VtZW50LlVSTCk7XG4gICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIGxpbmsgY2Fub25pY2FsIGV4aXN0ZSBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xuICBwcml2YXRlIGdldENhbm9uaWNhbFRhZygpOiBIVE1MTGlua0VsZW1lbnQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTExpbmtFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbS5yZWwgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDYW5vbmljYWxUYWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbGluayBjYW5vbmljYWwgZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gdXJsIHVybCBjYW5vbmljYWxcbiAgICovXG4gIHB1YmxpYyBzZXRDYW5vbmljYWxIcmVmKHVybD86IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jYW5vbmljYWxUYWcpIHtcbiAgICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGhpcy5nZXRDYW5vbmljYWxUYWcoKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHRoaXMuZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsVXJsID0gdXJsICYmIHRoaXMuaXNDdXN0b21DYW5vbmljYWwodXJsKSA/IHVybCA6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7cGF0aH1gO1xuXG4gICAgdGhpcy5jYW5vbmljYWxUYWcuc2V0QXR0cmlidXRlKCdocmVmJywgY2Fub25pY2FsVXJsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSBhIFVSTCBmb3JuZWNpZGEgw6kgdW0gbGluayBjYW5vbmljYWwgcGVyc29uYWxpemFkb1xuICAgKiBAcGFyYW0gdXJsIFVSTCBmb3JuZWNpZGFcbiAgICovXG4gIHB1YmxpYyBpc0N1c3RvbUNhbm9uaWNhbCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoc2l0ZXVybCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0w6ltIHVtYSB1cmwgdsOhbGlkYSBuYSBhcGxpY2HDp8OjbyBwcm92ZW5pZW50ZSBkZSB1bWEgVVJMIGdlcmFkYVxuICAgKiBwZWxvIHBsdWdpbiBZb2FzdCBwYXJhIGNhbm9uaWNhbCBhdXRvbcOhdGljby5cbiAgICogRXguOiBodHRwczovL3dwLnJlZGVkb3JzYW9sdWl6LmNvbS5ici9icmFzaWwvZXNwZWNpYWxpZGFkZXMvY2FyZGlvbG9naWEvXG4gICAqIEBwYXJhbSB1cmxGcm9tV3BBcGkgVVJMIGNhbm9uaWNhIGdlcmFkYSBwZWxvIFlvYXN0IFBsdWdpbi5cbiAgICovXG4gIHRvTG9jYWxDYW5vbmljYWwodXJsRnJvbVdwQXBpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMubGliQ29uZmlnPy53cFVybCA/PyAnJztcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgY29uc3QgdW5pZGFkZVNsdWcgPSB0aGlzLnVuaWRhZGVTbHVnO1xuICAgIGxldCBjb252ZXJ0ZWQgPSB1cmxGcm9tV3BBcGkucmVwbGFjZShhcGlVcmwsIHNpdGV1cmwpO1xuICAgIGlmICh1bmlkYWRlU2x1ZyAhPT0gJy8nICYmIGNvbnZlcnRlZC5pbmNsdWRlcyhgLyR7dW5pZGFkZVNsdWd9L2ApKSB7XG4gICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0ZWQucmVwbGFjZShgLyR7dW5pZGFkZVNsdWd9L2AsIGAke3RoaXMudW5pZGFkZVBhdGh9YCk7XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWQ7XG4gIH1cblxuICBnZXRQb3N0Q29udGVudChwb3N0OiBXcFBvc3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBwb3N0LmFjZlsncmRzbF9wb3N0X2NvbnRlbnQnXSA/IHBvc3QuYWNmLnJkc2xfcG9zdF9jb250ZW50LmZpbmQoKGNvbnRlbnQ6IGFueSkgPT4gY29udGVudC5hY2ZfZmNfbGF5b3V0ID09PSAndGV4dF9odG1sJykgOiBudWxsO1xuICAgIHJldHVybiBjb250ZW50Py5jb250ZW50IHx8IHBvc3QuY29udGVudC5yZW5kZXJlZCB8fCAnJztcbiAgfVxuXG4gIGFkZEFydGljbGVTY3JpcHQocG9zdDogV3BQb3N0LCBzY3JpcHROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwb3N0Q29udGVudCA9IHRoaXMuZ2V0UG9zdENvbnRlbnQocG9zdCk7XG4gICAgY29uc3QgcG9zdEhlYWRlckltYWdlID0gcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ11cbiAgICAgID8ge1xuICAgICAgICAgIHVybDogcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10udXJsLFxuICAgICAgICAgIHdpZHRoOiBwb3N0LmFjZlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IHBvc3QuYWNmWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLmhlaWdodCxcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuXG4gICAgY29uc3Qgc3RydWN0dXJlZERhdGEgPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcbiAgICAgICdAdHlwZSc6ICdBcnRpY2xlJyxcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YCxcbiAgICAgIGhlYWRsaW5lOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcbiAgICAgIGRhdGVQdWJsaXNoZWQ6IHBvc3QuZGF0ZV9nbXQsXG4gICAgICBwdWJsaXNoZXI6IHtcbiAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHBvc3QudGl0bGU/LnJlbmRlcmVkLFxuICAgICAgYXJ0aWNsZUJvZHk6IHJlbW92ZUh0bWxUYWdzKGhlLmRlY29kZShwb3N0Q29udGVudCkpLFxuICAgICAgZGF0ZU1vZGlmaWVkOiBwb3N0Lm1vZGlmaWVkX2dtdCxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgICdAdHlwZSc6ICdJbWFnZU9iamVjdCcsXG4gICAgICAgIHVybDogcG9zdEhlYWRlckltYWdlPy51cmwgfHwgcG9zdC5mZWF0dXJlZF9tZWRpYV9wYXRoIHx8ICcnLFxuICAgICAgICBoZWlnaHQ6IHBvc3RIZWFkZXJJbWFnZT8uaGVpZ2h0IHx8ICcnLFxuICAgICAgICB3aWR0aDogcG9zdEhlYWRlckltYWdlPy53aWR0aCB8fCAnJyxcbiAgICAgIH0sXG4gICAgICBhdXRob3I6IHtcbiAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXG4gICAgICB9LFxuICAgICAgd29yZGNvdW50OiBwb3N0Q29udGVudC5zcGxpdCgnICcpLmxlbmd0aCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuICAgIHNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgIHNjcmlwdC5pZCA9IHNjcmlwdE5hbWU7XG4gICAgc2NyaXB0LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KHN0cnVjdHVyZWREYXRhKTtcblxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG5cbiAgcmVtb3ZlQXJ0aWNsZVNjcmlwdChzY3JpcHROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdE5hbWUpO1xuICAgIHNjcmlwdD8ucmVtb3ZlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5pZGFkZSh7IHVuaWRhZGUgPSBudWxsLCB1bmlkYWRlTmFtZSA9ICcnLCB1bmlkYWRlUGF0aCA9ICcnLCB1bmlkYWRlU2x1ZyA9ICcnIH06IFNlb1VuaWRhZGUpIHtcbiAgICB0aGlzLnVuaWRhZGUgPSB1bmlkYWRlO1xuICAgIHRoaXMudW5pZGFkZU5hbWUgPSB1bmlkYWRlTmFtZTtcbiAgICB0aGlzLnVuaWRhZGVQYXRoID0gdW5pZGFkZVBhdGg7XG4gICAgdGhpcy51bmlkYWRlU2x1ZyA9IHVuaWRhZGVTbHVnO1xuICB9XG59XG4iXX0=
483
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaXRlLWZyb250LWVuZC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zZW8vc2VvLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBRXJELE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBUXpCLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQzs7OztBQUsvRCxNQUFNLE9BQU8sVUFBVTtJQXVCckIsWUFDVSxLQUFZLEVBQ1osSUFBVSxFQUNWLFFBQWtCLEVBQ0UsU0FBb0IsRUFDdEIsUUFBa0I7UUFKcEMsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLFNBQUksR0FBSixJQUFJLENBQU07UUFDVixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ0UsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0J2QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsV0FBVyxDQUFDO1FBRTNCLFdBQU0sR0FBRztZQUNkLG1DQUFtQztZQUNuQyw0Q0FBNEM7WUFDNUMsa0RBQWtEO1lBQ2xELDZCQUE2QjtTQUM5QixDQUFDO1FBQ0ssZ0JBQVcsR0FBRyxVQUFVLENBQUM7UUFJeEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUV0Qix5QkFBb0IsR0FBRyxpQkFBaUIsQ0FBQztRQUUxQyxZQUFPLEdBQVEsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBQ3pCLGdCQUFXLEdBQVcsRUFBRSxDQUFD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QVcsR0FBRyxFQUFFLEVBQUUsV0FBVyxHQUFHLEVBQUUsRUFBRSxXQUFXLEdBQUcsRUFBRSxFQUFjO1FBQ3BHLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7K0dBemZVLFVBQVUsbUZBMkJYLFVBQVUsYUFDVixRQUFRO21IQTVCUCxVQUFVLGNBRlQsTUFBTTs7NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTRCSSxNQUFNOzJCQUFDLFVBQVU7OzBCQUNqQixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBET0NVTUVOVCwgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgKiBhcyBoZSBmcm9tICdoZSc7XG5cbmltcG9ydCB7IFNvY2lhbE1ldGFQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NvY2lhbC1tZXRhLXByb3BlcnRpZXMubW9kZWwnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYnNJdGVtcyB9IGZyb20gJy4uLy4uL21vZGVscy9icmVhZGNydW1icy9icmVhZGNydW1icy1pdGVtcy5tb2RlbCc7XG5pbXBvcnQgeyBCcmVhZGNydW1ic0pzb25JdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLWpzb24taXRlbS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9EYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBTZW9VbmlkYWRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3Nlby9zZW8tdW5pZGFkZS5tb2RlbCc7XG5pbXBvcnQgeyBXcFBvc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29yZHByZXNzL3Bvc3QvcG9zdC5tb2RlbCc7XG5pbXBvcnQgeyBnZXRTaXRlVXJsLCByZW1vdmVIdG1sVGFncyB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTZW9TZXJ2aWNlIHtcbiAgcHVibGljIHNlcGFyYXRvciA9ICcgLSAnO1xuICBwdWJsaWMgZGVmYXVsdFRpdGxlID0gJ1JlZGUgROKAmU9yJztcbiAgcHVibGljIGFjdGl2ZURlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgc2FtZUFzID0gW1xuICAgICdodHRwczovL3d3dy5mYWNlYm9vay5jb20vcmVkZWRvci8nLFxuICAgICdodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL3JlZGVkb3Jfb2ZpY2lhbC8nLFxuICAgICdodHRwczovL3d3dy5saW5rZWRpbi5jb20vY29tcGFueS9yZWRlZG9yLXNhb2x1aXonLFxuICAgICdodHRwczovL3R3aXR0ZXIuY29tL3JlZGVkb3InLFxuICBdO1xuICBwdWJsaWMgdHdpdHRlclVzZXIgPSAnQHJlZGVkb3InO1xuXG4gIHByaXZhdGUgY2Fub25pY2FsVGFnITogSFRNTExpbmtFbGVtZW50O1xuICBwcml2YXRlIGpzb25UYWchOiBIVE1MU2NyaXB0RWxlbWVudDtcbiAgcHJpdmF0ZSBqc29uVGFnSWQgPSAnc2VvSlNPTic7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnITogSFRNTFNjcmlwdEVsZW1lbnQ7XG4gIHByaXZhdGUgYnJlYWRjcnVtYnNKc29uVGFnSWQgPSAnYnJlYWRjcnVtYnNKU09OJztcblxuICBwdWJsaWMgdW5pZGFkZTogYW55ID0gbnVsbDtcbiAgcHVibGljIHVuaWRhZGVOYW1lOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVQYXRoOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIHVuaWRhZGVTbHVnOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcbiAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICApIHt9XG5cbiAgcHVibGljIHNldEZ1bGxTZW8oZGF0YTogU2VvRGF0YSkge1xuICAgIHRoaXMuc2V0VGl0bGUoZGF0YS50aXRsZS50ZXh0LCAhIWRhdGEudGl0bGUuc3ViKTtcbiAgICB0aGlzLnNldERlc2NyaXB0aW9uKGRhdGEuZGVzY3JpcHRpb24pO1xuICAgIHRoaXMuc2V0Q2Fub25pY2FsSHJlZihkYXRhLmNhbm9uaWNhbCk7XG4gICAgdGhpcy5zZXRQYWdlSnNvbigpO1xuICAgIHRoaXMuc2V0U29jaWFsVGFncyhkYXRhLnNvY2lhbFRhZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSB0YWcgZGVzY3JpcHRpb24gZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gY29udGVudCBjb250ZcO6ZG8gZGEgZGVzY3Jpw6fDo28gPHN0cmluZz5cbiAgICovXG4gIHB1YmxpYyBzZXREZXNjcmlwdGlvbihjb250ZW50OiBzdHJpbmcpOiBTZW9TZXJ2aWNlIHtcbiAgICBjb25zdCBkZXNjVGFnID0gdGhpcy5tZXRhLmdldFRhZyhcIm5hbWU9J2Rlc2NyaXB0aW9uJ1wiKTtcbiAgICBpZiAoY29udGVudCkge1xuICAgICAgY29udGVudCA9IGhlLmRlY29kZShjb250ZW50KTtcbiAgICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uID0gY29udGVudDtcbiAgICBjb25zdCB0YWdDb250ZW50ID0geyBuYW1lOiAnZGVzY3JpcHRpb24nLCBjb250ZW50IH07XG4gICAgaWYgKGRlc2NUYWcpIHtcbiAgICAgIHRoaXMubWV0YS51cGRhdGVUYWcodGFnQ29udGVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YS5hZGRUYWcodGFnQ29udGVudCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YVRhZyh0YWc6IHN0cmluZywgY29udGVudDogc3RyaW5nLCB0eXBlID0gJ25hbWUnKSB7XG4gICAgY29uc3QgbWV0YXRhZyA9IHRoaXMubWV0YS5nZXRUYWcoYCR7dHlwZX09JyR7dGFnfSdgKTtcbiAgICBjb250ZW50ID0gaGUuZGVjb2RlKGNvbnRlbnQpO1xuICAgIGNvbnRlbnQgPSByZW1vdmVIdG1sVGFncyhjb250ZW50KTtcbiAgICBjb25zdCB0YWdDb250ZW50ID0ge1xuICAgICAgW3R5cGVdOiB0YWcsXG4gICAgICBjb250ZW50LFxuICAgIH07XG4gICAgaWYgKCFtZXRhdGFnKSB7XG4gICAgICB0aGlzLm1ldGEuYWRkVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHRhZ0NvbnRlbnQpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbWV0YSB0YWdzIGRhIHDDoWdpbmFcbiAgICogQHBhcmFtIHRhZyBub21lIGRhIHRhZyBtZXRhXG4gICAqIEBwYXJhbSBjb250ZW50IGNvbnRlw7pkbyBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gYXR0ciBhdHJpYnV0byBkYSB0YWcgbWV0YVxuICAgKiBAcGFyYW0gdHlwZSB0aXBvIGRlIHRhZyBtZXRhXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKHRhZzogc3RyaW5nLCBjb250ZW50OiBzdHJpbmcsIGF0dHI6IHN0cmluZywgdHlwZSA9ICduYW1lJykge1xuICAgIGNvbnN0IG1ldGF0YWcgPSB0aGlzLm1ldGEuZ2V0VGFnKGAke3R5cGV9PScke3RhZ30nYCk7XG4gICAgaWYgKG1ldGF0YWcpIHtcbiAgICAgIHRoaXMubWV0YS5yZW1vdmVUYWcoYCR7YXR0cn09JHtjb250ZW50fWApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbWV0YSB0YWdzIHBhcmEgRmFjZWJvb2tcbiAgICogQHBhcmFtIHRpdGxlIHTDrXR1bG8gcGFyYSBvIGZhY2Vib29rXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gZmFjZWJvb2tcbiAgICogQHBhcmFtIHVybCB1cmwgcGFyYSBkZWZpbmnDp8OjbyBkbyBmYWNlYm9va1xuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIGZhY2Vib29rXG4gICAqL1xuICBwdWJsaWMgc2V0TWV0YUZhY2Vib29rKHRpdGxlOiBzdHJpbmcsIGRlc2NyaXB0aW9uOiBzdHJpbmcsIHVybDogc3RyaW5nLCBpbWc6IHN0cmluZyB8IG51bGwgPSBudWxsKSB7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzp1cmwnLCB1cmwsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6dGl0bGUnLCB0aXRsZSwgJ3Byb3BlcnR5Jyk7XG4gICAgdGhpcy5zZXRNZXRhVGFnKCdvZzpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAncHJvcGVydHknKTtcbiAgICB0aGlzLnNldE1ldGFUYWcoJ29nOnR5cGUnLCAnd2Vic2l0ZScsICdwcm9wZXJ0eScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBpbWcgPz8gJycsICdwcm9wZXJ0eScpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBtZXRhIHRhZ3MgcGFyYSBUd2l0dGVyXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIHBhcmEgbyB0d2l0dGVyXG4gICAqIEBwYXJhbSBkZXNjcmlwdGlvbiBkZXNjcmnDp8OjbyBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gdXJsIHVybCBwYXJhIG8gdHdpdHRlclxuICAgKiBAcGFyYW0gaW1nIGltYWdlbSBwYXJhIGRlZmluacOnw6NvIG5vIHR3aXR0ZXJcbiAgICovXG4gIHB1YmxpYyBzZXRNZXRhVHdpdHRlcih0aXRsZTogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCB1cmw6IHN0cmluZywgaW1nOiBzdHJpbmcgfCBudWxsID0gbnVsbCkge1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpzaXRlJywgdXJsLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjp0aXRsZScsIHRpdGxlLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uLCAnbmFtZScpO1xuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjppbWFnZScsIGltZyA/PyAnJywgJ25hbWUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdGFncyBkZSByZWRlcyBzb2NpYWlzIChUd2l0dGVyIGUgT3BlbiBHcmFwaClcbiAgICogQHBhcmFtIHByb3BlcnRpZXNcbiAgICovXG4gIHNldFNvY2lhbFRhZ3MocHJvcGVydGllcz86IFNvY2lhbE1ldGFQcm9wZXJ0aWVzKSB7XG4gICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgbGV0IGRlZmF1bHRQcm9wZXJ0aWVzOiBTb2NpYWxNZXRhUHJvcGVydGllcyA9IHtcbiAgICAgIHR3aXR0ZXJDYXJkOiAnc3VtbWFyeScsXG4gICAgICB0d2l0dGVyU2l0ZTogdGhpcy50d2l0dGVyVXNlcixcbiAgICAgIHR5cGU6ICd3ZWJzaXRlJyxcbiAgICAgIHRpdGxlOiB0aGlzLmdldFRpdGxlKCksXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5hY3RpdmVEZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHVybDogYCR7c2l0ZXVybH0ke3BhZ2VQYXRofWAsXG4gICAgICBpbWFnZTogdGhpcy5saWJDb25maWc/LmxvZ29QYXRoID8gYCR7c2l0ZXVybH0ke3RoaXMubGliQ29uZmlnLmxvZ29QYXRofWAgOiAnaHR0cHM6Ly93d3cucmVkZWRvcnNhb2x1aXouY29tLmJyL2Fzc2V0cy9pbWdzL2xvZ28tcmVkZWRvci1ibHVlLnBuZycsXG4gICAgfTtcbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgZGVmYXVsdFByb3BlcnRpZXMgPSB7IC4uLmRlZmF1bHRQcm9wZXJ0aWVzLCAuLi5wcm9wZXJ0aWVzIH07XG4gICAgfVxuICAgIHRoaXMuc2V0TWV0YVRhZygndHdpdHRlcjpjYXJkJywgZGVmYXVsdFByb3BlcnRpZXMudHdpdHRlckNhcmQgfHwgJycsICduYW1lJylcbiAgICAgIC5zZXRNZXRhVGFnKCd0d2l0dGVyOnNpdGUnLCBkZWZhdWx0UHJvcGVydGllcy50d2l0dGVyU2l0ZSB8fCAnJywgJ25hbWUnKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnR5cGUnLCBkZWZhdWx0UHJvcGVydGllcy50eXBlIHx8ICcnLCAncHJvcGVydHknKVxuICAgICAgLnNldE1ldGFUYWcoJ29nOnRpdGxlJywgZGVmYXVsdFByb3BlcnRpZXMudGl0bGUgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6ZGVzY3JpcHRpb24nLCBkZWZhdWx0UHJvcGVydGllcy5kZXNjcmlwdGlvbiB8fCAnJywgJ3Byb3BlcnR5JylcbiAgICAgIC5zZXRNZXRhVGFnKCdvZzp1cmwnLCBkZWZhdWx0UHJvcGVydGllcy51cmwgfHwgJycsICdwcm9wZXJ0eScpXG4gICAgICAuc2V0TWV0YVRhZygnb2c6aW1hZ2UnLCBkZWZhdWx0UHJvcGVydGllcy5pbWFnZSB8fCAnJywgJ3Byb3BlcnR5Jyk7XG5cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgdMOtdHVsbyBkYSBww6FnaW5hXG4gICAqIEBwYXJhbSB0aXRsZSB0w610dWxvIGRhIHDDoWdpbmEgPHN0cmluZz5cbiAgICogQHBhcmFtIHN1YiBTZSDDqSBzdWJzaXRlIGFjcmVzY2VudGEgdW5pZGFkZSA8Ym9vbGVhbj5cbiAgICovXG4gIHB1YmxpYyBzZXRUaXRsZSh0aXRsZTogc3RyaW5nLCBzdWIgPSBmYWxzZSkge1xuICAgIGlmICh0aXRsZSAmJiB0aXRsZSAhPT0gJycpIHtcbiAgICAgIHRpdGxlID0gaGUuZGVjb2RlKHRpdGxlKTtcbiAgICAgIHRpdGxlID0gcmVtb3ZlSHRtbFRhZ3ModGl0bGUpO1xuICAgICAgaWYgKHN1Yikge1xuICAgICAgICB0aXRsZSA9IGhlLmRlY29kZShgJHt0aXRsZX0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBPYnRlbSB0w610dWxvIGF0dWFsIGRhIHDDoWdpbmEgKi9cbiAgcHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudGl0bGUuZ2V0VGl0bGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQ0MDRUaXRsZShjb21wb25lbnQ6IHN0cmluZyA9ICdEZWZhdWx0IENvbXBvbmVudCcpIHtcbiAgICBpZiAoY29tcG9uZW50ICYmIGNvbXBvbmVudCAhPT0gJycpIHtcbiAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShjb21wb25lbnQpO1xuICAgICAgY29tcG9uZW50ID0gcmVtb3ZlSHRtbFRhZ3MoY29tcG9uZW50KTtcbiAgICAgIGlmICh0aGlzLnVuaWRhZGVOYW1lKSB7XG4gICAgICAgIGNvbXBvbmVudCA9IGhlLmRlY29kZShgJHtjb21wb25lbnR9JHt0aGlzLnNlcGFyYXRvcn0ke3RoaXMudW5pZGFkZU5hbWV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHRpdGxlID0gYEVycm8gNDA0IC0gJHtjb21wb25lbnR9IC0gJHt0aGlzLmxpYkNvbmZpZz8uc2l0ZU5hbWV9IC0gJHt0aGlzLmxvY2F0aW9uLnBhdGgoKX1gO1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUodGl0bGUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHNldDUwMFRpdGxlKGNvbXBvbmVudDogc3RyaW5nID0gJ0RlZmF1bHQgQ29tcG9uZW50Jykge1xuICAgIGlmIChjb21wb25lbnQgJiYgY29tcG9uZW50ICE9PSAnJykge1xuICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGNvbXBvbmVudCk7XG4gICAgICBjb21wb25lbnQgPSByZW1vdmVIdG1sVGFncyhjb21wb25lbnQpO1xuICAgICAgaWYgKHRoaXMudW5pZGFkZU5hbWUpIHtcbiAgICAgICAgY29tcG9uZW50ID0gaGUuZGVjb2RlKGAke2NvbXBvbmVudH0ke3RoaXMuc2VwYXJhdG9yfSR7dGhpcy51bmlkYWRlTmFtZX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgdGl0bGUgPSBgRXJybyA1MDAgLSAke2NvbXBvbmVudH0gLSAke3RoaXMubGliQ29uZmlnPy5zaXRlTmFtZX0gLSAke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aXRsZSk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgSlNPTiBkZSBicmVhZGNydW1icyAqL1xuICBwcml2YXRlIGNyZWF0ZUJyZWFkY3J1bWJzSlNPTlRhZygpOiBIVE1MU2NyaXB0RWxlbWVudCB7XG4gICAgY29uc3QgdGFnOiBIVE1MU2NyaXB0RWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgdGFnLmlkID0gdGhpcy5icmVhZGNydW1ic0pzb25UYWdJZDtcbiAgICB0YWcudHlwZSA9ICdhcHBsaWNhdGlvbi9sZCtqc29uJztcbiAgICB0aGlzLmRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGFnKTtcbiAgICB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZyA9IHRhZztcbiAgICByZXR1cm4gdGFnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRCcmVhZGNydW1ic0pTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTFNjcmlwdEVsZW1lbnQ7XG4gICAgICBpZiAoZWxlbSAmJiBlbGVtLmlkID09PSB0aGlzLmJyZWFkY3J1bWJzSnNvblRhZ0lkKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVCcmVhZGNydW1ic0pTT05UYWcoKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmUgbyBKU09OIGRlIGJyZWFkY3J1bWJzIGRhIHDDoWdpbmEgKi9cbiAgcHVibGljIHNldEJyZWFkY3J1bWJzSnNvbihpdGVtczogQnJlYWRjcnVtYnNJdGVtc1tdKSB7XG4gICAgdGhpcy5icmVhZGNydW1ic0pzb25UYWcgPSB0aGlzLmdldEJyZWFkY3J1bWJzSlNPTlRhZygpO1xuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLFxuICAgICAgJ0B0eXBlJzogJ0JyZWFkY3J1bWJMaXN0JyxcbiAgICAgIGl0ZW1MaXN0RWxlbWVudDogdGhpcy5nZXRKc29uQnJlYWRjcnVtYkl0ZW1zKGl0ZW1zKSxcbiAgICB9O1xuICAgIHRoaXMuYnJlYWRjcnVtYnNKc29uVGFnLmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KGpzb24pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIENvbnZlcnRlIGl0ZW5zIGRvIGJyZWFkY3J1bWIgZW0gaXRlbnMgZG8gSlNPTiAqL1xuICBwcml2YXRlIGdldEpzb25CcmVhZGNydW1iSXRlbXMoaXRlbXM6IEJyZWFkY3J1bWJzSXRlbXNbXSk6IEJyZWFkY3J1bWJzSnNvbkl0ZW1bXSB7XG4gICAgY29uc3QganNvbkl0ZW1zID0gW1xuICAgICAge1xuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxuICAgICAgICBwb3NpdGlvbjogMSxcbiAgICAgICAgaXRlbTogeyAnQGlkJzogdGhpcy5nZXRCcmVhZGNydW1iSXRlbVVybChbJy8nXSksIG5hbWU6IGhlLmVuY29kZSgnUMOhZ2luYSBJbmljaWFsJykgfSxcbiAgICAgIH0gYXMgQnJlYWRjcnVtYnNKc29uSXRlbSxcbiAgICBdO1xuICAgIGl0ZW1zLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgIGNvbnN0IGpzb25JdGVtOiBCcmVhZGNydW1ic0pzb25JdGVtID0ge1xuICAgICAgICAnQHR5cGUnOiAnTGlzdEl0ZW0nLFxuICAgICAgICBwb3NpdGlvbjogaSArIDIsXG4gICAgICAgIGl0ZW06IHsgJ0BpZCc6IHRoaXMuZ2V0QnJlYWRjcnVtYkl0ZW1VcmwoaXRlbT8udXJsIHx8IFtdKSwgbmFtZTogaGUuZW5jb2RlKGl0ZW0ubGFiZWwpIH0sXG4gICAgICB9O1xuICAgICAganNvbkl0ZW1zLnB1c2goanNvbkl0ZW0pO1xuICAgIH0pO1xuICAgIHJldHVybiBqc29uSXRlbXM7XG4gIH1cblxuICAvKipcbiAgICogTW9udGEgYSB1cmwgZG8gaXRlbSBkZSBicmVhZGNydW1iIHByb3ZlbmllbnRlIGRvIGFycmF5IGRlIHVybHNcbiAgICogb3UgZG8gY2FtaW5obyBkYSBwcsOzcHJpYSBww6FnaW5hLCBjb25mb3JtZSBjYXNvIGRvIMO6bHRpbW8gaXRlbS5cbiAgICovXG4gIHByaXZhdGUgZ2V0QnJlYWRjcnVtYkl0ZW1VcmwodXJsOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2l0ZXVybCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGlmICghdXJsIHx8IHVybC5sZW5ndGggPD0gMCkge1xuICAgICAgY29uc3QgcGFnZVBhdGggPSB0aGlzLmxvY2F0aW9uLnBhdGgoKTtcbiAgICAgIHJldHVybiBgJHtzaXRldXJsfSR7cGFnZVBhdGh9YDtcbiAgICB9XG4gICAgdXJsID0gdXJsLmZpbHRlcigodSkgPT4gdSAhPT0gdGhpcy51bmlkYWRlUGF0aCk7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3QgZnVsbFBhdGggPSBgJHt1bmlkYWRlUGF0aH0vJHt1cmwuam9pbignLycpLnJlcGxhY2UoL15cXC8/LywgJycpfWA7XG4gICAgcmV0dXJuIGAke3NpdGV1cmx9JHtmdWxsUGF0aH1gLnJlcGxhY2UoL1xcLyQvLCAnJyk7XG4gIH1cblxuICAvKiogQ3JpYSB0YWcgc2NyaXB0IHBhcmEgbyBKU09OIGRlIFNFTyAqL1xuICBwcml2YXRlIGNyZWF0ZUpTT05UYWcoKTogSFRNTFNjcmlwdEVsZW1lbnQge1xuICAgIGNvbnN0IHRhZzogSFRNTFNjcmlwdEVsZW1lbnQgPSB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHRhZy5pZCA9IHRoaXMuanNvblRhZ0lkO1xuICAgIHRhZy50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRoaXMuanNvblRhZyA9IHRhZztcbiAgICByZXR1cm4gdGFnO1xuICB9XG5cbiAgLyoqIFJldG9ybmEgdGFnIHBhcmEgc2NyaXB0IGpzb24gZGUgYnJlYWRjcnVtYnMgb3UgY3JpYSBzZSBuw6NvIGhvdXZlci4gKi9cbiAgcHJpdmF0ZSBnZXRKU09OVGFnKCk6IEhUTUxTY3JpcHRFbGVtZW50IHtcbiAgICBjb25zdCBlbGVtZW50cyA9IHRoaXMuZG9jdW1lbnQuaGVhZC5jaGlsZHJlbjtcbiAgICBsZXQgaTogbnVtYmVyO1xuICAgIGZvciAoaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZWxlbSA9IGVsZW1lbnRzW2ldIGFzIEhUTUxTY3JpcHRFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS5pZCA9PT0gdGhpcy5qc29uVGFnSWQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNyZWF0ZUpTT05UYWcoKTtcbiAgfVxuXG4gIC8qKiBEZWZpbmUgSlNPTiBwYXJhIFNFTyBzb21lbnRlIHF1YW5kbyBubyBzZXJ2aWRvciAqL1xuICBwdWJsaWMgc2V0UGFnZUpzb24oKSB7XG4gICAgdGhpcy5qc29uVGFnID0gdGhpcy5nZXRKU09OVGFnKCk7XG4gICAgY29uc3QgZ3JhcGggPSBbdGhpcy5nZXRPcmdKc29uKCksIHRoaXMuZ2V0V2Vic2l0ZUpzb24oKSwgdGhpcy5nZXRXZWJwYWdlSnNvbigpXTtcbiAgICBjb25zdCBqc29uID0geyAnQGNvbnRleHQnOiAnaHR0cDovL3NjaGVtYS5vcmcnLCAnQGdyYXBoJzogZ3JhcGggfTtcbiAgICB0aGlzLmpzb25UYWcuaW5uZXJIVE1MID0gSlNPTi5zdHJpbmdpZnkoanNvbik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKiogT2J0ZW0gSlNPTiBkYSBPcmdhbml6YcOnw6NvICovXG4gIHByaXZhdGUgZ2V0T3JnSnNvbigpIHtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdPcmdhbml6YXRpb24nLFxuICAgICAgJ0BpZCc6IGAke3NpdGV1cmx9I29yZ2FuaXphdGlvbmAsXG4gICAgICBuYW1lOiB0aGlzLmRlZmF1bHRUaXRsZSxcbiAgICAgIGtleXdvcmRzOiB0aGlzLmxpYkNvbmZpZz8ua2V5d29yZHMsXG4gICAgICB1cmw6IGAke3NpdGV1cmx9YCxcbiAgICAgIHNhbWVBczogdGhpcy5zYW1lQXMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBPYnRlbSBKU09OIGRvIFdlYnNpdGUgKHBvcnRhbCwgdW5pZGFkZXMsIGV0YykgKi9cbiAgcHJpdmF0ZSBnZXRXZWJzaXRlSnNvbigpIHtcbiAgICBjb25zdCB1bmlkYWRlUGF0aCA9IHRoaXMuZ2V0VW5pZGFkZVBhdGgoKTtcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcbiAgICAgICdAaWQnOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgLFxuICAgICAgdXJsOiBgJHtzaXRldXJsfSR7dW5pZGFkZVBhdGh9YCxcbiAgICAgIG5hbWU6IHRoaXMudW5pZGFkZU5hbWUsXG4gICAgICBrZXl3b3JkczogdGhpcy5saWJDb25maWc/LmtleXdvcmRzLFxuICAgIH07XG4gIH1cblxuICAvKiogT2J0ZW0gSnNvbiBkYSBww6FnaW5hICovXG4gIHByaXZhdGUgZ2V0V2VicGFnZUpzb24oKSB7XG4gICAgY29uc3QgdW5pZGFkZVBhdGggPSB0aGlzLmdldFVuaWRhZGVQYXRoKCk7XG4gICAgY29uc3Qgc2l0ZVVSTCA9IGdldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpO1xuICAgIGNvbnN0IHBhZ2VQYXRoID0gYCR7c2l0ZVVSTH0ke3RoaXMubG9jYXRpb24ucGF0aCgpfWA7XG4gICAgY29uc3QgZGVzYyA9IHRoaXMuYWN0aXZlRGVzY3JpcHRpb24gPyB0aGlzLmFjdGl2ZURlc2NyaXB0aW9uIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgICdAdHlwZSc6ICdXZWJQYWdlJyxcbiAgICAgICdAaWQnOiBgJHtwYWdlUGF0aH0jd2VicGFnZWAsXG4gICAgICB1cmw6IHBhZ2VQYXRoLFxuICAgICAgaW5MYW5ndWFnZTogJ3B0LUJSJyxcbiAgICAgIG5hbWU6IHRoaXMuZ2V0VGl0bGUoKSxcbiAgICAgIGlzUGFydE9mOiB7ICdAaWQnOiBgJHtzaXRlVVJMfSR7dW5pZGFkZVBhdGh9I3dlYnNpdGVgIH0sXG4gICAgICBhYm91dDogeyAnQGlkJzogYCR7c2l0ZVVSTH0jb3JnYW5pemF0aW9uYCB9LFxuICAgICAgZGVzY3JpcHRpb246IGRlc2MsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VW5pZGFkZVBhdGgoKSB7XG4gICAgbGV0IHVuaWRhZGVQYXRoID0gJyc7XG4gICAgaWYgKHRoaXMudW5pZGFkZSAmJiB0aGlzLnVuaWRhZGVQYXRoKSB7XG4gICAgICB1bmlkYWRlUGF0aCA9IHRoaXMudW5pZGFkZT8ucGF0aCA9PT0gJy8nID8gJycgOiB0aGlzLnVuaWRhZGVQYXRoPy5zdWJzdHJpbmcoMCwgdGhpcy51bmlkYWRlUGF0aD8ubGVuZ3RoIC0gMSk7XG4gICAgfVxuICAgIHJldHVybiB1bmlkYWRlUGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnTDqW0gYSBVUkwgY2Fuw7RuaWNhIGRhIHDDoWdpbmEuXG4gICAqIEByZXR1cm5zIEEgVVJMIGNhbsO0bmljYSBkYSBww6FnaW5hLlxuICAgKi9cbiAgcHVibGljIGdldENhbm9uaWNhbEhyZWYoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY2Fub25pY2FsVGFnKSB7XG4gICAgICB0aGlzLmNhbm9uaWNhbFRhZyA9IHRoaXMuZ2V0Q2Fub25pY2FsVGFnKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhbm9uaWNhbFRhZy5ocmVmO1xuICB9XG5cbiAgLyoqIENyaWEgdGFnIHBhcmEgbGlua3MgY2Fub25pY2FscyBubyBoZWFkICovXG4gIHByaXZhdGUgY3JlYXRlQ2Fub25pY2FsVGFnKCk6IEhUTUxMaW5rRWxlbWVudCB7XG4gICAgY29uc3QgdGFnID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgdGFnLnNldEF0dHJpYnV0ZSgncmVsJywgJ2Nhbm9uaWNhbCcpO1xuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0YWcpO1xuICAgIHRhZy5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCB0aGlzLmRvY3VtZW50LlVSTCk7XG4gICAgdGhpcy5jYW5vbmljYWxUYWcgPSB0YWc7XG4gICAgcmV0dXJuIHRhZztcbiAgfVxuXG4gIC8qKiBSZXRvcm5hIHRhZyBwYXJhIGxpbmsgY2Fub25pY2FsIGV4aXN0ZSBvdSBjcmlhIHNlIG7Do28gaG91dmVyLiAqL1xuICBwcml2YXRlIGdldENhbm9uaWNhbFRhZygpOiBIVE1MTGlua0VsZW1lbnQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5kb2N1bWVudC5oZWFkLmNoaWxkcmVuO1xuICAgIGxldCBpOiBudW1iZXI7XG4gICAgZm9yIChpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtID0gZWxlbWVudHNbaV0gYXMgSFRNTExpbmtFbGVtZW50O1xuICAgICAgaWYgKGVsZW0gJiYgZWxlbS50YWdOYW1lID09PSAnTElOSycgJiYgZWxlbS5yZWwgPT09ICdjYW5vbmljYWwnKSB7XG4gICAgICAgIHJldHVybiBlbGVtO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVDYW5vbmljYWxUYWcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgbGluayBjYW5vbmljYWwgZGEgcMOhZ2luYVxuICAgKiBAcGFyYW0gdXJsIHVybCBjYW5vbmljYWxcbiAgICovXG4gIHB1YmxpYyBzZXRDYW5vbmljYWxIcmVmKHVybD86IHN0cmluZykge1xuICAgIGlmICghdGhpcy5jYW5vbmljYWxUYWcpIHtcbiAgICAgIHRoaXMuY2Fub25pY2FsVGFnID0gdGhpcy5nZXRDYW5vbmljYWxUYWcoKTtcbiAgICB9XG5cbiAgICBsZXQgcGF0aCA9IHRoaXMuZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU7XG5cbiAgICBpZiAodGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCAmJiBwYXRoLmluY2x1ZGVzKHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpKSB7XG4gICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXghLCAnJyk7XG4gICAgfVxuXG4gICAgaWYgKCFwYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtwYXRofWA7XG4gICAgfVxuXG4gICAgY29uc3QgY2Fub25pY2FsVXJsID0gdXJsICYmIHRoaXMuaXNDdXN0b21DYW5vbmljYWwodXJsKSA/IHVybCA6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7cGF0aH1gO1xuXG4gICAgdGhpcy5jYW5vbmljYWxUYWcuc2V0QXR0cmlidXRlKCdocmVmJywgY2Fub25pY2FsVXJsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSBhIFVSTCBmb3JuZWNpZGEgw6kgdW0gbGluayBjYW5vbmljYWwgcGVyc29uYWxpemFkb1xuICAgKiBAcGFyYW0gdXJsIFVSTCBmb3JuZWNpZGFcbiAgICovXG4gIHB1YmxpYyBpc0N1c3RvbUNhbm9uaWNhbCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNpdGV1cmwgPSBnZXRTaXRlVXJsKHRoaXMubGliQ29uZmlnPy5zaXRlVXJsLCB0aGlzLmxpYkNvbmZpZz8uc2l0ZVN1Zml4KTtcbiAgICByZXR1cm4gdXJsLnN0YXJ0c1dpdGgoc2l0ZXVybCk7XG4gIH1cblxuICAvKipcbiAgICogT2J0w6ltIHVtYSB1cmwgdsOhbGlkYSBuYSBhcGxpY2HDp8OjbyBwcm92ZW5pZW50ZSBkZSB1bWEgVVJMIGdlcmFkYVxuICAgKiBwZWxvIHBsdWdpbiBZb2FzdCBwYXJhIGNhbm9uaWNhbCBhdXRvbcOhdGljby5cbiAgICogRXguOiBodHRwczovL3dwLnJlZGVkb3JzYW9sdWl6LmNvbS5ici9icmFzaWwvZXNwZWNpYWxpZGFkZXMvY2FyZGlvbG9naWEvXG4gICAqIEBwYXJhbSB1cmxGcm9tV3BBcGkgVVJMIGNhbm9uaWNhIGdlcmFkYSBwZWxvIFlvYXN0IFBsdWdpbi5cbiAgICovXG4gIHRvTG9jYWxDYW5vbmljYWwodXJsRnJvbVdwQXBpOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMubGliQ29uZmlnPy53cFVybCA/PyAnJztcbiAgICBjb25zdCBzaXRldXJsID0gZ2V0U2l0ZVVybCh0aGlzLmxpYkNvbmZpZz8uc2l0ZVVybCwgdGhpcy5saWJDb25maWc/LnNpdGVTdWZpeCk7XG4gICAgY29uc3QgdW5pZGFkZVNsdWcgPSB0aGlzLnVuaWRhZGVTbHVnO1xuICAgIGxldCBjb252ZXJ0ZWQgPSB1cmxGcm9tV3BBcGkucmVwbGFjZShhcGlVcmwsIHNpdGV1cmwpO1xuICAgIGlmICh1bmlkYWRlU2x1ZyAhPT0gJy8nICYmIGNvbnZlcnRlZC5pbmNsdWRlcyhgLyR7dW5pZGFkZVNsdWd9L2ApKSB7XG4gICAgICBjb252ZXJ0ZWQgPSBjb252ZXJ0ZWQucmVwbGFjZShgLyR7dW5pZGFkZVNsdWd9L2AsIGAke3RoaXMudW5pZGFkZVBhdGh9YCk7XG4gICAgfVxuICAgIHJldHVybiBjb252ZXJ0ZWQ7XG4gIH1cblxuICBnZXRQb3N0Q29udGVudChwb3N0OiBXcFBvc3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbnRlbnQgPSBwb3N0LmFjZlsncmRzbF9wb3N0X2NvbnRlbnQnXSA/IHBvc3QuYWNmLnJkc2xfcG9zdF9jb250ZW50LmZpbmQoKGNvbnRlbnQ6IGFueSkgPT4gY29udGVudC5hY2ZfZmNfbGF5b3V0ID09PSAndGV4dF9odG1sJykgOiBudWxsO1xuICAgIHJldHVybiBjb250ZW50Py5jb250ZW50IHx8IHBvc3QuY29udGVudC5yZW5kZXJlZCB8fCAnJztcbiAgfVxuXG4gIGFkZEFydGljbGVTY3JpcHQocG9zdDogV3BQb3N0LCBzY3JpcHROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBwb3N0Q29udGVudCA9IHRoaXMuZ2V0UG9zdENvbnRlbnQocG9zdCk7XG4gICAgY29uc3QgcG9zdEhlYWRlckltYWdlID0gcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ11cbiAgICAgID8ge1xuICAgICAgICAgIHVybDogcG9zdC5hY2ZbJ3Jkc2xfcG9zdF9oZWFkZXJfaW1nJ10udXJsLFxuICAgICAgICAgIHdpZHRoOiBwb3N0LmFjZlsncmRzbF9wb3N0X2hlYWRlcl9pbWcnXS53aWR0aCxcbiAgICAgICAgICBoZWlnaHQ6IHBvc3QuYWNmWydyZHNsX3Bvc3RfaGVhZGVyX2ltZyddLmhlaWdodCxcbiAgICAgICAgfVxuICAgICAgOiBudWxsO1xuXG4gICAgY29uc3Qgc3RydWN0dXJlZERhdGEgPSB7XG4gICAgICAnQGNvbnRleHQnOiAnaHR0cHM6Ly9zY2hlbWEub3JnJyxcbiAgICAgICdAdHlwZSc6ICdBcnRpY2xlJyxcbiAgICAgIG1haW5FbnRpdHlPZlBhZ2U6IGAke2dldFNpdGVVcmwodGhpcy5saWJDb25maWc/LnNpdGVVcmwsIHRoaXMubGliQ29uZmlnPy5zaXRlU3VmaXgpfSR7dGhpcy5sb2NhdGlvbi5wYXRoKCl9YCxcbiAgICAgIGhlYWRsaW5lOiBwb3N0LnRpdGxlPy5yZW5kZXJlZCxcbiAgICAgIGRhdGVQdWJsaXNoZWQ6IHBvc3QuZGF0ZV9nbXQsXG4gICAgICBwdWJsaXNoZXI6IHtcbiAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHBvc3QudGl0bGU/LnJlbmRlcmVkLFxuICAgICAgYXJ0aWNsZUJvZHk6IHJlbW92ZUh0bWxUYWdzKGhlLmRlY29kZShwb3N0Q29udGVudCkpLFxuICAgICAgZGF0ZU1vZGlmaWVkOiBwb3N0Lm1vZGlmaWVkX2dtdCxcbiAgICAgIGltYWdlOiB7XG4gICAgICAgICdAdHlwZSc6ICdJbWFnZU9iamVjdCcsXG4gICAgICAgIHVybDogcG9zdEhlYWRlckltYWdlPy51cmwgfHwgcG9zdC5mZWF0dXJlZF9tZWRpYV9wYXRoIHx8ICcnLFxuICAgICAgICBoZWlnaHQ6IHBvc3RIZWFkZXJJbWFnZT8uaGVpZ2h0IHx8ICcnLFxuICAgICAgICB3aWR0aDogcG9zdEhlYWRlckltYWdlPy53aWR0aCB8fCAnJyxcbiAgICAgIH0sXG4gICAgICBhdXRob3I6IHtcbiAgICAgICAgJ0B0eXBlJzogJ09yZ2FuaXphdGlvbicsXG4gICAgICAgIG5hbWU6ICdSZWRlIETigJlPcicsXG4gICAgICB9LFxuICAgICAgd29yZGNvdW50OiBwb3N0Q29udGVudC5zcGxpdCgnICcpLmxlbmd0aCxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2NyaXB0ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcblxuICAgIHNjcmlwdC50eXBlID0gJ2FwcGxpY2F0aW9uL2xkK2pzb24nO1xuICAgIHNjcmlwdC5pZCA9IHNjcmlwdE5hbWU7XG4gICAgc2NyaXB0LmlubmVySFRNTCA9IEpTT04uc3RyaW5naWZ5KHN0cnVjdHVyZWREYXRhKTtcblxuICAgIHRoaXMuZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICB9XG5cbiAgcmVtb3ZlQXJ0aWNsZVNjcmlwdChzY3JpcHROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBzY3JpcHQgPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNjcmlwdE5hbWUpO1xuICAgIHNjcmlwdD8ucmVtb3ZlKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0VW5pZGFkZSh7IHVuaWRhZGUgPSBudWxsLCB1bmlkYWRlTmFtZSA9ICcnLCB1bmlkYWRlUGF0aCA9ICcnLCB1bmlkYWRlU2x1ZyA9ICcnIH06IFNlb1VuaWRhZGUpIHtcbiAgICB0aGlzLnVuaWRhZGUgPSB1bmlkYWRlO1xuICAgIHRoaXMudW5pZGFkZU5hbWUgPSB1bmlkYWRlTmFtZTtcbiAgICB0aGlzLnVuaWRhZGVQYXRoID0gdW5pZGFkZVBhdGg7XG4gICAgdGhpcy51bmlkYWRlU2x1ZyA9IHVuaWRhZGVTbHVnO1xuICB9XG59XG4iXX0=
@@ -16715,6 +16715,9 @@ class SeoService {
16715
16715
  this.canonicalTag = this.getCanonicalTag();
16716
16716
  }
16717
16717
  let path = this.document.location.pathname;
16718
+ if (this.libConfig?.siteSufix && path.includes(this.libConfig?.siteSufix)) {
16719
+ path = path.replace(this.libConfig?.siteSufix, '');
16720
+ }
16718
16721
  if (!path.startsWith('/')) {
16719
16722
  path = `/${path}`;
16720
16723
  }
@@ -19346,6 +19349,10 @@ class SectionNavigationComponent {
19346
19349
  this.sectionChange = new EventEmitter();
19347
19350
  this.styleBinding = {
19348
19351
  '--color-base': this.curaService.getColor('primary-base'),
19352
+ '--color-text': this.curaService.getColor('neutral-base'),
19353
+ '--color-active-text': this.curaService.getColor('neutral-purewhite'),
19354
+ '--font-size': this.curaService.getFontSize(),
19355
+ '--font-weight-active': this.curaService.getFontWeights()['medium'],
19349
19356
  };
19350
19357
  this.scrollSub = null;
19351
19358
  this.scrollToMenuAnchorSubject = new BehaviorSubject(-1);
@@ -19428,11 +19435,11 @@ class SectionNavigationComponent {
19428
19435
  }
19429
19436
  }
19430
19437
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19431
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n >\n <cura-paragraph\n size=\"xsmall\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n [color]=\"activeSection() === section.id ? 'neutral-purewhite' : 'neutral-dark'\"\n >\n {{ section.title }}\n </cura-paragraph>\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none}cura-paragraph{--margin-block: 0 !important;position:relative;padding:12px 8px;font-weight:500}cura-paragraph.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
19438
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionNavigationComponent, isStandalone: true, selector: "nav[rdsite-section-navigation]", inputs: { navigationSections: "navigationSections", navigationConfig: "navigationConfig", ariaLabel: "ariaLabel" }, outputs: { sectionChange: "sectionChange" }, host: { listeners: { "window:resize": "onWindowResize()" }, properties: { "style": "this.styleBinding" } }, viewQueries: [{ propertyName: "navigationMenu", first: true, predicate: ["navigationMenu"], descendants: true, static: true }], ngImport: i0, template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:var(--font-size);font-weight:var(--font-weight-active);color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--color-active-text)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
19432
19439
  }
19433
19440
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionNavigationComponent, decorators: [{
19434
19441
  type: Component,
19435
- args: [{ selector: 'nav[rdsite-section-navigation]', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n >\n <cura-paragraph\n size=\"xsmall\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n [color]=\"activeSection() === section.id ? 'neutral-purewhite' : 'neutral-dark'\"\n >\n {{ section.title }}\n </cura-paragraph>\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none}cura-paragraph{--margin-block: 0 !important;position:relative;padding:12px 8px;font-weight:500}cura-paragraph.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base)}\n"] }]
19442
+ args: [{ selector: 'nav[rdsite-section-navigation]', standalone: true, imports: [CommonModule], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<nav class=\"rdsite-section-navigation\" [attr.aria-label]=\"ariaLabel\" [style.top.px]=\"config()?.offsetTop || 0\">\n <ul #navigationMenu class=\"rdsite-section-navigation-menu\" role=\"menubar\">\n @for (section of sections(); track section.id) {\n @if (section.title) {\n <li role=\"none\">\n <a\n target=\"_self\"\n role=\"menuitem\"\n [href]=\"'#' + section.id\"\n [attr.aria-current]=\"activeSection() === section.id ? 'page' : null\"\n (click)=\"$event.preventDefault(); onSectionClick(section)\"\n [attr.aria-label]=\"'Navegar para ' + section.title\"\n [ngClass]=\"{ active: activeSection() === section.id }\"\n >\n {{ section.title }}\n </a>\n </li>\n }\n }\n </ul>\n</nav>\n", styles: [".rdsite-section-navigation{width:100%;position:sticky;left:0;z-index:1000;background-color:#fff;border-bottom:1px solid #b7b7b7;box-shadow:0 4px 8px #26262629;padding-top:10px}.rdsite-section-navigation-menu{box-sizing:border-box;width:90%;position:relative;max-width:1366px;margin-left:auto;margin-right:auto;display:flex}.rdsite-section-navigation-menu.full-container{width:100%;max-width:100%}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu{overflow-x:auto;white-space:nowrap}}.rdsite-section-navigation-menu li>a{text-decoration:none;padding:12px 8px;font-size:var(--font-size);font-weight:var(--font-weight-active);color:var(--color-text);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:158px}@media only screen and (max-width: 1366px){.rdsite-section-navigation-menu li>a{max-width:135px}}.rdsite-section-navigation-menu li>a.active{border-radius:4px 4px 0 0!important;background-color:var(--color-base);color:var(--color-active-text)}\n"] }]
19436
19443
  }], ctorParameters: () => [], propDecorators: { onWindowResize: [{
19437
19444
  type: HostListener,
19438
19445
  args: ['window:resize']