valtech-components 2.0.506 → 2.0.508
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/atoms/qr-code/qr-code.component.mjs +6 -4
- package/esm2022/lib/components/molecules/ad-slot/ad-slot.component.mjs +96 -39
- package/esm2022/lib/components/molecules/code-display/code-display.component.mjs +4 -2
- package/esm2022/lib/components/molecules/date-input/date-input.component.mjs +18 -7
- package/esm2022/lib/components/molecules/date-range-input/date-range-input.component.mjs +41 -16
- package/esm2022/lib/components/molecules/file-input/file-input.component.mjs +17 -6
- package/esm2022/lib/components/molecules/language-selector/language-selector.component.mjs +5 -5
- package/esm2022/lib/components/molecules/multi-select-search/multi-select-search.component.mjs +53 -27
- package/esm2022/lib/components/molecules/participant-card/participant-card.component.mjs +28 -10
- package/esm2022/lib/components/molecules/popover-selector/popover-selector.component.mjs +8 -6
- package/esm2022/lib/components/molecules/searchbar/searchbar.component.mjs +21 -7
- package/esm2022/lib/components/molecules/select-input/select-input.component.mjs +11 -7
- package/esm2022/lib/components/molecules/select-search/select-search.component.mjs +21 -7
- package/esm2022/lib/components/organisms/data-table/data-table.component.mjs +52 -17
- package/esm2022/lib/services/i18n/config.mjs +64 -4
- package/esm2022/lib/services/i18n/default-content.mjs +203 -0
- package/esm2022/lib/services/i18n/index.mjs +3 -1
- package/esm2022/lib/services/i18n/types.mjs +2 -1
- package/fesm2022/valtech-components.mjs +1180 -708
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/atoms/qr-code/qr-code.component.d.ts +1 -0
- package/lib/components/molecules/ad-slot/ad-slot.component.d.ts +5 -0
- package/lib/components/molecules/code-display/code-display.component.d.ts +2 -2
- package/lib/components/molecules/date-input/date-input.component.d.ts +5 -0
- package/lib/components/molecules/date-range-input/date-range-input.component.d.ts +11 -0
- package/lib/components/molecules/file-input/file-input.component.d.ts +3 -0
- package/lib/components/molecules/multi-select-search/multi-select-search.component.d.ts +13 -0
- package/lib/components/molecules/participant-card/participant-card.component.d.ts +9 -0
- package/lib/components/molecules/popover-selector/popover-selector.component.d.ts +1 -0
- package/lib/components/molecules/searchbar/searchbar.component.d.ts +14 -1
- package/lib/components/molecules/select-input/select-input.component.d.ts +1 -0
- package/lib/components/molecules/select-search/select-search.component.d.ts +7 -0
- package/lib/components/organisms/article/article.component.d.ts +1 -1
- package/lib/components/organisms/data-table/data-table.component.d.ts +17 -2
- package/lib/services/i18n/default-content.d.ts +30 -0
- package/lib/services/i18n/index.d.ts +1 -0
- package/lib/services/i18n/types.d.ts +35 -1
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { IonButton, IonIcon, IonSpinner } from '@ionic/angular/standalone';
|
|
|
4
4
|
import { addIcons } from 'ionicons';
|
|
5
5
|
import { downloadOutline, copyOutline, shareOutline } from 'ionicons/icons';
|
|
6
6
|
import { QrGeneratorService } from '../../../services/qr-generator/qr-generator.service';
|
|
7
|
+
import { I18nService } from '../../../services/i18n';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
addIcons({ downloadOutline, copyOutline, shareOutline });
|
|
9
10
|
/**
|
|
@@ -49,6 +50,7 @@ export class QrCodeComponent {
|
|
|
49
50
|
this.canShare = false;
|
|
50
51
|
this.canCopy = false;
|
|
51
52
|
this.qrService = inject(QrGeneratorService);
|
|
53
|
+
this.i18n = inject(I18nService);
|
|
52
54
|
}
|
|
53
55
|
ngOnInit() {
|
|
54
56
|
this.canShare = this.qrService.canShare();
|
|
@@ -117,13 +119,13 @@ export class QrCodeComponent {
|
|
|
117
119
|
return !!(this.props.showDownload || this.props.showCopy || this.props.showShare);
|
|
118
120
|
}
|
|
119
121
|
getDownloadLabel() {
|
|
120
|
-
return this.props.downloadLabel || '
|
|
122
|
+
return this.props.downloadLabel || this.i18n.t('download');
|
|
121
123
|
}
|
|
122
124
|
getCopyLabel() {
|
|
123
|
-
return this.props.copyLabel || '
|
|
125
|
+
return this.props.copyLabel || this.i18n.t('copy');
|
|
124
126
|
}
|
|
125
127
|
getShareLabel() {
|
|
126
|
-
return this.props.shareLabel || '
|
|
128
|
+
return this.props.shareLabel || this.i18n.t('share');
|
|
127
129
|
}
|
|
128
130
|
async onDownload() {
|
|
129
131
|
try {
|
|
@@ -389,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
389
391
|
}], imageError: [{
|
|
390
392
|
type: Output
|
|
391
393
|
}] } });
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQzs7QUFFekYsUUFBUSxDQUFDLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBa0d6RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBbkk1QjtRQXNJWSxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3ZELGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRWpELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVSLGNBQVMsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQThKaEQ7SUE1SkMsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNB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ZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixLQUFLLEVBQUUsS0FBYzthQUN0QixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7K0dBdktVLGVBQWU7bUdBQWYsZUFBZSxvTUEvSGhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVCxzN0pBMUZTLFlBQVksK0JBQUUsU0FBUyxvUEFBRSxPQUFPLDJKQUFFLFVBQVU7OzRGQWdJM0MsZUFBZTtrQkFuSTNCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxZQUM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RlQ7OEJBdUNRLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhLCBRckNvZGVBY3Rpb25FdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcblxuYWRkSWNvbnMoeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1xci1jb2RlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uQnV0dG9uLCBJb25JY29uLCBJb25TcGlubmVyXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInFyLWNvZGUtY29udGFpbmVyXCJcbiAgICAgIFtjbGFzc109XCJnZXRDb250YWluZXJDbGFzc2VzKClcIlxuICAgICAgW3N0eWxlLi0tYm9yZGVyLXJhZGl1c109XCJnZXRCb3JkZXJSYWRpdXMoKVwiXG4gICAgICBbc3R5bGUuLS1wYWRkaW5nXT1cImdldFBhZGRpbmcoKVwiXG4gICAgICBbc3R5bGUuLS1jb250YWluZXItYmddPVwiZ2V0Q29udGFpbmVyQmFja2dyb3VuZCgpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1jb2xvcl09XCJwcm9wcy5ib3JkZXJDb2xvciB8fCAndmFyKC0taW9uLWNvbG9yLWxpZ2h0LXNoYWRlKSdcIlxuICAgICAgW3N0eWxlLi0tc2hhZG93XT1cImdldFNoYWRvdygpXCJcbiAgICAgIFtzdHlsZS4tLWdsb3ctY29sb3JdPVwicHJvcHMuZ2xvd0NvbG9yIHx8ICcjOGI1Y2Y2J1wiXG4gICAgICBbc3R5bGUuLS1xci1ib3JkZXItcmFkaXVzXT1cImdldFFyQm9yZGVyUmFkaXVzKClcIlxuICAgID5cbiAgICAgIEBpZiAocHJvcHMubG9hZGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1vdmVybGF5XCI+XG4gICAgICAgICAgPGlvbi1zcGlubmVyIG5hbWU9XCJjcmVzY2VudFwiPjwvaW9uLXNwaW5uZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAaWYgKHByb3BzLmxhYmVsICYmIHByb3BzLmxhYmVsLnBvc2l0aW9uID09PSAndG9wJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicXItbGFiZWwgcXItbGFiZWwtLXRvcFwiIFtzdHlsZS4tLWxhYmVsLWNvbG9yXT1cInByb3BzLmxhYmVsLmNvbG9yIHx8ICdpbmhlcml0J1wiIFtzdHlsZS4tLWxhYmVsLXNpemVdPVwiZ2V0TGFiZWxGb250U2l6ZSgpXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5sYWJlbC5pY29uICYmIHByb3BzLmxhYmVsLmljb25Qb3NpdGlvbiAhPT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJwcm9wcy5sYWJlbC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIidmb250LXdlaWdodC0tJyArIChwcm9wcy5sYWJlbC5mb250V2VpZ2h0IHx8ICdtZWRpdW0nKVwiPnt7IHByb3BzLmxhYmVsLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgQGlmIChwcm9wcy5sYWJlbC5pY29uICYmIHByb3BzLmxhYmVsLmljb25Qb3NpdGlvbiA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJwcm9wcy5sYWJlbC5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgICA8ZGl2IGNsYXNzPVwicXItaW1hZ2Utd3JhcHBlclwiIFtzdHlsZS4tLXNpemVdPVwiZ2V0RGlzcGxheVNpemUoKVwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgW3NyY109XCJwcm9wcy5xci5kYXRhVXJsXCJcbiAgICAgICAgICBbYWx0XT1cInByb3BzLmFsdCB8fCAnUVIgQ29kZSdcIlxuICAgICAgICAgIGNsYXNzPVwicXItaW1hZ2VcIlxuICAgICAgICAgIChsb2FkKT1cIm9uSW1hZ2VMb2FkKClcIlxuICAgICAgICAgIChlcnJvcik9XCJvbkltYWdlRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiAhPT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWxhYmVsIHFyLWxhYmVsLS1ib3R0b21cIiBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIiBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChoYXNBY3Rpb25zKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWFjdGlvbnNcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dEb3dubG9hZCkge1xuICAgICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uRG93bmxvYWQoKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJnZXREb3dubG9hZExhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImRvd25sb2FkLW91dGxpbmVcIiBzbG90PVwiaWNvbi1vbmx5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKHByb3BzLnNob3dDb3B5ICYmIGNhbkNvcHkpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkNvcHkoKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCJnZXRDb3B5TGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY29weS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93U2hhcmUgJiYgY2FuU2hhcmUpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvblNoYXJlKClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0U2hhcmVMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaGFyZS1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vcXItY29kZS5jb21wb25lbnQuc2NzcyddLFxufSlcbi8qKlxuICogdmFsLXFyLWNvZGVcbiAqXG4gKiBBIGNvbXBvbmVudCB0byBkaXNwbGF5IFFSIGNvZGVzIGdlbmVyYXRlZCBieSBRckdlbmVyYXRvclNlcnZpY2UuXG4gKiBQcm92aWRlcyBvcHRpb25hbCBhY3Rpb24gYnV0dG9ucyBmb3IgZG93bmxvYWQsIGNvcHksIGFuZCBzaGFyZS5cbiAqXG4gKiBAZXhhbXBsZSBCYXNpYyB1c2FnZVxuICogYGBgdHlwZXNjcmlwdFxuICogcXIgPSBhd2FpdCB0aGlzLnFyU2VydmljZS5nZW5lcmF0ZSh7IGRhdGE6ICdodHRwczovL2V4YW1wbGUuY29tJyB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlIFtwcm9wc109XCJ7IHFyOiBxciB9XCI+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBleGFtcGxlIFdpdGggYWN0aW9uc1xuICogYGBgaHRtbFxuICogPHZhbC1xci1jb2RlXG4gKiAgIFtwcm9wc109XCJ7XG4gKiAgICAgcXI6IHFyLFxuICogICAgIHNob3dEb3dubG9hZDogdHJ1ZSxcbiAqICAgICBzaG93Q29weTogdHJ1ZSxcbiAqICAgICBzaG93U2hhcmU6IHRydWUsXG4gKiAgICAgZGlzcGxheVNpemU6IDIwMCxcbiAqICAgICBzaG93Qm9yZGVyOiB0cnVlLFxuICogICAgIGJvcmRlclJhZGl1czogMTJcbiAqICAgfVwiXG4gKiAgIChhY3Rpb25Db21wbGV0ZSk9XCJvbkFjdGlvbigkZXZlbnQpXCJcbiAqID48L3ZhbC1xci1jb2RlPlxuICogYGBgXG4gKlxuICogQGlucHV0IHByb3BzOiBRckNvZGVNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBRUiBkaXNwbGF5XG4gKiBAb3V0cHV0IGFjdGlvbkNvbXBsZXRlIC0gRW1pdHMgd2hlbiBhbiBhY3Rpb24gKGRvd25sb2FkL2NvcHkvc2hhcmUpIGNvbXBsZXRlc1xuICogQG91dHB1dCBpbWFnZUxvYWQgLSBFbWl0cyB3aGVuIHRoZSBRUiBpbWFnZSBsb2Fkc1xuICogQG91dHB1dCBpbWFnZUVycm9yIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgZmFpbHMgdG8gbG9hZFxuICovXG5leHBvcnQgY2xhc3MgUXJDb2RlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHM6IFFyQ29kZU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBhY3Rpb25Db21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8UXJDb2RlQWN0aW9uRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUxvYWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpbWFnZUVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvcj4oKTtcblxuICBjYW5TaGFyZSA9IGZhbHNlO1xuICBjYW5Db3B5ID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBxclNlcnZpY2UgPSBpbmplY3QoUXJHZW5lcmF0b3JTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhblNoYXJlID0gdGhpcy5xclNlcnZpY2UuY2FuU2hhcmUoKTtcbiAgICB0aGlzLmNhbkNvcHkgPSB0aGlzLnFyU2VydmljZS5jYW5Db3B5VG9DbGlwYm9hcmQoKTtcbiAgfVxuXG4gIGdldERpc3BsYXlTaXplKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZGlzcGxheVNpemUpIHtcbiAgICAgIHJldHVybiBgJHt0aGlzLnByb3BzLmRpc3BsYXlTaXplfXB4YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMucHJvcHMucXIuY29uZmlnLndpZHRoIHx8IDMwMH1weGA7XG4gIH1cblxuICBnZXRCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5ib3JkZXJSYWRpdXMgPyBgJHt0aGlzLnByb3BzLmJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRQYWRkaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucGFkZGluZyA/IGAke3RoaXMucHJvcHMucGFkZGluZ31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRRckJvcmRlclJhZGl1cygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnFyQm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5xckJvcmRlclJhZGl1c31weGAgOiAnMCc7XG4gIH1cblxuICBnZXRDb250YWluZXJDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2xhc3Nlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNzc0NsYXNzKSBjbGFzc2VzLnB1c2godGhpcy5wcm9wcy5jc3NDbGFzcyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2hvd0JvcmRlcikgY2xhc3Nlcy5wdXNoKCd3aXRoLWJvcmRlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmxvYWRpbmcpIGNsYXNzZXMucHVzaCgnbG9hZGluZycpO1xuICAgIGlmICh0aGlzLnByb3BzLnRoZW1lKSBjbGFzc2VzLnB1c2goYHRoZW1lLS0ke3RoaXMucHJvcHMudGhlbWV9YCk7XG4gICAgaWYgKHRoaXMucHJvcHMucHVsc2VPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3B1bHNlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuc2NhbGVPbkhvdmVyKSBjbGFzc2VzLnB1c2goJ3NjYWxlLW9uLWhvdmVyJyk7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIGNsYXNzZXMucHVzaCgnaGFzLWdyYWRpZW50Jyk7XG5cbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gIH1cblxuICBnZXRDb250YWluZXJCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuZ3JhZGllbnQpIHtcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIHZpYSwgZGlyZWN0aW9uID0gJ3RvLWJvdHRvbScgfSA9IHRoaXMucHJvcHMuZ3JhZGllbnQ7XG4gICAgICBjb25zdCBjc3NEaXJlY3Rpb24gPSBkaXJlY3Rpb24ucmVwbGFjZSgvLS9nLCAnICcpO1xuICAgICAgaWYgKHZpYSkge1xuICAgICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dmlhfSwgJHt0b30pYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgbGluZWFyLWdyYWRpZW50KCR7Y3NzRGlyZWN0aW9ufSwgJHtmcm9tfSwgJHt0b30pYDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29udGFpbmVyQmFja2dyb3VuZCB8fCAndHJhbnNwYXJlbnQnO1xuICB9XG5cbiAgZ2V0U2hhZG93KCk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2hhZG93TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgbm9uZTogJ25vbmUnLFxuICAgICAgc206ICcwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIG1kOiAnMCA0cHggNnB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMDYpJyxcbiAgICAgIGxnOiAnMCAxMHB4IDE1cHggLTNweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgNHB4IDZweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4wNSknLFxuICAgICAgeGw6ICcwIDIwcHggMjVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAxMHB4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMDQpJyxcbiAgICB9O1xuXG4gICAgaWYgKCF0aGlzLnByb3BzLnNoYWRvdykgcmV0dXJuICdub25lJztcbiAgICByZXR1cm4gc2hhZG93TWFwW3RoaXMucHJvcHMuc2hhZG93XSB8fCB0aGlzLnByb3BzLnNoYWRvdztcbiAgfVxuXG4gIGdldExhYmVsRm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbD8uZm9udFNpemUgPyBgJHt0aGlzLnByb3BzLmxhYmVsLmZvbnRTaXplfXB4YCA6ICcxNHB4JztcbiAgfVxuXG4gIGhhc0FjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMucHJvcHMuc2hvd0Rvd25sb2FkIHx8IHRoaXMucHJvcHMuc2hvd0NvcHkgfHwgdGhpcy5wcm9wcy5zaG93U2hhcmUpO1xuICB9XG5cbiAgZ2V0RG93bmxvYWRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRvd25sb2FkTGFiZWwgfHwgJ0Rlc2Nhcmdhcic7XG4gIH1cblxuICBnZXRDb3B5TGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5jb3B5TGFiZWwgfHwgJ0NvcGlhcic7XG4gIH1cblxuICBnZXRTaGFyZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2hhcmVMYWJlbCB8fCAnQ29tcGFydGlyJztcbiAgfVxuXG4gIGFzeW5jIG9uRG93bmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWVcbiAgICAgICAgPyB7IGZpbGVuYW1lOiB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWUgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGF3YWl0IHRoaXMucXJTZXJ2aWNlLmRvd25sb2FkKHRoaXMucHJvcHMucXIsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnZG93bmxvYWQnLFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25Db3B5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMucHJvcHMucXIpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2NvcHknLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uU2hhcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IHsgdGl0bGU/OiBzdHJpbmc7IHRleHQ/OiBzdHJpbmc7IGZpbGVuYW1lPzogc3RyaW5nIH0gPSB7fTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGl0bGUpIG9wdGlvbnMudGl0bGUgPSB0aGlzLnByb3BzLnNoYXJlVGl0bGU7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZVRleHQpIG9wdGlvbnMudGV4dCA9IHRoaXMucHJvcHMuc2hhcmVUZXh0O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZSkgb3B0aW9ucy5maWxlbmFtZSA9IHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZTtcblxuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLnNoYXJlKFxuICAgICAgICB0aGlzLnByb3BzLnFyLFxuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5sZW5ndGggPiAwID8gb3B0aW9ucyA6IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ3NoYXJlJyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uSW1hZ2VMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW1hZ2VFcnJvcihfZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIFFSIGNvZGUgaW1hZ2UnKTtcbiAgICB0aGlzLmltYWdlRXJyb3IuZW1pdChlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|
|
394
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXItY29kZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS9xci1jb2RlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRXJELFFBQVEsQ0FBQyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztBQWtHekQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQ0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQW5JNUI7UUFzSVksbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztRQUN2RCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNyQyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUVqRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFUixjQUFTLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdkMsU0FBSSxH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LFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBkb3dubG9hZE91dGxpbmUsIGNvcHlPdXRsaW5lLCBzaGFyZU91dGxpbmUgfSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IFFyQ29kZU1ldGFkYXRhLCBRckNvZGVBY3Rpb25FdmVudCB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgUXJHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmFkZEljb25zKHsgZG93bmxvYWRPdXRsaW5lLCBjb3B5T3V0bGluZSwgc2hhcmVPdXRsaW5lIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcXItY29kZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkJ1dHRvbiwgSW9uSWNvbiwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJxci1jb2RlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3NlcygpXCJcbiAgICAgIFtzdHlsZS4tLWJvcmRlci1yYWRpdXNdPVwiZ2V0Qm9yZGVyUmFkaXVzKClcIlxuICAgICAgW3N0eWxlLi0tcGFkZGluZ109XCJnZXRQYWRkaW5nKClcIlxuICAgICAgW3N0eWxlLi0tY29udGFpbmVyLWJnXT1cImdldENvbnRhaW5lckJhY2tncm91bmQoKVwiXG4gICAgICBbc3R5bGUuLS1ib3JkZXItY29sb3JdPVwicHJvcHMuYm9yZGVyQ29sb3IgfHwgJ3ZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSknXCJcbiAgICAgIFtzdHlsZS4tLXNoYWRvd109XCJnZXRTaGFkb3coKVwiXG4gICAgICBbc3R5bGUuLS1nbG93LWNvbG9yXT1cInByb3BzLmdsb3dDb2xvciB8fCAnIzhiNWNmNidcIlxuICAgICAgW3N0eWxlLi0tcXItYm9yZGVyLXJhZGl1c109XCJnZXRRckJvcmRlclJhZGl1cygpXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLmxvYWRpbmcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRpbmctb3ZlcmxheVwiPlxuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIj48L2lvbi1zcGlubmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgQGlmIChwcm9wcy5sYWJlbCAmJiBwcm9wcy5sYWJlbC5wb3NpdGlvbiA9PT0gJ3RvcCcpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInFyLWxhYmVsIHFyLWxhYmVsLS10b3BcIiBbc3R5bGUuLS1sYWJlbC1jb2xvcl09XCJwcm9wcy5sYWJlbC5jb2xvciB8fCAnaW5oZXJpdCdcIiBbc3R5bGUuLS1sYWJlbC1zaXplXT1cImdldExhYmVsRm9udFNpemUoKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gIT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZm9udC13ZWlnaHQtLScgKyAocHJvcHMubGFiZWwuZm9udFdlaWdodCB8fCAnbWVkaXVtJylcIj57eyBwcm9wcy5sYWJlbC50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgIEBpZiAocHJvcHMubGFiZWwuaWNvbiAmJiBwcm9wcy5sYWJlbC5pY29uUG9zaXRpb24gPT09ICdlbmQnKSB7XG4gICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicHJvcHMubGFiZWwuaWNvblwiPjwvaW9uLWljb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cInFyLWltYWdlLXdyYXBwZXJcIiBbc3R5bGUuLS1zaXplXT1cImdldERpc3BsYXlTaXplKClcIj5cbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtzcmNdPVwicHJvcHMucXIuZGF0YVVybFwiXG4gICAgICAgICAgW2FsdF09XCJwcm9wcy5hbHQgfHwgJ1FSIENvZGUnXCJcbiAgICAgICAgICBjbGFzcz1cInFyLWltYWdlXCJcbiAgICAgICAgICAobG9hZCk9XCJvbkltYWdlTG9hZCgpXCJcbiAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAocHJvcHMubGFiZWwgJiYgcHJvcHMubGFiZWwucG9zaXRpb24gIT09ICd0b3AnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1sYWJlbCBxci1sYWJlbC0tYm90dG9tXCIgW3N0eWxlLi0tbGFiZWwtY29sb3JdPVwicHJvcHMubGFiZWwuY29sb3IgfHwgJ2luaGVyaXQnXCIgW3N0eWxlLi0tbGFiZWwtc2l6ZV09XCJnZXRMYWJlbEZvbnRTaXplKClcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uICE9PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiJ2ZvbnQtd2VpZ2h0LS0nICsgKHByb3BzLmxhYmVsLmZvbnRXZWlnaHQgfHwgJ21lZGl1bScpXCI+e3sgcHJvcHMubGFiZWwudGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKHByb3BzLmxhYmVsLmljb24gJiYgcHJvcHMubGFiZWwuaWNvblBvc2l0aW9uID09PSAnZW5kJykge1xuICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cInByb3BzLmxhYmVsLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIEBpZiAoaGFzQWN0aW9ucygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJxci1hY3Rpb25zXCI+XG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93RG93bmxvYWQpIHtcbiAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJvbkRvd25sb2FkKClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0RG93bmxvYWRMYWJlbCgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJkb3dubG9hZC1vdXRsaW5lXCIgc2xvdD1cImljb24tb25seVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChwcm9wcy5zaG93Q29weSAmJiBjYW5Db3B5KSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3B5KClcIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiZ2V0Q29weUxhYmVsKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAocHJvcHMuc2hvd1NoYXJlICYmIGNhblNoYXJlKSB7XG4gICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25TaGFyZSgpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImdldFNoYXJlTGFiZWwoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hhcmUtb3V0bGluZVwiIHNsb3Q9XCJpY29uLW9ubHlcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3FyLWNvZGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG4vKipcbiAqIHZhbC1xci1jb2RlXG4gKlxuICogQSBjb21wb25lbnQgdG8gZGlzcGxheSBRUiBjb2RlcyBnZW5lcmF0ZWQgYnkgUXJHZW5lcmF0b3JTZXJ2aWNlLlxuICogUHJvdmlkZXMgb3B0aW9uYWwgYWN0aW9uIGJ1dHRvbnMgZm9yIGRvd25sb2FkLCBjb3B5LCBhbmQgc2hhcmUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHFyID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuZ2VuZXJhdGUoeyBkYXRhOiAnaHR0cHM6Ly9leGFtcGxlLmNvbScgfSk7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZSBbcHJvcHNdPVwieyBxcjogcXIgfVwiPjwvdmFsLXFyLWNvZGU+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGFjdGlvbnNcbiAqIGBgYGh0bWxcbiAqIDx2YWwtcXItY29kZVxuICogICBbcHJvcHNdPVwie1xuICogICAgIHFyOiBxcixcbiAqICAgICBzaG93RG93bmxvYWQ6IHRydWUsXG4gKiAgICAgc2hvd0NvcHk6IHRydWUsXG4gKiAgICAgc2hvd1NoYXJlOiB0cnVlLFxuICogICAgIGRpc3BsYXlTaXplOiAyMDAsXG4gKiAgICAgc2hvd0JvcmRlcjogdHJ1ZSxcbiAqICAgICBib3JkZXJSYWRpdXM6IDEyXG4gKiAgIH1cIlxuICogICAoYWN0aW9uQ29tcGxldGUpPVwib25BY3Rpb24oJGV2ZW50KVwiXG4gKiA+PC92YWwtcXItY29kZT5cbiAqIGBgYFxuICpcbiAqIEBpbnB1dCBwcm9wczogUXJDb2RlTWV0YWRhdGEgLSBDb25maWd1cmF0aW9uIGZvciB0aGUgUVIgZGlzcGxheVxuICogQG91dHB1dCBhY3Rpb25Db21wbGV0ZSAtIEVtaXRzIHdoZW4gYW4gYWN0aW9uIChkb3dubG9hZC9jb3B5L3NoYXJlKSBjb21wbGV0ZXNcbiAqIEBvdXRwdXQgaW1hZ2VMb2FkIC0gRW1pdHMgd2hlbiB0aGUgUVIgaW1hZ2UgbG9hZHNcbiAqIEBvdXRwdXQgaW1hZ2VFcnJvciAtIEVtaXRzIHdoZW4gdGhlIFFSIGltYWdlIGZhaWxzIHRvIGxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIFFyQ29kZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHByb3BzOiBRckNvZGVNZXRhZGF0YTtcblxuICBAT3V0cHV0KCkgYWN0aW9uQ29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPFFyQ29kZUFjdGlvbkV2ZW50PigpO1xuICBAT3V0cHV0KCkgaW1hZ2VMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgaW1hZ2VFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8RXJyb3I+KCk7XG5cbiAgY2FuU2hhcmUgPSBmYWxzZTtcbiAgY2FuQ29weSA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcXJTZXJ2aWNlID0gaW5qZWN0KFFyR2VuZXJhdG9yU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5TaGFyZSA9IHRoaXMucXJTZXJ2aWNlLmNhblNoYXJlKCk7XG4gICAgdGhpcy5jYW5Db3B5ID0gdGhpcy5xclNlcnZpY2UuY2FuQ29weVRvQ2xpcGJvYXJkKCk7XG4gIH1cblxuICBnZXREaXNwbGF5U2l6ZSgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmRpc3BsYXlTaXplKSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5wcm9wcy5kaXNwbGF5U2l6ZX1weGA7XG4gICAgfVxuICAgIHJldHVybiBgJHt0aGlzLnByb3BzLnFyLmNvbmZpZy53aWR0aCB8fCAzMDB9cHhgO1xuICB9XG5cbiAgZ2V0Qm9yZGVyUmFkaXVzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuYm9yZGVyUmFkaXVzID8gYCR7dGhpcy5wcm9wcy5ib3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UGFkZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBhZGRpbmcgPyBgJHt0aGlzLnByb3BzLnBhZGRpbmd9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0UXJCb3JkZXJSYWRpdXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5xckJvcmRlclJhZGl1cyA/IGAke3RoaXMucHJvcHMucXJCb3JkZXJSYWRpdXN9cHhgIDogJzAnO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNsYXNzZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jc3NDbGFzcykgY2xhc3Nlcy5wdXNoKHRoaXMucHJvcHMuY3NzQ2xhc3MpO1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dCb3JkZXIpIGNsYXNzZXMucHVzaCgnd2l0aC1ib3JkZXInKTtcbiAgICBpZiAodGhpcy5wcm9wcy5sb2FkaW5nKSBjbGFzc2VzLnB1c2goJ2xvYWRpbmcnKTtcbiAgICBpZiAodGhpcy5wcm9wcy50aGVtZSkgY2xhc3Nlcy5wdXNoKGB0aGVtZS0tJHt0aGlzLnByb3BzLnRoZW1lfWApO1xuICAgIGlmICh0aGlzLnByb3BzLnB1bHNlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdwdWxzZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLnNjYWxlT25Ib3ZlcikgY2xhc3Nlcy5wdXNoKCdzY2FsZS1vbi1ob3ZlcicpO1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSBjbGFzc2VzLnB1c2goJ2hhcy1ncmFkaWVudCcpO1xuXG4gICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpO1xuICB9XG5cbiAgZ2V0Q29udGFpbmVyQmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnByb3BzLmdyYWRpZW50KSB7XG4gICAgICBjb25zdCB7IGZyb20sIHRvLCB2aWEsIGRpcmVjdGlvbiA9ICd0by1ib3R0b20nIH0gPSB0aGlzLnByb3BzLmdyYWRpZW50O1xuICAgICAgY29uc3QgY3NzRGlyZWN0aW9uID0gZGlyZWN0aW9uLnJlcGxhY2UoLy0vZywgJyAnKTtcbiAgICAgIGlmICh2aWEpIHtcbiAgICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtjc3NEaXJlY3Rpb259LCAke2Zyb219LCAke3ZpYX0sICR7dG99KWA7XG4gICAgICB9XG4gICAgICByZXR1cm4gYGxpbmVhci1ncmFkaWVudCgke2Nzc0RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dG99KWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnByb3BzLmNvbnRhaW5lckJhY2tncm91bmQgfHwgJ3RyYW5zcGFyZW50JztcbiAgfVxuXG4gIGdldFNoYWRvdygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNoYWRvd01hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIG5vbmU6ICdub25lJyxcbiAgICAgIHNtOiAnMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KScsXG4gICAgICBtZDogJzAgNHB4IDZweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4xKSwgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCAwLjA2KScsXG4gICAgICBsZzogJzAgMTBweCAxNXB4IC0zcHggcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDRweCA2cHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMDUpJyxcbiAgICAgIHhsOiAnMCAyMHB4IDI1cHggLTVweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMTBweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjA0KScsXG4gICAgfTtcblxuICAgIGlmICghdGhpcy5wcm9wcy5zaGFkb3cpIHJldHVybiAnbm9uZSc7XG4gICAgcmV0dXJuIHNoYWRvd01hcFt0aGlzLnByb3BzLnNoYWRvd10gfHwgdGhpcy5wcm9wcy5zaGFkb3c7XG4gIH1cblxuICBnZXRMYWJlbEZvbnRTaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubGFiZWw/LmZvbnRTaXplID8gYCR7dGhpcy5wcm9wcy5sYWJlbC5mb250U2l6ZX1weGAgOiAnMTRweCc7XG4gIH1cblxuICBoYXNBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhISh0aGlzLnByb3BzLnNob3dEb3dubG9hZCB8fCB0aGlzLnByb3BzLnNob3dDb3B5IHx8IHRoaXMucHJvcHMuc2hvd1NoYXJlKTtcbiAgfVxuXG4gIGdldERvd25sb2FkTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kb3dubG9hZExhYmVsIHx8IHRoaXMuaTE4bi50KCdkb3dubG9hZCcpO1xuICB9XG5cbiAgZ2V0Q29weUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY29weUxhYmVsIHx8IHRoaXMuaTE4bi50KCdjb3B5Jyk7XG4gIH1cblxuICBnZXRTaGFyZUxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2hhcmVMYWJlbCB8fCB0aGlzLmkxOG4udCgnc2hhcmUnKTtcbiAgfVxuXG4gIGFzeW5jIG9uRG93bmxvYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWVcbiAgICAgICAgPyB7IGZpbGVuYW1lOiB0aGlzLnByb3BzLmRvd25sb2FkRmlsZW5hbWUgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgIGF3YWl0IHRoaXMucXJTZXJ2aWNlLmRvd25sb2FkKHRoaXMucHJvcHMucXIsIG9wdGlvbnMpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnZG93bmxvYWQnLFxuICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbXBsZXRlLmVtaXQoe1xuICAgICAgICBhY3Rpb246ICdkb3dubG9hZCcsXG4gICAgICAgIHN1Y2Nlc3M6IGZhbHNlLFxuICAgICAgICBxcjogdGhpcy5wcm9wcy5xcixcbiAgICAgICAgZXJyb3I6IGVycm9yIGFzIEVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgb25Db3B5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5xclNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMucHJvcHMucXIpO1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnY29weScsXG4gICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgIHFyOiB0aGlzLnByb3BzLnFyLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ2NvcHknLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9uU2hhcmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IHsgdGl0bGU/OiBzdHJpbmc7IHRleHQ/OiBzdHJpbmc7IGZpbGVuYW1lPzogc3RyaW5nIH0gPSB7fTtcbiAgICAgIGlmICh0aGlzLnByb3BzLnNoYXJlVGl0bGUpIG9wdGlvbnMudGl0bGUgPSB0aGlzLnByb3BzLnNoYXJlVGl0bGU7XG4gICAgICBpZiAodGhpcy5wcm9wcy5zaGFyZVRleHQpIG9wdGlvbnMudGV4dCA9IHRoaXMucHJvcHMuc2hhcmVUZXh0O1xuICAgICAgaWYgKHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZSkgb3B0aW9ucy5maWxlbmFtZSA9IHRoaXMucHJvcHMuc2hhcmVGaWxlbmFtZTtcblxuICAgICAgY29uc3Qgc3VjY2VzcyA9IGF3YWl0IHRoaXMucXJTZXJ2aWNlLnNoYXJlKFxuICAgICAgICB0aGlzLnByb3BzLnFyLFxuICAgICAgICBPYmplY3Qua2V5cyhvcHRpb25zKS5sZW5ndGggPiAwID8gb3B0aW9ucyA6IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICAgIHRoaXMuYWN0aW9uQ29tcGxldGUuZW1pdCh7XG4gICAgICAgIGFjdGlvbjogJ3NoYXJlJyxcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5hY3Rpb25Db21wbGV0ZS5lbWl0KHtcbiAgICAgICAgYWN0aW9uOiAnc2hhcmUnLFxuICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgcXI6IHRoaXMucHJvcHMucXIsXG4gICAgICAgIGVycm9yOiBlcnJvciBhcyBFcnJvcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uSW1hZ2VMb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2VMb2FkLmVtaXQoKTtcbiAgfVxuXG4gIG9uSW1hZ2VFcnJvcihfZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBsb2FkIFFSIGNvZGUgaW1hZ2UnKTtcbiAgICB0aGlzLmltYWdlRXJyb3IuZW1pdChlcnJvcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -69,6 +69,22 @@ export class AdSlotComponent {
|
|
|
69
69
|
}
|
|
70
70
|
return true;
|
|
71
71
|
});
|
|
72
|
+
/**
|
|
73
|
+
* Indica si debe mostrar placeholder en vez de ad real.
|
|
74
|
+
* Activo en localhost o con Publisher ID placeholder.
|
|
75
|
+
*/
|
|
76
|
+
this.isPlaceholderMode = computed(() => {
|
|
77
|
+
if (!isPlatformBrowser(this.platformId)) {
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
const adClient = this.adsService.adClient();
|
|
81
|
+
const isLocalhost = window.location.hostname === 'localhost' ||
|
|
82
|
+
window.location.hostname === '127.0.0.1';
|
|
83
|
+
const isPlaceholderClient = !adClient ||
|
|
84
|
+
adClient === 'ca-pub-0000000000000000' ||
|
|
85
|
+
adClient.includes('0000000000');
|
|
86
|
+
return isLocalhost || isPlaceholderClient;
|
|
87
|
+
});
|
|
72
88
|
}
|
|
73
89
|
// ===========================================================================
|
|
74
90
|
// LIFECYCLE
|
|
@@ -83,6 +99,15 @@ export class AdSlotComponent {
|
|
|
83
99
|
if (!this.shouldRender() || this.adInitialized) {
|
|
84
100
|
return;
|
|
85
101
|
}
|
|
102
|
+
// En modo placeholder, solo marcar como rendered
|
|
103
|
+
if (this.isPlaceholderMode()) {
|
|
104
|
+
this._state.set('rendered');
|
|
105
|
+
this.adInitialized = true;
|
|
106
|
+
if (this.adsService.isDebugMode()) {
|
|
107
|
+
console.log(`[ValtechAds] Ad slot '${this.slotId}' in PLACEHOLDER mode (localhost or invalid adClient)`);
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
86
111
|
await this.initializeAd();
|
|
87
112
|
}
|
|
88
113
|
ngOnDestroy() {
|
|
@@ -125,37 +150,53 @@ export class AdSlotComponent {
|
|
|
125
150
|
[class.val-ad-slot--rendered]="state() === 'rendered'"
|
|
126
151
|
[class.val-ad-slot--empty]="state() === 'empty'"
|
|
127
152
|
[class.val-ad-slot--hidden]="state() === 'hidden'"
|
|
153
|
+
[class.val-ad-slot--placeholder]="isPlaceholderMode()"
|
|
128
154
|
[class]="cssClass"
|
|
129
155
|
[style.min-height]="minHeight"
|
|
130
156
|
>
|
|
131
|
-
<!--
|
|
132
|
-
@if (
|
|
133
|
-
<div
|
|
134
|
-
class="val-ad-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
<!-- Placeholder mode (desarrollo local) -->
|
|
158
|
+
@if (isPlaceholderMode()) {
|
|
159
|
+
<div class="val-ad-slot__placeholder" [style.height]="minHeight">
|
|
160
|
+
<div class="val-ad-slot__placeholder-content">
|
|
161
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
162
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
|
|
163
|
+
<line x1="3" y1="9" x2="21" y2="9"/>
|
|
164
|
+
<line x1="9" y1="21" x2="9" y2="9"/>
|
|
165
|
+
</svg>
|
|
166
|
+
<span class="val-ad-slot__placeholder-label">Ad Placeholder</span>
|
|
167
|
+
<span class="val-ad-slot__placeholder-info">{{ slotId }} | {{ format }}</span>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
} @else {
|
|
171
|
+
<!-- Skeleton mientras carga -->
|
|
172
|
+
@if (showSkeleton && state() === 'loading') {
|
|
173
|
+
<div
|
|
174
|
+
class="val-ad-slot__skeleton"
|
|
175
|
+
[style.height]="minHeight"
|
|
176
|
+
></div>
|
|
177
|
+
}
|
|
138
178
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
179
|
+
<!-- AdSense ins element -->
|
|
180
|
+
<ins
|
|
181
|
+
class="adsbygoogle val-ad-slot__container"
|
|
182
|
+
[class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
|
|
183
|
+
[style.display]="'block'"
|
|
184
|
+
[attr.data-ad-client]="adsService.adClient()"
|
|
185
|
+
[attr.data-ad-slot]="adSlot || null"
|
|
186
|
+
[attr.data-ad-format]="format"
|
|
187
|
+
[attr.data-full-width-responsive]="fullWidth ? 'true' : null"
|
|
188
|
+
></ins>
|
|
189
|
+
}
|
|
149
190
|
|
|
150
191
|
<!-- Debug info -->
|
|
151
192
|
@if (adsService.isDebugMode()) {
|
|
152
193
|
<div class="val-ad-slot__debug">
|
|
153
|
-
<small>{{ slotId }} | {{ format }} | {{ state() }}</small>
|
|
194
|
+
<small>{{ slotId }} | {{ format }} | {{ state() }}{{ isPlaceholderMode() ? ' | PLACEHOLDER' : '' }}</small>
|
|
154
195
|
</div>
|
|
155
196
|
}
|
|
156
197
|
</div>
|
|
157
198
|
}
|
|
158
|
-
`, isInline: true, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
199
|
+
`, isInline: true, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__placeholder{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;border:2px dashed rgba(255,255,255,.4)}.val-ad-slot__placeholder-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;text-align:center}.val-ad-slot__placeholder-content svg{opacity:.8}.val-ad-slot__placeholder-label{font-weight:600;font-size:14px;letter-spacing:.5px}.val-ad-slot__placeholder-info{font-size:11px;opacity:.7;font-family:monospace}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
159
200
|
}
|
|
160
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AdSlotComponent, decorators: [{
|
|
161
202
|
type: Component,
|
|
@@ -167,37 +208,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
167
208
|
[class.val-ad-slot--rendered]="state() === 'rendered'"
|
|
168
209
|
[class.val-ad-slot--empty]="state() === 'empty'"
|
|
169
210
|
[class.val-ad-slot--hidden]="state() === 'hidden'"
|
|
211
|
+
[class.val-ad-slot--placeholder]="isPlaceholderMode()"
|
|
170
212
|
[class]="cssClass"
|
|
171
213
|
[style.min-height]="minHeight"
|
|
172
214
|
>
|
|
173
|
-
<!--
|
|
174
|
-
@if (
|
|
175
|
-
<div
|
|
176
|
-
class="val-ad-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
215
|
+
<!-- Placeholder mode (desarrollo local) -->
|
|
216
|
+
@if (isPlaceholderMode()) {
|
|
217
|
+
<div class="val-ad-slot__placeholder" [style.height]="minHeight">
|
|
218
|
+
<div class="val-ad-slot__placeholder-content">
|
|
219
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
|
220
|
+
<rect x="3" y="3" width="18" height="18" rx="2" ry="2"/>
|
|
221
|
+
<line x1="3" y1="9" x2="21" y2="9"/>
|
|
222
|
+
<line x1="9" y1="21" x2="9" y2="9"/>
|
|
223
|
+
</svg>
|
|
224
|
+
<span class="val-ad-slot__placeholder-label">Ad Placeholder</span>
|
|
225
|
+
<span class="val-ad-slot__placeholder-info">{{ slotId }} | {{ format }}</span>
|
|
226
|
+
</div>
|
|
227
|
+
</div>
|
|
228
|
+
} @else {
|
|
229
|
+
<!-- Skeleton mientras carga -->
|
|
230
|
+
@if (showSkeleton && state() === 'loading') {
|
|
231
|
+
<div
|
|
232
|
+
class="val-ad-slot__skeleton"
|
|
233
|
+
[style.height]="minHeight"
|
|
234
|
+
></div>
|
|
235
|
+
}
|
|
180
236
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
237
|
+
<!-- AdSense ins element -->
|
|
238
|
+
<ins
|
|
239
|
+
class="adsbygoogle val-ad-slot__container"
|
|
240
|
+
[class.val-ad-slot__container--hidden]="state() === 'loading' && showSkeleton"
|
|
241
|
+
[style.display]="'block'"
|
|
242
|
+
[attr.data-ad-client]="adsService.adClient()"
|
|
243
|
+
[attr.data-ad-slot]="adSlot || null"
|
|
244
|
+
[attr.data-ad-format]="format"
|
|
245
|
+
[attr.data-full-width-responsive]="fullWidth ? 'true' : null"
|
|
246
|
+
></ins>
|
|
247
|
+
}
|
|
191
248
|
|
|
192
249
|
<!-- Debug info -->
|
|
193
250
|
@if (adsService.isDebugMode()) {
|
|
194
251
|
<div class="val-ad-slot__debug">
|
|
195
|
-
<small>{{ slotId }} | {{ format }} | {{ state() }}</small>
|
|
252
|
+
<small>{{ slotId }} | {{ format }} | {{ state() }}{{ isPlaceholderMode() ? ' | PLACEHOLDER' : '' }}</small>
|
|
196
253
|
</div>
|
|
197
254
|
}
|
|
198
255
|
</div>
|
|
199
256
|
}
|
|
200
|
-
`, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
|
|
257
|
+
`, styles: [".val-ad-slot{position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%}.val-ad-slot--loading{background-color:var(--ion-color-light, #f4f4f4)}.val-ad-slot--empty,.val-ad-slot--hidden{display:none!important}.val-ad-slot__skeleton{width:100%;background:linear-gradient(90deg,var(--ion-color-light, #f4f4f4) 25%,var(--ion-color-light-shade, #e0e0e0) 50%,var(--ion-color-light, #f4f4f4) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:4px}.val-ad-slot__container{width:100%}.val-ad-slot__container--hidden{visibility:hidden;position:absolute}.val-ad-slot__placeholder{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;border:2px dashed rgba(255,255,255,.4)}.val-ad-slot__placeholder-content{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px;text-align:center}.val-ad-slot__placeholder-content svg{opacity:.8}.val-ad-slot__placeholder-label{font-weight:600;font-size:14px;letter-spacing:.5px}.val-ad-slot__placeholder-info{font-size:11px;opacity:.7;font-family:monospace}.val-ad-slot__debug{position:absolute;bottom:0;left:0;background:#000000b3;color:#fff;padding:2px 6px;font-size:10px;z-index:1000;font-family:monospace}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}\n"] }]
|
|
201
258
|
}], propDecorators: { slotId: [{
|
|
202
259
|
type: Input,
|
|
203
260
|
args: [{ required: true }]
|
|
@@ -214,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
214
271
|
}], showSkeleton: [{
|
|
215
272
|
type: Input
|
|
216
273
|
}] } });
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FkLXNsb3QvYWQtc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFnSC9ELE1BQU0sT0FBTyxlQUFlO0lBN0c1QjtRQThHVyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVlqRCxxQkFBcUI7UUFDWixXQUFNLEdBQWEsTUFBTSxDQUFDO1FBRW5DLDRCQUE0QjtRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCLG9CQUFvQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFNUIsdUJBQXVCO1FBQ2QsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFN0IsOEVBQThFO1FBQzlFLFNBQVM7UUFDVCw4RUFBOEU7UUFFN0QsV0FBTSxHQUFHLE1BQU0sQ0FBYyxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztR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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0NUOzhCQTRFMEIsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBR2hCLE1BQU07c0JBQWQsS0FBSztnQkFHRyxNQUFNO3NCQUFkLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWQgU2xvdCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIHN0YW5kYWxvbmUgcGFyYSBtb3N0cmFyIGFkcyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNlIGludGVncmEgYXV0b21hdGljYW1lbnRlIGNvbiBlbCBzZXJ2aWNpbyBkZSBBZHMgeSByZXNwZXRhIGNvbnNlbnQgKyBwcmVtaXVtLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8IS0tIEJhbm5lciBiYXNpY28gLS0+XG4gKiA8dmFsLWFkLXNsb3RcbiAqICAgc2xvdElkPVwiaG9tZXBhZ2UtdG9wXCJcbiAqICAgZm9ybWF0PVwiaG9yaXpvbnRhbFwiXG4gKiAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gKiAvPlxuICpcbiAqIDwhLS0gUmVjdGFuZ2xlIGFkIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cInNpZGViYXItYWRcIlxuICogICBhZFNsb3Q9XCIxMjM0NTY3ODkwXCJcbiAqICAgZm9ybWF0PVwicmVjdGFuZ2xlXCJcbiAqIC8+XG4gKlxuICogPCEtLSBBdXRvIGZvcm1hdCAoR29vZ2xlIGRlY2lkZXMpIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cImFydGljbGUtYWRcIlxuICogICBmb3JtYXQ9XCJhdXRvXCJcbiAqICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBQTEFURk9STV9JRCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRzL2Fkcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFkRm9ybWF0LCBBZFNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fkcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hZC1zbG90JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdFwiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tbG9hZGluZ109XCJzdGF0ZSgpID09PSAnbG9hZGluZydcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLXJlbmRlcmVkXT1cInN0YXRlKCkgPT09ICdyZW5kZXJlZCdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWVtcHR5XT1cInN0YXRlKCkgPT09ICdlbXB0eSdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWhpZGRlbl09XCJzdGF0ZSgpID09PSAnaGlkZGVuJ1wiXG4gICAgICAgIFtjbGFzc109XCJjc3NDbGFzc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gU2tlbGV0b24gbWllbnRyYXMgY2FyZ2EgLS0+XG4gICAgICAgIEBpZiAoc2hvd1NrZWxldG9uICYmIHN0YXRlKCkgPT09ICdsb2FkaW5nJykge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidmFsLWFkLXNsb3RfX3NrZWxldG9uXCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwibWluSGVpZ2h0XCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIEFkU2Vuc2UgaW5zIGVsZW1lbnQgLS0+XG4gICAgICAgIDxpbnNcbiAgICAgICAgICBjbGFzcz1cImFkc2J5Z29vZ2xlIHZhbC1hZC1zbG90X19jb250YWluZXJcIlxuICAgICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdF9fY29udGFpbmVyLS1oaWRkZW5dPVwic3RhdGUoKSA9PT0gJ2xvYWRpbmcnICYmIHNob3dTa2VsZXRvblwiXG4gICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ2Jsb2NrJ1wiXG4gICAgICAgICAgW2F0dHIuZGF0YS1hZC1jbGllbnRdPVwiYWRzU2VydmljZS5hZENsaWVudCgpXCJcbiAgICAgICAgICBbYXR0ci5kYXRhLWFkLXNsb3RdPVwiYWRTbG90IHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLmRhdGEtYWQtZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1mdWxsLXdpZHRoLXJlc3BvbnNpdmVdPVwiZnVsbFdpZHRoID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgID48L2lucz5cblxuICAgICAgICA8IS0tIERlYnVnIGluZm8gLS0+XG4gICAgICAgIEBpZiAoYWRzU2VydmljZS5pc0RlYnVnTW9kZSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19kZWJ1Z1wiPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHNsb3RJZCB9fSB8IHt7IGZvcm1hdCB9fSB8IHt7IHN0YXRlKCkgfX08L3NtYWxsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC52YWwtYWQtc2xvdCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3QtLWxvYWRpbmcge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3QtLWVtcHR5LFxuICAgICAgLnZhbC1hZC1zbG90LS1oaWRkZW4ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fc2tlbGV0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgIDkwZGVnLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjRmNCkgMjUlLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodC1zaGFkZSwgI2UwZTBlMCkgNTAlLFxuICAgICAgICAgIHZhcigtLWlvbi1jb2xvci1saWdodCwgI2Y0ZjRmNCkgNzUlXG4gICAgICAgICk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgICAgICBhbmltYXRpb246IHNrZWxldG9uLWxvYWRpbmcgMS41cyBpbmZpbml0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2NvbnRhaW5lciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2NvbnRhaW5lci0taGlkZGVuIHtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fZGVidWcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDJweCA2cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcbiAgICAgIH1cblxuICAgICAgQGtleWZyYW1lcyBza2VsZXRvbi1sb2FkaW5nIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDIwMCUgMDtcbiAgICAgICAgfVxuICAgICAgICAxMDAlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjAwJSAwO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWRTbG90Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICByZWFkb25seSBhZHNTZXJ2aWNlID0gaW5qZWN0KEFkc1NlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIElOUFVUUyAoQ29uZmlndXJhY2lvbiBkZWwgc2xvdClcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqIElEIHVuaWNvIGRlbCBzbG90IChwYXJhIHRyYWNraW5nIGludGVybm8pICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNsb3RJZCE6IHN0cmluZztcblxuICAvKiogQWQgU2xvdCBJRCBkZSBBZFNlbnNlIChvcGNpb25hbCwgcGFyYSB1bmlkYWRlcyBtYW51YWxlcykgKi9cbiAgQElucHV0KCkgYWRTbG90Pzogc3RyaW5nO1xuXG4gIC8qKiBGb3JtYXRvIGRlbCBhZCAqL1xuICBASW5wdXQoKSBmb3JtYXQ6IEFkRm9ybWF0ID0gJ2F1dG8nO1xuXG4gIC8qKiBGdWxsIHdpZHRoIHJlc3BvbnNpdmUgKi9cbiAgQElucHV0KCkgZnVsbFdpZHRoID0gdHJ1ZTtcblxuICAvKiogQ1NTIGNsYXNzIGFkaWNpb25hbCAqL1xuICBASW5wdXQoKSBjc3NDbGFzcyA9ICcnO1xuXG4gIC8qKiBBbHR1cmEgbWluaW1hICovXG4gIEBJbnB1dCgpIG1pbkhlaWdodCA9ICc5MHB4JztcblxuICAvKiogTW9zdHJhciBza2VsZXRvbiAqL1xuICBASW5wdXQoKSBzaG93U2tlbGV0b24gPSB0cnVlO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBFU1RBRE9cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBzaWduYWw8QWRTbG90U3RhdGU+KCdpZGxlJyk7XG4gIHJlYWRvbmx5IHN0YXRlID0gdGhpcy5fc3RhdGUuYXNSZWFkb25seSgpO1xuICBwcml2YXRlIGFkSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvKiogSW5kaWNhIHNpIGVsIGNvbXBvbmVudGUgZGViZSByZW5kZXJpemFyc2UgKi9cbiAgcmVhZG9ubHkgc2hvdWxkUmVuZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIC8vIE5vIHJlbmRlcml6YXIgZW4gU1NSXG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gTm8gcmVuZGVyaXphciBzaSB1c3VhcmlvIGVzIHByZW1pdW1cbiAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzUHJlbWl1bVVzZXIoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vIHJlbmRlcml6YXIgc2kgYWRzIGVzdGFuIGRlc2hhYmlsaXRhZG9zIHkgYXVuIG5vIGluaWNpYWxpemFkb1xuICAgIGlmICghdGhpcy5hZHNTZXJ2aWNlLmlzSW5pdGlhbGl6ZWQoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9KTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gTElGRUNZQ0xFXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zaG91bGRSZW5kZXIoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3N0YXRlLnNldCgnbG9hZGluZycpO1xuICB9XG5cbiAgYXN5bmMgbmdBZnRlclZpZXdJbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zaG91bGRSZW5kZXIoKSB8fCB0aGlzLmFkSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVBZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gQWRTZW5zZSBubyByZXF1aWVyZSBjbGVhbnVwIG1hbnVhbCBjb21vIEdQVFxuICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplQWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlZ2lzdHJhciBzbG90IHkgY2FyZ2FyIEFkU2Vuc2Ugc2kgbm8gZXN0YSBjYXJnYWRvXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5hZHNTZXJ2aWNlLnJlZ2lzdGVyU2xvdCh0aGlzLnNsb3RJZCk7XG5cbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgICAgdGhpcy5hZEluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzRGVidWdNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyByZW5kZXJlZGAsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgICBhZFNsb3Q6IHRoaXMuYWRTbG90LFxuICAgICAgICAgICAgZnVsbFdpZHRoOiB0aGlzLmZ1bGxXaWR0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc3RhdGUuc2V0KCdlbXB0eScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbVmFsdGVjaEFkc10gRXJyb3IgaW5pdGlhbGl6aW5nIGFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JzpgLCBlcnJvcik7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
274
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWQtc2xvdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2FkLXNsb3QvYWQtc2xvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkJHO0FBRUgsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBR0wsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLHVCQUF1QixFQUN2QixVQUFVLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFxSy9ELE1BQU0sT0FBTyxlQUFlO0lBbEs1QjtRQW1LVyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVlqRCxxQkFBcUI7UUFDWixXQUFNLEdBQWEsTUFBTSxDQUFDO1FBRW5DLDRCQUE0QjtRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRTFCLDBCQUEwQjtRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBRXZCLG9CQUFvQjtRQUNYLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFFNUIsdUJBQXVCO1FBQ2QsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFN0IsOEVBQThFO1FBQzlFLFNBQVM7UUFDVCw4RUFBOEU7UUFFN0QsV0FBTSxHQUFHLE1BQU0sQ0FBYyxNQUFNLENBQUMsQ0FBQztRQUM3QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztR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Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWQgU2xvdCBDb21wb25lbnRcbiAqXG4gKiBDb21wb25lbnRlIHN0YW5kYWxvbmUgcGFyYSBtb3N0cmFyIGFkcyBkZSBHb29nbGUgQWRTZW5zZS5cbiAqIFNlIGludGVncmEgYXV0b21hdGljYW1lbnRlIGNvbiBlbCBzZXJ2aWNpbyBkZSBBZHMgeSByZXNwZXRhIGNvbnNlbnQgKyBwcmVtaXVtLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8IS0tIEJhbm5lciBiYXNpY28gLS0+XG4gKiA8dmFsLWFkLXNsb3RcbiAqICAgc2xvdElkPVwiaG9tZXBhZ2UtdG9wXCJcbiAqICAgZm9ybWF0PVwiaG9yaXpvbnRhbFwiXG4gKiAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gKiAvPlxuICpcbiAqIDwhLS0gUmVjdGFuZ2xlIGFkIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cInNpZGViYXItYWRcIlxuICogICBhZFNsb3Q9XCIxMjM0NTY3ODkwXCJcbiAqICAgZm9ybWF0PVwicmVjdGFuZ2xlXCJcbiAqIC8+XG4gKlxuICogPCEtLSBBdXRvIGZvcm1hdCAoR29vZ2xlIGRlY2lkZXMpIC0tPlxuICogPHZhbC1hZC1zbG90XG4gKiAgIHNsb3RJZD1cImFydGljbGUtYWRcIlxuICogICBmb3JtYXQ9XCJhdXRvXCJcbiAqICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9uRGVzdHJveSxcbiAgaW5qZWN0LFxuICBzaWduYWwsXG4gIGNvbXB1dGVkLFxuICBQTEFURk9STV9JRCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIEVsZW1lbnRSZWYsXG4gIEFmdGVyVmlld0luaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYWRzL2Fkcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFkRm9ybWF0LCBBZFNsb3RTdGF0ZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Fkcy90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1hZC1zbG90JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAoc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdFwiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tbG9hZGluZ109XCJzdGF0ZSgpID09PSAnbG9hZGluZydcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLXJlbmRlcmVkXT1cInN0YXRlKCkgPT09ICdyZW5kZXJlZCdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWVtcHR5XT1cInN0YXRlKCkgPT09ICdlbXB0eSdcIlxuICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3QtLWhpZGRlbl09XCJzdGF0ZSgpID09PSAnaGlkZGVuJ1wiXG4gICAgICAgIFtjbGFzcy52YWwtYWQtc2xvdC0tcGxhY2Vob2xkZXJdPVwiaXNQbGFjZWhvbGRlck1vZGUoKVwiXG4gICAgICAgIFtjbGFzc109XCJjc3NDbGFzc1wiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gUGxhY2Vob2xkZXIgbW9kZSAoZGVzYXJyb2xsbyBsb2NhbCkgLS0+XG4gICAgICAgIEBpZiAoaXNQbGFjZWhvbGRlck1vZGUoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXJcIiBbc3R5bGUuaGVpZ2h0XT1cIm1pbkhlaWdodFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19wbGFjZWhvbGRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHN0cm9rZS13aWR0aD1cIjJcIj5cbiAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCIyXCIgcnk9XCIyXCIvPlxuICAgICAgICAgICAgICAgIDxsaW5lIHgxPVwiM1wiIHkxPVwiOVwiIHgyPVwiMjFcIiB5Mj1cIjlcIi8+XG4gICAgICAgICAgICAgICAgPGxpbmUgeDE9XCI5XCIgeTE9XCIyMVwiIHgyPVwiOVwiIHkyPVwiOVwiLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWxhYmVsXCI+QWQgUGxhY2Vob2xkZXI8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWluZm9cIj57eyBzbG90SWQgfX0gfCB7eyBmb3JtYXQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPCEtLSBTa2VsZXRvbiBtaWVudHJhcyBjYXJnYSAtLT5cbiAgICAgICAgICBAaWYgKHNob3dTa2VsZXRvbiAmJiBzdGF0ZSgpID09PSAnbG9hZGluZycpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWwtYWQtc2xvdF9fc2tlbGV0b25cIlxuICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cIm1pbkhlaWdodFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPCEtLSBBZFNlbnNlIGlucyBlbGVtZW50IC0tPlxuICAgICAgICAgIDxpbnNcbiAgICAgICAgICAgIGNsYXNzPVwiYWRzYnlnb29nbGUgdmFsLWFkLXNsb3RfX2NvbnRhaW5lclwiXG4gICAgICAgICAgICBbY2xhc3MudmFsLWFkLXNsb3RfX2NvbnRhaW5lci0taGlkZGVuXT1cInN0YXRlKCkgPT09ICdsb2FkaW5nJyAmJiBzaG93U2tlbGV0b25cIlxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiJ2Jsb2NrJ1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWFkLWNsaWVudF09XCJhZHNTZXJ2aWNlLmFkQ2xpZW50KClcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1hZC1zbG90XT1cImFkU2xvdCB8fCBudWxsXCJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtYWQtZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWZ1bGwtd2lkdGgtcmVzcG9uc2l2ZV09XCJmdWxsV2lkdGggPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICA+PC9pbnM+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tIERlYnVnIGluZm8gLS0+XG4gICAgICAgIEBpZiAoYWRzU2VydmljZS5pc0RlYnVnTW9kZSgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInZhbC1hZC1zbG90X19kZWJ1Z1wiPlxuICAgICAgICAgICAgPHNtYWxsPnt7IHNsb3RJZCB9fSB8IHt7IGZvcm1hdCB9fSB8IHt7IHN0YXRlKCkgfX17eyBpc1BsYWNlaG9sZGVyTW9kZSgpID8gJyB8IFBMQUNFSE9MREVSJyA6ICcnIH19PC9zbWFsbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAudmFsLWFkLXNsb3Qge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90LS1sb2FkaW5nIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWxpZ2h0LCAjZjRmNGY0KTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90LS1lbXB0eSxcbiAgICAgIC52YWwtYWQtc2xvdC0taGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3NrZWxldG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICA5MGRlZyxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpIDI1JSxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQtc2hhZGUsICNlMGUwZTApIDUwJSxcbiAgICAgICAgICB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY0ZjQpIDc1JVxuICAgICAgICApO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgICAgICAgYW5pbWF0aW9uOiBza2VsZXRvbi1sb2FkaW5nIDEuNXMgaW5maW5pdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90X19jb250YWluZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgIH1cblxuICAgICAgLnZhbC1hZC1zbG90X19jb250YWluZXItLWhpZGRlbiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuXG4gICAgICAvKiBQbGFjZWhvbGRlciBzdHlsZXMgKi9cbiAgICAgIC52YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXIge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzY2N2VlYSAwJSwgIzc2NGJhMiAxMDAlKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBib3JkZXI6IDJweCBkYXNoZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDhweDtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWNvbnRlbnQgc3ZnIHtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX3BsYWNlaG9sZGVyLWxhYmVsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7XG4gICAgICB9XG5cbiAgICAgIC52YWwtYWQtc2xvdF9fcGxhY2Vob2xkZXItaW5mbyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgb3BhY2l0eTogMC43O1xuICAgICAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xuICAgICAgfVxuXG4gICAgICAudmFsLWFkLXNsb3RfX2RlYnVnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG4gICAgICB9XG5cbiAgICAgIEBrZXlmcmFtZXMgc2tlbGV0b24tbG9hZGluZyB7XG4gICAgICAgIDAlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFkU2xvdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgYWRzU2VydmljZSA9IGluamVjdChBZHNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBJTlBVVFMgKENvbmZpZ3VyYWNpb24gZGVsIHNsb3QpXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKiBJRCB1bmljbyBkZWwgc2xvdCAocGFyYSB0cmFja2luZyBpbnRlcm5vKSAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzbG90SWQhOiBzdHJpbmc7XG5cbiAgLyoqIEFkIFNsb3QgSUQgZGUgQWRTZW5zZSAob3BjaW9uYWwsIHBhcmEgdW5pZGFkZXMgbWFudWFsZXMpICovXG4gIEBJbnB1dCgpIGFkU2xvdD86IHN0cmluZztcblxuICAvKiogRm9ybWF0byBkZWwgYWQgKi9cbiAgQElucHV0KCkgZm9ybWF0OiBBZEZvcm1hdCA9ICdhdXRvJztcblxuICAvKiogRnVsbCB3aWR0aCByZXNwb25zaXZlICovXG4gIEBJbnB1dCgpIGZ1bGxXaWR0aCA9IHRydWU7XG5cbiAgLyoqIENTUyBjbGFzcyBhZGljaW9uYWwgKi9cbiAgQElucHV0KCkgY3NzQ2xhc3MgPSAnJztcblxuICAvKiogQWx0dXJhIG1pbmltYSAqL1xuICBASW5wdXQoKSBtaW5IZWlnaHQgPSAnOTBweCc7XG5cbiAgLyoqIE1vc3RyYXIgc2tlbGV0b24gKi9cbiAgQElucHV0KCkgc2hvd1NrZWxldG9uID0gdHJ1ZTtcblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gRVNUQURPXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlID0gc2lnbmFsPEFkU2xvdFN0YXRlPignaWRsZScpO1xuICByZWFkb25seSBzdGF0ZSA9IHRoaXMuX3N0YXRlLmFzUmVhZG9ubHkoKTtcbiAgcHJpdmF0ZSBhZEluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLyoqIEluZGljYSBzaSBlbCBjb21wb25lbnRlIGRlYmUgcmVuZGVyaXphcnNlICovXG4gIHJlYWRvbmx5IHNob3VsZFJlbmRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAvLyBObyByZW5kZXJpemFyIGVuIFNTUlxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIE5vIHJlbmRlcml6YXIgc2kgdXN1YXJpbyBlcyBwcmVtaXVtXG4gICAgaWYgKHRoaXMuYWRzU2VydmljZS5pc1ByZW1pdW1Vc2VyKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBObyByZW5kZXJpemFyIHNpIGFkcyBlc3RhbiBkZXNoYWJpbGl0YWRvcyB5IGF1biBubyBpbmljaWFsaXphZG9cbiAgICBpZiAoIXRoaXMuYWRzU2VydmljZS5pc0luaXRpYWxpemVkKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEluZGljYSBzaSBkZWJlIG1vc3RyYXIgcGxhY2Vob2xkZXIgZW4gdmV6IGRlIGFkIHJlYWwuXG4gICAqIEFjdGl2byBlbiBsb2NhbGhvc3QgbyBjb24gUHVibGlzaGVyIElEIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNQbGFjZWhvbGRlck1vZGUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgYWRDbGllbnQgPSB0aGlzLmFkc1NlcnZpY2UuYWRDbGllbnQoKTtcbiAgICBjb25zdCBpc0xvY2FsaG9zdCA9IHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJ2xvY2FsaG9zdCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSA9PT0gJzEyNy4wLjAuMSc7XG4gICAgY29uc3QgaXNQbGFjZWhvbGRlckNsaWVudCA9ICFhZENsaWVudCB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRDbGllbnQgPT09ICdjYS1wdWItMDAwMDAwMDAwMDAwMDAwMCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkQ2xpZW50LmluY2x1ZGVzKCcwMDAwMDAwMDAwJyk7XG5cbiAgICByZXR1cm4gaXNMb2NhbGhvc3QgfHwgaXNQbGFjZWhvbGRlckNsaWVudDtcbiAgfSk7XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExJRkVDWUNMRVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZS5zZXQoJ2xvYWRpbmcnKTtcbiAgfVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2hvdWxkUmVuZGVyKCkgfHwgdGhpcy5hZEluaXRpYWxpemVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRW4gbW9kbyBwbGFjZWhvbGRlciwgc29sbyBtYXJjYXIgY29tbyByZW5kZXJlZFxuICAgIGlmICh0aGlzLmlzUGxhY2Vob2xkZXJNb2RlKCkpIHtcbiAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICAgIGlmICh0aGlzLmFkc1NlcnZpY2UuaXNEZWJ1Z01vZGUoKSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyBpbiBQTEFDRUhPTERFUiBtb2RlIChsb2NhbGhvc3Qgb3IgaW52YWxpZCBhZENsaWVudClgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmluaXRpYWxpemVBZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gQWRTZW5zZSBubyByZXF1aWVyZSBjbGVhbnVwIG1hbnVhbCBjb21vIEdQVFxuICAgIHRoaXMuYWRJbml0aWFsaXplZCA9IGZhbHNlO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEVcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgcHJpdmF0ZSBhc3luYyBpbml0aWFsaXplQWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFJlZ2lzdHJhciBzbG90IHkgY2FyZ2FyIEFkU2Vuc2Ugc2kgbm8gZXN0YSBjYXJnYWRvXG4gICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgdGhpcy5hZHNTZXJ2aWNlLnJlZ2lzdGVyU2xvdCh0aGlzLnNsb3RJZCk7XG5cbiAgICAgIGlmIChzdWNjZXNzKSB7XG4gICAgICAgIHRoaXMuX3N0YXRlLnNldCgncmVuZGVyZWQnKTtcbiAgICAgICAgdGhpcy5hZEluaXRpYWxpemVkID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5hZHNTZXJ2aWNlLmlzRGVidWdNb2RlKCkpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgW1ZhbHRlY2hBZHNdIEFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JyByZW5kZXJlZGAsIHtcbiAgICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgICBhZFNsb3Q6IHRoaXMuYWRTbG90LFxuICAgICAgICAgICAgZnVsbFdpZHRoOiB0aGlzLmZ1bGxXaWR0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fc3RhdGUuc2V0KCdlbXB0eScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbVmFsdGVjaEFkc10gRXJyb3IgaW5pdGlhbGl6aW5nIGFkIHNsb3QgJyR7dGhpcy5zbG90SWR9JzpgLCBlcnJvcik7XG4gICAgICB0aGlzLl9zdGF0ZS5zZXQoJ2Vycm9yJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { Clipboard } from '@capacitor/clipboard';
|
|
|
4
4
|
import { ToastController } from '@ionic/angular';
|
|
5
5
|
import { IonButton, IonIcon } from '@ionic/angular/standalone';
|
|
6
6
|
import * as Prism from 'prismjs';
|
|
7
|
+
import { I18nService } from '../../../services/i18n';
|
|
7
8
|
import 'prismjs/components/prism-css';
|
|
8
9
|
import 'prismjs/components/prism-javascript';
|
|
9
10
|
import 'prismjs/components/prism-markup';
|
|
@@ -14,6 +15,7 @@ export class CodeDisplayComponent {
|
|
|
14
15
|
constructor(cdr) {
|
|
15
16
|
this.cdr = cdr;
|
|
16
17
|
this.toast = inject(ToastController);
|
|
18
|
+
this.i18n = inject(I18nService);
|
|
17
19
|
this.selectedTab = 0;
|
|
18
20
|
}
|
|
19
21
|
ngOnChanges(changes) {
|
|
@@ -41,7 +43,7 @@ export class CodeDisplayComponent {
|
|
|
41
43
|
try {
|
|
42
44
|
const code = this.props.tabs.length > 0 ? this.props.tabs[this.selectedTab]?.code : this.props.code;
|
|
43
45
|
await Clipboard.write({ string: code || '' });
|
|
44
|
-
this.presentToast('
|
|
46
|
+
this.presentToast(this.i18n.t('copiedToClipboard'));
|
|
45
47
|
}
|
|
46
48
|
catch (error) {
|
|
47
49
|
console.error('Error al copiar al portapapeles:', error);
|
|
@@ -108,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
108
110
|
}], props: [{
|
|
109
111
|
type: Input
|
|
110
112
|
}] } });
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29kZS1kaXNwbGF5L2NvZGUtZGlzcGxheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHTCxTQUFTLEVBRVQsTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sU0FBUyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRCxPQUFPLDhCQUE4QixDQUFDO0FBQ3RDLE9BQU8scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxpQ0FBaUMsQ0FBQztBQUN6QyxPQUFPLHFDQUFxQyxDQUFDOzs7QUErQjdDLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0IsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFKbEMsVUFBSyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO0lBRXFCLENBQUM7SUFFOUMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxPQUFPLENBQUMsTUFB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fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSAnQGNhcGFjaXRvci9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgVG9hc3RDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25JY29uIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgKiBhcyBQcmlzbSBmcm9tICdwcmlzbWpzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5cbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLWNzcyc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1qYXZhc2NyaXB0JztcbmltcG9ydCAncHJpc21qcy9jb21wb25lbnRzL3ByaXNtLW1hcmt1cCc7XG5pbXBvcnQgJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS10eXBlc2NyaXB0JztcbmltcG9ydCB7IENvZGVEaXNwbGF5TWV0YWRhdGEgfSBmcm9tICcuL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNvZGUtZGlzcGxheScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvbkJ1dHRvbl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvZGUtdmlld2VyLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInRhYi1iYXJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGFiXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFiIG9mIHByb3BzLnRhYnM7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaSA9PT0gc2VsZWN0ZWRUYWJcIlxuICAgICAgICAgIChjbGljayk9XCJzZWxlY3RUYWIoaSlcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWItbGFiZWxcIj57eyB0YWIubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29kZS1jb250ZW50XCI+XG4gICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJsYW5ndWFnZS1iYWRnZVwiPnt7IHByb3BzLnRhYnNbc2VsZWN0ZWRUYWJdPy5sYW5ndWFnZSB8fCBwcm9wcy5sYW5ndWFnZSB9fTwvc3Bhbj4gLS0+XG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNsYXNzPVwiY29weS1idXR0b25cIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNvcHktb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPHByZT48Y29kZSBbY2xhc3NdPVwiJ2xhbmd1YWdlLScgKyAocHJvcHMudGFic1tzZWxlY3RlZFRhYl0/Lmxhbmd1YWdlIHx8IHByb3BzLmxhbmd1YWdlKVwiICNjb2RlRWxlbWVudD48L2NvZGU+PC9wcmU+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcblxuICBzdHlsZVVybDogJy4vY29kZS1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgQ29kZURpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBAVmlld0NoaWxkKCdjb2RlRWxlbWVudCcpIGNvZGVFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQElucHV0KCkgcHJvcHM6IENvZGVEaXNwbGF5TWV0YWRhdGE7XG5cbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdENvbnRyb2xsZXIpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBzZWxlY3RlZFRhYjogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydjb2RlJ10gfHwgY2hhbmdlc1snbGFuZ3VhZ2UnXSB8fCBjaGFuZ2VzWyd0YWJzJ10pIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5oaWdobGlnaHRDb2RlKCkpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuaGlnaGxpZ2h0Q29kZSgpKTtcbiAgfVxuXG4gIHNlbGVjdFRhYihpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gaTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmhpZ2hsaWdodENvZGUoKSk7XG4gIH1cblxuICBwcml2YXRlIGhpZ2hsaWdodENvZGUoKSB7XG4gICAgaWYgKHRoaXMuY29kZUVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IGNvZGUgPSB0aGlzLnByb3BzLnRhYnMubGVuZ3RoID4gMCA/IHRoaXMucHJvcHMudGFic1t0aGlzLnNlbGVjdGVkVGFiXT8uY29kZSA6IHRoaXMucHJvcHMuY29kZTtcbiAgICAgIHRoaXMuY29kZUVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCA9IGNvZGUgfHwgJyc7XG4gICAgICBQcmlzbS5oaWdobGlnaHRFbGVtZW50KHRoaXMuY29kZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY29weVRvQ2xpcGJvYXJkKCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjb2RlID0gdGhpcy5wcm9wcy50YWJzLmxlbmd0aCA+IDAgPyB0aGlzLnByb3BzLnRhYnNbdGhpcy5zZWxlY3RlZFRhYl0/LmNvZGUgOiB0aGlzLnByb3BzLmNvZGU7XG4gICAgICBhd2FpdCBDbGlwYm9hcmQud3JpdGUoeyBzdHJpbmc6IGNvZGUgfHwgJycgfSk7XG4gICAgICB0aGlzLnByZXNlbnRUb2FzdCh0aGlzLmkxOG4udCgnY29waWVkVG9DbGlwYm9hcmQnKSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGFsIGNvcGlhciBhbCBwb3J0YXBhcGVsZXM6JywgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHByZXNlbnRUb2FzdChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBjb25zdCB0b2FzdCA9IGF3YWl0IHRoaXMudG9hc3QuY3JlYXRlKHtcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgIHBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgfSk7XG4gICAgdG9hc3QucHJlc2VudCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { Component, inject, Input } from '@angular/core';
|
|
3
3
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
4
4
|
import { IonDatetime, IonDatetimeButton, IonModal } from '@ionic/angular/standalone';
|
|
5
|
+
import { I18nService } from '../../../services/i18n';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/forms";
|
|
7
8
|
/**
|
|
@@ -15,7 +16,17 @@ import * as i1 from "@angular/forms";
|
|
|
15
16
|
* @input props: DateInputMetadata - Configuration for the date input (form control, hint, etc.)
|
|
16
17
|
*/
|
|
17
18
|
export class DateInputComponent {
|
|
18
|
-
|
|
19
|
+
/** Done button text - from props or i18n default */
|
|
20
|
+
get doneText() {
|
|
21
|
+
return this.props?.doneText || this.i18n.t('ok');
|
|
22
|
+
}
|
|
23
|
+
/** Cancel button text - from props or i18n default */
|
|
24
|
+
get cancelText() {
|
|
25
|
+
return this.props?.cancelText || this.i18n.t('cancel');
|
|
26
|
+
}
|
|
27
|
+
constructor() {
|
|
28
|
+
this.i18n = inject(I18nService);
|
|
29
|
+
}
|
|
19
30
|
ngOnInit() {
|
|
20
31
|
// Apply default values on initialization
|
|
21
32
|
if (this.props?.withDefault || this.props?.value) {
|
|
@@ -56,8 +67,8 @@ export class DateInputComponent {
|
|
|
56
67
|
locale="es-ES"
|
|
57
68
|
[firstDayOfWeek]="1"
|
|
58
69
|
[showDefaultButtons]="true"
|
|
59
|
-
doneText="
|
|
60
|
-
cancelText="
|
|
70
|
+
[doneText]="doneText"
|
|
71
|
+
[cancelText]="cancelText"
|
|
61
72
|
formatOptions="{
|
|
62
73
|
date: { dateStyle: 'medium' },
|
|
63
74
|
time: { timeStyle: 'short' }
|
|
@@ -84,8 +95,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
84
95
|
locale="es-ES"
|
|
85
96
|
[firstDayOfWeek]="1"
|
|
86
97
|
[showDefaultButtons]="true"
|
|
87
|
-
doneText="
|
|
88
|
-
cancelText="
|
|
98
|
+
[doneText]="doneText"
|
|
99
|
+
[cancelText]="cancelText"
|
|
89
100
|
formatOptions="{
|
|
90
101
|
date: { dateStyle: 'medium' },
|
|
91
102
|
time: { timeStyle: 'short' }
|
|
@@ -99,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
99
110
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
100
111
|
type: Input
|
|
101
112
|
}] } });
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBa0NyRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBVzdCLG9EQUFvRDtJQUNwRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxzREFBc0Q7SUFDdEQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7UUFaUSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBWXBCLENBQUM7SUFFaEIsUUFBUTtRQUNOLHlDQUF5QztRQUN6QyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztZQUFFLE9BQU87UUFFaEMsSUFBSSxZQUFZLEdBQWtCLElBQUksQ0FBQztRQUV2QyxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFELENBQUM7YUFBTSxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDdEQsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDM0MsWUFBWSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUMsQ0FBQztJQUNILENBQUM7K0dBakRVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHNHQXJDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVCxzeEZBekJTLFlBQVksOEJBQUUsbUJBQW1CLDBUQUFFLFdBQVcsb2hCQUFFLGlCQUFpQixtSEFBRSxRQUFROzs0RkFzQzFFLGtCQUFrQjtrQkF6QzlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLENBQUMsWUFDNUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDt3REFvQlEsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uRGF0ZXRpbWUsIElvbkRhdGV0aW1lQnV0dG9uLCBJb25Nb2RhbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IERhdGVJbnB1dE1ldGFkYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1kYXRlLWlucHV0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgSW9uRGF0ZXRpbWUsIElvbkRhdGV0aW1lQnV0dG9uLCBJb25Nb2RhbF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImJ1dHRvbi1jb250YWluZXJcIj5cbiAgICAgIDxpb24tZGF0ZXRpbWUtYnV0dG9uIGNsYXNzPVwiYWN0aW9uXCIgW2RhdGV0aW1lXT1cInByb3BzLnRva2VuXCI+PC9pb24tZGF0ZXRpbWUtYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxpb24tbW9kYWwgW2tlZXBDb250ZW50c01vdW50ZWRdPVwidHJ1ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWRhdGV0aW1lXG4gICAgICAgICAgW2Zvcm1Db250cm9sXT1cInByb3BzLmNvbnRyb2xcIlxuICAgICAgICAgIFtpZF09XCJwcm9wcy50b2tlblwiXG4gICAgICAgICAgcHJlc2VudGF0aW9uPVwiZGF0ZVwiXG4gICAgICAgICAgbG9jYWxlPVwiZXMtRVNcIlxuICAgICAgICAgIFtmaXJzdERheU9mV2Vla109XCIxXCJcbiAgICAgICAgICBbc2hvd0RlZmF1bHRCdXR0b25zXT1cInRydWVcIlxuICAgICAgICAgIFtkb25lVGV4dF09XCJkb25lVGV4dFwiXG4gICAgICAgICAgW2NhbmNlbFRleHRdPVwiY2FuY2VsVGV4dFwiXG4gICAgICAgICAgZm9ybWF0T3B0aW9ucz1cIntcbiAgICAgICAgICAgIGRhdGU6IHsgZGF0ZVN0eWxlOiAnbWVkaXVtJyB9LFxuICAgICAgICAgICAgdGltZTogeyB0aW1lU3R5bGU6ICdzaG9ydCcgfVxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gc2xvdD1cInRpdGxlXCI+e3sgcHJvcHMuaGludCB9fTwvc3Bhbj5cbiAgICAgICAgPC9pb24tZGF0ZXRpbWU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvaW9uLW1vZGFsPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtZGF0ZS1pbnB1dFxuICpcbiAqIEEgZGF0ZSBwaWNrZXIgaW5wdXQgaW50ZWdyYXRlZCB3aXRoIEFuZ3VsYXIgZm9ybXMsIHVzaW5nIElvbmljJ3MgZGF0ZXRpbWUgY29tcG9uZW50LlxuICpcbiAqIEBleGFtcGxlXG4gKiA8dmFsLWRhdGUtaW5wdXQgW3Byb3BzXT1cInsgY29udHJvbDogbXlDb250cm9sLCBoaW50OiAnU2VsZWN0IGEgZGF0ZScgfVwiPjwvdmFsLWRhdGUtaW5wdXQ+XG4gKlxuICogQGlucHV0IHByb3BzOiBEYXRlSW5wdXRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBkYXRlIGlucHV0IChmb3JtIGNvbnRyb2wsIGhpbnQsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvKipcbiAgICogSW5wdXQgY29uZmlndXJhdGlvbiBvYmplY3QuXG4gICAqIEB0eXBlIHtEYXRlSW5wdXRNZXRhZGF0YX1cbiAgICogQHByb3BlcnR5IGNvbnRyb2wgLSBUaGUgQW5ndWxhciBGb3JtQ29udHJvbCBmb3IgdGhlIGRhdGUgaW5wdXQuXG4gICAqIEBwcm9wZXJ0eSBoaW50IC0gVGhlIGhpbnQgdGV4dCBmb3IgdGhlIGlucHV0LlxuICAgKi9cbiAgQElucHV0KCkgcHJvcHM6IERhdGVJbnB1dE1ldGFkYXRhO1xuXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgLyoqIERvbmUgYnV0dG9uIHRleHQgLSBmcm9tIHByb3BzIG9yIGkxOG4gZGVmYXVsdCAqL1xuICBnZXQgZG9uZVRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8uZG9uZVRleHQgfHwgdGhpcy5pMThuLnQoJ29rJyk7XG4gIH1cblxuICAvKiogQ2FuY2VsIGJ1dHRvbiB0ZXh0IC0gZnJvbSBwcm9wcyBvciBpMThuIGRlZmF1bHQgKi9cbiAgZ2V0IGNhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcz8uY2FuY2VsVGV4dCB8fCB0aGlzLmkxOG4udCgnY2FuY2VsJyk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gQXBwbHkgZGVmYXVsdCB2YWx1ZXMgb24gaW5pdGlhbGl6YXRpb25cbiAgICBpZiAodGhpcy5wcm9wcz8ud2l0aERlZmF1bHQgfHwgdGhpcy5wcm9wcz8udmFsdWUpIHtcbiAgICAgIHRoaXMuYXBwbHlEZWZhdWx0VmFsdWUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RGVmYXVsdFZhbHVlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy5jb250cm9sKSByZXR1cm47XG5cbiAgICBsZXQgZGVmYXVsdFZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8vIEV4cGxpY2l0IHZhbHVlIHRha2VzIHByZWNlZGVuY2VcbiAgICBpZiAodGhpcy5wcm9wcy52YWx1ZSkge1xuICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUodGhpcy5wcm9wcy52YWx1ZSkudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLnByb3BzLndpdGhEZWZhdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgZGVmYXVsdFZhbHVlID0gbmV3IERhdGUodGhpcy5wcm9wcy53aXRoRGVmYXVsdCkudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvcHMud2l0aERlZmF1bHQgPT09IHRydWUpIHtcbiAgICAgIGRlZmF1bHRWYWx1ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBpZiAoZGVmYXVsdFZhbHVlKSB7XG4gICAgICB0aGlzLnByb3BzLmNvbnRyb2wuc2V0VmFsdWUoZGVmYXVsdFZhbHVlKTtcbiAgICAgIHRoaXMucHJvcHMuY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgdGhpcy5wcm9wcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|