valtech-components 4.0.42 → 4.0.45
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/organisms/account-view/account-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/auth-cta/auth-cta.component.mjs +23 -7
- package/esm2022/lib/components/organisms/auth-cta/types.mjs +1 -1
- package/esm2022/lib/components/organisms/change-email-modal/change-email-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/change-password-modal/change-password-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/delete-account-modal/delete-account-modal.component.mjs +3 -3
- package/esm2022/lib/components/organisms/organization-view/organization-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.component.mjs +30 -6
- package/esm2022/lib/components/organisms/switch-org-modal/switch-org-modal.i18n.mjs +3 -1
- package/esm2022/lib/services/auth/auth.service.mjs +26 -28
- package/esm2022/lib/services/auth/oauth-callback.component.mjs +13 -11
- package/esm2022/lib/services/auth/oauth.service.mjs +10 -14
- package/esm2022/lib/services/auth/storage.service.mjs +7 -11
- package/esm2022/lib/services/firebase/config.mjs +5 -5
- package/esm2022/lib/services/theme.service.mjs +1 -3
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +1 -2
- package/fesm2022/valtech-components.mjs +119 -129
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/auth-cta/types.d.ts +5 -1
- package/lib/components/organisms/switch-org-modal/switch-org-modal.component.d.ts +4 -1
- package/lib/services/auth/oauth.service.d.ts +7 -6
- package/lib/services/auth/storage.service.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +0 -1
- package/src/lib/services/firebase/firebase-messaging-sw.js +145 -0
- package/esm2022/lib/components/atoms/splash/splash.component.mjs +0 -45
- package/lib/components/atoms/splash/splash.component.d.ts +0 -23
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Component } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { SplashComponent } from '../../components/atoms/splash/splash.component';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
/**
|
|
6
5
|
* Componente de callback para OAuth.
|
|
@@ -181,17 +180,20 @@ export class OAuthCallbackComponent {
|
|
|
181
180
|
}, 500);
|
|
182
181
|
}
|
|
183
182
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
184
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template:
|
|
183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OAuthCallbackComponent, isStandalone: true, selector: "val-oauth-callback", ngImport: i0, template: `
|
|
184
|
+
<div class="oauth-callback">
|
|
185
|
+
<div class="oauth-callback__spinner"></div>
|
|
186
|
+
<p class="oauth-callback__text">{{ message }}</p>
|
|
187
|
+
</div>
|
|
188
|
+
`, isInline: true, styles: [".oauth-callback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.oauth-callback__spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.oauth-callback__text{color:#666;font-size:14px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
|
|
185
189
|
}
|
|
186
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OAuthCallbackComponent, decorators: [{
|
|
187
191
|
type: Component,
|
|
188
|
-
args: [{
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
template: `<val-splash />`,
|
|
195
|
-
}]
|
|
192
|
+
args: [{ selector: 'val-oauth-callback', standalone: true, imports: [CommonModule], template: `
|
|
193
|
+
<div class="oauth-callback">
|
|
194
|
+
<div class="oauth-callback__spinner"></div>
|
|
195
|
+
<p class="oauth-callback__text">{{ message }}</p>
|
|
196
|
+
</div>
|
|
197
|
+
`, styles: [".oauth-callback{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.oauth-callback__spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.oauth-callback__text{color:#666;font-size:14px}\n"] }]
|
|
196
198
|
}] });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7O0FBRWpGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQVJuQztRQVNFLFlBQU8sR0FBRyw2QkFBNkIsQ0FBQztRQUV4Qzs7OztXQUlHO1FBQ0ssZ0JBQVcsR0FBa0IsSUFBSSxDQUFDO0tBOEozQztJQTVKQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTlDLGlDQUFpQztRQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxFQUFFO1lBQ2xELEdBQUcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUk7WUFDekIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO1lBQzFDLGVBQWUsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUM1QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQzlDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMs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LEVBQUU7WUFDZCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbEIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDOytHQXJLVSxzQkFBc0I7bUdBQXRCLHNCQUFzQiw4RUFGdkIsZ0JBQWdCLDJEQUhoQixZQUFZLCtCQUFFLGVBQWU7OzRGQUs1QixzQkFBc0I7a0JBUmxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUM7b0JBQ3hDLCtFQUErRTtvQkFDL0UsaUZBQWlGO29CQUNqRixRQUFRLEVBQUUsZ0JBQWdCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNwbGFzaENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYXRvbXMvc3BsYXNoL3NwbGFzaC5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudGUgZGUgY2FsbGJhY2sgcGFyYSBPQXV0aC5cbiAqXG4gKiBFc3RlIGNvbXBvbmVudGUgcHJvY2VzYSBsYSByZXNwdWVzdGEgZGVsIHNlcnZpZG9yIE9BdXRoIHkgZW52w61hXG4gKiBsb3MgdG9rZW5zIGEgbGEgdmVudGFuYSBwYWRyZSB2aWEgcG9zdE1lc3NhZ2UuXG4gKlxuICogRGViZSBhZ3JlZ2Fyc2UgYSBsYXMgcnV0YXMgZGUgbGEgYXBsaWNhY2nDs246XG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBhcHAucm91dGVzLnRzXG4gKiBpbXBvcnQgeyBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0gZnJvbSAndmFsdGVjaC1jb21wb25lbnRzJztcbiAqXG4gKiBleHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gKiAgIHsgcGF0aDogJ2F1dGgvb2F1dGgvY2FsbGJhY2snLCBjb21wb25lbnQ6IE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgfSxcbiAqICAgLy8gLi4uIG90cmFzIHJ1dGFzXG4gKiBdO1xuICogYGBgXG4gKlxuICogRWwgYmFja2VuZCByZWRpcmlnZSBhIGVzdGEgcnV0YSBjb24gbG9zIHRva2VucyBlbiBxdWVyeSBwYXJhbXM6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/YWNjZXNzX3Rva2VuPXh4eCZyZWZyZXNoX3Rva2VuPXh4eCZleHBpcmVzX2luPTkwMGBcbiAqXG4gKiBPIGNvbiBlcnJvcjpcbiAqIGAvYXV0aC9vYXV0aC9jYWxsYmFjaz9lcnJvcj1JTlZBTElEX0NPREUmZXJyb3JfZGVzY3JpcHRpb249Li4uYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtb2F1dGgtY2FsbGJhY2snLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBTcGxhc2hDb21wb25lbnRdLFxuICAvLyBNaXNtbyBzcGxhc2ggZGUgYXJyYW5xdWUgZGUgbGEgYXBwIChsb2dvICsgcHVsc2UpIGVuIHZleiBkZSB1biBsb2FkZXIgcHJvcGlvXG4gIC8vIGNhc2ktZHVwbGljYWRvOiBlbCBjYWxsYmFjayBPQXV0aCBlcyB1bmEgY2FyZ2EgZnVuZGFtZW50YWwgeSBkZWJlIHZlcnNlIGlndWFsLlxuICB0ZW1wbGF0ZTogYDx2YWwtc3BsYXNoIC8+YCxcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDYWxsYmFja0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIG1lc3NhZ2UgPSAnUHJvY2VzYW5kbyBhdXRlbnRpY2FjacOzbi4uLic7XG5cbiAgLyoqXG4gICAqIE5vbmNlIHF1ZSBlbCBvcGVuZXIgZ2VuZXLDsyB5IHBhc8OzIHBvciBlbCBmbHVqbyAocm91bmQtdHJpcCBiYWNrZW5kKS4gU2VcbiAgICogcmVlbnbDrWEgYWwgb3BlbmVyIGVuIGNhZGEgbWVuc2FqZSBwYXJhIHF1ZSB2ZXJpZmlxdWUgZWwgb3JpZ2VuIGRlbCBjYWxsYmFja1xuICAgKiB5IHJlY2hhY2UgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIChNLTA3KS5cbiAgICovXG4gIHByaXZhdGUgY2xpZW50Tm9uY2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucHJvY2Vzc0NhbGxiYWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIHRoaXMuY2xpZW50Tm9uY2UgPSBwYXJhbXMuZ2V0KCdjbGllbnRfbm9uY2UnKTtcblxuICAgIC8vIERFQlVHOiBMb2cgYWxsIHJlY2VpdmVkIHBhcmFtc1xuICAgIGNvbnNvbGUubG9nKCdbT0F1dGhDYWxsYmFja10gVVJMIHBhcmFtcyByZWNlaXZlZDonLCB7XG4gICAgICB1cmw6IHdpbmRvdy5sb2NhdGlvbi5ocmVmLFxuICAgICAgaGFzQWNjZXNzVG9rZW46IHBhcmFtcy5oYXMoJ2FjY2Vzc190b2tlbicpLFxuICAgICAgaGFzUmVmcmVzaFRva2VuOiBwYXJhbXMuaGFzKCdyZWZyZXNoX3Rva2VuJyksXG4gICAgICBoYXNGaXJlYmFzZVRva2VuOiBwYXJhbXMuaGFzKCdmaXJlYmFzZV90b2tlbicpLFxuICAgICAgZmlyZWJhc2VUb2tlbkxlbmd0aDogcGFyYW1zLmdldCgnZmlyZWJhc2VfdG9rZW4nKT8ubGVuZ3RoIHx8IDAsXG4gICAgICBlcnJvcjogcGFyYW1zLmdldCgnZXJyb3InKSxcbiAgICB9KTtcblxuICAgIC8vIFZlcmlmaWNhciBzaSBoYXkgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHBhcmFtcy5nZXQoJ2Vycm9yJyk7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogZXJyb3IsXG4gICAgICAgICAgbWVzc2FnZTogcGFyYW1zLmdldCgnZXJyb3JfZGVzY3JpcHRpb24nKSB8fCAnRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbic7XG4gICAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE1GQSByZXF1ZXJpZG8g4oCUIGVsIGJhY2tlbmQgcmVkaXJpZ2Ugc2luIHRva2VucywgY29uIG1mYV90b2tlbi4gRWwgZmx1am9cbiAgICAvLyBjb250aW7DumEgY29uIGVsIGNoYWxsZW5nZSBNRkEgKEF1dGhTZXJ2aWNlLnNldE1GQVBlbmRpbmcg4oaSIG1vZGFsIHZlcmlmeSkuXG4gICAgaWYgKHBhcmFtcy5nZXQoJ21mYV9yZXF1aXJlZCcpID09PSAndHJ1ZScpIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgdG9rZW5zOiB7XG4gICAgICAgICAgYWNjZXNzVG9rZW46ICcnLFxuICAgICAgICAgIHJlZnJlc2hUb2tlbjogJycsXG4gICAgICAgICAgZXhwaXJlc0luOiAwLFxuICAgICAgICAgIG1mYVJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgIG1mYVRva2VuOiBwYXJhbXMuZ2V0KCdtZmFfdG9rZW4nKSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgbWZhTWV0aG9kOiAocGFyYW1zLmdldCgnbWZhX21ldGhvZCcpIGFzIE1GQU1ldGhvZCkgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnVmVyaWZpY2FjacOzbiBhZGljaW9uYWwgcmVxdWVyaWRhJztcbiAgICAgIHRoaXMuY2xvc2VBZnRlckRlbGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gRXh0cmFlciB0b2tlbnNcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHBhcmFtcy5nZXQoJ2FjY2Vzc190b2tlbicpO1xuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHBhcmFtcy5nZXQoJ3JlZnJlc2hfdG9rZW4nKTtcbiAgICBjb25zdCBleHBpcmVzSW4gPSBwYXJhbXMuZ2V0KCdleHBpcmVzX2luJyk7XG4gICAgY29uc3QgZmlyZWJhc2VUb2tlbiA9IHBhcmFtcy5nZXQoJ2ZpcmViYXNlX3Rva2VuJyk7XG5cbiAgICBpZiAoIWFjY2Vzc1Rva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgICAgdHlwZTogJ29hdXRoLWNhbGxiYWNrJyxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiAnTUlTU0lOR19UT0tFTlMnLFxuICAgICAgICAgIG1lc3NhZ2U6ICdObyBzZSByZWNpYmllcm9uIGxvcyB0b2tlbnMgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICB9IGFzIE9BdXRoRXJyb3IsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWVzc2FnZSA9ICdFcnJvcjogdG9rZW5zIG5vIHJlY2liaWRvcyc7XG4gICAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgcm9sZXMgeSBwZXJtaXNvcyAocHVlZGVuIHZlbmlyIGNvbW8gSlNPTiBlbiBiYXNlNjQpXG4gICAgbGV0IHJvbGVzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcbiAgICBsZXQgcGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgcm9sZXNQYXJhbSA9IHBhcmFtcy5nZXQoJ3JvbGVzJyk7XG4gICAgY29uc3QgcGVybWlzc2lvbnNQYXJhbSA9IHBhcmFtcy5nZXQoJ3Blcm1pc3Npb25zJyk7XG5cbiAgICBpZiAocm9sZXNQYXJhbSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcm9sZXMgPSBKU09OLnBhcnNlKGF0b2Iocm9sZXNQYXJhbSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHJvbGVzID0gcm9sZXNQYXJhbS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwZXJtaXNzaW9uc1BhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICBwZXJtaXNzaW9ucyA9IEpTT04ucGFyc2UoYXRvYihwZXJtaXNzaW9uc1BhcmFtKSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9uc1BhcmFtLnNwbGl0KCcsJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRW52aWFyIHRva2VucyBhIGxhIHZlbnRhbmEgcGFkcmVcbiAgICBjb25zdCByZXN1bHQ6IE9BdXRoUmVzdWx0ID0ge1xuICAgICAgYWNjZXNzVG9rZW4sXG4gICAgICByZWZyZXNoVG9rZW4sXG4gICAgICBleHBpcmVzSW46IGV4cGlyZXNJbiA/IHBhcnNlSW50KGV4cGlyZXNJbiwgMTApIDogOTAwLFxuICAgICAgZmlyZWJhc2VUb2tlbjogZmlyZWJhc2VUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICByb2xlcyxcbiAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgaXNOZXdVc2VyOiBwYXJhbXMuZ2V0KCdpc19uZXdfdXNlcicpID09PSAndHJ1ZScsXG4gICAgICBsaW5rZWQ6IHBhcmFtcy5nZXQoJ2xpbmtlZCcpID09PSAndHJ1ZScsXG4gICAgfTtcblxuICAgIHRoaXMuc2VuZFRvUGFyZW50KHtcbiAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICB0b2tlbnM6IHJlc3VsdCxcbiAgICB9KTtcblxuICAgIHRoaXMubWVzc2FnZSA9ICdBdXRlbnRpY2FjacOzbiBleGl0b3NhJztcbiAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZW5kVG9QYXJlbnQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiB2b2lkIHtcbiAgICAvLyBBZGp1bnRhciBlbCBub25jZSBkZWwgb3BlbmVyIChNLTA3KSBhIFRPRE8gbWVuc2FqZSAoc3VjY2VzcywgTUZBLCBlcnJvcilcbiAgICAvLyBwYXJhIHF1ZSBlbCBvcGVuZXIgdmVyaWZpcXVlIHF1ZSBlbCBjYWxsYmFjayBlcyBkZSBzdSBwcm9waW8gZmx1am8uXG4gICAgaWYgKHRoaXMuY2xpZW50Tm9uY2UpIHtcbiAgICAgIGRhdGEubm9uY2UgPSB0aGlzLmNsaWVudE5vbmNlO1xuICAgIH1cblxuICAgIC8vIFNpZW1wcmUgZ3VhcmRhciBlbiBsb2NhbFN0b3JhZ2UgY29tbyBmYWxsYmFjayAocGFyYSBDT09QIGlzc3VlcylcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnb2F1dGhfY2FsbGJhY2tfdGltZXN0YW1wJywgRGF0ZS5ub3coKS50b1N0cmluZygpKTtcbiAgICAgIGNvbnNvbGUubG9nKCdbT0F1dGhDYWxsYmFja10gU2F2ZWQgdG8gbG9jYWxTdG9yYWdlIGFzIGZhbGxiYWNrJyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS53YXJuKCdbT0F1dGhDYWxsYmFja10gQ291bGQgbm90IHNhdmUgdG8gbG9jYWxTdG9yYWdlOicsIGUpO1xuICAgIH1cblxuICAgIC8vIEludGVudGFyIHBvc3RNZXNzYWdlIChwdWVkZSBmYWxsYXIgcG9yIENPT1ApXG4gICAgdHJ5IHtcbiAgICAgIGlmICh3aW5kb3cub3BlbmVyICYmICF3aW5kb3cub3BlbmVyLmNsb3NlZCkge1xuICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIHNlbnQgdG8gb3BlbmVyJyk7XG4gICAgICB9IGVsc2UgaWYgKHdpbmRvdy5wYXJlbnQgIT09IHdpbmRvdykge1xuICAgICAgICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGRhdGEsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIHNlbnQgdG8gcGFyZW50Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIE5vIG9wZW5lci9wYXJlbnQgYXZhaWxhYmxlLCB1c2luZyBsb2NhbFN0b3JhZ2Ugb25seScpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vIENPT1AgYmxvY2tzIHBvc3RNZXNzYWdlIC0gbG9jYWxTdG9yYWdlIGZhbGxiYWNrIGFscmVhZHkgc2F2ZWRcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoQ2FsbGJhY2tdIHBvc3RNZXNzYWdlIGJsb2NrZWQgKENPT1ApLCB1c2luZyBsb2NhbFN0b3JhZ2UgZmFsbGJhY2s6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUFmdGVyRGVsYXkoKTogdm9pZCB7XG4gICAgLy8gRGFyIHRpZW1wbyBwYXJhIHF1ZSBlbCBtZW5zYWplIHNlIGVudsOtZSBhbnRlcyBkZSBjZXJyYXJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh3aW5kb3cub3BlbmVyKSB7XG4gICAgICAgIHdpbmRvdy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0sIDUwMCk7XG4gIH1cbn1cbiJdfQ==
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY2FsbGJhY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL29hdXRoLWNhbGxiYWNrLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFHL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFnREgsTUFBTSxPQUFPLHNCQUFzQjtJQS9DbkM7UUFnREUsWUFBTyxHQUFHLDZCQUE2QixDQUFDO1FBRXhDOzs7O1dBSUc7UUFDSyxnQkFBVyxHQUFrQixJQUFJLENBQUM7S0E4SjNDO0lBNUpDLFFBQVE7UUFDTixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGVBQWU7UUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUMsaUNBQWlDO1FBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsc0NBQXNDLEVBQUU7WUFDbEQsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUN6QixjQUFjLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7WUFDMUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQzVDLGdCQUFnQixFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDOUMsbUJBQW1CLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDO1lBQzlELEtB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O2dCQUNsQixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsQ0FBQztRQUNILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7K0dBcktVLHNCQUFzQjttR0FBdEIsc0JBQXNCLDhFQTNDdkI7Ozs7O0dBS1QsOGhCQU5TLFlBQVk7OzRGQTRDWCxzQkFBc0I7a0JBL0NsQyxTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7R0FLVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTUZBTWV0aG9kLCBPQXV0aENhbGxiYWNrRGF0YSwgT0F1dGhSZXN1bHQsIE9BdXRoRXJyb3IgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDb21wb25lbnRlIGRlIGNhbGxiYWNrIHBhcmEgT0F1dGguXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIHByb2Nlc2EgbGEgcmVzcHVlc3RhIGRlbCBzZXJ2aWRvciBPQXV0aCB5IGVudsOtYVxuICogbG9zIHRva2VucyBhIGxhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlLlxuICpcbiAqIERlYmUgYWdyZWdhcnNlIGEgbGFzIHJ1dGFzIGRlIGxhIGFwbGljYWNpw7NuOlxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gYXBwLnJvdXRlcy50c1xuICogaW1wb3J0IHsgT0F1dGhDYWxsYmFja0NvbXBvbmVudCB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKlxuICogZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICogICB7IHBhdGg6ICdhdXRoL29hdXRoL2NhbGxiYWNrJywgY29tcG9uZW50OiBPQXV0aENhbGxiYWNrQ29tcG9uZW50IH0sXG4gKiAgIC8vIC4uLiBvdHJhcyBydXRhc1xuICogXTtcbiAqIGBgYFxuICpcbiAqIEVsIGJhY2tlbmQgcmVkaXJpZ2UgYSBlc3RhIHJ1dGEgY29uIGxvcyB0b2tlbnMgZW4gcXVlcnkgcGFyYW1zOlxuICogYC9hdXRoL29hdXRoL2NhbGxiYWNrP2FjY2Vzc190b2tlbj14eHgmcmVmcmVzaF90b2tlbj14eHgmZXhwaXJlc19pbj05MDBgXG4gKlxuICogTyBjb24gZXJyb3I6XG4gKiBgL2F1dGgvb2F1dGgvY2FsbGJhY2s/ZXJyb3I9SU5WQUxJRF9DT0RFJmVycm9yX2Rlc2NyaXB0aW9uPS4uLmBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLW9hdXRoLWNhbGxiYWNrJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIm9hdXRoLWNhbGxiYWNrXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwib2F1dGgtY2FsbGJhY2tfX3NwaW5uZXJcIj48L2Rpdj5cbiAgICAgIDxwIGNsYXNzPVwib2F1dGgtY2FsbGJhY2tfX3RleHRcIj57eyBtZXNzYWdlIH19PC9wPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAub2F1dGgtY2FsbGJhY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgJ1NlZ29lIFVJJywgUm9ib3RvLCBzYW5zLXNlcmlmO1xuICAgICAgfVxuXG4gICAgICAub2F1dGgtY2FsbGJhY2tfX3NwaW5uZXIge1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBib3JkZXI6IDNweCBzb2xpZCAjZjNmM2YzO1xuICAgICAgICBib3JkZXItdG9wOiAzcHggc29saWQgIzM0OThkYjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBhbmltYXRpb246IHNwaW4gMXMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuXG4gICAgICBAa2V5ZnJhbWVzIHNwaW4ge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIH1cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub2F1dGgtY2FsbGJhY2tfX3RleHQge1xuICAgICAgICBjb2xvcjogIzY2NjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9BdXRoQ2FsbGJhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBtZXNzYWdlID0gJ1Byb2Nlc2FuZG8gYXV0ZW50aWNhY2nDs24uLi4nO1xuXG4gIC8qKlxuICAgKiBOb25jZSBxdWUgZWwgb3BlbmVyIGdlbmVyw7MgeSBwYXPDsyBwb3IgZWwgZmx1am8gKHJvdW5kLXRyaXAgYmFja2VuZCkuIFNlXG4gICAqIHJlZW52w61hIGFsIG9wZW5lciBlbiBjYWRhIG1lbnNhamUgcGFyYSBxdWUgdmVyaWZpcXVlIGVsIG9yaWdlbiBkZWwgY2FsbGJhY2tcbiAgICogeSByZWNoYWNlIHVuIG9hdXRoX2NhbGxiYWNrX2RhdGEgZm9yamFkbyBlbiBsb2NhbFN0b3JhZ2UgcG9yIFhTUyAoTS0wNykuXG4gICAqL1xuICBwcml2YXRlIGNsaWVudE5vbmNlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnByb2Nlc3NDYWxsYmFjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICB0aGlzLmNsaWVudE5vbmNlID0gcGFyYW1zLmdldCgnY2xpZW50X25vbmNlJyk7XG5cbiAgICAvLyBERUJVRzogTG9nIGFsbCByZWNlaXZlZCBwYXJhbXNcbiAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIFVSTCBwYXJhbXMgcmVjZWl2ZWQ6Jywge1xuICAgICAgdXJsOiB3aW5kb3cubG9jYXRpb24uaHJlZixcbiAgICAgIGhhc0FjY2Vzc1Rva2VuOiBwYXJhbXMuaGFzKCdhY2Nlc3NfdG9rZW4nKSxcbiAgICAgIGhhc1JlZnJlc2hUb2tlbjogcGFyYW1zLmhhcygncmVmcmVzaF90b2tlbicpLFxuICAgICAgaGFzRmlyZWJhc2VUb2tlbjogcGFyYW1zLmhhcygnZmlyZWJhc2VfdG9rZW4nKSxcbiAgICAgIGZpcmViYXNlVG9rZW5MZW5ndGg6IHBhcmFtcy5nZXQoJ2ZpcmViYXNlX3Rva2VuJyk/Lmxlbmd0aCB8fCAwLFxuICAgICAgZXJyb3I6IHBhcmFtcy5nZXQoJ2Vycm9yJyksXG4gICAgfSk7XG5cbiAgICAvLyBWZXJpZmljYXIgc2kgaGF5IGVycm9yXG4gICAgY29uc3QgZXJyb3IgPSBwYXJhbXMuZ2V0KCdlcnJvcicpO1xuICAgIGlmIChlcnJvcikge1xuICAgICAgdGhpcy5zZW5kVG9QYXJlbnQoe1xuICAgICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgICBlcnJvcjoge1xuICAgICAgICAgIGNvZGU6IGVycm9yLFxuICAgICAgICAgIG1lc3NhZ2U6IHBhcmFtcy5nZXQoJ2Vycm9yX2Rlc2NyaXB0aW9uJykgfHwgJ0Vycm9yIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnRXJyb3IgZGUgYXV0ZW50aWNhY2nDs24nO1xuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBNRkEgcmVxdWVyaWRvIOKAlCBlbCBiYWNrZW5kIHJlZGlyaWdlIHNpbiB0b2tlbnMsIGNvbiBtZmFfdG9rZW4uIEVsIGZsdWpvXG4gICAgLy8gY29udGluw7phIGNvbiBlbCBjaGFsbGVuZ2UgTUZBIChBdXRoU2VydmljZS5zZXRNRkFQZW5kaW5nIOKGkiBtb2RhbCB2ZXJpZnkpLlxuICAgIGlmIChwYXJhbXMuZ2V0KCdtZmFfcmVxdWlyZWQnKSA9PT0gJ3RydWUnKSB7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIHRva2Vuczoge1xuICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJyxcbiAgICAgICAgICByZWZyZXNoVG9rZW46ICcnLFxuICAgICAgICAgIGV4cGlyZXNJbjogMCxcbiAgICAgICAgICBtZmFSZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICBtZmFUb2tlbjogcGFyYW1zLmdldCgnbWZhX3Rva2VuJykgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIG1mYU1ldGhvZDogKHBhcmFtcy5nZXQoJ21mYV9tZXRob2QnKSBhcyBNRkFNZXRob2QpIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tZXNzYWdlID0gJ1ZlcmlmaWNhY2nDs24gYWRpY2lvbmFsIHJlcXVlcmlkYSc7XG4gICAgICB0aGlzLmNsb3NlQWZ0ZXJEZWxheSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEV4dHJhZXIgdG9rZW5zXG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSBwYXJhbXMuZ2V0KCdhY2Nlc3NfdG9rZW4nKTtcbiAgICBjb25zdCByZWZyZXNoVG9rZW4gPSBwYXJhbXMuZ2V0KCdyZWZyZXNoX3Rva2VuJyk7XG4gICAgY29uc3QgZXhwaXJlc0luID0gcGFyYW1zLmdldCgnZXhwaXJlc19pbicpO1xuICAgIGNvbnN0IGZpcmViYXNlVG9rZW4gPSBwYXJhbXMuZ2V0KCdmaXJlYmFzZV90b2tlbicpO1xuXG4gICAgaWYgKCFhY2Nlc3NUb2tlbiB8fCAhcmVmcmVzaFRva2VuKSB7XG4gICAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICAgIHR5cGU6ICdvYXV0aC1jYWxsYmFjaycsXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogJ01JU1NJTkdfVE9LRU5TJyxcbiAgICAgICAgICBtZXNzYWdlOiAnTm8gc2UgcmVjaWJpZXJvbiBsb3MgdG9rZW5zIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSAnRXJyb3I6IHRva2VucyBubyByZWNpYmlkb3MnO1xuICAgICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWVyIHJvbGVzIHkgcGVybWlzb3MgKHB1ZWRlbiB2ZW5pciBjb21vIEpTT04gZW4gYmFzZTY0KVxuICAgIGxldCByb2xlczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gICAgbGV0IHBlcm1pc3Npb25zOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJvbGVzUGFyYW0gPSBwYXJhbXMuZ2V0KCdyb2xlcycpO1xuICAgIGNvbnN0IHBlcm1pc3Npb25zUGFyYW0gPSBwYXJhbXMuZ2V0KCdwZXJtaXNzaW9ucycpO1xuXG4gICAgaWYgKHJvbGVzUGFyYW0pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJvbGVzID0gSlNPTi5wYXJzZShhdG9iKHJvbGVzUGFyYW0pKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByb2xlcyA9IHJvbGVzUGFyYW0uc3BsaXQoJywnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAocGVybWlzc2lvbnNQYXJhbSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcGVybWlzc2lvbnMgPSBKU09OLnBhcnNlKGF0b2IocGVybWlzc2lvbnNQYXJhbSkpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHBlcm1pc3Npb25zID0gcGVybWlzc2lvbnNQYXJhbS5zcGxpdCgnLCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEVudmlhciB0b2tlbnMgYSBsYSB2ZW50YW5hIHBhZHJlXG4gICAgY29uc3QgcmVzdWx0OiBPQXV0aFJlc3VsdCA9IHtcbiAgICAgIGFjY2Vzc1Rva2VuLFxuICAgICAgcmVmcmVzaFRva2VuLFxuICAgICAgZXhwaXJlc0luOiBleHBpcmVzSW4gPyBwYXJzZUludChleHBpcmVzSW4sIDEwKSA6IDkwMCxcbiAgICAgIGZpcmViYXNlVG9rZW46IGZpcmViYXNlVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgcm9sZXMsXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIGlzTmV3VXNlcjogcGFyYW1zLmdldCgnaXNfbmV3X3VzZXInKSA9PT0gJ3RydWUnLFxuICAgICAgbGlua2VkOiBwYXJhbXMuZ2V0KCdsaW5rZWQnKSA9PT0gJ3RydWUnLFxuICAgIH07XG5cbiAgICB0aGlzLnNlbmRUb1BhcmVudCh7XG4gICAgICB0eXBlOiAnb2F1dGgtY2FsbGJhY2snLFxuICAgICAgdG9rZW5zOiByZXN1bHQsXG4gICAgfSk7XG5cbiAgICB0aGlzLm1lc3NhZ2UgPSAnQXV0ZW50aWNhY2nDs24gZXhpdG9zYSc7XG4gICAgdGhpcy5jbG9zZUFmdGVyRGVsYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZFRvUGFyZW50KGRhdGE6IE9BdXRoQ2FsbGJhY2tEYXRhKTogdm9pZCB7XG4gICAgLy8gQWRqdW50YXIgZWwgbm9uY2UgZGVsIG9wZW5lciAoTS0wNykgYSBUT0RPIG1lbnNhamUgKHN1Y2Nlc3MsIE1GQSwgZXJyb3IpXG4gICAgLy8gcGFyYSBxdWUgZWwgb3BlbmVyIHZlcmlmaXF1ZSBxdWUgZWwgY2FsbGJhY2sgZXMgZGUgc3UgcHJvcGlvIGZsdWpvLlxuICAgIGlmICh0aGlzLmNsaWVudE5vbmNlKSB7XG4gICAgICBkYXRhLm5vbmNlID0gdGhpcy5jbGllbnROb25jZTtcbiAgICB9XG5cbiAgICAvLyBTaWVtcHJlIGd1YXJkYXIgZW4gbG9jYWxTdG9yYWdlIGNvbW8gZmFsbGJhY2sgKHBhcmEgQ09PUCBpc3N1ZXMpXG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX3RpbWVzdGFtcCcsIERhdGUubm93KCkudG9TdHJpbmcoKSk7XG4gICAgICBjb25zb2xlLmxvZygnW09BdXRoQ2FsbGJhY2tdIFNhdmVkIHRvIGxvY2FsU3RvcmFnZSBhcyBmYWxsYmFjaycpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoQ2FsbGJhY2tdIENvdWxkIG5vdCBzYXZlIHRvIGxvY2FsU3RvcmFnZTonLCBlKTtcbiAgICB9XG5cbiAgICAvLyBJbnRlbnRhciBwb3N0TWVzc2FnZSAocHVlZGUgZmFsbGFyIHBvciBDT09QKVxuICAgIHRyeSB7XG4gICAgICBpZiAod2luZG93Lm9wZW5lciAmJiAhd2luZG93Lm9wZW5lci5jbG9zZWQpIHtcbiAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZShkYXRhLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBzZW50IHRvIG9wZW5lcicpO1xuICAgICAgfSBlbHNlIGlmICh3aW5kb3cucGFyZW50ICE9PSB3aW5kb3cpIHtcbiAgICAgICAgd2luZG93LnBhcmVudC5wb3N0TWVzc2FnZShkYXRhLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKTtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBzZW50IHRvIHBhcmVudCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aENhbGxiYWNrXSBObyBvcGVuZXIvcGFyZW50IGF2YWlsYWJsZSwgdXNpbmcgbG9jYWxTdG9yYWdlIG9ubHknKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBDT09QIGJsb2NrcyBwb3N0TWVzc2FnZSAtIGxvY2FsU3RvcmFnZSBmYWxsYmFjayBhbHJlYWR5IHNhdmVkXG4gICAgICBjb25zb2xlLndhcm4oJ1tPQXV0aENhbGxiYWNrXSBwb3N0TWVzc2FnZSBibG9ja2VkIChDT09QKSwgdXNpbmcgbG9jYWxTdG9yYWdlIGZhbGxiYWNrOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VBZnRlckRlbGF5KCk6IHZvaWQge1xuICAgIC8vIERhciB0aWVtcG8gcGFyYSBxdWUgZWwgbWVuc2FqZSBzZSBlbnbDrWUgYW50ZXMgZGUgY2VycmFyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAod2luZG93Lm9wZW5lcikge1xuICAgICAgICB3aW5kb3cuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCA1MDApO1xuICB9XG59XG4iXX0=
|
|
@@ -360,24 +360,20 @@ export class OAuthService {
|
|
|
360
360
|
/**
|
|
361
361
|
* Verifica que el callback traiga el nonce del flujo actual (M-07).
|
|
362
362
|
*
|
|
363
|
-
*
|
|
364
|
-
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
363
|
+
* Estricto: si el opener generó un nonce (siempre, en clientes nuevos) exige
|
|
364
|
+
* que el callback lo traiga y coincida. Un payload forjado en localStorage por
|
|
365
|
+
* XSS no conoce el nonce (vive solo en memoria) → se rechaza.
|
|
366
|
+
*
|
|
367
|
+
* ⚠️ Requiere que el backend ya eche `client_nonce` en el callback. Deploy:
|
|
368
|
+
* backend ANTES que el frontend, si no este check rechaza callbacks legítimos
|
|
369
|
+
* (sin nonce) durante la ventana de transición.
|
|
369
370
|
*/
|
|
370
371
|
isNonceValid(data) {
|
|
371
|
-
// No hay flujo con nonce activo (legacy / link flow) → no bloquear.
|
|
372
372
|
if (!this.expectedNonce) {
|
|
373
|
+
// No hay flujo con nonce activo (caso legacy / link flow) → no bloquear.
|
|
373
374
|
return true;
|
|
374
375
|
}
|
|
375
|
-
|
|
376
|
-
if (!data?.nonce) {
|
|
377
|
-
return true;
|
|
378
|
-
}
|
|
379
|
-
// Nonce presente → debe coincidir con el del flujo.
|
|
380
|
-
return data.nonce === this.expectedNonce;
|
|
376
|
+
return data?.nonce === this.expectedNonce;
|
|
381
377
|
}
|
|
382
378
|
/**
|
|
383
379
|
* Valida la forma del payload del callback (M-07): debe ser un error o tokens
|
|
@@ -400,4 +396,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
400
396
|
type: Inject,
|
|
401
397
|
args: [VALTECH_AUTH_CONFIG]
|
|
402
398
|
}] }, { type: i1.HttpClient }, { type: i0.NgZone }] });
|
|
403
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC9vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBVyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBVy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFFSCxNQUFNLE9BQU8sWUFBWTtJQVl2QixZQUNtRCxNQUFnQyxFQUN6RSxJQUFnQixFQUNoQixNQUFjO1FBRjJCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3pFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWRoQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUEyQyxJQUFJLENBQUM7UUFDOUQsd0JBQW1CLEdBQTBDLElBQUksQ0FBQztRQUMxRTs7Ozs7V0FLRztRQUNLLGtCQUFhLEdBQWtCLElBQUksQ0FBQztJQU16QyxDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLFFBQXVCO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IseUVBQXlFO1lBQ3pFLDRFQUE0RTtZQUM1RSx5RUFBeUU7WUFDekUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTNCLDBCQUEwQjtZQUMxQixNQUFN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QW1CO21IQWI5QixZQUFZLGNBREMsTUFBTTs7NEZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFjN0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE5nWm9uZSwgT3B0aW9uYWwsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIFZhbHRlY2hBdXRoQ29uZmlnLFxuICBPQXV0aFByb3ZpZGVyLFxuICBPQXV0aFJlc3VsdCxcbiAgT0F1dGhFcnJvcixcbiAgT0F1dGhDYWxsYmFja0RhdGEsXG4gIExpbmtlZFByb3ZpZGVyLFxuICBIYXNQYXNzd29yZFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIE9BdXRoIHBhcmEgbG9naW4gc29jaWFsLlxuICpcbiAqIEltcGxlbWVudGEgZmx1am8gT0F1dGggc2VydmVyLXNpZGUgY29uIHBvcHVwOlxuICogMS4gRnJvbnRlbmQgYWJyZSBwb3B1cCBoYWNpYSBiYWNrZW5kXG4gKiAyLiBCYWNrZW5kIHJlZGlyaWdlIGEgcHJvdmlkZXIgKEdvb2dsZSwgQXBwbGUsIE1pY3Jvc29mdClcbiAqIDMuIFVzdWFyaW8gYXV0b3JpemFcbiAqIDQuIEJhY2tlbmQgaW50ZXJjYW1iaWEgY29kZSwgZ2VuZXJhIEpXVCwgcmVkaXJpZ2UgY29uIHRva2Vuc1xuICogNS4gUG9wdXAgZW52w61hIHRva2VucyBhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IE9BdXRoU2VydmljZSwgQXV0aFNlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICogICBwcml2YXRlIG9hdXRoID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gKiAgIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gKlxuICogICBhc3luYyBsb2dpbldpdGhHb29nbGUoKSB7XG4gKiAgICAgdGhpcy5vYXV0aC5zdGFydEZsb3coJ2dvb2dsZScpLnN1YnNjcmliZSh7XG4gKiAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gKiAgICAgICAgIC8vIFRva2VucyByZWNpYmlkb3MsIGd1YXJkYXIgZW4gYXV0aCBzdGF0ZVxuICogICAgICAgICB0aGlzLmF1dGguaGFuZGxlT0F1dGhTdWNjZXNzKHJlc3VsdCk7XG4gKiAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAqICAgICAgIH0sXG4gKiAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gKiAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ09BdXRoIGZhaWxlZDonLCBlcnJvcik7XG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcG9wdXA6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1lc3NhZ2VIYW5kbGVyOiAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hlY2tDbG9zZWRJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIC8qKlxuICAgKiBOb25jZSBkZWwgZmx1am8gT0F1dGggZW4gY3Vyc28gKE0tMDcpLiBWaXZlIFNPTE8gZW4gbWVtb3JpYSDigJQgdW4gWFNTIG5vIGxvXG4gICAqIHB1ZWRlIGxlZXIgZGUgbG9jYWxTdG9yYWdlL3Nlc3Npb25TdG9yYWdlLiBWaWFqYSBhbCBiYWNrZW5kIChjbGllbnRfbm9uY2UpLFxuICAgKiB2dWVsdmUgZW4gZWwgY2FsbGJhY2ssIHkgc2UgdmVyaWZpY2EgYWPDoSDihpIgcmVjaGF6YSB1biBvYXV0aF9jYWxsYmFja19kYXRhXG4gICAqIGZvcmphZG8gcG9yIFhTUy5cbiAgICovXG4gIHByaXZhdGUgZXhwZWN0ZWROb25jZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcgfCBudWxsLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICkge31cblxuICAvKipcbiAgICogSW5pY2lhIGZsdWpvIE9BdXRoIGVuIHBvcHVwLlxuICAgKiBSZXRvcm5hIE9ic2VydmFibGUgcXVlIGVtaXRlIGN1YW5kbyBlbCB1c3VhcmlvIGNvbXBsZXRhIGVsIGZsdWpvLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZXIgLSBQcm92ZWVkb3IgT0F1dGggKCdnb29nbGUnLCAnYXBwbGUnLCAnbWljcm9zb2Z0JylcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgT0F1dGhSZXN1bHQgbyBlcnJvclxuICAgKi9cbiAgc3RhcnRGbG93KHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKTogT2JzZXJ2YWJsZTxPQXV0aFJlc3VsdD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAvLyBOb25jZSBkZSBmbHVqbyAoTS0wNyk6IHZpdmUgc29sbyBlbiBlc3RlIG9iamV0byAobm8gZW4gc3RvcmFnZSksIHZpYWphXG4gICAgICAvLyBhbCBiYWNrZW5kIGVuIGNsaWVudF9ub25jZSB5IHZ1ZWx2ZSBlbiBlbCBjYWxsYmFjay4gRWwgb3BlbmVyIGxvIHZlcmlmaWNhXG4gICAgICAvLyDihpIgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIG5vIGxvIGNvbm9jZS5cbiAgICAgIGNvbnN0IG5vbmNlID0gdGhpcy5nZW5lcmF0ZU5vbmNlKCk7XG4gICAgICB0aGlzLmV4cGVjdGVkTm9uY2UgPSBub25jZTtcblxuICAgICAgLy8gQ29uc3RydWlyIFVSTCBkZSBpbmljaW9cbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXV0aC9vYXV0aC9jYWxsYmFja2A7XG4gICAgICBjb25zdCBzdGFydFVybCA9IGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvJHtwcm92aWRlcn0vc3RhcnQ/cmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJpKX0mY2xpZW50X25vbmNlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5vbmNlKX1gO1xuXG4gICAgICAvLyBBYnJpciBwb3B1cCBjZW50cmFkb1xuICAgICAgY29uc3Qgd2lkdGggPSA1MDA7XG4gICAgICBjb25zdCBoZWlnaHQgPSA2MDA7XG4gICAgICBjb25zdCBsZWZ0ID0gd2luZG93LnNjcmVlblggKyAod2luZG93Lm91dGVyV2lkdGggLSB3aWR0aCkgLyAyO1xuICAgICAgY29uc3QgdG9wID0gd2luZG93LnNjcmVlblkgKyAod2luZG93Lm91dGVySGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGB3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LGxlZnQ9JHtsZWZ0fSx0b3A9JHt0b3B9LHBvcHVwPXllc2A7XG5cbiAgICAgIHRoaXMucG9wdXAgPSB3aW5kb3cub3BlbihzdGFydFVybCwgJ29hdXRoJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgJ0VsIG5hdmVnYWRvciBibG9xdWXDsyBsYSB2ZW50YW5hIGVtZXJnZW50ZS4gUG9yIGZhdm9yLCBwZXJtaXRlIHBvcHVwcyBwYXJhIGVzdGUgc2l0aW8uJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgICAgfVxuXG4gICAgICAvLyBFc2N1Y2hhciBtZW5zYWplcyBkZWwgcG9wdXBcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICAvLyBWYWxpZGFyIG9yaWdlblxuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhciB0aXBvIGRlIG1lbnNhamVcbiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmVyaWZpY2FyIGVsIG5vbmNlIGRlbCBmbHVqbyAoTS0wNyk6IHNpIG5vIGNvaW5jaWRlLCBubyBlcyBudWVzdHJvXG4gICAgICAgIC8vIGNhbGxiYWNrIOKGkiBpZ25vcmFyIChubyBjb25zdW1pciBlbCBvYnNlcnZhYmxlKS5cbiAgICAgICAgaWYgKCF0aGlzLmlzTm9uY2VWYWxpZChkYXRhKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbXBpYXJcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgICAgLy8gRW1pdGlyIHJlc3VsdGFkbyBkZW50cm8gZGUgTmdab25lIHBhcmEgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS50b2tlbnMpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YS50b2tlbnMpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICBjb2RlOiAnSU5WQUxJRF9SRVNQT05TRScsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdSZXNwdWVzdGEgaW52w6FsaWRhIGRlbCBzZXJ2aWRvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICAvLyBQb2xsaW5nIGRlIGxvY2FsU3RvcmFnZSAoQ09PUCB3b3JrYXJvdW5kIC0gbm8gcG9kZW1vcyBkZXRlY3RhciBwb3B1cC5jbG9zZWQpXG4gICAgICAvLyBUYW1iacOpbiB2ZXJpZmljYSBzaSBlbCBwb3B1cCBzZSBjZXJyw7MgbWFudWFsbWVudGVcbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgLy8gUHJpbWVybyB2ZXJpZmljYXIgbG9jYWxTdG9yYWdlIChmdW5jaW9uYSBhdW5xdWUgQ09PUCBibG9xdWVlIHRvZG8pXG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSB0aGlzLmNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcbiAgICAgICAgaWYgKHN0b3JlZERhdGEpIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN0b3JlZERhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioc3RvcmVkRGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0b3JlZERhdGEudG9rZW5zKSB7XG4gICAgICAgICAgICAgIC8vIEdhdGUgZGUgZGlhZ27Ds3N0aWNvOiBsYSBtZXRhZGF0YSBkZSB0b2tlbnMgKGtleXMsIHByZXNlbmNpYSB5XG4gICAgICAgICAgICAgIC8vIGxvbmdpdHVkIGRlbCBmaXJlYmFzZVRva2VuKSBubyBkZWJlIGZpbHRyYXJzZSBhIGxhIGNvbnNvbGEgZW5cbiAgICAgICAgICAgICAgLy8gcHJvZHVjY2nDs24gKEw0IGRlbCBhdWRpdCkuIFNvbG8gZW4gZGV2LlxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoU2VydmljZV0gUmV0cmlldmVkIHRva2VucyBmcm9tIGxvY2FsU3RvcmFnZSBmYWxsYmFjaycsIHtcbiAgICAgICAgICAgICAgICAgIGtleXM6IE9iamVjdC5rZXlzKHN0b3JlZERhdGEudG9rZW5zKSxcbiAgICAgICAgICAgICAgICAgIGhhc0ZpcmViYXNlVG9rZW46ICEhc3RvcmVkRGF0YS50b2tlbnMuZmlyZWJhc2VUb2tlbixcbiAgICAgICAgICAgICAgICAgIGZpcmViYXNlVG9rZW5MZW5ndGg6IHN0b3JlZERhdGEudG9rZW5zLmZpcmViYXNlVG9rZW4/Lmxlbmd0aCA/PyAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoc3RvcmVkRGF0YS50b2tlbnMpO1xuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6ICdJTlZBTElEX1JFU1BPTlNFJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVzcHVlc3RhIGludsOhbGlkYSBkZWwgc2Vydmlkb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEludGVudGFyIHZlcmlmaWNhciBzaSBwb3B1cCBzZSBjZXJyw7MgKHB1ZWRlIGZhbGxhciBwb3IgQ09PUClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAodGhpcy5wb3B1cD8uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnUE9QVVBfQ0xPU0VEJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2UgY2VycsOzIGxhIHZlbnRhbmEgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBDT09QIGJsb3F1ZWEgYWNjZXNvIGEgcG9wdXAuY2xvc2VkIC0gaWdub3JhciB5IHNlZ3VpciBjb24gcG9sbGluZ1xuICAgICAgICB9XG4gICAgICB9LCAzMDApO1xuXG4gICAgICAvLyBDbGVhbnVwIGN1YW5kbyBlbCBvYnNlcnZhYmxlIHNlIGRlc3RydXllXG4gICAgICByZXR1cm4gKCkgPT4gdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhIGZsdWpvIGRlIGxpbmtpbmcgcGFyYSB2aW5jdWxhciB1biBwcm92ZWVkb3IgYWRpY2lvbmFsLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgdXN1YXJpbyBlc3TDqSBhdXRlbnRpY2Fkby5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyIC0gUHJvdmVlZG9yIE9BdXRoIGEgdmluY3VsYXJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgY3VhbmRvIHNlIGNvbXBsZXRhIGVsIGxpbmtpbmdcbiAgICovXG4gIHN0YXJ0TGlua0Zsb3cocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPE9BdXRoUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXV0aC9vYXV0aC9jYWxsYmFja2A7XG4gICAgICBjb25zdCBzdGFydFVybCA9IGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvbGluay8ke3Byb3ZpZGVyfS9zdGFydD9yZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmkpfWA7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gNTAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gNjAwO1xuICAgICAgY29uc3QgbGVmdCA9IHdpbmRvdy5zY3JlZW5YICsgKHdpbmRvdy5vdXRlcldpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JlZW5ZICsgKHdpbmRvdy5vdXRlckhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBgd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSxsZWZ0PSR7bGVmdH0sdG9wPSR7dG9wfSxwb3B1cD15ZXNgO1xuXG4gICAgICB0aGlzLnBvcHVwID0gd2luZG93Lm9wZW4oc3RhcnRVcmwsICdvYXV0aC1saW5rJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOiAnRWwgbmF2ZWdhZG9yIGJsb3F1ZcOzIGxhIHZlbnRhbmEgZW1lcmdlbnRlJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9OyAvLyBjbGVhbnVwIGZ1bmN0aW9uXG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZGF0YS5lcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YS50b2tlbnMgfHwgKHt9IGFzIE9BdXRoUmVzdWx0KSk7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICB0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBvcHVwPy5jbG9zZWQpIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICBjb2RlOiAnUE9QVVBfQ0xPU0VEJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlIGNlcnLDsyBsYSB2ZW50YW5hIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgICAgIH0gYXMgT0F1dGhFcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwMCk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB0aGlzLmNsZWFudXAoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxvcyBwcm92ZWVkb3JlcyBPQXV0aCB2aW5jdWxhZG9zIGFsIHVzdWFyaW8uXG4gICAqL1xuICBnZXRMaW5rZWRQcm92aWRlcnMoKTogT2JzZXJ2YWJsZTxMaW5rZWRQcm92aWRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IHByb3ZpZGVyczogTGlua2VkUHJvdmlkZXJbXSB9PihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL3Byb3ZpZGVyc2ApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdGRVRDSF9FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIG9idGVuZXIgcHJvdmVlZG9yZXMgdmluY3VsYWRvcycsXG4gICAgICAgICAgICAgIH0pIGFzIE9BdXRoRXJyb3JcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlPExpbmtlZFByb3ZpZGVyW10+O1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3ZpbmN1bGEgdW4gcHJvdmVlZG9yIE9BdXRoLlxuICAgKi9cbiAgdW5saW5rUHJvdmlkZXIocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPHsgc3VjY2VzczogYm9vbGVhbiB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuIH0+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvdW5saW5rYCwgeyBwcm92aWRlciB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnVU5MSU5LX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgZGVzdmluY3VsYXIgcHJvdmVlZG9yJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFc3RhYmxlY2UgY29udHJhc2XDsWEgcGFyYSB1c3VhcmlvcyBxdWUgc29sbyB0aWVuZW4gT0F1dGguXG4gICAqL1xuICBzZXRQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbiB9PihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL3NldC1wYXNzd29yZGAsIHsgcGFzc3dvcmQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ1NFVF9QQVNTV09SRF9FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIGVzdGFibGVjZXIgY29udHJhc2XDsWEnLFxuICAgICAgICAgICAgICB9KSBhcyBPQXV0aEVycm9yXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gdGllbmUgY29udHJhc2XDsWEgZXN0YWJsZWNpZGEuXG4gICAqL1xuICBoYXNQYXNzd29yZCgpOiBPYnNlcnZhYmxlPEhhc1Bhc3N3b3JkUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PEhhc1Bhc3N3b3JkUmVzcG9uc2U+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvaGFzLXBhc3N3b3JkYClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ0NIRUNLX1BBU1NXT1JEX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgdmVyaWZpY2FyIGNvbnRyYXNlw7FhJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZpc2EgbG9jYWxTdG9yYWdlIHBvciBkYXRvcyBkZSBjYWxsYmFjayBPQXV0aCAoZmFsbGJhY2sgcGFyYSBDT09QKS5cbiAgICogU29sbyBhY2VwdGEgZGF0b3MgcmVjaWVudGVzICjDumx0aW1vcyAzMCBzZWd1bmRvcykuXG4gICAqL1xuICBwcml2YXRlIGNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2soKTogT0F1dGhDYWxsYmFja0RhdGEgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX3RpbWVzdGFtcCcpO1xuICAgICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJyk7XG5cbiAgICAgIGlmICghdGltZXN0YW1wIHx8ICFkYXRhU3RyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBTb2xvIGFjZXB0YXIgZGF0b3MgZGUgbG9zIMO6bHRpbW9zIDMwIHNlZ3VuZG9zXG4gICAgICBjb25zdCBhZ2UgPSBEYXRlLm5vdygpIC0gcGFyc2VJbnQodGltZXN0YW1wLCAxMCk7XG4gICAgICBpZiAoYWdlID4gMzAwMDApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aFNlcnZpY2VdIGxvY2FsU3RvcmFnZSBkYXRhIHRvbyBvbGQsIGlnbm9yaW5nJyk7XG4gICAgICAgIHRoaXMuY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cikgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcblxuICAgICAgLy8gRWwgY2FtaW5vIGxvY2FsU3RvcmFnZSBlcyBlbCBxdWUgdW4gWFNTIHBvZHLDrWEgZm9yamFyIChNLTA3KS4gRWxcbiAgICAgIC8vIHBvc3RNZXNzYWdlIHlhIHZhbGlkYSBvcmlnaW4gKyB0aXBvOyBhY8OhIHJlcGxpY2Ftb3MgZXNhcyBkZWZlbnNhcyB5XG4gICAgICAvLyBzdW1hbW9zIGxhIHZlcmlmaWNhY2nDs24gZGVsIG5vbmNlIGRlIGZsdWpvICsgZm9ybWEgZGVsIHBheWxvYWQuXG4gICAgICBpZiAoZGF0YT8udHlwZSAhPT0gJ29hdXRoLWNhbGxiYWNrJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc05vbmNlVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNDYWxsYmFja1NoYXBlVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoU2VydmljZV0gRXJyb3IgcmVhZGluZyBsb2NhbFN0b3JhZ2UgZmFsbGJhY2s6JywgZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIGRhdG9zIGRlIGZhbGxiYWNrIGRlIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHByaXZhdGUgY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdvYXV0aF9jYWxsYmFja190aW1lc3RhbXAnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yYXIgZXJyb3JlcyBkZSBsaW1waWV6YVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgcmVjdXJzb3MgZGVsIHBvcHVwLlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5jaGVja0Nsb3NlZEludGVydmFsID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wb3B1cCAmJiAhdGhpcy5wb3B1cC5jbG9zZWQpIHtcbiAgICAgIHRoaXMucG9wdXAuY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5wb3B1cCA9IG51bGw7XG4gICAgLy8gRWwgbm9uY2UgeWEgZnVlIHZlcmlmaWNhZG8gKHNpIGNvcnJlc3BvbmTDrWEpIGFudGVzIGRlIGxsZWdhciBhY8OhOyBzZVxuICAgIC8vIGxpbXBpYSBwYXJhIG5vIHJldXNhcmxvIGVuIHVuIGZsdWpvIGZ1dHVybyAoTS0wNykuXG4gICAgdGhpcy5leHBlY3RlZE5vbmNlID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmEgdW4gbm9uY2UgYWxlYXRvcmlvIChDU1BSTkcpIHVybC1zYWZlIHBhcmEgZWwgZmx1am8gT0F1dGggKE0tMDcpLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5vbmNlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSgxNik7XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhieXRlcyk7XG4gICAgbGV0IGJpbiA9ICcnO1xuICAgIGJ5dGVzLmZvckVhY2goYiA9PiAoYmluICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYikpKTtcbiAgICAvLyBiYXNlNjR1cmwgc2luIHBhZGRpbmcuXG4gICAgcmV0dXJuIGJ0b2EoYmluKS5yZXBsYWNlKC9cXCsvZywgJy0nKS5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC89KyQvLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2EgcXVlIGVsIGNhbGxiYWNrIHRyYWlnYSBlbCBub25jZSBkZWwgZmx1am8gYWN0dWFsIChNLTA3KS5cbiAgICpcbiAgICogVG9sZXJhbnRlIGEgbGEgdHJhbnNpY2nDs246IHNvbG8gc2UgRVhJR0UgY29pbmNpZGVuY2lhIGN1YW5kbyBlbCBjYWxsYmFja1xuICAgKiB0cmFlIHVuIG5vbmNlLiBTaSBubyBsbyB0cmFlIChiYWNrZW5kIGHDum4gc2luIE0tMDcgZGVzcGxlZ2FkbywgcC5lai4gZGV2KSwgbm9cbiAgICogc2UgYmxvcXVlYSBlbCBsb2dpbi4gQ3VhbmRvIGVsIGJhY2tlbmQgZWNoYSBgY2xpZW50X25vbmNlYCBlbiB0b2RvcyBsYWRvcywgdW5cbiAgICogY2FsbGJhY2sgZm9yamFkbyBjb24gdW4gbm9uY2UgZGlzdGludG8gc8OtIHNlIHJlY2hhemEuIFVuIHBheWxvYWQgZm9yamFkbyBwb3JcbiAgICogWFNTIHF1ZSBPTUlUQSBlbCBub25jZSBubyBzZSBmcmVuYSBwb3IgYWPDoSwgcGVybyBpZ3VhbCBwYXNhIHBvciBsYXNcbiAgICogdmFsaWRhY2lvbmVzIGRlIHRpcG8vZm9ybWEgZGUgYGNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2tgLlxuICAgKi9cbiAgcHJpdmF0ZSBpc05vbmNlVmFsaWQoZGF0YTogT0F1dGhDYWxsYmFja0RhdGEpOiBib29sZWFuIHtcbiAgICAvLyBObyBoYXkgZmx1am8gY29uIG5vbmNlIGFjdGl2byAobGVnYWN5IC8gbGluayBmbG93KSDihpIgbm8gYmxvcXVlYXIuXG4gICAgaWYgKCF0aGlzLmV4cGVjdGVkTm9uY2UpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBFbCBjYWxsYmFjayBubyB0cmFlIG5vbmNlIChiYWNrZW5kIHNpbiBNLTA3KSDihpIgbm8gYmxvcXVlYXIgKHRyYW5zaWNpw7NuKS5cbiAgICBpZiAoIWRhdGE/Lm5vbmNlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gTm9uY2UgcHJlc2VudGUg4oaSIGRlYmUgY29pbmNpZGlyIGNvbiBlbCBkZWwgZmx1am8uXG4gICAgcmV0dXJuIGRhdGEubm9uY2UgPT09IHRoaXMuZXhwZWN0ZWROb25jZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGEgbGEgZm9ybWEgZGVsIHBheWxvYWQgZGVsIGNhbGxiYWNrIChNLTA3KTogZGViZSBzZXIgdW4gZXJyb3IgbyB0b2tlbnNcbiAgICogY29tbyBvYmpldG8uIEJsb3F1ZWEgaW55ZWNjaW9uZXMgbWFsZm9ybWFkYXMgKHByaW1pdGl2b3MsIHNoYXBlcyBiYXN1cmEpLlxuICAgKi9cbiAgcHJpdmF0ZSBpc0NhbGxiYWNrU2hhcGVWYWxpZChkYXRhOiBPQXV0aENhbGxiYWNrRGF0YSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhhc0Vycm9yID0gISFkYXRhLmVycm9yICYmIHR5cGVvZiBkYXRhLmVycm9yID09PSAnb2JqZWN0JztcbiAgICBjb25zdCBoYXNUb2tlbnMgPSAhIWRhdGEudG9rZW5zICYmIHR5cGVvZiBkYXRhLnRva2VucyA9PT0gJ29iamVjdCc7XG4gICAgcmV0dXJuIGhhc0Vycm9yIHx8IGhhc1Rva2VucztcbiAgfVxufVxuIl19
|
|
399
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC9vYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBVyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBVy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFFSCxNQUFNLE9BQU8sWUFBWTtJQVl2QixZQUNtRCxNQUFnQyxFQUN6RSxJQUFnQixFQUNoQixNQUFjO1FBRjJCLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBQ3pFLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWRoQixVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixtQkFBYyxHQUEyQyxJQUFJLENBQUM7UUFDOUQsd0JBQW1CLEdBQTBDLElBQUksQ0FBQztRQUMxRTs7Ozs7V0FLRztRQUNLLGtCQUFhLEdBQWtCLElBQUksQ0FBQztJQU16QyxDQUFDO0lBRUo7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLFFBQXVCO1FBQy9CLE9BQU8sSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDL0IseUVBQXlFO1lBQ3pFLDRFQUE0RTtZQUM1RSx5RUFBeUU7WUFDekUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBRTNCLDBCQUEwQjtZQUMxQixNQUFN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MEJBQUksTUFBTTsyQkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIE5nWm9uZSwgT3B0aW9uYWwsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7XG4gIFZhbHRlY2hBdXRoQ29uZmlnLFxuICBPQXV0aFByb3ZpZGVyLFxuICBPQXV0aFJlc3VsdCxcbiAgT0F1dGhFcnJvcixcbiAgT0F1dGhDYWxsYmFja0RhdGEsXG4gIExpbmtlZFByb3ZpZGVyLFxuICBIYXNQYXNzd29yZFJlc3BvbnNlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFNlcnZpY2lvIGRlIE9BdXRoIHBhcmEgbG9naW4gc29jaWFsLlxuICpcbiAqIEltcGxlbWVudGEgZmx1am8gT0F1dGggc2VydmVyLXNpZGUgY29uIHBvcHVwOlxuICogMS4gRnJvbnRlbmQgYWJyZSBwb3B1cCBoYWNpYSBiYWNrZW5kXG4gKiAyLiBCYWNrZW5kIHJlZGlyaWdlIGEgcHJvdmlkZXIgKEdvb2dsZSwgQXBwbGUsIE1pY3Jvc29mdClcbiAqIDMuIFVzdWFyaW8gYXV0b3JpemFcbiAqIDQuIEJhY2tlbmQgaW50ZXJjYW1iaWEgY29kZSwgZ2VuZXJhIEpXVCwgcmVkaXJpZ2UgY29uIHRva2Vuc1xuICogNS4gUG9wdXAgZW52w61hIHRva2VucyBhIHZlbnRhbmEgcGFkcmUgdmlhIHBvc3RNZXNzYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IE9BdXRoU2VydmljZSwgQXV0aFNlcnZpY2UgfSBmcm9tICd2YWx0ZWNoLWNvbXBvbmVudHMnO1xuICpcbiAqIEBDb21wb25lbnQoey4uLn0pXG4gKiBleHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQge1xuICogICBwcml2YXRlIG9hdXRoID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XG4gKiAgIHByaXZhdGUgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gKlxuICogICBhc3luYyBsb2dpbldpdGhHb29nbGUoKSB7XG4gKiAgICAgdGhpcy5vYXV0aC5zdGFydEZsb3coJ2dvb2dsZScpLnN1YnNjcmliZSh7XG4gKiAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gKiAgICAgICAgIC8vIFRva2VucyByZWNpYmlkb3MsIGd1YXJkYXIgZW4gYXV0aCBzdGF0ZVxuICogICAgICAgICB0aGlzLmF1dGguaGFuZGxlT0F1dGhTdWNjZXNzKHJlc3VsdCk7XG4gKiAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAqICAgICAgIH0sXG4gKiAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gKiAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ09BdXRoIGZhaWxlZDonLCBlcnJvcik7XG4gKiAgICAgICB9XG4gKiAgICAgfSk7XG4gKiAgIH1cbiAqIH1cbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE9BdXRoU2VydmljZSB7XG4gIHByaXZhdGUgcG9wdXA6IFdpbmRvdyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1lc3NhZ2VIYW5kbGVyOiAoKGV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY2hlY2tDbG9zZWRJbnRlcnZhbDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+IHwgbnVsbCA9IG51bGw7XG4gIC8qKlxuICAgKiBOb25jZSBkZWwgZmx1am8gT0F1dGggZW4gY3Vyc28gKE0tMDcpLiBWaXZlIFNPTE8gZW4gbWVtb3JpYSDigJQgdW4gWFNTIG5vIGxvXG4gICAqIHB1ZWRlIGxlZXIgZGUgbG9jYWxTdG9yYWdlL3Nlc3Npb25TdG9yYWdlLiBWaWFqYSBhbCBiYWNrZW5kIChjbGllbnRfbm9uY2UpLFxuICAgKiB2dWVsdmUgZW4gZWwgY2FsbGJhY2ssIHkgc2UgdmVyaWZpY2EgYWPDoSDihpIgcmVjaGF6YSB1biBvYXV0aF9jYWxsYmFja19kYXRhXG4gICAqIGZvcmphZG8gcG9yIFhTUy5cbiAgICovXG4gIHByaXZhdGUgZXhwZWN0ZWROb25jZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcgfCBudWxsLFxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICkge31cblxuICAvKipcbiAgICogSW5pY2lhIGZsdWpvIE9BdXRoIGVuIHBvcHVwLlxuICAgKiBSZXRvcm5hIE9ic2VydmFibGUgcXVlIGVtaXRlIGN1YW5kbyBlbCB1c3VhcmlvIGNvbXBsZXRhIGVsIGZsdWpvLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvdmlkZXIgLSBQcm92ZWVkb3IgT0F1dGggKCdnb29nbGUnLCAnYXBwbGUnLCAnbWljcm9zb2Z0JylcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgT0F1dGhSZXN1bHQgbyBlcnJvclxuICAgKi9cbiAgc3RhcnRGbG93KHByb3ZpZGVyOiBPQXV0aFByb3ZpZGVyKTogT2JzZXJ2YWJsZTxPQXV0aFJlc3VsdD4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAvLyBOb25jZSBkZSBmbHVqbyAoTS0wNyk6IHZpdmUgc29sbyBlbiBlc3RlIG9iamV0byAobm8gZW4gc3RvcmFnZSksIHZpYWphXG4gICAgICAvLyBhbCBiYWNrZW5kIGVuIGNsaWVudF9ub25jZSB5IHZ1ZWx2ZSBlbiBlbCBjYWxsYmFjay4gRWwgb3BlbmVyIGxvIHZlcmlmaWNhXG4gICAgICAvLyDihpIgdW4gb2F1dGhfY2FsbGJhY2tfZGF0YSBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3IgWFNTIG5vIGxvIGNvbm9jZS5cbiAgICAgIGNvbnN0IG5vbmNlID0gdGhpcy5nZW5lcmF0ZU5vbmNlKCk7XG4gICAgICB0aGlzLmV4cGVjdGVkTm9uY2UgPSBub25jZTtcblxuICAgICAgLy8gQ29uc3RydWlyIFVSTCBkZSBpbmljaW9cbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXV0aC9vYXV0aC9jYWxsYmFja2A7XG4gICAgICBjb25zdCBzdGFydFVybCA9IGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvJHtwcm92aWRlcn0vc3RhcnQ/cmVkaXJlY3RfdXJpPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHJlZGlyZWN0VXJpKX0mY2xpZW50X25vbmNlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KG5vbmNlKX1gO1xuXG4gICAgICAvLyBBYnJpciBwb3B1cCBjZW50cmFkb1xuICAgICAgY29uc3Qgd2lkdGggPSA1MDA7XG4gICAgICBjb25zdCBoZWlnaHQgPSA2MDA7XG4gICAgICBjb25zdCBsZWZ0ID0gd2luZG93LnNjcmVlblggKyAod2luZG93Lm91dGVyV2lkdGggLSB3aWR0aCkgLyAyO1xuICAgICAgY29uc3QgdG9wID0gd2luZG93LnNjcmVlblkgKyAod2luZG93Lm91dGVySGVpZ2h0IC0gaGVpZ2h0KSAvIDI7XG4gICAgICBjb25zdCBmZWF0dXJlcyA9IGB3aWR0aD0ke3dpZHRofSxoZWlnaHQ9JHtoZWlnaHR9LGxlZnQ9JHtsZWZ0fSx0b3A9JHt0b3B9LHBvcHVwPXllc2A7XG5cbiAgICAgIHRoaXMucG9wdXAgPSB3aW5kb3cub3BlbihzdGFydFVybCwgJ29hdXRoJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgJ0VsIG5hdmVnYWRvciBibG9xdWXDsyBsYSB2ZW50YW5hIGVtZXJnZW50ZS4gUG9yIGZhdm9yLCBwZXJtaXRlIHBvcHVwcyBwYXJhIGVzdGUgc2l0aW8uJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9O1xuICAgICAgfVxuXG4gICAgICAvLyBFc2N1Y2hhciBtZW5zYWplcyBkZWwgcG9wdXBcbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICAvLyBWYWxpZGFyIG9yaWdlblxuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsaWRhciB0aXBvIGRlIG1lbnNhamVcbiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmVyaWZpY2FyIGVsIG5vbmNlIGRlbCBmbHVqbyAoTS0wNyk6IHNpIG5vIGNvaW5jaWRlLCBubyBlcyBudWVzdHJvXG4gICAgICAgIC8vIGNhbGxiYWNrIOKGkiBpZ25vcmFyIChubyBjb25zdW1pciBlbCBvYnNlcnZhYmxlKS5cbiAgICAgICAgaWYgKCF0aGlzLmlzTm9uY2VWYWxpZChkYXRhKSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExpbXBpYXJcbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgICAgLy8gRW1pdGlyIHJlc3VsdGFkbyBkZW50cm8gZGUgTmdab25lIHBhcmEgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKGRhdGEuZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGF0YS50b2tlbnMpIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YS50b2tlbnMpO1xuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICBjb2RlOiAnSU5WQUxJRF9SRVNQT05TRScsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6ICdSZXNwdWVzdGEgaW52w6FsaWRhIGRlbCBzZXJ2aWRvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICAvLyBQb2xsaW5nIGRlIGxvY2FsU3RvcmFnZSAoQ09PUCB3b3JrYXJvdW5kIC0gbm8gcG9kZW1vcyBkZXRlY3RhciBwb3B1cC5jbG9zZWQpXG4gICAgICAvLyBUYW1iacOpbiB2ZXJpZmljYSBzaSBlbCBwb3B1cCBzZSBjZXJyw7MgbWFudWFsbWVudGVcbiAgICAgIHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgLy8gUHJpbWVybyB2ZXJpZmljYXIgbG9jYWxTdG9yYWdlIChmdW5jaW9uYSBhdW5xdWUgQ09PUCBibG9xdWVlIHRvZG8pXG4gICAgICAgIGNvbnN0IHN0b3JlZERhdGEgPSB0aGlzLmNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcbiAgICAgICAgaWYgKHN0b3JlZERhdGEpIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHN0b3JlZERhdGEuZXJyb3IpIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioc3RvcmVkRGF0YS5lcnJvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0b3JlZERhdGEudG9rZW5zKSB7XG4gICAgICAgICAgICAgIC8vIEdhdGUgZGUgZGlhZ27Ds3N0aWNvOiBsYSBtZXRhZGF0YSBkZSB0b2tlbnMgKGtleXMsIHByZXNlbmNpYSB5XG4gICAgICAgICAgICAgIC8vIGxvbmdpdHVkIGRlbCBmaXJlYmFzZVRva2VuKSBubyBkZWJlIGZpbHRyYXJzZSBhIGxhIGNvbnNvbGEgZW5cbiAgICAgICAgICAgICAgLy8gcHJvZHVjY2nDs24gKEw0IGRlbCBhdWRpdCkuIFNvbG8gZW4gZGV2LlxuICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnW09BdXRoU2VydmljZV0gUmV0cmlldmVkIHRva2VucyBmcm9tIGxvY2FsU3RvcmFnZSBmYWxsYmFjaycsIHtcbiAgICAgICAgICAgICAgICAgIGtleXM6IE9iamVjdC5rZXlzKHN0b3JlZERhdGEudG9rZW5zKSxcbiAgICAgICAgICAgICAgICAgIGhhc0ZpcmViYXNlVG9rZW46ICEhc3RvcmVkRGF0YS50b2tlbnMuZmlyZWJhc2VUb2tlbixcbiAgICAgICAgICAgICAgICAgIGZpcmViYXNlVG9rZW5MZW5ndGg6IHN0b3JlZERhdGEudG9rZW5zLmZpcmViYXNlVG9rZW4/Lmxlbmd0aCA/PyAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoc3RvcmVkRGF0YS50b2tlbnMpO1xuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICAgIGNvZGU6ICdJTlZBTElEX1JFU1BPTlNFJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnUmVzcHVlc3RhIGludsOhbGlkYSBkZWwgc2Vydmlkb3IgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEludGVudGFyIHZlcmlmaWNhciBzaSBwb3B1cCBzZSBjZXJyw7MgKHB1ZWRlIGZhbGxhciBwb3IgQ09PUClcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAodGhpcy5wb3B1cD8uY2xvc2VkKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKHtcbiAgICAgICAgICAgICAgICBjb2RlOiAnUE9QVVBfQ0xPU0VEJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiAnU2UgY2VycsOzIGxhIHZlbnRhbmEgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgICAgICAgICB9IGFzIE9BdXRoRXJyb3IpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBDT09QIGJsb3F1ZWEgYWNjZXNvIGEgcG9wdXAuY2xvc2VkIC0gaWdub3JhciB5IHNlZ3VpciBjb24gcG9sbGluZ1xuICAgICAgICB9XG4gICAgICB9LCAzMDApO1xuXG4gICAgICAvLyBDbGVhbnVwIGN1YW5kbyBlbCBvYnNlcnZhYmxlIHNlIGRlc3RydXllXG4gICAgICByZXR1cm4gKCkgPT4gdGhpcy5jbGVhbnVwKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pY2lhIGZsdWpvIGRlIGxpbmtpbmcgcGFyYSB2aW5jdWxhciB1biBwcm92ZWVkb3IgYWRpY2lvbmFsLlxuICAgKiBSZXF1aWVyZSBxdWUgZWwgdXN1YXJpbyBlc3TDqSBhdXRlbnRpY2Fkby5cbiAgICpcbiAgICogQHBhcmFtIHByb3ZpZGVyIC0gUHJvdmVlZG9yIE9BdXRoIGEgdmluY3VsYXJcbiAgICogQHJldHVybnMgT2JzZXJ2YWJsZSBxdWUgZW1pdGUgY3VhbmRvIHNlIGNvbXBsZXRhIGVsIGxpbmtpbmdcbiAgICovXG4gIHN0YXJ0TGlua0Zsb3cocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPE9BdXRoUmVzdWx0PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IHJlZGlyZWN0VXJpID0gYCR7d2luZG93LmxvY2F0aW9uLm9yaWdpbn0vYXV0aC9vYXV0aC9jYWxsYmFja2A7XG4gICAgICBjb25zdCBzdGFydFVybCA9IGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvbGluay8ke3Byb3ZpZGVyfS9zdGFydD9yZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQocmVkaXJlY3RVcmkpfWA7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gNTAwO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gNjAwO1xuICAgICAgY29uc3QgbGVmdCA9IHdpbmRvdy5zY3JlZW5YICsgKHdpbmRvdy5vdXRlcldpZHRoIC0gd2lkdGgpIC8gMjtcbiAgICAgIGNvbnN0IHRvcCA9IHdpbmRvdy5zY3JlZW5ZICsgKHdpbmRvdy5vdXRlckhlaWdodCAtIGhlaWdodCkgLyAyO1xuICAgICAgY29uc3QgZmVhdHVyZXMgPSBgd2lkdGg9JHt3aWR0aH0saGVpZ2h0PSR7aGVpZ2h0fSxsZWZ0PSR7bGVmdH0sdG9wPSR7dG9wfSxwb3B1cD15ZXNgO1xuXG4gICAgICB0aGlzLnBvcHVwID0gd2luZG93Lm9wZW4oc3RhcnRVcmwsICdvYXV0aC1saW5rJywgZmVhdHVyZXMpO1xuXG4gICAgICBpZiAoIXRoaXMucG9wdXApIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgIGNvZGU6ICdQT1BVUF9CTE9DS0VEJyxcbiAgICAgICAgICBtZXNzYWdlOiAnRWwgbmF2ZWdhZG9yIGJsb3F1ZcOzIGxhIHZlbnRhbmEgZW1lcmdlbnRlJyxcbiAgICAgICAgfSBhcyBPQXV0aEVycm9yKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHt9OyAvLyBjbGVhbnVwIGZ1bmN0aW9uXG4gICAgICB9XG5cbiAgICAgIHRoaXMubWVzc2FnZUhhbmRsZXIgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSB3aW5kb3cubG9jYXRpb24ub3JpZ2luKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50LmRhdGEgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICAgIGlmIChkYXRhPy50eXBlICE9PSAnb2F1dGgtY2FsbGJhY2snKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jbGVhbnVwKCk7XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBpZiAoZGF0YS5lcnJvcikge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZGF0YS5lcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLm5leHQoZGF0YS50b2tlbnMgfHwgKHt9IGFzIE9BdXRoUmVzdWx0KSk7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICB0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnBvcHVwPy5jbG9zZWQpIHtcbiAgICAgICAgICB0aGlzLmNsZWFudXAoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3Ioe1xuICAgICAgICAgICAgICBjb2RlOiAnUE9QVVBfQ0xPU0VEJyxcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlIGNlcnLDsyBsYSB2ZW50YW5hIGRlIGF1dGVudGljYWNpw7NuJyxcbiAgICAgICAgICAgIH0gYXMgT0F1dGhFcnJvcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIDUwMCk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB0aGlzLmNsZWFudXAoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGxvcyBwcm92ZWVkb3JlcyBPQXV0aCB2aW5jdWxhZG9zIGFsIHVzdWFyaW8uXG4gICAqL1xuICBnZXRMaW5rZWRQcm92aWRlcnMoKTogT2JzZXJ2YWJsZTxMaW5rZWRQcm92aWRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IHByb3ZpZGVyczogTGlua2VkUHJvdmlkZXJbXSB9PihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL3Byb3ZpZGVyc2ApXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PlxuICAgICAgICAgIHRocm93RXJyb3IoXG4gICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgIGNvZGU6IGVycm9yLmVycm9yPy5jb2RlIHx8ICdGRVRDSF9FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIG9idGVuZXIgcHJvdmVlZG9yZXMgdmluY3VsYWRvcycsXG4gICAgICAgICAgICAgIH0pIGFzIE9BdXRoRXJyb3JcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlPExpbmtlZFByb3ZpZGVyW10+O1xuICB9XG5cbiAgLyoqXG4gICAqIERlc3ZpbmN1bGEgdW4gcHJvdmVlZG9yIE9BdXRoLlxuICAgKi9cbiAgdW5saW5rUHJvdmlkZXIocHJvdmlkZXI6IE9BdXRoUHJvdmlkZXIpOiBPYnNlcnZhYmxlPHsgc3VjY2VzczogYm9vbGVhbiB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8eyBzdWNjZXNzOiBib29sZWFuIH0+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvdW5saW5rYCwgeyBwcm92aWRlciB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICB0aHJvd0Vycm9yKFxuICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBjb2RlOiBlcnJvci5lcnJvcj8uY29kZSB8fCAnVU5MSU5LX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgZGVzdmluY3VsYXIgcHJvdmVlZG9yJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFc3RhYmxlY2UgY29udHJhc2XDsWEgcGFyYSB1c3VhcmlvcyBxdWUgc29sbyB0aWVuZW4gT0F1dGguXG4gICAqL1xuICBzZXRQYXNzd29yZChwYXNzd29yZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx7IHN1Y2Nlc3M6IGJvb2xlYW4gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5wb3N0PHsgc3VjY2VzczogYm9vbGVhbiB9PihgJHt0aGlzLmNvbmZpZz8uYXBpVXJsfS92Mi9hdXRoL29hdXRoL3NldC1wYXNzd29yZGAsIHsgcGFzc3dvcmQgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ1NFVF9QQVNTV09SRF9FUlJPUicsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogZXJyb3IuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0Vycm9yIGFsIGVzdGFibGVjZXIgY29udHJhc2XDsWEnLFxuICAgICAgICAgICAgICB9KSBhcyBPQXV0aEVycm9yXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGVsIHVzdWFyaW8gdGllbmUgY29udHJhc2XDsWEgZXN0YWJsZWNpZGEuXG4gICAqL1xuICBoYXNQYXNzd29yZCgpOiBPYnNlcnZhYmxlPEhhc1Bhc3N3b3JkUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwXG4gICAgICAuZ2V0PEhhc1Bhc3N3b3JkUmVzcG9uc2U+KGAke3RoaXMuY29uZmlnPy5hcGlVcmx9L3YyL2F1dGgvb2F1dGgvaGFzLXBhc3N3b3JkYClcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+XG4gICAgICAgICAgdGhyb3dFcnJvcihcbiAgICAgICAgICAgICgpID0+XG4gICAgICAgICAgICAgICh7XG4gICAgICAgICAgICAgICAgY29kZTogZXJyb3IuZXJyb3I/LmNvZGUgfHwgJ0NIRUNLX1BBU1NXT1JEX0VSUk9SJyxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBlcnJvci5lcnJvcj8ubWVzc2FnZSB8fCAnRXJyb3IgYWwgdmVyaWZpY2FyIGNvbnRyYXNlw7FhJyxcbiAgICAgICAgICAgICAgfSkgYXMgT0F1dGhFcnJvclxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXZpc2EgbG9jYWxTdG9yYWdlIHBvciBkYXRvcyBkZSBjYWxsYmFjayBPQXV0aCAoZmFsbGJhY2sgcGFyYSBDT09QKS5cbiAgICogU29sbyBhY2VwdGEgZGF0b3MgcmVjaWVudGVzICjDumx0aW1vcyAzMCBzZWd1bmRvcykuXG4gICAqL1xuICBwcml2YXRlIGNoZWNrTG9jYWxTdG9yYWdlRmFsbGJhY2soKTogT0F1dGhDYWxsYmFja0RhdGEgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGltZXN0YW1wID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ29hdXRoX2NhbGxiYWNrX3RpbWVzdGFtcCcpO1xuICAgICAgY29uc3QgZGF0YVN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdvYXV0aF9jYWxsYmFja19kYXRhJyk7XG5cbiAgICAgIGlmICghdGltZXN0YW1wIHx8ICFkYXRhU3RyKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICAvLyBTb2xvIGFjZXB0YXIgZGF0b3MgZGUgbG9zIMO6bHRpbW9zIDMwIHNlZ3VuZG9zXG4gICAgICBjb25zdCBhZ2UgPSBEYXRlLm5vdygpIC0gcGFyc2VJbnQodGltZXN0YW1wLCAxMCk7XG4gICAgICBpZiAoYWdlID4gMzAwMDApIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1tPQXV0aFNlcnZpY2VdIGxvY2FsU3RvcmFnZSBkYXRhIHRvbyBvbGQsIGlnbm9yaW5nJyk7XG4gICAgICAgIHRoaXMuY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UoZGF0YVN0cikgYXMgT0F1dGhDYWxsYmFja0RhdGE7XG4gICAgICB0aGlzLmNsZWFyTG9jYWxTdG9yYWdlRmFsbGJhY2soKTtcblxuICAgICAgLy8gRWwgY2FtaW5vIGxvY2FsU3RvcmFnZSBlcyBlbCBxdWUgdW4gWFNTIHBvZHLDrWEgZm9yamFyIChNLTA3KS4gRWxcbiAgICAgIC8vIHBvc3RNZXNzYWdlIHlhIHZhbGlkYSBvcmlnaW4gKyB0aXBvOyBhY8OhIHJlcGxpY2Ftb3MgZXNhcyBkZWZlbnNhcyB5XG4gICAgICAvLyBzdW1hbW9zIGxhIHZlcmlmaWNhY2nDs24gZGVsIG5vbmNlIGRlIGZsdWpvICsgZm9ybWEgZGVsIHBheWxvYWQuXG4gICAgICBpZiAoZGF0YT8udHlwZSAhPT0gJ29hdXRoLWNhbGxiYWNrJykge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5pc05vbmNlVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNDYWxsYmFja1NoYXBlVmFsaWQoZGF0YSkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW09BdXRoU2VydmljZV0gRXJyb3IgcmVhZGluZyBsb2NhbFN0b3JhZ2UgZmFsbGJhY2s6JywgZSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGltcGlhIGRhdG9zIGRlIGZhbGxiYWNrIGRlIGxvY2FsU3RvcmFnZS5cbiAgICovXG4gIHByaXZhdGUgY2xlYXJMb2NhbFN0b3JhZ2VGYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ29hdXRoX2NhbGxiYWNrX2RhdGEnKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdvYXV0aF9jYWxsYmFja190aW1lc3RhbXAnKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yYXIgZXJyb3JlcyBkZSBsaW1waWV6YVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgcmVjdXJzb3MgZGVsIHBvcHVwLlxuICAgKi9cbiAgcHJpdmF0ZSBjbGVhbnVwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1lc3NhZ2VIYW5kbGVyKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIHRoaXMubWVzc2FnZUhhbmRsZXIpO1xuICAgICAgdGhpcy5tZXNzYWdlSGFuZGxlciA9IG51bGw7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2hlY2tDbG9zZWRJbnRlcnZhbCkge1xuICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmNoZWNrQ2xvc2VkSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5jaGVja0Nsb3NlZEludGVydmFsID0gbnVsbDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wb3B1cCAmJiAhdGhpcy5wb3B1cC5jbG9zZWQpIHtcbiAgICAgIHRoaXMucG9wdXAuY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5wb3B1cCA9IG51bGw7XG4gICAgLy8gRWwgbm9uY2UgeWEgZnVlIHZlcmlmaWNhZG8gKHNpIGNvcnJlc3BvbmTDrWEpIGFudGVzIGRlIGxsZWdhciBhY8OhOyBzZVxuICAgIC8vIGxpbXBpYSBwYXJhIG5vIHJldXNhcmxvIGVuIHVuIGZsdWpvIGZ1dHVybyAoTS0wNykuXG4gICAgdGhpcy5leHBlY3RlZE5vbmNlID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmEgdW4gbm9uY2UgYWxlYXRvcmlvIChDU1BSTkcpIHVybC1zYWZlIHBhcmEgZWwgZmx1am8gT0F1dGggKE0tMDcpLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZU5vbmNlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheSgxNik7XG4gICAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhieXRlcyk7XG4gICAgbGV0IGJpbiA9ICcnO1xuICAgIGJ5dGVzLmZvckVhY2goYiA9PiAoYmluICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYikpKTtcbiAgICAvLyBiYXNlNjR1cmwgc2luIHBhZGRpbmcuXG4gICAgcmV0dXJuIGJ0b2EoYmluKS5yZXBsYWNlKC9cXCsvZywgJy0nKS5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC89KyQvLCAnJyk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2EgcXVlIGVsIGNhbGxiYWNrIHRyYWlnYSBlbCBub25jZSBkZWwgZmx1am8gYWN0dWFsIChNLTA3KS5cbiAgICpcbiAgICogRXN0cmljdG86IHNpIGVsIG9wZW5lciBnZW5lcsOzIHVuIG5vbmNlIChzaWVtcHJlLCBlbiBjbGllbnRlcyBudWV2b3MpIGV4aWdlXG4gICAqIHF1ZSBlbCBjYWxsYmFjayBsbyB0cmFpZ2EgeSBjb2luY2lkYS4gVW4gcGF5bG9hZCBmb3JqYWRvIGVuIGxvY2FsU3RvcmFnZSBwb3JcbiAgICogWFNTIG5vIGNvbm9jZSBlbCBub25jZSAodml2ZSBzb2xvIGVuIG1lbW9yaWEpIOKGkiBzZSByZWNoYXphLlxuICAgKlxuICAgKiDimqDvuI8gUmVxdWllcmUgcXVlIGVsIGJhY2tlbmQgeWEgZWNoZSBgY2xpZW50X25vbmNlYCBlbiBlbCBjYWxsYmFjay4gRGVwbG95OlxuICAgKiBiYWNrZW5kIEFOVEVTIHF1ZSBlbCBmcm9udGVuZCwgc2kgbm8gZXN0ZSBjaGVjayByZWNoYXphIGNhbGxiYWNrcyBsZWfDrXRpbW9zXG4gICAqIChzaW4gbm9uY2UpIGR1cmFudGUgbGEgdmVudGFuYSBkZSB0cmFuc2ljacOzbi5cbiAgICovXG4gIHByaXZhdGUgaXNOb25jZVZhbGlkKGRhdGE6IE9BdXRoQ2FsbGJhY2tEYXRhKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmV4cGVjdGVkTm9uY2UpIHtcbiAgICAgIC8vIE5vIGhheSBmbHVqbyBjb24gbm9uY2UgYWN0aXZvIChjYXNvIGxlZ2FjeSAvIGxpbmsgZmxvdykg4oaSIG5vIGJsb3F1ZWFyLlxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBkYXRhPy5ub25jZSA9PT0gdGhpcy5leHBlY3RlZE5vbmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYSBsYSBmb3JtYSBkZWwgcGF5bG9hZCBkZWwgY2FsbGJhY2sgKE0tMDcpOiBkZWJlIHNlciB1biBlcnJvciBvIHRva2Vuc1xuICAgKiBjb21vIG9iamV0by4gQmxvcXVlYSBpbnllY2Npb25lcyBtYWxmb3JtYWRhcyAocHJpbWl0aXZvcywgc2hhcGVzIGJhc3VyYSkuXG4gICAqL1xuICBwcml2YXRlIGlzQ2FsbGJhY2tTaGFwZVZhbGlkKGRhdGE6IE9BdXRoQ2FsbGJhY2tEYXRhKTogYm9vbGVhbiB7XG4gICAgY29uc3QgaGFzRXJyb3IgPSAhIWRhdGEuZXJyb3IgJiYgdHlwZW9mIGRhdGEuZXJyb3IgPT09ICdvYmplY3QnO1xuICAgIGNvbnN0IGhhc1Rva2VucyA9ICEhZGF0YS50b2tlbnMgJiYgdHlwZW9mIGRhdGEudG9rZW5zID09PSAnb2JqZWN0JztcbiAgICByZXR1cm4gaGFzRXJyb3IgfHwgaGFzVG9rZW5zO1xuICB9XG59XG4iXX0=
|
|
@@ -30,7 +30,8 @@ export class AuthStorageService {
|
|
|
30
30
|
return;
|
|
31
31
|
try {
|
|
32
32
|
localStorage.setItem(this.keys.ACCESS_TOKEN, state.accessToken);
|
|
33
|
-
localStorage
|
|
33
|
+
// H-05: el refresh token NO se persiste en localStorage — vive en una
|
|
34
|
+
// cookie HttpOnly que el backend emite. Así un XSS no puede exfiltrarlo.
|
|
34
35
|
localStorage.setItem(this.keys.ROLES, JSON.stringify(state.roles));
|
|
35
36
|
localStorage.setItem(this.keys.PERMISSIONS, JSON.stringify(state.permissions));
|
|
36
37
|
localStorage.setItem(this.keys.IS_SUPER_ADMIN, String(state.isSuperAdmin));
|
|
@@ -88,15 +89,10 @@ export class AuthStorageService {
|
|
|
88
89
|
/**
|
|
89
90
|
* Guarda el refresh token (token rotation).
|
|
90
91
|
*/
|
|
91
|
-
saveRefreshToken(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
localStorage.setItem(this.keys.REFRESH_TOKEN, token);
|
|
96
|
-
}
|
|
97
|
-
catch (e) {
|
|
98
|
-
console.warn('[ValtechAuth] Error guardando refresh token:', e);
|
|
99
|
-
}
|
|
92
|
+
saveRefreshToken(_token) {
|
|
93
|
+
// H-05: no-op. El refresh token ya no se persiste en localStorage; lo
|
|
94
|
+
// transporta una cookie HttpOnly emitida por el backend. Se mantiene el
|
|
95
|
+
// método para no romper llamadores existentes durante la transición.
|
|
100
96
|
}
|
|
101
97
|
/**
|
|
102
98
|
* Guarda los permisos actualizados.
|
|
@@ -178,4 +174,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
178
174
|
type: Inject,
|
|
179
175
|
args: [PLATFORM_ID]
|
|
180
176
|
}] }] });
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUNtRCxNQUFnQyxFQUM1RCxVQUFrQjtRQURVLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBR2pGLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUNWLG1GQUFtRixDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxJQUFJLGVBQWUsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1YsWUFBWSxFQUFFLEdBQUcsTUFBTSxjQUFjO1lBQ3JDLGFBQWEsRUFBRSxHQUFHLE1BQU0sZUFBZTtZQUN2QyxLQUFLLEVBQUUsR0FBRyxNQUFNLE9BQU87WUFDdkIsV0FBVyxFQUFFLEdBQUcsTUFBTSxhQUFhO1lBQ25DLGNBQWMsRUFBRSxHQUFHLE1BQU0sZ0JBQWdCO1lBQ3pDLFVBQVUsRUFBRSxHQUFHLE1BQU0sWUFBWTtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEtBQXNC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MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFBMQVRGT1JNX0lELCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBTdG9yZWRBdXRoU3RhdGUsIEdldFBlcm1pc3Npb25zUmVzcG9uc2UsIFZhbHRlY2hBdXRoQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQ2xhdmVzIGRlIHN0b3JhZ2UgcGFyYSBhdXRlbnRpY2FjacOzbi5cbiAqL1xuaW50ZXJmYWNlIFN0b3JhZ2VLZXlzIHtcbiAgQUNDRVNTX1RPS0VOOiBzdHJpbmc7XG4gIFJFRlJFU0hfVE9LRU46IHN0cmluZztcbiAgUk9MRVM6IHN0cmluZztcbiAgUEVSTUlTU0lPTlM6IHN0cmluZztcbiAgSVNfU1VQRVJfQURNSU46IHN0cmluZztcbiAgRVhQSVJFU19BVDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgcGVyc2lzdGVuY2lhIGRlIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbiBlbiBsb2NhbFN0b3JhZ2UuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXV0aFN0b3JhZ2VTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBrZXlzOiBTdG9yYWdlS2V5cztcbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChWQUxURUNIX0FVVEhfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogVmFsdGVjaEF1dGhDb25maWcgfCBudWxsLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHBsYXRmb3JtSWQ6IE9iamVjdFxuICApIHtcbiAgICB0aGlzLmlzQnJvd3NlciA9IGlzUGxhdGZvcm1Ccm93c2VyKHBsYXRmb3JtSWQpO1xuICAgIGlmICghdGhpcy5jb25maWcgJiYgaXNEZXZNb2RlKCkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1t2YWx0ZWNoLWNvbXBvbmVudHNdIEF1dGhTdG9yYWdlU2VydmljZTogcHJvdmlkZVZhbHRlY2hBdXRoKCkgbm8gZXN0w6EgZW4gbWFpbi50cy4nXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLmNvbmZpZz8uc3RvcmFnZVByZWZpeCB8fCAndmFsdGVjaF9hdXRoXyc7XG4gICAgdGhpcy5rZXlzID0ge1xuICAgICAgQUNDRVNTX1RPS0VOOiBgJHtwcmVmaXh9YWNjZXNzX3Rva2VuYCxcbiAgICAgIFJFRlJFU0hfVE9LRU46IGAke3ByZWZpeH1yZWZyZXNoX3Rva2VuYCxcbiAgICAgIFJPTEVTOiBgJHtwcmVmaXh9cm9sZXNgLFxuICAgICAgUEVSTUlTU0lPTlM6IGAke3ByZWZpeH1wZXJtaXNzaW9uc2AsXG4gICAgICBJU19TVVBFUl9BRE1JTjogYCR7cHJlZml4fWlzX3N1cGVyX2FkbWluYCxcbiAgICAgIEVYUElSRVNfQVQ6IGAke3ByZWZpeH1leHBpcmVzX2F0YCxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBlbCBlc3RhZG8gY29tcGxldG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBzYXZlU3RhdGUoc3RhdGU6IFN0b3JlZEF1dGhTdGF0ZSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgc3RhdGUuYWNjZXNzVG9rZW4pO1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLlJFRlJFU0hfVE9LRU4sIHN0YXRlLnJlZnJlc2hUb2tlbik7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnBlcm1pc3Npb25zKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sIFN0cmluZyhzdGF0ZS5pc1N1cGVyQWRtaW4pKTtcbiAgICAgIGlmIChzdGF0ZS5leHBpcmVzQXQpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQsIFN0cmluZyhzdGF0ZS5leHBpcmVzQXQpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIGVzdGFkbyBlbiBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRTdGF0ZSgpOiBQYXJ0aWFsPFN0b3JlZEF1dGhTdGF0ZT4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB7fTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJvbGVzSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5ST0xFUyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMpO1xuICAgICAgY29uc3QgaXNTdXBlckFkbWluID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOKSA9PT0gJ3RydWUnO1xuICAgICAgY29uc3QgZXhwaXJlc0F0U3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2Nlc3NUb2tlbjogYWNjZXNzVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJvbGVzOiByb2xlc0pzb24gPyBKU09OLnBhcnNlKHJvbGVzSnNvbikgOiBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zSnNvbiA/IEpTT04ucGFyc2UocGVybWlzc2lvbnNKc29uKSA6IFtdLFxuICAgICAgICBpc1N1cGVyQWRtaW4sXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0U3RyID8gTnVtYmVyKGV4cGlyZXNBdFN0cikgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBjYXJnYW5kbyBlc3RhZG8gZGVzZGUgc3RvcmFnZTonLCBlKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIHNvbG8gZWwgYWNjZXNzIHRva2VuLlxuICAgKi9cbiAgc2F2ZUFjY2Vzc1Rva2VuKHRva2VuOiBzdHJpbmcsIGV4cGlyZXNBdD86IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgdG9rZW4pO1xuICAgICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKGV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gYWNjZXNzIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgZWwgcmVmcmVzaCB0b2tlbiAodG9rZW4gcm90YXRpb24pLlxuICAgKi9cbiAgc2F2ZVJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUkVGUkVTSF9UT0tFTiwgdG9rZW4pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gcmVmcmVzaCB0b2tlbjonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIGxvcyBwZXJtaXNvcyBhY3R1YWxpemFkb3MuXG4gICAqL1xuICBzYXZlUGVybWlzc2lvbnMocmVzcG9uc2U6IEdldFBlcm1pc3Npb25zUmVzcG9uc2UpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5ST0xFUywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2Uucm9sZXMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5QRVJNSVNTSU9OUywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UucGVybWlzc2lvbnMpKTtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTiwgU3RyaW5nKHJlc3BvbnNlLmlzU3VwZXJBZG1pbikpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gcGVybWlzb3M6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENhcmdhIGxvcyBwZXJtaXNvcyBkZXNkZSBzdG9yYWdlLlxuICAgKi9cbiAgbG9hZFBlcm1pc3Npb25zKCk6IHtcbiAgICByb2xlczogc3RyaW5nW107XG4gICAgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIGlzU3VwZXJBZG1pbjogYm9vbGVhbjtcbiAgfSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIHsgcm9sZXM6IFtdLCBwZXJtaXNzaW9uczogW10sIGlzU3VwZXJBZG1pbjogZmFsc2UgfTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJvbGVzSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5ST0xFUyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMpO1xuICAgICAgY29uc3QgaXNTdXBlckFkbWluID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOKSA9PT0gJ3RydWUnO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICByb2xlczogcm9sZXNKc29uID8gSlNPTi5wYXJzZShyb2xlc0pzb24pIDogW10sXG4gICAgICAgIHBlcm1pc3Npb25zOiBwZXJtaXNzaW9uc0pzb24gPyBKU09OLnBhcnNlKHBlcm1pc3Npb25zSnNvbikgOiBbXSxcbiAgICAgICAgaXNTdXBlckFkbWluLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB7IHJvbGVzOiBbXSwgcGVybWlzc2lvbnM6IFtdLCBpc1N1cGVyQWRtaW46IGZhbHNlIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgcmVmcmVzaCB0b2tlbi5cbiAgICovXG4gIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlJFRlJFU0hfVE9LRU4pO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSB0b2RvIGVsIGVzdGFkbyBkZSBhdXRlbnRpY2FjacOzbi5cbiAgICovXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmtleXMpLmZvckVhY2goa2V5ID0+IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBsaW1waWFuZG8gc3RvcmFnZTonLCBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgaGF5IGVzdGFkbyBndWFyZGFkby5cbiAgICovXG4gIGhhc1N0b3JlZFN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOKTtcbiAgfVxufVxuIl19
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBZS9DOztHQUVHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUNtRCxNQUFnQyxFQUM1RCxVQUFrQjtRQURVLFdBQU0sR0FBTixNQUFNLENBQTBCO1FBR2pGLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxDQUNWLG1GQUFtRixDQUNwRixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYSxJQUFJLGVBQWUsQ0FBQztRQUM3RCxJQUFJLENBQUMsSUFBSSxHQUFHO1lBQ1YsWUFBWSxFQUFFLEdBQUcsTUFBTSxjQUFjO1lBQ3JDLGFBQWEsRUFBRSxHQUFHLE1BQU0sZUFBZTtZQUN2QyxLQUFLLEVBQUUsR0FBRyxNQUFNLE9BQU87WUFDdkIsV0FBVyxFQUFFLEdBQUcsTUFBTSxhQUFhO1lBQ25DLGNBQWMsRUFBRSxHQUFHLE1BQU0sZ0JBQWdCO1lBQ3pDLFVBQVUsRUFBRSxHQUFHLE1BQU0sWUFBWTtTQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEtBQXNC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QWEsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUs7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQzVCLElBQUksQ0FBQztZQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0FsS1Usa0JBQWtCLGtCQUtQLG1CQUFtQiw2QkFDL0IsV0FBVzttSEFOVixrQkFBa0IsY0FETCxNQUFNOzs0RkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBTTdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDdEMsTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCwgUExBVEZPUk1fSUQsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVkFMVEVDSF9BVVRIX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFN0b3JlZEF1dGhTdGF0ZSwgR2V0UGVybWlzc2lvbnNSZXNwb25zZSwgVmFsdGVjaEF1dGhDb25maWcgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBDbGF2ZXMgZGUgc3RvcmFnZSBwYXJhIGF1dGVudGljYWNpw7NuLlxuICovXG5pbnRlcmZhY2UgU3RvcmFnZUtleXMge1xuICBBQ0NFU1NfVE9LRU46IHN0cmluZztcbiAgUkVGUkVTSF9UT0tFTjogc3RyaW5nO1xuICBST0xFUzogc3RyaW5nO1xuICBQRVJNSVNTSU9OUzogc3RyaW5nO1xuICBJU19TVVBFUl9BRE1JTjogc3RyaW5nO1xuICBFWFBJUkVTX0FUOiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2VydmljaW8gcGFyYSBwZXJzaXN0ZW5jaWEgZGUgZXN0YWRvIGRlIGF1dGVudGljYWNpw7NuIGVuIGxvY2FsU3RvcmFnZS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBdXRoU3RvcmFnZVNlcnZpY2Uge1xuICBwcml2YXRlIGtleXM6IFN0b3JhZ2VLZXlzO1xuICBwcml2YXRlIHJlYWRvbmx5IGlzQnJvd3NlcjogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyB8IG51bGwsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0XG4gICkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIocGxhdGZvcm1JZCk7XG4gICAgaWYgKCF0aGlzLmNvbmZpZyAmJiBpc0Rldk1vZGUoKSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnW3ZhbHRlY2gtY29tcG9uZW50c10gQXV0aFN0b3JhZ2VTZXJ2aWNlOiBwcm92aWRlVmFsdGVjaEF1dGgoKSBubyBlc3TDoSBlbiBtYWluLnRzLidcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuY29uZmlnPy5zdG9yYWdlUHJlZml4IHx8ICd2YWx0ZWNoX2F1dGhfJztcbiAgICB0aGlzLmtleXMgPSB7XG4gICAgICBBQ0NFU1NfVE9LRU46IGAke3ByZWZpeH1hY2Nlc3NfdG9rZW5gLFxuICAgICAgUkVGUkVTSF9UT0tFTjogYCR7cHJlZml4fXJlZnJlc2hfdG9rZW5gLFxuICAgICAgUk9MRVM6IGAke3ByZWZpeH1yb2xlc2AsXG4gICAgICBQRVJNSVNTSU9OUzogYCR7cHJlZml4fXBlcm1pc3Npb25zYCxcbiAgICAgIElTX1NVUEVSX0FETUlOOiBgJHtwcmVmaXh9aXNfc3VwZXJfYWRtaW5gLFxuICAgICAgRVhQSVJFU19BVDogYCR7cHJlZml4fWV4cGlyZXNfYXRgLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIGVsIGVzdGFkbyBjb21wbGV0byBkZSBhdXRlbnRpY2FjacOzbi5cbiAgICovXG4gIHNhdmVTdGF0ZShzdGF0ZTogU3RvcmVkQXV0aFN0YXRlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOLCBzdGF0ZS5hY2Nlc3NUb2tlbik7XG4gICAgICAvLyBILTA1OiBlbCByZWZyZXNoIHRva2VuIE5PIHNlIHBlcnNpc3RlIGVuIGxvY2FsU3RvcmFnZSDigJQgdml2ZSBlbiB1bmFcbiAgICAgIC8vIGNvb2tpZSBIdHRwT25seSBxdWUgZWwgYmFja2VuZCBlbWl0ZS4gQXPDrSB1biBYU1Mgbm8gcHVlZGUgZXhmaWx0cmFybG8uXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMsIEpTT04uc3RyaW5naWZ5KHN0YXRlLnBlcm1pc3Npb25zKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sIFN0cmluZyhzdGF0ZS5pc1N1cGVyQWRtaW4pKTtcbiAgICAgIGlmIChzdGF0ZS5leHBpcmVzQXQpIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQsIFN0cmluZyhzdGF0ZS5leHBpcmVzQXQpKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIGVzdGFkbyBlbiBzdG9yYWdlOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24gZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRTdGF0ZSgpOiBQYXJ0aWFsPFN0b3JlZEF1dGhTdGF0ZT4ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiB7fTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuQUNDRVNTX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgICAgIGNvbnN0IHJvbGVzSnNvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5ST0xFUyk7XG4gICAgICBjb25zdCBwZXJtaXNzaW9uc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMpO1xuICAgICAgY29uc3QgaXNTdXBlckFkbWluID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLklTX1NVUEVSX0FETUlOKSA9PT0gJ3RydWUnO1xuICAgICAgY29uc3QgZXhwaXJlc0F0U3RyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkVYUElSRVNfQVQpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2Nlc3NUb2tlbjogYWNjZXNzVG9rZW4gfHwgdW5kZWZpbmVkLFxuICAgICAgICByZWZyZXNoVG9rZW46IHJlZnJlc2hUb2tlbiB8fCB1bmRlZmluZWQsXG4gICAgICAgIHJvbGVzOiByb2xlc0pzb24gPyBKU09OLnBhcnNlKHJvbGVzSnNvbikgOiBbXSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHBlcm1pc3Npb25zSnNvbiA/IEpTT04ucGFyc2UocGVybWlzc2lvbnNKc29uKSA6IFtdLFxuICAgICAgICBpc1N1cGVyQWRtaW4sXG4gICAgICAgIGV4cGlyZXNBdDogZXhwaXJlc0F0U3RyID8gTnVtYmVyKGV4cGlyZXNBdFN0cikgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBjYXJnYW5kbyBlc3RhZG8gZGVzZGUgc3RvcmFnZTonLCBlKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3VhcmRhIHNvbG8gZWwgYWNjZXNzIHRva2VuLlxuICAgKi9cbiAgc2F2ZUFjY2Vzc1Rva2VuKHRva2VuOiBzdHJpbmcsIGV4cGlyZXNBdD86IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybjtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTiwgdG9rZW4pO1xuICAgICAgaWYgKGV4cGlyZXNBdCkge1xuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuRVhQSVJFU19BVCwgU3RyaW5nKGV4cGlyZXNBdCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignW1ZhbHRlY2hBdXRoXSBFcnJvciBndWFyZGFuZG8gYWNjZXNzIHRva2VuOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHdWFyZGEgZWwgcmVmcmVzaCB0b2tlbiAodG9rZW4gcm90YXRpb24pLlxuICAgKi9cbiAgc2F2ZVJlZnJlc2hUb2tlbihfdG9rZW46IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIEgtMDU6IG5vLW9wLiBFbCByZWZyZXNoIHRva2VuIHlhIG5vIHNlIHBlcnNpc3RlIGVuIGxvY2FsU3RvcmFnZTsgbG9cbiAgICAvLyB0cmFuc3BvcnRhIHVuYSBjb29raWUgSHR0cE9ubHkgZW1pdGlkYSBwb3IgZWwgYmFja2VuZC4gU2UgbWFudGllbmUgZWxcbiAgICAvLyBtw6l0b2RvIHBhcmEgbm8gcm9tcGVyIGxsYW1hZG9yZXMgZXhpc3RlbnRlcyBkdXJhbnRlIGxhIHRyYW5zaWNpw7NuLlxuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkYSBsb3MgcGVybWlzb3MgYWN0dWFsaXphZG9zLlxuICAgKi9cbiAgc2F2ZVBlcm1pc3Npb25zKHJlc3BvbnNlOiBHZXRQZXJtaXNzaW9uc1Jlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUk9MRVMsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLnJvbGVzKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuUEVSTUlTU0lPTlMsIEpTT04uc3RyaW5naWZ5KHJlc3BvbnNlLnBlcm1pc3Npb25zKSk7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmtleXMuSVNfU1VQRVJfQURNSU4sIFN0cmluZyhyZXNwb25zZS5pc1N1cGVyQWRtaW4pKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgZ3VhcmRhbmRvIHBlcm1pc29zOicsIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYXJnYSBsb3MgcGVybWlzb3MgZGVzZGUgc3RvcmFnZS5cbiAgICovXG4gIGxvYWRQZXJtaXNzaW9ucygpOiB7XG4gICAgcm9sZXM6IHN0cmluZ1tdO1xuICAgIHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBpc1N1cGVyQWRtaW46IGJvb2xlYW47XG4gIH0ge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybiB7IHJvbGVzOiBbXSwgcGVybWlzc2lvbnM6IFtdLCBpc1N1cGVyQWRtaW46IGZhbHNlIH07XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCByb2xlc0pzb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmtleXMuUk9MRVMpO1xuICAgICAgY29uc3QgcGVybWlzc2lvbnNKc29uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLlBFUk1JU1NJT05TKTtcbiAgICAgIGNvbnN0IGlzU3VwZXJBZG1pbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5JU19TVVBFUl9BRE1JTikgPT09ICd0cnVlJztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcm9sZXM6IHJvbGVzSnNvbiA/IEpTT04ucGFyc2Uocm9sZXNKc29uKSA6IFtdLFxuICAgICAgICBwZXJtaXNzaW9uczogcGVybWlzc2lvbnNKc29uID8gSlNPTi5wYXJzZShwZXJtaXNzaW9uc0pzb24pIDogW10sXG4gICAgICAgIGlzU3VwZXJBZG1pbixcbiAgICAgIH07XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4geyByb2xlczogW10sIHBlcm1pc3Npb25zOiBbXSwgaXNTdXBlckFkbWluOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIHJlZnJlc2ggdG9rZW4uXG4gICAqL1xuICBnZXRSZWZyZXNoVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMua2V5cy5SRUZSRVNIX1RPS0VOKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgdG9kbyBlbCBlc3RhZG8gZGUgYXV0ZW50aWNhY2nDs24uXG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy5rZXlzKS5mb3JFYWNoKGtleSA9PiBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoQXV0aF0gRXJyb3IgbGltcGlhbmRvIHN0b3JhZ2U6JywgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWNhIHNpIGhheSBlc3RhZG8gZ3VhcmRhZG8uXG4gICAqL1xuICBoYXNTdG9yZWRTdGF0ZSgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICEhbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5rZXlzLkFDQ0VTU19UT0tFTik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
* Configuración e inicialización de Firebase para aplicaciones Angular.
|
|
5
5
|
* Usa provideValtechFirebase() en el bootstrap de tu aplicación.
|
|
6
6
|
*/
|
|
7
|
-
import { ErrorHandler, InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
7
|
+
import { ErrorHandler, InjectionToken, makeEnvironmentProviders, } from '@angular/core';
|
|
8
8
|
import { getAnalytics, provideAnalytics } from '@angular/fire/analytics';
|
|
9
9
|
import { initializeApp, provideFirebaseApp } from '@angular/fire/app';
|
|
10
10
|
import { connectAuthEmulator, getAuth, provideAuth } from '@angular/fire/auth';
|
|
11
|
-
import { connectFirestoreEmulator,
|
|
11
|
+
import { connectFirestoreEmulator, enableMultiTabIndexedDbPersistence, getFirestore, provideFirestore, } from '@angular/fire/firestore';
|
|
12
12
|
import { getMessaging, provideMessaging } from '@angular/fire/messaging';
|
|
13
13
|
import { connectStorageEmulator, getStorage, provideStorage } from '@angular/fire/storage';
|
|
14
14
|
import { AnalyticsErrorHandler } from './analytics-error-handler';
|
|
@@ -65,9 +65,9 @@ export function provideValtechFirebase(config) {
|
|
|
65
65
|
connectFirestoreEmulator(firestore, config.emulator.firestore.host, config.emulator.firestore.port);
|
|
66
66
|
}
|
|
67
67
|
// Habilitar persistencia offline si está configurada (browser-only:
|
|
68
|
-
//
|
|
68
|
+
// enableMultiTabIndexedDbPersistence requiere IndexedDB, no existe en Node).
|
|
69
69
|
if (config.persistence && isBrowser) {
|
|
70
|
-
|
|
70
|
+
enableMultiTabIndexedDbPersistence(firestore).catch(err => {
|
|
71
71
|
if (err.code === 'failed-precondition') {
|
|
72
72
|
console.warn('[ValtechFirebase] Persistencia no disponible: múltiples pestañas abiertas');
|
|
73
73
|
}
|
|
@@ -133,4 +133,4 @@ export function provideValtechFirebase(config) {
|
|
|
133
133
|
export function hasEmulators(config) {
|
|
134
134
|
return !!(config.emulator?.firestore || config.emulator?.auth || config.emulator?.storage);
|
|
135
135
|
}
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBQXdCLFlBQVksRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1B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QyxDQUFDO0lBQ3pELENBQUM7SUFFRCxpRkFBaUY7SUFDakYsOEVBQThFO0lBQzlFLElBQUksTUFBTSxDQUFDLGVBQWUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUN6RSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxzRUFBc0U7UUFDdEUsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLHNCQUFzQixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzdELFNBQVMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsb0RBQW9EO1FBQ3BELElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO1lBQ2hELFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2IsT0FBTyxFQUFFLFlBQVk7Z0JBQ3JCLFFBQVEsRUFBRSxxQkFBcUI7YUFDaEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBNkI7SUFDeEQsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFNBQVMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZpcmViYXNlIENvbmZpZ3VyYXRpb25cbiAqXG4gKiBDb25maWd1cmFjacOzbiBlIGluaWNpYWxpemFjacOzbiBkZSBGaXJlYmFzZSBwYXJhIGFwbGljYWNpb25lcyBBbmd1bGFyLlxuICogVXNhIHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBlbiBlbCBib290c3RyYXAgZGUgdHUgYXBsaWNhY2nDs24uXG4gKi9cblxuaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEVycm9ySGFuZGxlciwgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0QW5hbHl0aWNzLCBwcm92aWRlQW5hbHl0aWNzLCBTY3JlZW5UcmFja2luZ1NlcnZpY2UgfSBmcm9tICdAYW5ndWxhci9maXJlL2FuYWx5dGljcyc7XG5pbXBvcnQgeyBpbml0aWFsaXplQXBwLCBwcm92aWRlRmlyZWJhc2VBcHAgfSBmcm9tICdAYW5ndWxhci9maXJlL2FwcCc7XG5pbXBvcnQgeyBjb25uZWN0QXV0aEVtdWxhdG9yLCBnZXRBdXRoLCBwcm92aWRlQXV0aCB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvYXV0aCc7XG5pbXBvcnQge1xuICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IsXG4gIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlLFxuICBnZXRGaXJlc3RvcmUsXG4gIHByb3ZpZGVGaXJlc3RvcmUsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IGdldE1lc3NhZ2luZywgcHJvdmlkZU1lc3NhZ2luZyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvbWVzc2FnaW5nJztcbmltcG9ydCB7IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IsIGdldFN0b3JhZ2UsIHByb3ZpZGVTdG9yYWdlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJztcblxuaW1wb3J0IHsgVmFsdGVjaEZpcmViYXNlQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NFcnJvckhhbmRsZXIgfSBmcm9tICcuL2FuYWx5dGljcy1lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc1JvdXRlclRyYWNrZXIgfSBmcm9tICcuL2FuYWx5dGljcy1yb3V0ZXItdHJhY2tlcic7XG5cbi8qKlxuICogVG9rZW4gZGUgaW55ZWNjacOzbiBwYXJhIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlLlxuICogVXNhZG8gaW50ZXJuYW1lbnRlIHBvciBsb3Mgc2VydmljaW9zIGRlIEZpcmViYXNlLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaEZpcmViYXNlQ29uZmlnPihcbiAgJ1ZhbHRlY2hGaXJlYmFzZUNvbmZpZydcbik7XG5cbi8qKlxuICogUHJvdmVlIEZpcmViYXNlIGEgbGEgYXBsaWNhY2nDs24gQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2VcbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHBhcmEgdXNhciBlbiBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSh7XG4gKiAgICAgICBmaXJlYmFzZTogZW52aXJvbm1lbnQuZmlyZWJhc2UsXG4gKiAgICAgICBwZXJzaXN0ZW5jZTogdHJ1ZSxcbiAqICAgICAgIGVtdWxhdG9yOiBlbnZpcm9ubWVudC51c2VFbXVsYXRvcnMgPyB7XG4gKiAgICAgICAgIGZpcmVzdG9yZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogODA4MCB9LFxuICogICAgICAgICBhdXRoOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MDk5IH0sXG4gKiAgICAgICAgIHN0b3JhZ2U6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkxOTkgfSxcbiAqICAgICAgIH0gOiB1bmRlZmluZWQsXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hGaXJlYmFzZShjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgLy8gU1NSLXNhZmU6IGR1cmFudGUgZWwgcHJlcmVuZGVyIC8gTm9kZSwgbm8gZXhpc3RlIHdpbmRvdy4gZ2V0QW5hbHl0aWNzKCksXG4gIC8vIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKCkgeSBGQ00gdG9jYW4gQVBJcyBkZWwgYnJvd3NlciBxdWUgbm8gZXhpc3RlblxuICAvLyBlbiBlbCBzZXJ2ZXIg4oaSIGNvcnRvY2lyY3VpdG8gZGUgbG9zIHByb3ZpZGVycy9lZmVjdG9zIGJyb3dzZXItb25seSBhY8OhLlxuICBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcblxuICAvLyBDb25zdHJ1aXIgYXJyYXkgZGUgcHJvdmlkZXJzIGJhc2VcbiAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAvLyBHdWFyZGFyIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdXNvIGVuIHNlcnZpY2lvc1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcblxuICAgIC8vIEluaWNpYWxpemFyIEZpcmViYXNlIEFwcFxuICAgIHByb3ZpZGVGaXJlYmFzZUFwcCgoKSA9PiBpbml0aWFsaXplQXBwKGNvbmZpZy5maXJlYmFzZSkpLFxuXG4gICAgLy8gRmlyZXN0b3JlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JlcyB5IHBlcnNpc3RlbmNpYVxuICAgIHByb3ZpZGVGaXJlc3RvcmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoXG4gICAgICAgICAgZmlyZXN0b3JlLFxuICAgICAgICAgIGNvbmZpZy5lbXVsYXRvci5maXJlc3RvcmUuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLnBvcnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIChicm93c2VyLW9ubHk6XG4gICAgICAvLyBlbmFibGVJbmRleGVkRGJQZXJzaXN0ZW5jZSByZXF1aWVyZSBJbmRleGVkREIsIG5vIGV4aXN0ZSBlbiBOb2RlKS5cbiAgICAgIGlmIChjb25maWcucGVyc2lzdGVuY2UgJiYgaXNCcm93c2VyKSB7XG4gICAgICAgIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKGZpcmVzdG9yZSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgIGlmIChlcnIuY29kZSA9PT0gJ2ZhaWxlZC1wcmVjb25kaXRpb24nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gZGlzcG9uaWJsZTogbcO6bHRpcGxlcyBwZXN0YcOxYXMgYWJpZXJ0YXMnXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXJyLmNvZGUgPT09ICd1bmltcGxlbWVudGVkJykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKCdbVmFsdGVjaEZpcmViYXNlXSBQZXJzaXN0ZW5jaWEgbm8gc29wb3J0YWRhIGVuIGVzdGUgbmF2ZWdhZG9yJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpcmVzdG9yZTtcbiAgICB9KSxcblxuICAgIC8vIEF1dGggY29uIHNvcG9ydGUgcGFyYSBlbXVsYWRvclxuICAgIHByb3ZpZGVBdXRoKCgpID0+IHtcbiAgICAgIGNvbnN0IGF1dGggPSBnZXRBdXRoKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmF1dGgpIHtcbiAgICAgICAgY29ubmVjdEF1dGhFbXVsYXRvcihcbiAgICAgICAgICBhdXRoLFxuICAgICAgICAgIGBodHRwOi8vJHtjb25maWcuZW11bGF0b3IuYXV0aC5ob3N0fToke2NvbmZpZy5lbXVsYXRvci5hdXRoLnBvcnR9YCxcbiAgICAgICAgICB7IGRpc2FibGVXYXJuaW5nczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdXRoO1xuICAgIH0pLFxuXG4gICAgLy8gU3RvcmFnZSBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZVN0b3JhZ2UoKCkgPT4ge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2UoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSkge1xuICAgICAgICBjb25uZWN0U3RvcmFnZUVtdWxhdG9yKFxuICAgICAgICAgIHN0b3JhZ2UsXG4gICAgICAgICAgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3Iuc3RvcmFnZS5wb3J0XG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pLFxuICBdO1xuXG4gIC8vIE1lc3NhZ2luZyAoRkNNKSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIFJlcXVpZXJlIFNlcnZpY2UgV29ya2VyICsgTm90aWZpY2F0aW9ucyBBUEkg4oaSIHNraXAgdG90YWwgZW4gU1NSL05vZGUuXG4gIGlmIChjb25maWcuZW5hYmxlTWVzc2FnaW5nICYmIGlzQnJvd3Nlcikge1xuICAgIC8vIFByZS1yZWdpc3RyYXIgU1cgY3VzdG9tIGFudGVzIGRlIHF1ZSBGaXJlYmFzZSBsbyBpbnRlbnRlXG4gICAgaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvZmlyZWJhc2UtbWVzc2FnaW5nLXN3LmpzJykuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfVxuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVNZXNzYWdpbmcoKCkgPT4gZ2V0TWVzc2FnaW5nKCkpKTtcbiAgfVxuXG4gIC8vIEFuYWx5dGljcyAoR0E0KSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIGdldEFuYWx5dGljcygpIC8gU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIHRvY2FuIHdpbmRvdy9kb2N1bWVudCDihpIgc2tpcCBlbiBTU1IuXG4gIGlmIChjb25maWcuZW5hYmxlQW5hbHl0aWNzICYmIGNvbmZpZy5maXJlYmFzZS5tZWFzdXJlbWVudElkICYmIGlzQnJvd3Nlcikge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVBbmFseXRpY3MoKCkgPT4gZ2V0QW5hbHl0aWNzKCkpKTtcblxuICAgIC8vIFJvdXRlciB0cmFja2VyIHBhcmEgcGFnZSB2aWV3cyBhdXRvbcOhdGljb3MgKHBvciBkZWZlY3RvIGhhYmlsaXRhZG8pXG4gICAgaWYgKGNvbmZpZy5hbmFseXRpY3NDb25maWc/LmVuYWJsZVBhZ2VWaWV3VHJhY2tpbmcgIT09IGZhbHNlKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChBbmFseXRpY3NSb3V0ZXJUcmFja2VyKTtcbiAgICB9XG5cbiAgICAvLyBFcnJvciBoYW5kbGVyIHBhcmEgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3Jlc1xuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVFcnJvclRyYWNraW5nKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgICAgdXNlQ2xhc3M6IEFuYWx5dGljc0Vycm9ySGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsb3MgZW11bGFkb3JlcyBlc3TDoW4gY29uZmlndXJhZG9zLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgdHJ1ZSBzaSBoYXkgYWwgbWVub3MgdW4gZW11bGFkb3IgY29uZmlndXJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0VtdWxhdG9ycyhjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUgfHwgY29uZmlnLmVtdWxhdG9yPy5hdXRoIHx8IGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSk7XG59XG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFFSCxPQUFPLEVBRUwsWUFBWSxFQUNaLGNBQWMsRUFDZCx3QkFBd0IsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRyxPQUFPLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLGtDQUFrQyxFQUNsQyxZQUFZLEVBQ1osZ0JBQWdCLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEU7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxjQUFjLENBQ3ZELHVCQUF1QixDQUN4QixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUE2QjtJQUNsRSwyRUFBMkU7SUFDM0UsMkVBQTJFO0lBQzNFLDBFQUEwRTtJQUMxRSxNQUFNLFNBQVMsR0FBRyxPQUFPLE1B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SUFDekQsQ0FBQztJQUVELGlGQUFpRjtJQUNqRiw4RUFBOEU7SUFDOUUsSUFBSSxNQUFNLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXZELHNFQUFzRTtRQUN0RSxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0QsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFLG1CQUFtQixFQUFFLENBQUM7WUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDYixPQUFPLEVBQUUsWUFBWTtnQkFDckIsUUFBUSxFQUFFLHFCQUFxQjthQUNoQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUE2QjtJQUN4RCxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDN0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmlyZWJhc2UgQ29uZmlndXJhdGlvblxuICpcbiAqIENvbmZpZ3VyYWNpw7NuIGUgaW5pY2lhbGl6YWNpw7NuIGRlIEZpcmViYXNlIHBhcmEgYXBsaWNhY2lvbmVzIEFuZ3VsYXIuXG4gKiBVc2EgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIGVsIGJvb3RzdHJhcCBkZSB0dSBhcGxpY2FjacOzbi5cbiAqL1xuXG5pbXBvcnQge1xuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgRXJyb3JIYW5kbGVyLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldEFuYWx5dGljcywgcHJvdmlkZUFuYWx5dGljcywgU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hbmFseXRpY3MnO1xuaW1wb3J0IHsgaW5pdGlhbGl6ZUFwcCwgcHJvdmlkZUZpcmViYXNlQXBwIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9hcHAnO1xuaW1wb3J0IHsgY29ubmVjdEF1dGhFbXVsYXRvciwgZ2V0QXV0aCwgcHJvdmlkZUF1dGggfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHtcbiAgY29ubmVjdEZpcmVzdG9yZUVtdWxhdG9yLFxuICBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlLFxuICBnZXRGaXJlc3RvcmUsXG4gIHByb3ZpZGVGaXJlc3RvcmUsXG59IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvZmlyZXN0b3JlJztcbmltcG9ydCB7IGdldE1lc3NhZ2luZywgcHJvdmlkZU1lc3NhZ2luZyB9IGZyb20gJ0Bhbmd1bGFyL2ZpcmUvbWVzc2FnaW5nJztcbmltcG9ydCB7IGNvbm5lY3RTdG9yYWdlRW11bGF0b3IsIGdldFN0b3JhZ2UsIHByb3ZpZGVTdG9yYWdlIH0gZnJvbSAnQGFuZ3VsYXIvZmlyZS9zdG9yYWdlJztcblxuaW1wb3J0IHsgVmFsdGVjaEZpcmViYXNlQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBBbmFseXRpY3NFcnJvckhhbmRsZXIgfSBmcm9tICcuL2FuYWx5dGljcy1lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc1JvdXRlclRyYWNrZXIgfSBmcm9tICcuL2FuYWx5dGljcy1yb3V0ZXItdHJhY2tlcic7XG5cbi8qKlxuICogVG9rZW4gZGUgaW55ZWNjacOzbiBwYXJhIGxhIGNvbmZpZ3VyYWNpw7NuIGRlIEZpcmViYXNlLlxuICogVXNhZG8gaW50ZXJuYW1lbnRlIHBvciBsb3Mgc2VydmljaW9zIGRlIEZpcmViYXNlLlxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaEZpcmViYXNlQ29uZmlnPihcbiAgJ1ZhbHRlY2hGaXJlYmFzZUNvbmZpZydcbik7XG5cbi8qKlxuICogUHJvdmVlIEZpcmViYXNlIGEgbGEgYXBsaWNhY2nDs24gQW5ndWxhci5cbiAqXG4gKiBAcGFyYW0gY29uZmlnIC0gQ29uZmlndXJhY2nDs24gZGUgRmlyZWJhc2VcbiAqIEByZXR1cm5zIEVudmlyb25tZW50UHJvdmlkZXJzIHBhcmEgdXNhciBlbiBib290c3RyYXBBcHBsaWNhdGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBtYWluLnRzXG4gKiBpbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuICogaW1wb3J0IHsgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSB9IGZyb20gJ3ZhbHRlY2gtY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbiAqXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSh7XG4gKiAgICAgICBmaXJlYmFzZTogZW52aXJvbm1lbnQuZmlyZWJhc2UsXG4gKiAgICAgICBwZXJzaXN0ZW5jZTogdHJ1ZSxcbiAqICAgICAgIGVtdWxhdG9yOiBlbnZpcm9ubWVudC51c2VFbXVsYXRvcnMgPyB7XG4gKiAgICAgICAgIGZpcmVzdG9yZTogeyBob3N0OiAnbG9jYWxob3N0JywgcG9ydDogODA4MCB9LFxuICogICAgICAgICBhdXRoOiB7IGhvc3Q6ICdsb2NhbGhvc3QnLCBwb3J0OiA5MDk5IH0sXG4gKiAgICAgICAgIHN0b3JhZ2U6IHsgaG9zdDogJ2xvY2FsaG9zdCcsIHBvcnQ6IDkxOTkgfSxcbiAqICAgICAgIH0gOiB1bmRlZmluZWQsXG4gKiAgICAgfSksXG4gKiAgIF0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hGaXJlYmFzZShjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgLy8gU1NSLXNhZmU6IGR1cmFudGUgZWwgcHJlcmVuZGVyIC8gTm9kZSwgbm8gZXhpc3RlIHdpbmRvdy4gZ2V0QW5hbHl0aWNzKCksXG4gIC8vIGVuYWJsZUluZGV4ZWREYlBlcnNpc3RlbmNlKCkgeSBGQ00gdG9jYW4gQVBJcyBkZWwgYnJvd3NlciBxdWUgbm8gZXhpc3RlblxuICAvLyBlbiBlbCBzZXJ2ZXIg4oaSIGNvcnRvY2lyY3VpdG8gZGUgbG9zIHByb3ZpZGVycy9lZmVjdG9zIGJyb3dzZXItb25seSBhY8OhLlxuICBjb25zdCBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcblxuICAvLyBDb25zdHJ1aXIgYXJyYXkgZGUgcHJvdmlkZXJzIGJhc2VcbiAgY29uc3QgcHJvdmlkZXJzOiBhbnlbXSA9IFtcbiAgICAvLyBHdWFyZGFyIGNvbmZpZ3VyYWNpw7NuIHBhcmEgdXNvIGVuIHNlcnZpY2lvc1xuICAgIHsgcHJvdmlkZTogVkFMVEVDSF9GSVJFQkFTRV9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfSxcblxuICAgIC8vIEluaWNpYWxpemFyIEZpcmViYXNlIEFwcFxuICAgIHByb3ZpZGVGaXJlYmFzZUFwcCgoKSA9PiBpbml0aWFsaXplQXBwKGNvbmZpZy5maXJlYmFzZSkpLFxuXG4gICAgLy8gRmlyZXN0b3JlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JlcyB5IHBlcnNpc3RlbmNpYVxuICAgIHByb3ZpZGVGaXJlc3RvcmUoKCkgPT4ge1xuICAgICAgY29uc3QgZmlyZXN0b3JlID0gZ2V0RmlyZXN0b3JlKCk7XG5cbiAgICAgIC8vIENvbmVjdGFyIGEgZW11bGFkb3Igc2kgZXN0w6EgY29uZmlndXJhZG9cbiAgICAgIGlmIChjb25maWcuZW11bGF0b3I/LmZpcmVzdG9yZSkge1xuICAgICAgICBjb25uZWN0RmlyZXN0b3JlRW11bGF0b3IoXG4gICAgICAgICAgZmlyZXN0b3JlLFxuICAgICAgICAgIGNvbmZpZy5lbXVsYXRvci5maXJlc3RvcmUuaG9zdCxcbiAgICAgICAgICBjb25maWcuZW11bGF0b3IuZmlyZXN0b3JlLnBvcnRcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gSGFiaWxpdGFyIHBlcnNpc3RlbmNpYSBvZmZsaW5lIHNpIGVzdMOhIGNvbmZpZ3VyYWRhIChicm93c2VyLW9ubHk6XG4gICAgICAvLyBlbmFibGVNdWx0aVRhYkluZGV4ZWREYlBlcnNpc3RlbmNlIHJlcXVpZXJlIEluZGV4ZWREQiwgbm8gZXhpc3RlIGVuIE5vZGUpLlxuICAgICAgaWYgKGNvbmZpZy5wZXJzaXN0ZW5jZSAmJiBpc0Jyb3dzZXIpIHtcbiAgICAgICAgZW5hYmxlTXVsdGlUYWJJbmRleGVkRGJQZXJzaXN0ZW5jZShmaXJlc3RvcmUpLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgaWYgKGVyci5jb2RlID09PSAnZmFpbGVkLXByZWNvbmRpdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgJ1tWYWx0ZWNoRmlyZWJhc2VdIFBlcnNpc3RlbmNpYSBubyBkaXNwb25pYmxlOiBtw7psdGlwbGVzIHBlc3Rhw7FhcyBhYmllcnRhcydcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIGlmIChlcnIuY29kZSA9PT0gJ3VuaW1wbGVtZW50ZWQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tWYWx0ZWNoRmlyZWJhc2VdIFBlcnNpc3RlbmNpYSBubyBzb3BvcnRhZGEgZW4gZXN0ZSBuYXZlZ2Fkb3InKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmlyZXN0b3JlO1xuICAgIH0pLFxuXG4gICAgLy8gQXV0aCBjb24gc29wb3J0ZSBwYXJhIGVtdWxhZG9yXG4gICAgcHJvdmlkZUF1dGgoKCkgPT4ge1xuICAgICAgY29uc3QgYXV0aCA9IGdldEF1dGgoKTtcblxuICAgICAgLy8gQ29uZWN0YXIgYSBlbXVsYWRvciBzaSBlc3TDoSBjb25maWd1cmFkb1xuICAgICAgaWYgKGNvbmZpZy5lbXVsYXRvcj8uYXV0aCkge1xuICAgICAgICBjb25uZWN0QXV0aEVtdWxhdG9yKFxuICAgICAgICAgIGF1dGgsXG4gICAgICAgICAgYGh0dHA6Ly8ke2NvbmZpZy5lbXVsYXRvci5hdXRoLmhvc3R9OiR7Y29uZmlnLmVtdWxhdG9yLmF1dGgucG9ydH1gLFxuICAgICAgICAgIHsgZGlzYWJsZVdhcm5pbmdzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGF1dGg7XG4gICAgfSksXG5cbiAgICAvLyBTdG9yYWdlIGNvbiBzb3BvcnRlIHBhcmEgZW11bGFkb3JcbiAgICBwcm92aWRlU3RvcmFnZSgoKSA9PiB7XG4gICAgICBjb25zdCBzdG9yYWdlID0gZ2V0U3RvcmFnZSgpO1xuXG4gICAgICAvLyBDb25lY3RhciBhIGVtdWxhZG9yIHNpIGVzdMOhIGNvbmZpZ3VyYWRvXG4gICAgICBpZiAoY29uZmlnLmVtdWxhdG9yPy5zdG9yYWdlKSB7XG4gICAgICAgIGNvbm5lY3RTdG9yYWdlRW11bGF0b3Ioc3RvcmFnZSwgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UuaG9zdCwgY29uZmlnLmVtdWxhdG9yLnN0b3JhZ2UucG9ydCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBzdG9yYWdlO1xuICAgIH0pLFxuICBdO1xuXG4gIC8vIE1lc3NhZ2luZyAoRkNNKSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIFJlcXVpZXJlIFNlcnZpY2UgV29ya2VyICsgTm90aWZpY2F0aW9ucyBBUEkg4oaSIHNraXAgdG90YWwgZW4gU1NSL05vZGUuXG4gIGlmIChjb25maWcuZW5hYmxlTWVzc2FnaW5nICYmIGlzQnJvd3Nlcikge1xuICAgIC8vIFByZS1yZWdpc3RyYXIgU1cgY3VzdG9tIGFudGVzIGRlIHF1ZSBGaXJlYmFzZSBsbyBpbnRlbnRlXG4gICAgaWYgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpIHtcbiAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvZmlyZWJhc2UtbWVzc2FnaW5nLXN3LmpzJykuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfVxuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVNZXNzYWdpbmcoKCkgPT4gZ2V0TWVzc2FnaW5nKCkpKTtcbiAgfVxuXG4gIC8vIEFuYWx5dGljcyAoR0E0KSAtIHNvbG8gc2kgZXN0w6EgZXhwbMOtY2l0YW1lbnRlIGhhYmlsaXRhZG8geSBlc3RhbW9zIGVuIGJyb3dzZXIuXG4gIC8vIGdldEFuYWx5dGljcygpIC8gU2NyZWVuVHJhY2tpbmdTZXJ2aWNlIHRvY2FuIHdpbmRvdy9kb2N1bWVudCDihpIgc2tpcCBlbiBTU1IuXG4gIGlmIChjb25maWcuZW5hYmxlQW5hbHl0aWNzICYmIGNvbmZpZy5maXJlYmFzZS5tZWFzdXJlbWVudElkICYmIGlzQnJvd3Nlcikge1xuICAgIHByb3ZpZGVycy5wdXNoKHByb3ZpZGVBbmFseXRpY3MoKCkgPT4gZ2V0QW5hbHl0aWNzKCkpKTtcblxuICAgIC8vIFJvdXRlciB0cmFja2VyIHBhcmEgcGFnZSB2aWV3cyBhdXRvbcOhdGljb3MgKHBvciBkZWZlY3RvIGhhYmlsaXRhZG8pXG4gICAgaWYgKGNvbmZpZy5hbmFseXRpY3NDb25maWc/LmVuYWJsZVBhZ2VWaWV3VHJhY2tpbmcgIT09IGZhbHNlKSB7XG4gICAgICBwcm92aWRlcnMucHVzaChBbmFseXRpY3NSb3V0ZXJUcmFja2VyKTtcbiAgICB9XG5cbiAgICAvLyBFcnJvciBoYW5kbGVyIHBhcmEgdHJhY2tpbmcgYXV0b23DoXRpY28gZGUgZXJyb3Jlc1xuICAgIGlmIChjb25maWcuYW5hbHl0aWNzQ29uZmlnPy5lbmFibGVFcnJvclRyYWNraW5nKSB7XG4gICAgICBwcm92aWRlcnMucHVzaCh7XG4gICAgICAgIHByb3ZpZGU6IEVycm9ySGFuZGxlcixcbiAgICAgICAgdXNlQ2xhc3M6IEFuYWx5dGljc0Vycm9ySGFuZGxlcixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMocHJvdmlkZXJzKTtcbn1cblxuLyoqXG4gKiBWZXJpZmljYSBzaSBsb3MgZW11bGFkb3JlcyBlc3TDoW4gY29uZmlndXJhZG9zLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBDb25maWd1cmFjacOzbiBkZSBGaXJlYmFzZVxuICogQHJldHVybnMgdHJ1ZSBzaSBoYXkgYWwgbWVub3MgdW4gZW11bGFkb3IgY29uZmlndXJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0VtdWxhdG9ycyhjb25maWc6IFZhbHRlY2hGaXJlYmFzZUNvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gISEoY29uZmlnLmVtdWxhdG9yPy5maXJlc3RvcmUgfHwgY29uZmlnLmVtdWxhdG9yPy5hdXRoIHx8IGNvbmZpZy5lbXVsYXRvcj8uc3RvcmFnZSk7XG59XG4iXX0=
|
|
@@ -65,11 +65,9 @@ export class ThemeService {
|
|
|
65
65
|
}
|
|
66
66
|
handleAutoConfiguration() {
|
|
67
67
|
if (this.prefersDark && this.currentOption === ThemeOption.AUTO) {
|
|
68
|
-
console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);
|
|
69
68
|
this.toggleUserPreference(ThemeOption.AUTO);
|
|
70
69
|
}
|
|
71
70
|
if (!this.prefersDark && this.currentOption === ThemeOption.AUTO) {
|
|
72
|
-
console.log('💡 ThemeConfig prefersDark::: ', this.prefersDark);
|
|
73
71
|
this.toggleUserPreference(ThemeOption.AUTO);
|
|
74
72
|
}
|
|
75
73
|
}
|
|
@@ -161,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
161
159
|
type: Inject,
|
|
162
160
|
args: [PLATFORM_ID]
|
|
163
161
|
}] }] });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZiw0QkFBYSxDQUFBO0lBQ2IsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQUtELE1BQU0sT0FBTyxZQUFZO0lBb0N2QixZQUFpQyxVQUFrQjtRQW5DbkQ7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQjs7V0FFRztRQUNILGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkI7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25COztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2pDOztXQUVHO1FBQ0gsaUJBQVksR0FBRyxXQUFXLENBQUM7UUFDM0I7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQjs7V0FFRztRQUNILFlBQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBU3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsTUFB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V0FBVzttSEFwQ3BCLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBcUNjLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYXBwbGljYXRpb24gdGhlbWVzIChsaWdodCwgZGFyaywgYXV0bykuXG4gKiBIYW5kbGVzIHVzZXIgcHJlZmVyZW5jZXMsIHN5c3RlbSB0aGVtZSBkZXRlY3Rpb24sIGFuZCB0aGVtZSB0b2dnbGluZy5cbiAqIFVzZXMgbG9jYWxTdG9yYWdlIHRvIHBlcnNpc3QgdGhlIHNlbGVjdGVkIHRoZW1lLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVEhFTUUgfSBmcm9tICcuLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGVudW0gVGhlbWVPcHRpb24ge1xuICBMSUdIVCA9ICdsaWdodCcsXG4gIERBUksgPSAnZGFyaycsXG4gIEFVVE8gPSAnYXV0bycsXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaWdodCB0aGVtZSBpcyBhY3RpdmUuXG4gICAqL1xuICBsaWdodFRvZ2dsZSA9IGZhbHNlO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBkYXJrIHRoZW1lIGlzIGFjdGl2ZS5cbiAgICovXG4gIGRhcmtUb2dnbGUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgYXV0byB0aGVtZSBpcyBhY3RpdmUuXG4gICAqL1xuICBhdXRvVG9nZ2xlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzZWxlY3RlZCB0aGVtZSBvcHRpb24uXG4gICAqL1xuICBjdXJyZW50T3B0aW9uID0gVGhlbWVPcHRpb24uQVVUTztcbiAgLyoqXG4gICAqIEVudW0gd2l0aCBhbGwgYXZhaWxhYmxlIHRoZW1lIG9wdGlvbnMuXG4gICAqL1xuICB0aGVtZU9wdGlvbnMgPSBUaGVtZU9wdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN5c3RlbSBwcmVmZXJzIGRhcmsgbW9kZS5cbiAgICovXG4gIHByZWZlcnNEYXJrID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCB0aGVtZSBvcHRpb24uXG4gICAqL1xuICBkZWZhdWx0ID0gVGhlbWVPcHRpb24uQVVUTztcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIHRoZSBjdXJyZW50IHRoZW1lLlxuICAgKi9cbiAgdGhlbWU6IEJlaGF2aW9yU3ViamVjdDxUaGVtZU9wdGlvbj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmlzQnJvd3NlciA/IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0PFRoZW1lT3B0aW9uPihUSEVNRSkgOiBudWxsO1xuICAgIHRoaXMudGhlbWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lT3B0aW9uPihjdXJyZW50IHx8IHRoaXMuZGVmYXVsdCk7XG4gICAgdGhpcy5jdXJyZW50T3B0aW9uID0gdGhpcy5UaGVtZTtcblxuICAgIC8vIFNTUjogc2luIHdpbmRvdy9kb2N1bWVudC4gRXN0YWRvIHF1ZWRhIGVuIGRlZmF1bHRzOyBlbCBoeWRyYXRlIHBvc3RlcmlvclxuICAgIC8vIGVuIGJyb3dzZXIgY29ycmUgdG9nZ2xlVXNlclByZWZlcmVuY2UgeSBjYWJsZWEgZWwgbWVkaWEgcXVlcnkuXG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlVXNlclByZWZlcmVuY2UodGhpcy5jdXJyZW50T3B0aW9uKTtcblxuICAgIGNvbnN0IHByZWZlcnNEYXJrUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIHRoaXMucHJlZmVyc0RhcmsgPSBwcmVmZXJzRGFya1F1ZXJ5Lm1hdGNoZXM7XG4gICAgdGhpcy5oYW5kbGVBdXRvQ29uZmlndXJhdGlvbigpO1xuXG4gICAgcHJlZmVyc0RhcmtRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBtZWRpYVF1ZXJ5ID0+IHtcbiAgICAgIHRoaXMucHJlZmVyc0RhcmsgPSBtZWRpYVF1ZXJ5Lm1hdGNoZXM7XG4gICAgICB0aGlzLmhhbmRsZUF1dG9Db25maWd1cmF0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9Db25maWd1cmF0aW9uKCkge1xuICAgIGlmICh0aGlzLnByZWZlcnNEYXJrICYmIHRoaXMuY3VycmVudE9wdGlvbiA9PT0gVGhlbWVPcHRpb24uQVVUTykge1xuICAgICAgY29uc29sZS5sb2coJ/CfkqEgVGhlbWVDb25maWcgcHJlZmVyc0Rhcms6OjogJywgdGhpcy5wcmVmZXJzRGFyayk7XG4gICAgICB0aGlzLnRvZ2dsZVVzZXJQcmVmZXJlbmNlKFRoZW1lT3B0aW9uLkFVVE8pO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucHJlZmVyc0RhcmsgJiYgdGhpcy5jdXJyZW50T3B0aW9uID09PSBUaGVtZU9wdGlvbi5BVVRPKSB7XG4gICAgICBjb25zb2xlLmxvZygn8J+SoSBUaGVtZUNvbmZpZyBwcmVmZXJzRGFyazo6OiAnLCB0aGlzLnByZWZlcnNEYXJrKTtcbiAgICAgIHRoaXMudG9nZ2xlVXNlclByZWZlcmVuY2UoVGhlbWVPcHRpb24uQVVUTyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVEYXJrUHJlZmVyZW5jZSgpIHtcbiAgICB0aGlzLnRvZ2dsZVRoZW1lKFRoZW1lT3B0aW9uLkRBUkssIHRydWUpO1xuICAgIHRoaXMudG9nZ2xlVGhlbWUoVGhlbWVPcHRpb24uTElHSFQsIGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlTGlnaHRQcmVmZXJlbmNlKCkge1xuICAgIHRoaXMudG9nZ2xlVGhlbWUoVGhlbWVPcHRpb24uTElHSFQsIHRydWUpO1xuICAgIHRoaXMudG9nZ2xlVGhlbWUoVGhlbWVPcHRpb24uREFSSywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3lzdGVtIHByZWZlcnMgZGFyayBtb2RlLlxuICAgKi9cbiAgZ2V0IElzRGFyaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcmVmZXJzRGFyaztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBjdXJyZW50IHRoZW1lIG9wdGlvbi5cbiAgICovXG4gIGdldCBUaGVtZSgpOiBUaGVtZU9wdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUudmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgY3VycmVudCB0aGVtZSBvcHRpb24gYW5kIHBlcnNpc3RzIGl0LlxuICAgKi9cbiAgc2V0IFRoZW1lKHRoZW1lOiBUaGVtZU9wdGlvbikge1xuICAgIHRoaXMudGhlbWUubmV4dCh0aGVtZSk7XG4gICAgaWYgKHRoaXMuaXNCcm93c2VyKSB7XG4gICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldDxUaGVtZU9wdGlvbj4oVEhFTUUsIHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlcyBhIHRoZW1lIGNsYXNzIG9uIHRoZSBkb2N1bWVudCBib2R5LlxuICAgKiBAcGFyYW0gbmFtZSBUaGUgdGhlbWUgbmFtZVxuICAgKiBAcGFyYW0gc2hvdWxkQWRkIFdoZXRoZXIgdG8gYWRkIG9yIHJlbW92ZSB0aGUgY2xhc3NcbiAgICpcbiAgICogSW9uaWMgOCAoYGRhcmsuY2xhc3MuY3NzYCBwYWxldHRlKSB1c2EgYC5pb24tcGFsZXR0ZS1kYXJrYCBlbiBgPGh0bWw+YCBwYXJhXG4gICAqIGNvbm11dGFyIGVsIHRlbWEgZGFyazsgZW4gdmVyc2lvbmVzIHByZXZpYXMgbGXDrWEgYGJvZHkuZGFya2AuIE1hbnRlbmVtb3NcbiAgICogZWwgdG9nZ2xlIHNvYnJlIGBib2R5LntuYW1lfWAgcG9yIGNvbXBhdCBjb24gY8OzZGlnbyBsZWdhY3ksIHkgYWRlbcOhc1xuICAgKiBlc3BlamFtb3MgYGlvbi1wYWxldHRlLWRhcmtgIGVuIGA8aHRtbD5gIGN1YW5kbyBgbmFtZSA9PT0gJ2RhcmsnYCDigJQgZXN0b1xuICAgKiBlcyBsbyBxdWUgbGFzIGFwcHMgZW4gSW9uaWMgOCBuZWNlc2l0YW4gcGFyYSBxdWUgZWwgcGFsZXR0ZSBhcGxpcXVlLlxuICAgKi9cbiAgdG9nZ2xlVGhlbWUobmFtZTogc3RyaW5nLCBzaG91bGRBZGQ6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuaXNCcm93c2VyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnRvZ2dsZShuYW1lLCBzaG91bGRBZGQpO1xuICAgIGlmIChuYW1lID09PSAnZGFyaycpIHtcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QudG9nZ2xlKCdpb24tcGFsZXR0ZS1kYXJrJywgc2hvdWxkQWRkKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgdXNlciB0aGVtZSBwcmVmZXJlbmNlIGFuZCB1cGRhdGVzIHRvZ2dsZXMgYW5kIHRoZW1lIGNsYXNzZXMuXG4gICAqIEBwYXJhbSBvcHRpb24gVGhlIHNlbGVjdGVkIHRoZW1lIG9wdGlvblxuICAgKi9cbiAgdG9nZ2xlVXNlclByZWZlcmVuY2Uob3B0aW9uOiBUaGVtZU9wdGlvbikge1xuICAgIHRoaXMuY3VycmVudE9wdGlvbiA9IG9wdGlvbjtcbiAgICB0aGlzLlRoZW1lID0gb3B0aW9uO1xuICAgIHRoaXMubGlnaHRUb2dnbGUgPSBvcHRpb24gPT09IFRoZW1lT3B0aW9uLkxJR0hUO1xuICAgIHRoaXMuZGFya1RvZ2dsZSA9IG9wdGlvbiA9PT0gVGhlbWVPcHRpb24uREFSSztcbiAgICB0aGlzLmF1dG9Ub2dnbGUgPSBvcHRpb24gPT09IFRoZW1lT3B0aW9uLkFVVE87XG5cbiAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgY2FzZSBUaGVtZU9wdGlvbi5MSUdIVDpcbiAgICAgICAgdGhpcy5oYW5kbGVMaWdodFByZWZlcmVuY2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRoZW1lT3B0aW9uLkRBUks6XG4gICAgICAgIHRoaXMuaGFuZGxlRGFya1ByZWZlcmVuY2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFRoZW1lT3B0aW9uLkFVVE86XG4gICAgICAgIGlmICh0aGlzLnByZWZlcnNEYXJrKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVEYXJrUHJlZmVyZW5jZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuaGFuZGxlTGlnaHRQcmVmZXJlbmNlKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU5RCxNQUFNLENBQU4sSUFBWSxXQUlYO0FBSkQsV0FBWSxXQUFXO0lBQ3JCLDhCQUFlLENBQUE7SUFDZiw0QkFBYSxDQUFBO0lBQ2IsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLEtBQVgsV0FBVyxRQUl0QjtBQUtELE1BQU0sT0FBTyxZQUFZO0lBb0N2QixZQUFpQyxVQUFrQjtRQW5DbkQ7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQjs7V0FFRztRQUNILGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkI7O1dBRUc7UUFDSCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25COztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQ2pDOztXQUVHO1FBQ0gsaUJBQVksR0FBRyxXQUFXLENBQUM7UUFDM0I7O1dBRUc7UUFDSCxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQjs7V0FFRztRQUNILFlBQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBU3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFL0MsTUFB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IjpbIi8qKlxuICogU2VydmljZSBmb3IgbWFuYWdpbmcgYXBwbGljYXRpb24gdGhlbWVzIChsaWdodCwgZGFyaywgYXV0bykuXG4gKiBIYW5kbGVzIHVzZXIgcHJlZmVyZW5jZXMsIHN5c3RlbSB0aGVtZSBkZXRlY3Rpb24sIGFuZCB0aGVtZSB0b2dnbGluZy5cbiAqIFVzZXMgbG9jYWxTdG9yYWdlIHRvIHBlcnNpc3QgdGhlIHNlbGVjdGVkIHRoZW1lLlxuICovXG5cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVEhFTUUgfSBmcm9tICcuLi9zaGFyZWQvY29uc3RhbnRzL3N0b3JhZ2UnO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcblxuZXhwb3J0IGVudW0gVGhlbWVPcHRpb24ge1xuICBMSUdIVCA9ICdsaWdodCcsXG4gIERBUksgPSAnZGFyaycsXG4gIEFVVE8gPSAnYXV0bycsXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBsaWdodCB0aGVtZSBpcyBhY3RpdmUuXG4gICAqL1xuICBsaWdodFRvZ2dsZSA9IGZhbHNlO1xuICAvKipcbiAgICogSW5kaWNhdGVzIGlmIHRoZSBkYXJrIHRoZW1lIGlzIGFjdGl2ZS5cbiAgICovXG4gIGRhcmtUb2dnbGUgPSBmYWxzZTtcbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgYXV0byB0aGVtZSBpcyBhY3RpdmUuXG4gICAqL1xuICBhdXRvVG9nZ2xlID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBzZWxlY3RlZCB0aGVtZSBvcHRpb24uXG4gICAqL1xuICBjdXJyZW50T3B0aW9uID0gVGhlbWVPcHRpb24uQVVUTztcbiAgLyoqXG4gICAqIEVudW0gd2l0aCBhbGwgYXZhaWxhYmxlIHRoZW1lIG9wdGlvbnMuXG4gICAqL1xuICB0aGVtZU9wdGlvbnMgPSBUaGVtZU9wdGlvbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN5c3RlbSBwcmVmZXJzIGRhcmsgbW9kZS5cbiAgICovXG4gIHByZWZlcnNEYXJrID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCB0aGVtZSBvcHRpb24uXG4gICAqL1xuICBkZWZhdWx0ID0gVGhlbWVPcHRpb24uQVVUTztcbiAgLyoqXG4gICAqIE9ic2VydmFibGUgZm9yIHRoZSBjdXJyZW50IHRoZW1lLlxuICAgKi9cbiAgdGhlbWU6IEJlaGF2aW9yU3ViamVjdDxUaGVtZU9wdGlvbj47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpc0Jyb3dzZXI6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogT2JqZWN0KSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKTtcblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmlzQnJvd3NlciA/IExvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0PFRoZW1lT3B0aW9uPihUSEVNRSkgOiBudWxsO1xuICAgIHRoaXMudGhlbWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lT3B0aW9uPihjdXJyZW50IHx8IHRoaXMuZGVmYXVsdCk7XG4gICAgdGhpcy5jdXJyZW50T3B0aW9uID0gdGhpcy5UaGVtZTtcblxuICAgIC8vIFNTUjogc2luIHdpbmRvdy9kb2N1bWVudC4gRXN0YWRvIHF1ZWRhIGVuIGRlZmF1bHRzOyBlbCBoeWRyYXRlIHBvc3RlcmlvclxuICAgIC8vIGVuIGJyb3dzZXIgY29ycmUgdG9nZ2xlVXNlclByZWZlcmVuY2UgeSBjYWJsZWEgZWwgbWVkaWEgcXVlcnkuXG4gICAgaWYgKCF0aGlzLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlVXNlclByZWZlcmVuY2UodGhpcy5jdXJyZW50T3B0aW9uKTtcblxuICAgIGNvbnN0IHByZWZlcnNEYXJrUXVlcnkgPSB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpO1xuICAgIHRoaXMucHJlZmVyc0RhcmsgPSBwcmVmZXJzRGFya1F1ZXJ5Lm1hdGNoZXM7XG4gICAgdGhpcy5oYW5kbGVBdXRvQ29uZmlndXJhdGlvbigpO1xuXG4gICAgcHJlZmVyc0RhcmtRdWVyeS5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBtZWRpYVF1ZXJ5ID0+IHtcbiAgICAgIHRoaXMucHJlZmVyc0RhcmsgPSBtZWRpYVF1ZXJ5Lm1hdGNoZXM7XG4gICAgICB0aGlzLmhhbmRsZUF1dG9Db25maWd1cmF0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUF1dG9Db25maWd1cmF0aW9uKCkge1xuICAgIGlmICh0aGlzLnByZWZlcnNEYXJrICYmIHRoaXMuY3VycmVudE9wdGlvbiA9PT0gVGhlbWVPcHRpb24uQVVUTykge1xuICAgICAgdGhpcy50b2dnbGVVc2VyUHJlZmVyZW5jZShUaGVtZU9wdGlvbi5BVVRPKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnByZWZlcnNEYXJrICYmIHRoaXMuY3VycmVudE9wdGlvbiA9PT0gVGhlbWVPcHRpb24uQVVUTykge1xuICAgICAgdGhpcy50b2dnbGVVc2VyUHJlZmVyZW5jZShUaGVtZU9wdGlvbi5BVVRPKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURhcmtQcmVmZXJlbmNlKCkge1xuICAgIHRoaXMudG9nZ2xlVGhlbWUoVGhlbWVPcHRpb24uREFSSywgdHJ1ZSk7XG4gICAgdGhpcy50b2dnbGVUaGVtZShUaGVtZU9wdGlvbi5MSUdIVCwgZmFsc2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVMaWdodFByZWZlcmVuY2UoKSB7XG4gICAgdGhpcy50b2dnbGVUaGVtZShUaGVtZU9wdGlvbi5MSUdIVCwgdHJ1ZSk7XG4gICAgdGhpcy50b2dnbGVUaGVtZShUaGVtZU9wdGlvbi5EQVJLLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBzeXN0ZW0gcHJlZmVycyBkYXJrIG1vZGUuXG4gICAqL1xuICBnZXQgSXNEYXJrKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnByZWZlcnNEYXJrO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGN1cnJlbnQgdGhlbWUgb3B0aW9uLlxuICAgKi9cbiAgZ2V0IFRoZW1lKCk6IFRoZW1lT3B0aW9uIHtcbiAgICByZXR1cm4gdGhpcy50aGVtZS52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBjdXJyZW50IHRoZW1lIG9wdGlvbiBhbmQgcGVyc2lzdHMgaXQuXG4gICAqL1xuICBzZXQgVGhlbWUodGhlbWU6IFRoZW1lT3B0aW9uKSB7XG4gICAgdGhpcy50aGVtZS5uZXh0KHRoZW1lKTtcbiAgICBpZiAodGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIExvY2FsU3RvcmFnZVNlcnZpY2Uuc2V0PFRoZW1lT3B0aW9uPihUSEVNRSwgdGhlbWUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIGEgdGhlbWUgY2xhc3Mgb24gdGhlIGRvY3VtZW50IGJvZHkuXG4gICAqIEBwYXJhbSBuYW1lIFRoZSB0aGVtZSBuYW1lXG4gICAqIEBwYXJhbSBzaG91bGRBZGQgV2hldGhlciB0byBhZGQgb3IgcmVtb3ZlIHRoZSBjbGFzc1xuICAgKlxuICAgKiBJb25pYyA4IChgZGFyay5jbGFzcy5jc3NgIHBhbGV0dGUpIHVzYSBgLmlvbi1wYWxldHRlLWRhcmtgIGVuIGA8aHRtbD5gIHBhcmFcbiAgICogY29ubXV0YXIgZWwgdGVtYSBkYXJrOyBlbiB2ZXJzaW9uZXMgcHJldmlhcyBsZcOtYSBgYm9keS5kYXJrYC4gTWFudGVuZW1vc1xuICAgKiBlbCB0b2dnbGUgc29icmUgYGJvZHkue25hbWV9YCBwb3IgY29tcGF0IGNvbiBjw7NkaWdvIGxlZ2FjeSwgeSBhZGVtw6FzXG4gICAqIGVzcGVqYW1vcyBgaW9uLXBhbGV0dGUtZGFya2AgZW4gYDxodG1sPmAgY3VhbmRvIGBuYW1lID09PSAnZGFyaydgIOKAlCBlc3RvXG4gICAqIGVzIGxvIHF1ZSBsYXMgYXBwcyBlbiBJb25pYyA4IG5lY2VzaXRhbiBwYXJhIHF1ZSBlbCBwYWxldHRlIGFwbGlxdWUuXG4gICAqL1xuICB0b2dnbGVUaGVtZShuYW1lOiBzdHJpbmcsIHNob3VsZEFkZDogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKG5hbWUsIHNob3VsZEFkZCk7XG4gICAgaWYgKG5hbWUgPT09ICdkYXJrJykge1xuICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoJ2lvbi1wYWxldHRlLWRhcmsnLCBzaG91bGRBZGQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB1c2VyIHRoZW1lIHByZWZlcmVuY2UgYW5kIHVwZGF0ZXMgdG9nZ2xlcyBhbmQgdGhlbWUgY2xhc3Nlcy5cbiAgICogQHBhcmFtIG9wdGlvbiBUaGUgc2VsZWN0ZWQgdGhlbWUgb3B0aW9uXG4gICAqL1xuICB0b2dnbGVVc2VyUHJlZmVyZW5jZShvcHRpb246IFRoZW1lT3B0aW9uKSB7XG4gICAgdGhpcy5jdXJyZW50T3B0aW9uID0gb3B0aW9uO1xuICAgIHRoaXMuVGhlbWUgPSBvcHRpb247XG4gICAgdGhpcy5saWdodFRvZ2dsZSA9IG9wdGlvbiA9PT0gVGhlbWVPcHRpb24uTElHSFQ7XG4gICAgdGhpcy5kYXJrVG9nZ2xlID0gb3B0aW9uID09PSBUaGVtZU9wdGlvbi5EQVJLO1xuICAgIHRoaXMuYXV0b1RvZ2dsZSA9IG9wdGlvbiA9PT0gVGhlbWVPcHRpb24uQVVUTztcblxuICAgIHN3aXRjaCAob3B0aW9uKSB7XG4gICAgICBjYXNlIFRoZW1lT3B0aW9uLkxJR0hUOlxuICAgICAgICB0aGlzLmhhbmRsZUxpZ2h0UHJlZmVyZW5jZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGhlbWVPcHRpb24uREFSSzpcbiAgICAgICAgdGhpcy5oYW5kbGVEYXJrUHJlZmVyZW5jZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgVGhlbWVPcHRpb24uQVVUTzpcbiAgICAgICAgaWYgKHRoaXMucHJlZmVyc0RhcmspIHtcbiAgICAgICAgICB0aGlzLmhhbmRsZURhcmtQcmVmZXJlbmNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVMaWdodFByZWZlcmVuY2UoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.45';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40NSc7XG4iXX0=
|