valtech-components 2.0.730 → 2.0.732

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.
Files changed (29) hide show
  1. package/esm2022/lib/components/atoms/glow/glow.component.mjs +95 -0
  2. package/esm2022/lib/components/atoms/glow/types.mjs +2 -0
  3. package/esm2022/lib/components/organisms/bottom-nav/bottom-nav.component.mjs +4 -4
  4. package/esm2022/lib/components/organisms/bottom-nav/types.mjs +2 -2
  5. package/esm2022/lib/components/organisms/login/login.component.mjs +3 -3
  6. package/esm2022/lib/config/company-footer.config.mjs +34 -20
  7. package/esm2022/lib/services/devices/devices.service.mjs +259 -0
  8. package/esm2022/lib/services/devices/index.mjs +3 -0
  9. package/esm2022/lib/services/devices/types.mjs +8 -0
  10. package/esm2022/lib/services/legal-link/legal-link.service.mjs +68 -0
  11. package/esm2022/lib/version.mjs +2 -2
  12. package/esm2022/public-api.mjs +10 -1
  13. package/fesm2022/valtech-components.mjs +458 -28
  14. package/fesm2022/valtech-components.mjs.map +1 -1
  15. package/lib/components/atoms/glow/glow.component.d.ts +42 -0
  16. package/lib/components/atoms/glow/types.d.ts +40 -0
  17. package/lib/components/atoms/rights-footer/rights-footer.component.d.ts +1 -1
  18. package/lib/components/molecules/features-list/features-list.component.d.ts +1 -1
  19. package/lib/components/organisms/article/article.component.d.ts +3 -3
  20. package/lib/components/organisms/bottom-nav/types.d.ts +1 -1
  21. package/lib/components/organisms/toolbar/toolbar.component.d.ts +1 -1
  22. package/lib/config/company-footer.config.d.ts +24 -4
  23. package/lib/services/devices/devices.service.d.ts +73 -0
  24. package/lib/services/devices/index.d.ts +2 -0
  25. package/lib/services/devices/types.d.ts +11 -0
  26. package/lib/services/legal-link/legal-link.service.d.ts +59 -0
  27. package/lib/version.d.ts +1 -1
  28. package/package.json +1 -1
  29. package/public-api.d.ts +4 -0
@@ -0,0 +1,259 @@
1
+ import { DestroyRef, Inject, Injectable, PLATFORM_ID, computed, effect, inject, signal, } from '@angular/core';
2
+ import { isPlatformBrowser } from '@angular/common';
3
+ import { firstValueFrom } from 'rxjs';
4
+ import { VALTECH_AUTH_CONFIG } from '../auth/config';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../firebase/messaging.service";
8
+ import * as i3 from "../preferences/preferences.service";
9
+ import * as i4 from "../auth/auth.service";
10
+ /**
11
+ * DeviceRegistrationService — orquesta el flow combinado de:
12
+ * - `PreferencesService.notificationsMaster` (flag user)
13
+ * - `Notification.permission` del browser
14
+ * - `MessagingService` (FCM: requestPermission, getToken, deleteToken)
15
+ * - Backend `/v2/users/me/devices` (POST/GET/DELETE)
16
+ *
17
+ * Auto-sync:
18
+ * - master=true & permission=granted & sin token → auto-register (silent, sin prompt).
19
+ * - master=false & device registrado → auto-unregister (FCM deleteToken + DELETE backend).
20
+ * - permission=denied → status='error', requiere acción manual del user.
21
+ *
22
+ * Cliente:
23
+ * - `requestAndRegister()` para CTA "permitir notificaciones" (dispara browser prompt).
24
+ * - `unregister()` para "olvidar este dispositivo".
25
+ * - `refreshPermission()` tras volver al tab (focus) — el browser puede haber cambiado el estado.
26
+ */
27
+ export class DeviceRegistrationService {
28
+ constructor(config, platformId, http, messaging, prefs, auth) {
29
+ this.config = config;
30
+ this.platformId = platformId;
31
+ this.http = http;
32
+ this.messaging = messaging;
33
+ this.prefs = prefs;
34
+ this.auth = auth;
35
+ this._permission = signal('default');
36
+ this._status = signal('idle');
37
+ this._currentToken = signal(null);
38
+ this._currentDeviceId = signal(null);
39
+ this._lastError = signal(null);
40
+ this._isSupported = signal(false);
41
+ this.permission = this._permission.asReadonly();
42
+ this.status = this._status.asReadonly();
43
+ this.currentToken = this._currentToken.asReadonly();
44
+ this.currentDeviceId = this._currentDeviceId.asReadonly();
45
+ this.lastError = this._lastError.asReadonly();
46
+ this.isSupported = this._isSupported.asReadonly();
47
+ /** true si el browser puede recibir push y el user ya autorizó */
48
+ this.canReceive = computed(() => this._isSupported() && this._permission() === 'granted' && this._status() === 'registered');
49
+ this.autoSyncInFlight = false;
50
+ if (!isPlatformBrowser(this.platformId))
51
+ return;
52
+ this._isSupported.set(this.detectSupport());
53
+ this.refreshPermission();
54
+ // Refrescar permission al volver al tab — el user pudo cambiarla en browser settings.
55
+ window.addEventListener('focus', () => this.refreshPermission());
56
+ const destroyRef = inject(DestroyRef);
57
+ destroyRef.onDestroy(() => {
58
+ window.removeEventListener('focus', () => this.refreshPermission());
59
+ });
60
+ // Auto-sync: reaccionar a cambios de master / permission / user.
61
+ effect(() => {
62
+ const user = this.auth.user();
63
+ const master = this.prefs.notificationsMaster();
64
+ const perm = this._permission();
65
+ const hasDevice = !!this._currentDeviceId();
66
+ if (!user)
67
+ return;
68
+ if (!this.prefs.synced())
69
+ return;
70
+ if (this.autoSyncInFlight)
71
+ return;
72
+ // Master OFF + device registrado → unregister.
73
+ if (!master && hasDevice) {
74
+ void this.unregister();
75
+ return;
76
+ }
77
+ // Master ON + granted + sin device → register silent (no prompt, ya granted).
78
+ if (master && perm === 'granted' && !hasDevice && this._status() === 'idle') {
79
+ void this.registerSilent();
80
+ }
81
+ });
82
+ }
83
+ /**
84
+ * CTA explícito del user: dispara `Notification.requestPermission()` + registro.
85
+ * Único método que puede generar el browser prompt.
86
+ */
87
+ async requestAndRegister() {
88
+ if (!this._isSupported()) {
89
+ this._lastError.set('not-supported');
90
+ this._status.set('error');
91
+ return;
92
+ }
93
+ this.autoSyncInFlight = true;
94
+ this._status.set('registering');
95
+ this._lastError.set(null);
96
+ try {
97
+ const token = await this.messaging.requestPermission();
98
+ this.refreshPermission();
99
+ if (!token) {
100
+ this._status.set('error');
101
+ this._lastError.set(this._permission() === 'denied' ? 'permission-denied' : 'no-token');
102
+ return;
103
+ }
104
+ await this.registerDeviceBackend(token);
105
+ }
106
+ catch (err) {
107
+ this._status.set('error');
108
+ this._lastError.set(this.errorMessage(err));
109
+ }
110
+ finally {
111
+ this.autoSyncInFlight = false;
112
+ }
113
+ }
114
+ /**
115
+ * Unregister: borra token FCM + DELETE backend del device actual.
116
+ * Idempotente: si no hay device, no hace nada.
117
+ */
118
+ async unregister() {
119
+ const deviceId = this._currentDeviceId();
120
+ if (!deviceId && !this._currentToken()) {
121
+ this._status.set('idle');
122
+ return;
123
+ }
124
+ this.autoSyncInFlight = true;
125
+ this._status.set('unregistering');
126
+ this._lastError.set(null);
127
+ try {
128
+ if (deviceId) {
129
+ await firstValueFrom(this.http.delete(`${this.config.apiUrl}/v2/users/me/devices/${deviceId}`));
130
+ }
131
+ try {
132
+ await this.messaging.deleteToken();
133
+ }
134
+ catch {
135
+ // deleteToken puede fallar si el token ya no existe; aceptable.
136
+ }
137
+ this._currentToken.set(null);
138
+ this._currentDeviceId.set(null);
139
+ this._status.set('idle');
140
+ }
141
+ catch (err) {
142
+ this._status.set('error');
143
+ this._lastError.set(this.errorMessage(err));
144
+ }
145
+ finally {
146
+ this.autoSyncInFlight = false;
147
+ }
148
+ }
149
+ /** Refresca `permission` desde `Notification.permission` del browser. */
150
+ refreshPermission() {
151
+ if (!isPlatformBrowser(this.platformId) || !('Notification' in window)) {
152
+ this._permission.set('default');
153
+ return;
154
+ }
155
+ this._permission.set(Notification.permission);
156
+ }
157
+ /** Lista devices del user actual desde backend. Útil para vista Seguridad. */
158
+ async listDevices() {
159
+ const res = await firstValueFrom(this.http.get(`${this.config.apiUrl}/v2/users/me/devices`));
160
+ return res.devices;
161
+ }
162
+ /** Reintenta el último flow fallido. */
163
+ async retry() {
164
+ if (this._permission() === 'granted') {
165
+ await this.registerSilent();
166
+ }
167
+ else {
168
+ await this.requestAndRegister();
169
+ }
170
+ }
171
+ // ---------------------------------------------------------------------------
172
+ // Privados
173
+ // ---------------------------------------------------------------------------
174
+ /** Register sin prompt — asume permission ya granted. */
175
+ async registerSilent() {
176
+ this.autoSyncInFlight = true;
177
+ this._status.set('registering');
178
+ this._lastError.set(null);
179
+ try {
180
+ const token = await this.messaging.getToken();
181
+ if (!token) {
182
+ this._status.set('error');
183
+ this._lastError.set('no-token');
184
+ return;
185
+ }
186
+ await this.registerDeviceBackend(token);
187
+ }
188
+ catch (err) {
189
+ this._status.set('error');
190
+ this._lastError.set(this.errorMessage(err));
191
+ }
192
+ finally {
193
+ this.autoSyncInFlight = false;
194
+ }
195
+ }
196
+ async registerDeviceBackend(token) {
197
+ const env = this.detectEnv();
198
+ const body = {
199
+ token,
200
+ platform: 'web',
201
+ browser: env.browser,
202
+ os: env.os,
203
+ appVersion: env.appVersion,
204
+ };
205
+ const res = await firstValueFrom(this.http.post(`${this.config.apiUrl}/v2/users/me/devices`, body));
206
+ this._currentToken.set(token);
207
+ this._currentDeviceId.set(res.device.deviceId);
208
+ this._status.set('registered');
209
+ }
210
+ detectSupport() {
211
+ if (!isPlatformBrowser(this.platformId))
212
+ return false;
213
+ return 'Notification' in window && 'serviceWorker' in navigator;
214
+ }
215
+ detectEnv() {
216
+ const ua = navigator.userAgent;
217
+ let browser = 'Unknown';
218
+ if (/edg/i.test(ua))
219
+ browser = 'Edge';
220
+ else if (/chrome|chromium|crios/i.test(ua))
221
+ browser = 'Chrome';
222
+ else if (/firefox|fxios/i.test(ua))
223
+ browser = 'Firefox';
224
+ else if (/safari/i.test(ua))
225
+ browser = 'Safari';
226
+ let os = 'Unknown';
227
+ if (/Windows/i.test(ua))
228
+ os = 'Windows';
229
+ else if (/Android/i.test(ua))
230
+ os = 'Android';
231
+ else if (/iPhone|iPad|iPod/i.test(ua))
232
+ os = 'iOS';
233
+ else if (/Mac OS X/i.test(ua))
234
+ os = 'macOS';
235
+ else if (/Linux/i.test(ua))
236
+ os = 'Linux';
237
+ return { browser, os, appVersion: 'web-1.0' };
238
+ }
239
+ errorMessage(err) {
240
+ if (err instanceof Error)
241
+ return err.message;
242
+ if (typeof err === 'string')
243
+ return err;
244
+ return 'unknown-error';
245
+ }
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceRegistrationService, deps: [{ token: VALTECH_AUTH_CONFIG }, { token: PLATFORM_ID }, { token: i1.HttpClient }, { token: i2.MessagingService }, { token: i3.PreferencesService }, { token: i4.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
247
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceRegistrationService, providedIn: 'root' }); }
248
+ }
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DeviceRegistrationService, decorators: [{
250
+ type: Injectable,
251
+ args: [{ providedIn: 'root' }]
252
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
253
+ type: Inject,
254
+ args: [VALTECH_AUTH_CONFIG]
255
+ }] }, { type: Object, decorators: [{
256
+ type: Inject,
257
+ args: [PLATFORM_ID]
258
+ }] }, { type: i1.HttpClient }, { type: i2.MessagingService }, { type: i3.PreferencesService }, { type: i4.AuthService }] });
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9kZXZpY2VzL2RldmljZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFhckQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFFSCxNQUFNLE9BQU8seUJBQXlCO0lBc0JwQyxZQUN1QyxNQUF5QixFQUNqQyxVQUFrQixFQUN2QyxJQUFnQixFQUNoQixTQUEyQixFQUMzQixLQUF5QixFQUN6QixJQUFpQjtRQUxZLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ2pDLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDdkMsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixVQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUN6QixTQUFJLEdBQUosSUFBSSxDQUFhO1FBM0JWLGdCQUFXLEdBQUcsTUFBTSxDQUF5QixTQUFTLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsTUFBTSxDQUEyQixNQUFNLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLE1BQU0sQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDNUMscUJBQWdCLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUMvQyxlQUFVLEdBQUcsTUFBTSxDQUFnQixJQUFJLENBQUMsQ0FB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QUM7YUFDN0MsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7YUFDdkMsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUFFLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFTyxZQUFZLENBQUMsR0FBWTtRQUMvQixJQUFJLEdBQUcsWUFBWSxLQUFLO1lBQUUsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQzdDLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQ3hDLE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7K0dBM09VLHlCQUF5QixrQkF1QjFCLG1CQUFtQixhQUNuQixXQUFXO21IQXhCVix5QkFBeUIsY0FEWixNQUFNOzs0RkFDbkIseUJBQXlCO2tCQURyQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBd0I3QixNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQzFCLE1BQU07MkJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlc3Ryb3lSZWYsXG4gIEluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgUExBVEZPUk1fSUQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL2F1dGgvYXV0aC5zZXJ2aWNlJztcbmltcG9ydCB7IFZBTFRFQ0hfQVVUSF9DT05GSUcgfSBmcm9tICcuLi9hdXRoL2NvbmZpZyc7XG5pbXBvcnQge1xuICBEZXZpY2VJbmZvLFxuICBMaXN0RGV2aWNlc1Jlc3BvbnNlLFxuICBSZWdpc3RlckRldmljZVJlcXVlc3QsXG4gIFJlZ2lzdGVyRGV2aWNlUmVzcG9uc2UsXG4gIFZhbHRlY2hBdXRoQ29uZmlnLFxufSBmcm9tICcuLi9hdXRoL3R5cGVzJztcbmltcG9ydCB7IE1lc3NhZ2luZ1NlcnZpY2UgfSBmcm9tICcuLi9maXJlYmFzZS9tZXNzYWdpbmcuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25QZXJtaXNzaW9uIH0gZnJvbSAnLi4vZmlyZWJhc2UvdHlwZXMnO1xuaW1wb3J0IHsgUHJlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnLi4vcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBEZWxldGVEZXZpY2VSZXNwb25zZSwgRGV2aWNlUmVnaXN0cmF0aW9uU3RhdHVzIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZSDigJQgb3JxdWVzdGEgZWwgZmxvdyBjb21iaW5hZG8gZGU6XG4gKiAgLSBgUHJlZmVyZW5jZXNTZXJ2aWNlLm5vdGlmaWNhdGlvbnNNYXN0ZXJgIChmbGFnIHVzZXIpXG4gKiAgLSBgTm90aWZpY2F0aW9uLnBlcm1pc3Npb25gIGRlbCBicm93c2VyXG4gKiAgLSBgTWVzc2FnaW5nU2VydmljZWAgKEZDTTogcmVxdWVzdFBlcm1pc3Npb24sIGdldFRva2VuLCBkZWxldGVUb2tlbilcbiAqICAtIEJhY2tlbmQgYC92Mi91c2Vycy9tZS9kZXZpY2VzYCAoUE9TVC9HRVQvREVMRVRFKVxuICpcbiAqIEF1dG8tc3luYzpcbiAqICAtIG1hc3Rlcj10cnVlICYgcGVybWlzc2lvbj1ncmFudGVkICYgc2luIHRva2VuIOKGkiBhdXRvLXJlZ2lzdGVyIChzaWxlbnQsIHNpbiBwcm9tcHQpLlxuICogIC0gbWFzdGVyPWZhbHNlICYgZGV2aWNlIHJlZ2lzdHJhZG8g4oaSIGF1dG8tdW5yZWdpc3RlciAoRkNNIGRlbGV0ZVRva2VuICsgREVMRVRFIGJhY2tlbmQpLlxuICogIC0gcGVybWlzc2lvbj1kZW5pZWQg4oaSIHN0YXR1cz0nZXJyb3InLCByZXF1aWVyZSBhY2Npw7NuIG1hbnVhbCBkZWwgdXNlci5cbiAqXG4gKiBDbGllbnRlOlxuICogIC0gYHJlcXVlc3RBbmRSZWdpc3RlcigpYCBwYXJhIENUQSBcInBlcm1pdGlyIG5vdGlmaWNhY2lvbmVzXCIgKGRpc3BhcmEgYnJvd3NlciBwcm9tcHQpLlxuICogIC0gYHVucmVnaXN0ZXIoKWAgcGFyYSBcIm9sdmlkYXIgZXN0ZSBkaXNwb3NpdGl2b1wiLlxuICogIC0gYHJlZnJlc2hQZXJtaXNzaW9uKClgIHRyYXMgdm9sdmVyIGFsIHRhYiAoZm9jdXMpIOKAlCBlbCBicm93c2VyIHB1ZWRlIGhhYmVyIGNhbWJpYWRvIGVsIGVzdGFkby5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBEZXZpY2VSZWdpc3RyYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcGVybWlzc2lvbiA9IHNpZ25hbDxOb3RpZmljYXRpb25QZXJtaXNzaW9uPignZGVmYXVsdCcpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0dXMgPSBzaWduYWw8RGV2aWNlUmVnaXN0cmF0aW9uU3RhdHVzPignaWRsZScpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jdXJyZW50VG9rZW4gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2N1cnJlbnREZXZpY2VJZCA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbGFzdEVycm9yID0gc2lnbmFsPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pc1N1cHBvcnRlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgcGVybWlzc2lvbiA9IHRoaXMuX3Blcm1pc3Npb24uYXNSZWFkb25seSgpO1xuICByZWFkb25seSBzdGF0dXMgPSB0aGlzLl9zdGF0dXMuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjdXJyZW50VG9rZW4gPSB0aGlzLl9jdXJyZW50VG9rZW4uYXNSZWFkb25seSgpO1xuICByZWFkb25seSBjdXJyZW50RGV2aWNlSWQgPSB0aGlzLl9jdXJyZW50RGV2aWNlSWQuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBsYXN0RXJyb3IgPSB0aGlzLl9sYXN0RXJyb3IuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBpc1N1cHBvcnRlZCA9IHRoaXMuX2lzU3VwcG9ydGVkLmFzUmVhZG9ubHkoKTtcblxuICAvKiogdHJ1ZSBzaSBlbCBicm93c2VyIHB1ZWRlIHJlY2liaXIgcHVzaCB5IGVsIHVzZXIgeWEgYXV0b3JpesOzICovXG4gIHJlYWRvbmx5IGNhblJlY2VpdmUgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLl9pc1N1cHBvcnRlZCgpICYmIHRoaXMuX3Blcm1pc3Npb24oKSA9PT0gJ2dyYW50ZWQnICYmIHRoaXMuX3N0YXR1cygpID09PSAncmVnaXN0ZXJlZCdcbiAgKTtcblxuICBwcml2YXRlIGF1dG9TeW5jSW5GbGlnaHQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KFZBTFRFQ0hfQVVUSF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBWYWx0ZWNoQXV0aENvbmZpZyxcbiAgICBASW5qZWN0KFBMQVRGT1JNX0lEKSBwcml2YXRlIHBsYXRmb3JtSWQ6IE9iamVjdCxcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBtZXNzYWdpbmc6IE1lc3NhZ2luZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBwcmVmczogUHJlZmVyZW5jZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aDogQXV0aFNlcnZpY2VcbiAgKSB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm47XG5cbiAgICB0aGlzLl9pc1N1cHBvcnRlZC5zZXQodGhpcy5kZXRlY3RTdXBwb3J0KCkpO1xuICAgIHRoaXMucmVmcmVzaFBlcm1pc3Npb24oKTtcblxuICAgIC8vIFJlZnJlc2NhciBwZXJtaXNzaW9uIGFsIHZvbHZlciBhbCB0YWIg4oCUIGVsIHVzZXIgcHVkbyBjYW1iaWFybGEgZW4gYnJvd3NlciBzZXR0aW5ncy5cbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB0aGlzLnJlZnJlc2hQZXJtaXNzaW9uKCkpO1xuXG4gICAgY29uc3QgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCAoKSA9PiB0aGlzLnJlZnJlc2hQZXJtaXNzaW9uKCkpO1xuICAgIH0pO1xuXG4gICAgLy8gQXV0by1zeW5jOiByZWFjY2lvbmFyIGEgY2FtYmlvcyBkZSBtYXN0ZXIgLyBwZXJtaXNzaW9uIC8gdXNlci5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aC51c2VyKCk7XG4gICAgICBjb25zdCBtYXN0ZXIgPSB0aGlzLnByZWZzLm5vdGlmaWNhdGlvbnNNYXN0ZXIoKTtcbiAgICAgIGNvbnN0IHBlcm0gPSB0aGlzLl9wZXJtaXNzaW9uKCk7XG4gICAgICBjb25zdCBoYXNEZXZpY2UgPSAhIXRoaXMuX2N1cnJlbnREZXZpY2VJZCgpO1xuXG4gICAgICBpZiAoIXVzZXIpIHJldHVybjtcbiAgICAgIGlmICghdGhpcy5wcmVmcy5zeW5jZWQoKSkgcmV0dXJuO1xuICAgICAgaWYgKHRoaXMuYXV0b1N5bmNJbkZsaWdodCkgcmV0dXJuO1xuXG4gICAgICAvLyBNYXN0ZXIgT0ZGICsgZGV2aWNlIHJlZ2lzdHJhZG8g4oaSIHVucmVnaXN0ZXIuXG4gICAgICBpZiAoIW1hc3RlciAmJiBoYXNEZXZpY2UpIHtcbiAgICAgICAgdm9pZCB0aGlzLnVucmVnaXN0ZXIoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBNYXN0ZXIgT04gKyBncmFudGVkICsgc2luIGRldmljZSDihpIgcmVnaXN0ZXIgc2lsZW50IChubyBwcm9tcHQsIHlhIGdyYW50ZWQpLlxuICAgICAgaWYgKG1hc3RlciAmJiBwZXJtID09PSAnZ3JhbnRlZCcgJiYgIWhhc0RldmljZSAmJiB0aGlzLl9zdGF0dXMoKSA9PT0gJ2lkbGUnKSB7XG4gICAgICAgIHZvaWQgdGhpcy5yZWdpc3RlclNpbGVudCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENUQSBleHBsw61jaXRvIGRlbCB1c2VyOiBkaXNwYXJhIGBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKWAgKyByZWdpc3Ryby5cbiAgICogw5puaWNvIG3DqXRvZG8gcXVlIHB1ZWRlIGdlbmVyYXIgZWwgYnJvd3NlciBwcm9tcHQuXG4gICAqL1xuICBhc3luYyByZXF1ZXN0QW5kUmVnaXN0ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLl9pc1N1cHBvcnRlZCgpKSB7XG4gICAgICB0aGlzLl9sYXN0RXJyb3Iuc2V0KCdub3Qtc3VwcG9ydGVkJyk7XG4gICAgICB0aGlzLl9zdGF0dXMuc2V0KCdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXV0b1N5bmNJbkZsaWdodCA9IHRydWU7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgncmVnaXN0ZXJpbmcnKTtcbiAgICB0aGlzLl9sYXN0RXJyb3Iuc2V0KG51bGwpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgdGhpcy5tZXNzYWdpbmcucmVxdWVzdFBlcm1pc3Npb24oKTtcbiAgICAgIHRoaXMucmVmcmVzaFBlcm1pc3Npb24oKTtcblxuICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICB0aGlzLl9zdGF0dXMuc2V0KCdlcnJvcicpO1xuICAgICAgICB0aGlzLl9sYXN0RXJyb3Iuc2V0KHRoaXMuX3Blcm1pc3Npb24oKSA9PT0gJ2RlbmllZCcgPyAncGVybWlzc2lvbi1kZW5pZWQnIDogJ25vLXRva2VuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdGhpcy5yZWdpc3RlckRldmljZUJhY2tlbmQodG9rZW4pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5fc3RhdHVzLnNldCgnZXJyb3InKTtcbiAgICAgIHRoaXMuX2xhc3RFcnJvci5zZXQodGhpcy5lcnJvck1lc3NhZ2UoZXJyKSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuYXV0b1N5bmNJbkZsaWdodCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVbnJlZ2lzdGVyOiBib3JyYSB0b2tlbiBGQ00gKyBERUxFVEUgYmFja2VuZCBkZWwgZGV2aWNlIGFjdHVhbC5cbiAgICogSWRlbXBvdGVudGU6IHNpIG5vIGhheSBkZXZpY2UsIG5vIGhhY2UgbmFkYS5cbiAgICovXG4gIGFzeW5jIHVucmVnaXN0ZXIoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGV2aWNlSWQgPSB0aGlzLl9jdXJyZW50RGV2aWNlSWQoKTtcbiAgICBpZiAoIWRldmljZUlkICYmICF0aGlzLl9jdXJyZW50VG9rZW4oKSkge1xuICAgICAgdGhpcy5fc3RhdHVzLnNldCgnaWRsZScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXV0b1N5bmNJbkZsaWdodCA9IHRydWU7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgndW5yZWdpc3RlcmluZycpO1xuICAgIHRoaXMuX2xhc3RFcnJvci5zZXQobnVsbCk7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKGRldmljZUlkKSB7XG4gICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgIHRoaXMuaHR0cC5kZWxldGU8RGVsZXRlRGV2aWNlUmVzcG9uc2U+KFxuICAgICAgICAgICAgYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi91c2Vycy9tZS9kZXZpY2VzLyR7ZGV2aWNlSWR9YFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMubWVzc2FnaW5nLmRlbGV0ZVRva2VuKCk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gZGVsZXRlVG9rZW4gcHVlZGUgZmFsbGFyIHNpIGVsIHRva2VuIHlhIG5vIGV4aXN0ZTsgYWNlcHRhYmxlLlxuICAgICAgfVxuICAgICAgdGhpcy5fY3VycmVudFRva2VuLnNldChudWxsKTtcbiAgICAgIHRoaXMuX2N1cnJlbnREZXZpY2VJZC5zZXQobnVsbCk7XG4gICAgICB0aGlzLl9zdGF0dXMuc2V0KCdpZGxlJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLl9zdGF0dXMuc2V0KCdlcnJvcicpO1xuICAgICAgdGhpcy5fbGFzdEVycm9yLnNldCh0aGlzLmVycm9yTWVzc2FnZShlcnIpKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5hdXRvU3luY0luRmxpZ2h0ID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlZnJlc2NhIGBwZXJtaXNzaW9uYCBkZXNkZSBgTm90aWZpY2F0aW9uLnBlcm1pc3Npb25gIGRlbCBicm93c2VyLiAqL1xuICByZWZyZXNoUGVybWlzc2lvbigpOiB2b2lkIHtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgISgnTm90aWZpY2F0aW9uJyBpbiB3aW5kb3cpKSB7XG4gICAgICB0aGlzLl9wZXJtaXNzaW9uLnNldCgnZGVmYXVsdCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9wZXJtaXNzaW9uLnNldChOb3RpZmljYXRpb24ucGVybWlzc2lvbiBhcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uKTtcbiAgfVxuXG4gIC8qKiBMaXN0YSBkZXZpY2VzIGRlbCB1c2VyIGFjdHVhbCBkZXNkZSBiYWNrZW5kLiDDmnRpbCBwYXJhIHZpc3RhIFNlZ3VyaWRhZC4gKi9cbiAgYXN5bmMgbGlzdERldmljZXMoKTogUHJvbWlzZTxEZXZpY2VJbmZvW10+IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cC5nZXQ8TGlzdERldmljZXNSZXNwb25zZT4oYCR7dGhpcy5jb25maWcuYXBpVXJsfS92Mi91c2Vycy9tZS9kZXZpY2VzYClcbiAgICApO1xuICAgIHJldHVybiByZXMuZGV2aWNlcztcbiAgfVxuXG4gIC8qKiBSZWludGVudGEgZWwgw7psdGltbyBmbG93IGZhbGxpZG8uICovXG4gIGFzeW5jIHJldHJ5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9wZXJtaXNzaW9uKCkgPT09ICdncmFudGVkJykge1xuICAgICAgYXdhaXQgdGhpcy5yZWdpc3RlclNpbGVudCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLnJlcXVlc3RBbmRSZWdpc3RlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBQcml2YWRvc1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogUmVnaXN0ZXIgc2luIHByb21wdCDigJQgYXN1bWUgcGVybWlzc2lvbiB5YSBncmFudGVkLiAqL1xuICBwcml2YXRlIGFzeW5jIHJlZ2lzdGVyU2lsZW50KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuYXV0b1N5bmNJbkZsaWdodCA9IHRydWU7XG4gICAgdGhpcy5fc3RhdHVzLnNldCgncmVnaXN0ZXJpbmcnKTtcbiAgICB0aGlzLl9sYXN0RXJyb3Iuc2V0KG51bGwpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMubWVzc2FnaW5nLmdldFRva2VuKCk7XG4gICAgICBpZiAoIXRva2VuKSB7XG4gICAgICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2Vycm9yJyk7XG4gICAgICAgIHRoaXMuX2xhc3RFcnJvci5zZXQoJ25vLXRva2VuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMucmVnaXN0ZXJEZXZpY2VCYWNrZW5kKHRva2VuKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX3N0YXR1cy5zZXQoJ2Vycm9yJyk7XG4gICAgICB0aGlzLl9sYXN0RXJyb3Iuc2V0KHRoaXMuZXJyb3JNZXNzYWdlKGVycikpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmF1dG9TeW5jSW5GbGlnaHQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlZ2lzdGVyRGV2aWNlQmFja2VuZCh0b2tlbjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZW52ID0gdGhpcy5kZXRlY3RFbnYoKTtcbiAgICBjb25zdCBib2R5OiBSZWdpc3RlckRldmljZVJlcXVlc3QgPSB7XG4gICAgICB0b2tlbixcbiAgICAgIHBsYXRmb3JtOiAnd2ViJyxcbiAgICAgIGJyb3dzZXI6IGVudi5icm93c2VyLFxuICAgICAgb3M6IGVudi5vcyxcbiAgICAgIGFwcFZlcnNpb246IGVudi5hcHBWZXJzaW9uLFxuICAgIH07XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxSZWdpc3RlckRldmljZVJlc3BvbnNlPihgJHt0aGlzLmNvbmZpZy5hcGlVcmx9L3YyL3VzZXJzL21lL2RldmljZXNgLCBib2R5KVxuICAgICk7XG4gICAgdGhpcy5fY3VycmVudFRva2VuLnNldCh0b2tlbik7XG4gICAgdGhpcy5fY3VycmVudERldmljZUlkLnNldChyZXMuZGV2aWNlLmRldmljZUlkKTtcbiAgICB0aGlzLl9zdGF0dXMuc2V0KCdyZWdpc3RlcmVkJyk7XG4gIH1cblxuICBwcml2YXRlIGRldGVjdFN1cHBvcnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICdOb3RpZmljYXRpb24nIGluIHdpbmRvdyAmJiAnc2VydmljZVdvcmtlcicgaW4gbmF2aWdhdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RFbnYoKTogeyBicm93c2VyOiBzdHJpbmc7IG9zOiBzdHJpbmc7IGFwcFZlcnNpb246IHN0cmluZyB9IHtcbiAgICBjb25zdCB1YSA9IG5hdmlnYXRvci51c2VyQWdlbnQ7XG4gICAgbGV0IGJyb3dzZXIgPSAnVW5rbm93bic7XG4gICAgaWYgKC9lZGcvaS50ZXN0KHVhKSkgYnJvd3NlciA9ICdFZGdlJztcbiAgICBlbHNlIGlmICgvY2hyb21lfGNocm9taXVtfGNyaW9zL2kudGVzdCh1YSkpIGJyb3dzZXIgPSAnQ2hyb21lJztcbiAgICBlbHNlIGlmICgvZmlyZWZveHxmeGlvcy9pLnRlc3QodWEpKSBicm93c2VyID0gJ0ZpcmVmb3gnO1xuICAgIGVsc2UgaWYgKC9zYWZhcmkvaS50ZXN0KHVhKSkgYnJvd3NlciA9ICdTYWZhcmknO1xuXG4gICAgbGV0IG9zID0gJ1Vua25vd24nO1xuICAgIGlmICgvV2luZG93cy9pLnRlc3QodWEpKSBvcyA9ICdXaW5kb3dzJztcbiAgICBlbHNlIGlmICgvQW5kcm9pZC9pLnRlc3QodWEpKSBvcyA9ICdBbmRyb2lkJztcbiAgICBlbHNlIGlmICgvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QodWEpKSBvcyA9ICdpT1MnO1xuICAgIGVsc2UgaWYgKC9NYWMgT1MgWC9pLnRlc3QodWEpKSBvcyA9ICdtYWNPUyc7XG4gICAgZWxzZSBpZiAoL0xpbnV4L2kudGVzdCh1YSkpIG9zID0gJ0xpbnV4JztcblxuICAgIHJldHVybiB7IGJyb3dzZXIsIG9zLCBhcHBWZXJzaW9uOiAnd2ViLTEuMCcgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXJyb3JNZXNzYWdlKGVycjogdW5rbm93bik6IHN0cmluZyB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSByZXR1cm4gZXJyLm1lc3NhZ2U7XG4gICAgaWYgKHR5cGVvZiBlcnIgPT09ICdzdHJpbmcnKSByZXR1cm4gZXJyO1xuICAgIHJldHVybiAndW5rbm93bi1lcnJvcic7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './devices.service';
2
+ export * from './types';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2RldmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGV2aWNlcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Devices types específicos del `DeviceRegistrationService`.
3
+ * Los contratos base (`RegisterDeviceRequest`, `RegisterDeviceResponse`,
4
+ * `ListDevicesResponse`, `DeviceInfo`, `DevicePlatform`) viven en `auth/types.ts`
5
+ * — este archivo solo agrega lo que falta.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2RldmljZXMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERldmljZXMgdHlwZXMgZXNwZWPDrWZpY29zIGRlbCBgRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZWAuXG4gKiBMb3MgY29udHJhdG9zIGJhc2UgKGBSZWdpc3RlckRldmljZVJlcXVlc3RgLCBgUmVnaXN0ZXJEZXZpY2VSZXNwb25zZWAsXG4gKiBgTGlzdERldmljZXNSZXNwb25zZWAsIGBEZXZpY2VJbmZvYCwgYERldmljZVBsYXRmb3JtYCkgdml2ZW4gZW4gYGF1dGgvdHlwZXMudHNgXG4gKiDigJQgZXN0ZSBhcmNoaXZvIHNvbG8gYWdyZWdhIGxvIHF1ZSBmYWx0YS5cbiAqL1xuXG5leHBvcnQgdHlwZSBEZXZpY2VSZWdpc3RyYXRpb25TdGF0dXMgPVxuICB8ICdpZGxlJ1xuICB8ICdyZWdpc3RlcmluZydcbiAgfCAncmVnaXN0ZXJlZCdcbiAgfCAndW5yZWdpc3RlcmluZydcbiAgfCAnZXJyb3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZURldmljZVJlc3BvbnNlIHtcbiAgb3BlcmF0aW9uSWQ6IHN0cmluZztcbiAgZGVsZXRlZDogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -0,0 +1,68 @@
1
+ import { InjectionToken, Injectable, inject } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export const VALTECH_LEGAL_CONFIG = new InjectionToken('VALTECH_LEGAL_CONFIG');
4
+ /**
5
+ * Resolves legal/site paths against a configurable main-site base URL.
6
+ *
7
+ * - **Main site mode**: no `provideValtechLegal` called → `resolve('/legal/terms')` returns `/legal/terms` (relative).
8
+ * - **Satellite mode**: `provideValtechLegal({ baseUrl: 'https://myvaltech.com' })` → `resolve('/legal/terms')` returns `'https://myvaltech.com/legal/terms'` and `isExternal('/legal/terms')` returns `true`.
9
+ *
10
+ * Absolute URLs passed in are returned unchanged (no double-prefix).
11
+ */
12
+ export class LegalLinkService {
13
+ constructor() {
14
+ this.config = inject(VALTECH_LEGAL_CONFIG, { optional: true }) ?? {};
15
+ }
16
+ /** Effective base URL (null if running as main site). */
17
+ get baseUrl() {
18
+ return this.config.baseUrl?.replace(/\/$/, '') ?? null;
19
+ }
20
+ /** Whether resolved external links should open in a new tab. */
21
+ get openInNewTab() {
22
+ return this.config.openInNewTab ?? Boolean(this.config.baseUrl);
23
+ }
24
+ /**
25
+ * Returns the URL to use for a given internal path. Absolute URLs pass through.
26
+ * @example
27
+ * resolve('/legal/terms') // main site: '/legal/terms'
28
+ * // satellite: 'https://myvaltech.com/legal/terms'
29
+ * resolve('https://x.com/y') // unchanged
30
+ */
31
+ resolve(path) {
32
+ if (!path)
33
+ return path;
34
+ if (/^https?:\/\//i.test(path))
35
+ return path;
36
+ const base = this.baseUrl;
37
+ if (!base)
38
+ return path;
39
+ return `${base}${path.startsWith('/') ? '' : '/'}${path}`;
40
+ }
41
+ /** `true` if the path would be resolved to a cross-origin URL. */
42
+ isExternal(path) {
43
+ if (/^https?:\/\//i.test(path))
44
+ return true;
45
+ return this.baseUrl !== null;
46
+ }
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalLinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
48
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalLinkService, providedIn: 'root' }); }
49
+ }
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LegalLinkService, decorators: [{
51
+ type: Injectable,
52
+ args: [{ providedIn: 'root' }]
53
+ }] });
54
+ /**
55
+ * Wires `LegalLinkService` for satellite apps. Omit in the main site (the one
56
+ * that hosts the canonical /legal/* routes) so links stay relative.
57
+ *
58
+ * @example
59
+ * // main.ts of showcase / sigify / etc.
60
+ * provideValtechLegal({
61
+ * baseUrl: 'https://myvaltech.com',
62
+ * openInNewTab: true,
63
+ * }),
64
+ */
65
+ export function provideValtechLegal(config) {
66
+ return { provide: VALTECH_LEGAL_CONFIG, useValue: config };
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnYWwtbGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9sZWdhbC1saW5rL2xlZ2FsLWxpbmsuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBWSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBcUI3RSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLGNBQWMsQ0FBcUIsc0JBQXNCLENBQUMsQ0FBQztBQUVuRzs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUQ3QjtRQUVtQixXQUFNLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0tBZ0NsRjtJQTlCQyx5REFBeUQ7SUFDekQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxJQUFZO1FBQ2xCLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDdkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN2QixPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUM7SUFDL0IsQ0FBQzsrR0FoQ1UsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFvQ2xDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RhYmxlLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQ29uZmlnIGZvciBjcm9zcy1hcHAgbGVnYWwvc2l0ZSBsaW5rIHJlc29sdXRpb24uXG4gKlxuICogVXNlZCBieSBzYXRlbGxpdGUgYXBwcyAoc2hvd2Nhc2UsIHNpZ2lmeSwgYWRtaW4tcG9ydGFsLCDigKYpIHRvIHBvaW50IHRoZWlyIGxlZ2FsXG4gKiBhbmQgc2l0ZSBsaW5rcyAodGVybXMsIHByaXZhY3ksIGFib3V0LCBjb250YWN0LCDigKYpIHRvIHRoZSBtYWluIG1hcmtldGluZyBzaXRlLFxuICogd2hpY2ggb3ducyB0aGUgY2Fub25pY2FsIGxlZ2FsIGNvbnRlbnQuIFRoZSBtYWluIHNpdGUgaXRzZWxmIGRvZXMgTk9UIGNhbGxcbiAqIGBwcm92aWRlVmFsdGVjaExlZ2FsYCDigJQgaXRzIGxpbmtzIHN0YXkgcmVsYXRpdmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdGVjaExlZ2FsQ29uZmlnIHtcbiAgLyoqXG4gICAqIEFic29sdXRlIGJhc2UgVVJMIG9mIHRoZSBtYWluIHNpdGUgKG5vIHRyYWlsaW5nIHNsYXNoKS5cbiAgICogQGV4YW1wbGUgJ2h0dHBzOi8vbXl2YWx0ZWNoLmNvbSdcbiAgICovXG4gIGJhc2VVcmw/OiBzdHJpbmc7XG5cbiAgLyoqIE9wZW4gcmVzb2x2ZWQgZXh0ZXJuYWwgbGlua3MgaW4gYSBuZXcgdGFiLiBEZWZhdWx0cyB0byBgdHJ1ZWAgd2hlbiBgYmFzZVVybGAgaXMgc2V0LiAqL1xuICBvcGVuSW5OZXdUYWI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgVkFMVEVDSF9MRUdBTF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48VmFsdGVjaExlZ2FsQ29uZmlnPignVkFMVEVDSF9MRUdBTF9DT05GSUcnKTtcblxuLyoqXG4gKiBSZXNvbHZlcyBsZWdhbC9zaXRlIHBhdGhzIGFnYWluc3QgYSBjb25maWd1cmFibGUgbWFpbi1zaXRlIGJhc2UgVVJMLlxuICpcbiAqIC0gKipNYWluIHNpdGUgbW9kZSoqOiBubyBgcHJvdmlkZVZhbHRlY2hMZWdhbGAgY2FsbGVkIOKGkiBgcmVzb2x2ZSgnL2xlZ2FsL3Rlcm1zJylgIHJldHVybnMgYC9sZWdhbC90ZXJtc2AgKHJlbGF0aXZlKS5cbiAqIC0gKipTYXRlbGxpdGUgbW9kZSoqOiBgcHJvdmlkZVZhbHRlY2hMZWdhbCh7IGJhc2VVcmw6ICdodHRwczovL215dmFsdGVjaC5jb20nIH0pYCDihpIgYHJlc29sdmUoJy9sZWdhbC90ZXJtcycpYCByZXR1cm5zIGAnaHR0cHM6Ly9teXZhbHRlY2guY29tL2xlZ2FsL3Rlcm1zJ2AgYW5kIGBpc0V4dGVybmFsKCcvbGVnYWwvdGVybXMnKWAgcmV0dXJucyBgdHJ1ZWAuXG4gKlxuICogQWJzb2x1dGUgVVJMcyBwYXNzZWQgaW4gYXJlIHJldHVybmVkIHVuY2hhbmdlZCAobm8gZG91YmxlLXByZWZpeCkuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTGVnYWxMaW5rU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnID0gaW5qZWN0KFZBTFRFQ0hfTEVHQUxfQ09ORklHLCB7IG9wdGlvbmFsOiB0cnVlIH0pID8/IHt9O1xuXG4gIC8qKiBFZmZlY3RpdmUgYmFzZSBVUkwgKG51bGwgaWYgcnVubmluZyBhcyBtYWluIHNpdGUpLiAqL1xuICBnZXQgYmFzZVVybCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb25maWcuYmFzZVVybD8ucmVwbGFjZSgvXFwvJC8sICcnKSA/PyBudWxsO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgcmVzb2x2ZWQgZXh0ZXJuYWwgbGlua3Mgc2hvdWxkIG9wZW4gaW4gYSBuZXcgdGFiLiAqL1xuICBnZXQgb3BlbkluTmV3VGFiKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5vcGVuSW5OZXdUYWIgPz8gQm9vbGVhbih0aGlzLmNvbmZpZy5iYXNlVXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBVUkwgdG8gdXNlIGZvciBhIGdpdmVuIGludGVybmFsIHBhdGguIEFic29sdXRlIFVSTHMgcGFzcyB0aHJvdWdoLlxuICAgKiBAZXhhbXBsZVxuICAgKiByZXNvbHZlKCcvbGVnYWwvdGVybXMnKSAgLy8gbWFpbiBzaXRlOiAgICAnL2xlZ2FsL3Rlcm1zJ1xuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2F0ZWxsaXRlOiAgICAnaHR0cHM6Ly9teXZhbHRlY2guY29tL2xlZ2FsL3Rlcm1zJ1xuICAgKiByZXNvbHZlKCdodHRwczovL3guY29tL3knKSAvLyB1bmNoYW5nZWRcbiAgICovXG4gIHJlc29sdmUocGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXBhdGgpIHJldHVybiBwYXRoO1xuICAgIGlmICgvXmh0dHBzPzpcXC9cXC8vaS50ZXN0KHBhdGgpKSByZXR1cm4gcGF0aDtcbiAgICBjb25zdCBiYXNlID0gdGhpcy5iYXNlVXJsO1xuICAgIGlmICghYmFzZSkgcmV0dXJuIHBhdGg7XG4gICAgcmV0dXJuIGAke2Jhc2V9JHtwYXRoLnN0YXJ0c1dpdGgoJy8nKSA/ICcnIDogJy8nfSR7cGF0aH1gO1xuICB9XG5cbiAgLyoqIGB0cnVlYCBpZiB0aGUgcGF0aCB3b3VsZCBiZSByZXNvbHZlZCB0byBhIGNyb3NzLW9yaWdpbiBVUkwuICovXG4gIGlzRXh0ZXJuYWwocGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKC9eaHR0cHM/OlxcL1xcLy9pLnRlc3QocGF0aCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiB0aGlzLmJhc2VVcmwgIT09IG51bGw7XG4gIH1cbn1cblxuLyoqXG4gKiBXaXJlcyBgTGVnYWxMaW5rU2VydmljZWAgZm9yIHNhdGVsbGl0ZSBhcHBzLiBPbWl0IGluIHRoZSBtYWluIHNpdGUgKHRoZSBvbmVcbiAqIHRoYXQgaG9zdHMgdGhlIGNhbm9uaWNhbCAvbGVnYWwvKiByb3V0ZXMpIHNvIGxpbmtzIHN0YXkgcmVsYXRpdmUuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIG1haW4udHMgb2Ygc2hvd2Nhc2UgLyBzaWdpZnkgLyBldGMuXG4gKiBwcm92aWRlVmFsdGVjaExlZ2FsKHtcbiAqICAgYmFzZVVybDogJ2h0dHBzOi8vbXl2YWx0ZWNoLmNvbScsXG4gKiAgIG9wZW5Jbk5ld1RhYjogdHJ1ZSxcbiAqIH0pLFxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZhbHRlY2hMZWdhbChjb25maWc6IFZhbHRlY2hMZWdhbENvbmZpZyk6IFByb3ZpZGVyIHtcbiAgcmV0dXJuIHsgcHJvdmlkZTogVkFMVEVDSF9MRUdBTF9DT05GSUcsIHVzZVZhbHVlOiBjb25maWcgfTtcbn1cbiJdfQ==
@@ -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 = '2.0.730';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43MzAnO1xuIl19
5
+ export const VERSION = '2.0.732';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzIuMC43MzInO1xuIl19
@@ -7,6 +7,8 @@ export * from './lib/components/atoms/avatar/avatar.component';
7
7
  export * from './lib/components/atoms/avatar/types';
8
8
  export * from './lib/components/atoms/box/box.component';
9
9
  export * from './lib/components/atoms/box/types';
10
+ export * from './lib/components/atoms/glow/glow.component';
11
+ export * from './lib/components/atoms/glow/types';
10
12
  export * from './lib/components/atoms/container/container.component';
11
13
  export * from './lib/components/atoms/container/types';
12
14
  export * from './lib/components/atoms/button/button.component';
@@ -249,6 +251,9 @@ export * from './lib/services/meta';
249
251
  export * from './lib/services/markdown-article/markdown-article-parser';
250
252
  export * from './lib/services/markdown-article/markdown-article-parser.service';
251
253
  export * from './lib/services/markdown-article/legal-content.service';
254
+ // Legal Link Service
255
+ // Cross-app resolver: satellite apps redirigen links legal/site al main site
256
+ export * from './lib/services/legal-link/legal-link.service';
252
257
  // Firebase Services
253
258
  // Los servicios de Firebase requieren provideValtechFirebase() en el bootstrap de la app
254
259
  export * from './lib/services/firebase';
@@ -263,6 +268,10 @@ export * from './lib/services/i18n';
263
268
  // Read reactivo del doc /apps/{appId}/users/{uid}/preferences/main + write via PUT backend.
264
269
  // Side-effects: cuando cambia el snapshot, aplica theme + language a ThemeService + I18nService.
265
270
  export * from './lib/services/preferences';
271
+ // Devices Service (FCM push registration)
272
+ // Orquesta master (PreferencesService) + Notification.permission + MessagingService (FCM) +
273
+ // backend /v2/users/me/devices. Auto-sync register/unregister cuando cambian master o permission.
274
+ export * from './lib/services/devices';
266
275
  // App Config Services
267
276
  // Sistema de configuración remota, feature flags y detección de actualizaciones
268
277
  // Requiere provideValtechAppConfig() y provideValtechFirebase() en el bootstrap de la app
@@ -332,4 +341,4 @@ export * from './lib/shared/utils/text';
332
341
  // Shared Configuration
333
342
  // Configuración compartida para todos los productos Valtech
334
343
  export * from './lib/config';
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxj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QUE2QixDQUFDO0FBQzVDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsdUJBQXVCO0FBQ3ZCLDREQUE0RDtBQUM1RCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdmFsdGVjaC1jb21wb25lbnRzXG4gKi9cblxuLy8gVmVyc2lvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvdmVyc2lvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9hdmF0YXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ib3gvYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2JveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvY29udGFpbmVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2RpdmlkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL2hyZWYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaHJlZi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pY29uL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9za2VsZXRvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLXJpbmcvcHJvZ3Jlc3MtcmluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1yaW5nL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZmFiL2ZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9mYWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2NvdW50ZG93bi9jb3VudGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvY291bnRkb3duL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcHJpY2UtdGFnL3ByaWNlLXRhZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcmljZS10YWcvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ob3Jpem9udGFsLXNjcm9sbC9ob3Jpem9udGFsLXNjcm9sbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ob3Jpem9udGFsLXNjcm9sbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3JpZ2h0cy1mb290ZXIvcmlnaHRzLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9yaWdodHMtZm9vdGVyL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWxlcnQtYm94L2FsZXJ0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWxlcnQtYm94L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2J1dHRvbi1ncm91cC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrYm94LXJhZGlvLWlucHV0L2NoZWNrYm94LXJhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvY29udGVudC1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtbG9hZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZGF0ZS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZmlsZS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9oaW50L2hpbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2hvdXItaW5wdXQvaG91ci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC9sYXllcmVkLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmsvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS9saW5rcy1jYWtlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rcy1jYWtlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC9ub3Rlcy1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItZnJvbS10by9udW1iZXItZnJvbS10by5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZ3Jlc3Mtc3RhdHVzL3Byb2dyZXNzLXN0YXR1cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZ3Jlc3Mtc3RhdHVzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb21wdGVyL3Byb21wdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9tcHRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYWRpby1pbnB1dC9yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmFuZ2UtaW5wdXQvcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhbmdlLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3NlZ21lbnQtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlLWlucHV0L3RvZ2dsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpdGxlLWJsb2NrL3RpdGxlLWJsb2NrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvY29kZS1kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWhlYWRlci9hY3Rpb24taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24taGVhZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvcGlsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGlsbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tYW5kLWRpc3BsYXkvY29tbWFuZC1kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tYW5kLWRpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaW5mby9pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbmZvL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3BsYWluLWNvZGUtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wbGFpbi1jb2RlLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY2NvcmRpb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90YWJzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnJlYWRjcnVtYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2luYXRpb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zdGVwcGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hpcC1ncm91cC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYXRpbmcvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpbWVsaW5lL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3RhdHMtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbXVsdGktc2VsZWN0LXNlYXJjaC9tdWx0aS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9xdW90ZS1ib3gvcXVvdGUtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGhvbmUtaW5wdXQvcGhvbmUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bob25lLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2N1cnJlbmN5LWlucHV0L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jdXJyZW5jeS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLXJhbmdlLWlucHV0L2RhdGUtcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtcmFuZ2UtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLXN0ZXBwZXIvbnVtYmVyLXN0ZXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL251bWJlci1zdGVwcGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NoYXJlLWJ1dHRvbnMvc2hhcmUtYnV0dG9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hhcmUtYnV0dG9ucy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9nbG93LWNhcmQvZ2xvdy1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9nbG93LWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3dpcGUtY2Fyb3VzZWwvc3dpcGUtY2Fyb3VzZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N3aXBlLWNhcm91c2VsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Rlc3RpbW9uaWFsLWNhcmQvdGVzdGltb25pYWwtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGVzdGltb25pYWwtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9mZWF0dXJlcy1saXN0L2ZlYXR1cmVzLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlYXR1cmVzLWxpc3QvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL2Zvb3Rlci1saW5rcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWFjY29yZGlvbi9saW5rcy1hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWFjY29yZGlvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yZWZyZXNoZXIvcmVmcmVzaGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yZWZyZXNoZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdXBkYXRlLWJhbm5lci91cGRhdGUtYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdXNlcm5hbWUtaW5wdXQvdXNlcm5hbWUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3VzZXJuYW1lLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtlZC1wcm92aWRlcnMvbGlua2VkLXByb3ZpZGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua2VkLXByb3ZpZGVycy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbWFnZS1jcm9wL2ltYWdlLWNyb3AuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2ZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLWZvb3Rlci9mb3JtLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L2l0ZW0tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbm8tY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQtZm9vdGVyL3dpemFyZC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbW1lbnQtc2VjdGlvbi9jb21tZW50LXNlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbW1lbnQtc2VjdGlvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGEtdGFibGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY2FyZHMtY2Fyb3VzZWwvY2FyZHMtY2Fyb3VzZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NhcmRzLWNhcm91c2VsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rlc3RpbW9uaWFsLWNhcm91c2VsL3Rlc3RpbW9uaWFsLWNhcm91c2VsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90ZXN0aW1vbmlhbC1jYXJvdXNlbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mdW4taGVhZGVyL2Z1bi1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Z1bi1oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tcGFueS1mb290ZXIvY29tcGFueS1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbXBhbnktZm9vdGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWVudS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJiZWQtY29udGVudC90YWJiZWQtY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFiYmVkLWNvbnRlbnQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaW5maW5pdGUtbGlzdC9pbmZpbml0ZS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9pbmZpbml0ZS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9sb2dpbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9yb3RhdGluZy10ZXh0L3JvdGF0aW5nLXRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3JvdGF0aW5nLXRleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3Rlcm1pbmFsLTQwNC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYm90dG9tLW5hdi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hdmF0YXItdXBsb2FkL2F2YXRhci11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvc2ltcGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS10ZW1wbGF0ZS9wYWdlLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXRlbXBsYXRlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtY29udGVudC9wYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXdyYXBwZXIvcGFnZS13cmFwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXdyYXBwZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvbWFpbnRlbmFuY2UtcGFnZS9tYWludGVuYW5jZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9tYWludGVuYW5jZS1wYWdlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2F1dGgtYmFja2dyb3VuZC9hdXRoLWJhY2tncm91bmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2F1dGgtYmFja2dyb3VuZC90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbi1hcHAtYnJvd3Nlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21vZGFsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21ldGEnO1xuXG4vLyBNYXJrZG93biBBcnRpY2xlIFNlcnZpY2VzXG4vLyBQYXJzZXIgTWFya2Rvd24g4oaSIEFydGljbGVNZXRhZGF0YSArIGxvYWRlciBwYXJhIGRvY3MgbGVnYWxlcyBlbiAvYXNzZXRzL2xlZ2FsL3tsb2NhbGV9L3tzbHVnfS5tZFxuLy8gYHBhcnNlTWFya2Rvd25BcnRpY2xlYCAocHVyZSBmbiwgbm8gQW5ndWxhciBkZXBzKSB1c2FibGUgZGVzZGUgTm9kZSBzY3JpcHRzLlxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9tYXJrZG93bi1hcnRpY2xlLXBhcnNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tYXJrZG93bi1hcnRpY2xlL21hcmtkb3duLWFydGljbGUtcGFyc2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9sZWdhbC1jb250ZW50LnNlcnZpY2UnO1xuXG4vLyBGaXJlYmFzZSBTZXJ2aWNlc1xuLy8gTG9zIHNlcnZpY2lvcyBkZSBGaXJlYmFzZSByZXF1aWVyZW4gcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ZpcmViYXNlJztcblxuLy8gQXV0aCBTZXJ2aWNlc1xuLy8gTG9zIHNlcnZpY2lvcyBkZSBBdXRoIHJlcXVpZXJlbiBwcm92aWRlVmFsdGVjaEF1dGgoKSBlbiBlbCBib290c3RyYXAgZGUgbGEgYXBwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hdXRoJztcblxuLy8gaTE4biBTZXJ2aWNlc1xuLy8gU2lzdGVtYSBkZSBpbnRlcm5hY2lvbmFsaXphY2nDs24gYmFzYWRvIGVuIFNpZ25hbHNcbi8vIFJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoSTE4bigpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2kxOG4nO1xuXG4vLyBQcmVmZXJlbmNlcyBTZXJ2aWNlXG4vLyBSZWFkIHJlYWN0aXZvIGRlbCBkb2MgL2FwcHMve2FwcElkfS91c2Vycy97dWlkfS9wcmVmZXJlbmNlcy9tYWluICsgd3JpdGUgdmlhIFBVVCBiYWNrZW5kLlxuLy8gU2lkZS1lZmZlY3RzOiBjdWFuZG8gY2FtYmlhIGVsIHNuYXBzaG90LCBhcGxpY2EgdGhlbWUgKyBsYW5ndWFnZSBhIFRoZW1lU2VydmljZSArIEkxOG5TZXJ2aWNlLlxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMnO1xuXG4vLyBBcHAgQ29uZmlnIFNlcnZpY2VzXG4vLyBTaXN0ZW1hIGRlIGNvbmZpZ3VyYWNpw7NuIHJlbW90YSwgZmVhdHVyZSBmbGFncyB5IGRldGVjY2nDs24gZGUgYWN0dWFsaXphY2lvbmVzXG4vLyBSZXF1aWVyZSBwcm92aWRlVmFsdGVjaEFwcENvbmZpZygpIHkgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwcC1jb25maWcnO1xuXG4vLyBQcmVzZXRzIFNlcnZpY2VzXG4vLyBTaXN0ZW1hIGRlIHByZXNldHMgcGFyYSBjb25maWd1cmFjacOzbiByZXV0aWxpemFibGUgZGUgY29tcG9uZW50ZXNcbi8vIFJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoUHJlc2V0cygpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ByZXNldHMnO1xuXG4vLyBTa2VsZXRvbiBTZXJ2aWNlc1xuLy8gU2lzdGVtYSBkZSBza2VsZXRvbnMgcmV1dGlsaXphYmxlcyBjb24gdGVtcGxhdGVzIHkgZGlyZWN0aXZhc1xuLy8gUmVxdWllcmUgcHJvdmlkZVZhbHRlY2hTa2VsZXRvbigpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3NrZWxldG9uJztcblxuLy8gUGFnaW5hdGlvbiBTZXJ2aWNlc1xuLy8gQ29udHJvbGFkb3JlcyBkZSBwYWdpbmFjaW9uIHJldXRpbGl6YWJsZXNcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3BhZ2luYXRpb24nO1xuXG4vLyBJbWFnZSBTZXJ2aWNlc1xuLy8gU2VydmljaW8gcGFyYSBwcm9jZXNhbWllbnRvIGRlIGltw6FnZW5lcyAoY29tcHJlc3MsIHRodW1ibmFpbCwgY3JvcCwgdmFsaWRhdGUpXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbWFnZSc7XG5cbi8vIEFkcyBTZXJ2aWNlc1xuLy8gU2lzdGVtYSBkZSBhZHMgY29uIEdvb2dsZSBBZCBNYW5hZ2VyIChHUFQpXG4vLyBSZXF1aWVyZSBwcm92aWRlVmFsdGVjaEFkcygpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Fkcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hZC1zbG90L2FkLXNsb3QuY29tcG9uZW50JztcblxuLy8gQ29udGVudCBUeXBlc1xuLy8gQWJzdHJhY2Npw7NuIGRlIHRpcG9zIGRlIGNvbnRlbmlkbyBxdWUgc2UgdHJhbnNmb3JtYW4gYSBBcnRpY2xlTWV0YWRhdGFcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbnRlbnQnO1xuXG4vLyBGZWVkYmFjayBTZXJ2aWNlcyAmIENvbXBvbmVudHNcbi8vIFNpc3RlbWEgZGUgZmVlZGJhY2sgZGUgdXN1YXJpb3MgcXVlIHJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoRmVlZGJhY2soKSBlbiBlbCBib290c3RyYXBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ZlZWRiYWNrJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlZWRiYWNrLWZvcm0vZmVlZGJhY2stZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZmVlZGJhY2stZm9ybS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LXJlYWN0aW9uL2NvbnRlbnQtcmVhY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtcmVhY3Rpb24vdHlwZXMnO1xuXG4vLyBEb2N1bWVudGF0aW9uIENvbXBvbmVudHNcbi8vIENvbXBvbmVudGVzIHBhcmEgY29uc3RydWlyIGRvY3VtZW50YWNpw7NuIHTDqWNuaWNhIGVzdGlsbyBJb25pYyBEb2NzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9kb2NzLWxheW91dC9kb2NzLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1sYXlvdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy1zaWRlYmFyL2RvY3Mtc2lkZWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy1zaWRlYmFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RvY3MtdG9jL2RvY3MtdG9jLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kb2NzLXRvYy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLW5hdi1saW5rcy9kb2NzLW5hdi1saW5rcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1uYXYtbGlua3MvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1hcGktdGFibGUvZG9jcy1hcGktdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtYXBpLXRhYmxlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtY29kZS1leGFtcGxlL2RvY3MtY29kZS1leGFtcGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLWNvZGUtZXhhbXBsZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLXNlYXJjaC9kb2NzLXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1zZWFyY2gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1icmVhZGNydW1iL2RvY3MtYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1icmVhZGNydW1iL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtY2FsbG91dC9kb2NzLWNhbGxvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3Mtc2VjdGlvbi9kb2NzLXNlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3Mtc2VjdGlvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9kb2NzLXBhZ2UvZG9jcy1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9kb2NzLXBhZ2UvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1zaGVsbC9kb2NzLXNoZWxsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9kb2NzLXNoZWxsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2RvY3MvZG9jcy1uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9waXBlcy9wcm9jZXNzLWxpbmtzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2RhdGV0aW1lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9kb20nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL2Zvcm0tZGVmYXVsdHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3N0eWxlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvdGV4dCc7XG5cbi8vIFNoYXJlZCBDb25maWd1cmF0aW9uXG4vLyBDb25maWd1cmFjacOzbiBjb21wYXJ0aWRhIHBhcmEgdG9kb3MgbG9zIHByb2R1Y3RvcyBWYWx0ZWNoXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25maWcnO1xuIl19
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsVUFBVTtBQUNWLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyxnRkFBZ0YsQ0FBQztBQUMvRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsc0VBQXNFLENBQUM7QUFDckYsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyw4RUFBOEUsQ0FBQztBQUM3RixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGdFQUFnRSxDQUFDO0FBQy9FLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsOERBQThELENBQUM7QUFDN0UsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsNERBQTRELENBQUM7QUFFM0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMseUVBQXlFLENBQUM7QUFDeEYsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHNFQUFzRSxDQUFDO0FBQ3JGLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGdGQUFnRixDQUFDO0FBQy9GLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0RBQWdELENBQUM7QUFDL0QsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGtEQUFrRCxDQUFDO0FBRWpFLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyw0QkFBNEI7QUFDNUIsbUdBQW1HO0FBQ25HLCtFQUErRTtBQUMvRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxxQkFBcUI7QUFDckIsNkVBQTZFO0FBQzdFLGNBQWMsOENBQThDLENBQUM7QUFFN0Qsb0JBQW9CO0FBQ3BCLHlGQUF5RjtBQUN6RixjQUFjLHlCQUF5QixDQUFDO0FBRXhDLGdCQUFnQjtBQUNoQixpRkFBaUY7QUFDakYsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxnQkFBZ0I7QUFDaEIsb0RBQW9EO0FBQ3BELDBEQUEwRDtBQUMxRCxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLHNCQUFzQjtBQUN0Qiw0RkFBNEY7QUFDNUYsaUdBQWlHO0FBQ2pHLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsMENBQTBDO0FBQzFDLDRGQUE0RjtBQUM1RixrR0FBa0c7QUFDbEcsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxzQkFBc0I7QUFDdEIsZ0ZBQWdGO0FBQ2hGLDBGQUEwRjtBQUMxRixjQUFjLDJCQUEyQixDQUFDO0FBRTFDLG1CQUFtQjtBQUNuQixvRUFBb0U7QUFDcEUsNkRBQTZEO0FBQzdELGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsb0JBQW9CO0FBQ3BCLGdFQUFnRTtBQUNoRSw4REFBOEQ7QUFDOUQsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxzQkFBc0I7QUFDdEIsNENBQTRDO0FBQzVDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsaUJBQWlCO0FBQ2pCLGdGQUFnRjtBQUNoRixjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGVBQWU7QUFDZiw2Q0FBNkM7QUFDN0MseURBQXlEO0FBQ3pELGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxnQkFBZ0I7QUFDaEIseUVBQXlFO0FBQ3pFLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsaUNBQWlDO0FBQ2pDLHdGQUF3RjtBQUN4RixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsMkJBQTJCO0FBQzNCLHFFQUFxRTtBQUNyRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxvRUFBb0UsQ0FBQztBQUNuRixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMEVBQTBFLENBQUM7QUFDekYsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxzRUFBc0UsQ0FBQztBQUNyRixjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyw2Q0FBNkMsQ0FBQztBQUU1RCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHlCQUF5QixDQUFDO0FBRXhDLHVCQUF1QjtBQUN2Qiw0REFBNEQ7QUFDNUQsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHZhbHRlY2gtY29tcG9uZW50c1xuICovXG5cbi8vIFZlcnNpb25cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZlcnNpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYXZhdGFyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYm94L2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ib3gvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9nbG93L2dsb3cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZ2xvdy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2NvbnRhaW5lci9jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvY29udGFpbmVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9idXR0b24vZmFjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9kaXNwbGF5L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZGl2aWRlci9kaXZpZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2RpdmlkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ocmVmL2hyZWYuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaHJlZi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9pY29uL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvaW1hZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvaW1hZ2UvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLWJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy90ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvdGl0bGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9za2VsZXRvbi9za2VsZXRvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9za2VsZXRvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3Byb2dyZXNzLXJpbmcvcHJvZ3Jlc3MtcmluZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcm9ncmVzcy1yaW5nL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvZmFiL2ZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9mYWIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9xci1jb2RlL3FyLWNvZGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcXItY29kZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL2NvdW50ZG93bi9jb3VudGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvY291bnRkb3duL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYXRvbXMvcHJpY2UtdGFnL3ByaWNlLXRhZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9wcmljZS10YWcvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ob3Jpem9udGFsLXNjcm9sbC9ob3Jpem9udGFsLXNjcm9sbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9ob3Jpem9udGFsLXNjcm9sbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2F0b21zL3JpZ2h0cy1mb290ZXIvcmlnaHRzLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9hdG9tcy9yaWdodHMtZm9vdGVyL3R5cGVzJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWxlcnQtYm94L2FsZXJ0LWJveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWxlcnQtYm94L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2J1dHRvbi1ncm91cC9idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2J1dHRvbi1ncm91cC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkL2NhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoZWNrYm94LXJhZGlvLWlucHV0L2NoZWNrYm94LXJhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50LWlucHV0L2NvbW1lbnQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29udGVudC1sb2FkZXIvY29udGVudC1sb2FkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbnRlbnQtbG9hZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZGF0ZS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9lbWFpbC1pbnB1dC9lbWFpbC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L2V4cGFuZGFibGUtdGV4dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZXhwYW5kYWJsZS10ZXh0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZpbGUtaW5wdXQvZmlsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZmlsZS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9oaW50L2hpbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2hvdXItaW5wdXQvaG91ci1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGFuZ3VhZ2Utc2VsZWN0b3IvbGFuZ3VhZ2Utc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xhbmd1YWdlLXNlbGVjdG9yL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC9sYXllcmVkLWNhcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xheWVyZWQtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rL2xpbmsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmsvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua3MtY2FrZS9saW5rcy1jYWtlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9saW5rcy1jYWtlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC9ub3Rlcy1ib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL25vdGVzLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItaW5wdXQvbnVtYmVyLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9udW1iZXItZnJvbS10by9udW1iZXItZnJvbS10by5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLWZyb20tdG8vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGFzc3dvcmQtaW5wdXQvcGFzc3dvcmQtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC9waW4taW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bpbi1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wb3BvdmVyLXNlbGVjdG9yL3BvcG92ZXItc2VsZWN0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BvcG92ZXItc2VsZWN0b3IvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZ3Jlc3Mtc3RhdHVzL3Byb2dyZXNzLXN0YXR1cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcHJvZ3Jlc3Mtc3RhdHVzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Byb21wdGVyL3Byb21wdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wcm9tcHRlci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYWRpby1pbnB1dC9yYWRpby1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcmFuZ2UtaW5wdXQvcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3JhbmdlLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlYXJjaGJhci9zZWFyY2hiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NlbGVjdC1zZWFyY2gvc2VsZWN0LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3NlZ21lbnQtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2VnbWVudC1jb250cm9sL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RleHQtaW5wdXQvdGV4dC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlLWlucHV0L3RvZ2dsZS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdG9nZ2xlLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpdGxlLWJsb2NrL3RpdGxlLWJsb2NrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90aXRsZS1ibG9jay90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvY29kZS1kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb2RlLWRpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWhlYWRlci9hY3Rpb24taGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24taGVhZGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BpbGwvcGlsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGlsbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tYW5kLWRpc3BsYXkvY29tbWFuZC1kaXNwbGF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tYW5kLWRpc3BsYXkvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaW5mby9pbmZvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbmZvL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BsYWluLWNvZGUtYm94L3BsYWluLWNvZGUtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wbGFpbi1jb2RlLWJveC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY2NvcmRpb24vYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY2NvcmRpb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGFicy90YWJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90YWJzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYnJlYWRjcnVtYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3BhZ2luYXRpb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9zdGVwcGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY2hpcC1ncm91cC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYXRpbmcvcmF0aW5nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yYXRpbmcvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3RpbWVsaW5lL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N0YXRzLWNhcmQvc3RhdHMtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3RhdHMtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb21tZW50L2NvbW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbXVsdGktc2VsZWN0LXNlYXJjaC9tdWx0aS1zZWxlY3Qtc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9xdW90ZS1ib3gvcXVvdGUtYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy90ZXh0YXJlYS1pbnB1dC90ZXh0YXJlYS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvcGhvbmUtaW5wdXQvcGhvbmUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Bob25lLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2N1cnJlbmN5LWlucHV0L2N1cnJlbmN5LWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jdXJyZW5jeS1pbnB1dC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kYXRlLXJhbmdlLWlucHV0L2RhdGUtcmFuZ2UtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RhdGUtcmFuZ2UtaW5wdXQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbnVtYmVyLXN0ZXBwZXIvbnVtYmVyLXN0ZXBwZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL251bWJlci1zdGVwcGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3NoYXJlLWJ1dHRvbnMvc2hhcmUtYnV0dG9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc2hhcmUtYnV0dG9ucy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9nbG93LWNhcmQvZ2xvdy1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9nbG93LWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvc3dpcGUtY2Fyb3VzZWwvc3dpcGUtY2Fyb3VzZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3N3aXBlLWNhcm91c2VsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3Rlc3RpbW9uaWFsLWNhcmQvdGVzdGltb25pYWwtY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdGVzdGltb25pYWwtY2FyZC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9mZWF0dXJlcy1saXN0L2ZlYXR1cmVzLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlYXR1cmVzLWxpc3QvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL2Zvb3Rlci1saW5rcy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZm9vdGVyLWxpbmtzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWFjY29yZGlvbi9saW5rcy1hY2NvcmRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtzLWFjY29yZGlvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yZWZyZXNoZXIvcmVmcmVzaGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9yZWZyZXNoZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdXBkYXRlLWJhbm5lci91cGRhdGUtYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9hY3Rpb24tY2FyZC9hY3Rpb24tY2FyZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvdXNlcm5hbWUtaW5wdXQvdXNlcm5hbWUtaW5wdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL3VzZXJuYW1lLWlucHV0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2xpbmtlZC1wcm92aWRlcnMvbGlua2VkLXByb3ZpZGVycy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvbGlua2VkLXByb3ZpZGVycy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9pbWFnZS1jcm9wL2ltYWdlLWNyb3AuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYXJ0aWNsZS9hcnRpY2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hcnRpY2xlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci9iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Jhbm5lci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mb3JtL2ZhY3RvcnknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLWZvb3Rlci9mb3JtLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L2l0ZW0tbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaXRlbS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL25vLWNvbnRlbnQvbm8tY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbm8tY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90b29sYmFyL3Rvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rvb2xiYXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvd2l6YXJkL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQtZm9vdGVyL3dpemFyZC1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3dpemFyZC93aXphcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbW1lbnQtc2VjdGlvbi9jb21tZW50LXNlY3Rpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbW1lbnQtc2VjdGlvbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RhdGEtdGFibGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY2FyZHMtY2Fyb3VzZWwvY2FyZHMtY2Fyb3VzZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NhcmRzLWNhcm91c2VsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Rlc3RpbW9uaWFsLWNhcm91c2VsL3Rlc3RpbW9uaWFsLWNhcm91c2VsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90ZXN0aW1vbmlhbC1jYXJvdXNlbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9mdW4taGVhZGVyL2Z1bi1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2Z1bi1oZWFkZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvY29tcGFueS1mb290ZXIvY29tcGFueS1mb290ZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2NvbXBhbnktZm9vdGVyL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL21lbnUvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWVudS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy90YWJiZWQtY29udGVudC90YWJiZWQtY29udGVudC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGFiYmVkLWNvbnRlbnQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvaW5maW5pdGUtbGlzdC9pbmZpbml0ZS1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9pbmZpbml0ZS1saXN0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xvZ2luL2xvZ2luLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9sb2dpbi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9yb3RhdGluZy10ZXh0L3JvdGF0aW5nLXRleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3JvdGF0aW5nLXRleHQvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3Rlcm1pbmFsLTQwNC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvdGVybWluYWwtNDA0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvYm90dG9tLW5hdi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9hdmF0YXItdXBsb2FkL2F2YXRhci11cGxvYWQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2F2YXRhci11cGxvYWQvdHlwZXMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvc2ltcGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9zaW1wbGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvcGFnZS10ZW1wbGF0ZS9wYWdlLXRlbXBsYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXRlbXBsYXRlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtY29udGVudC9wYWdlLWNvbnRlbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL3BhZ2UtY29udGVudC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXdyYXBwZXIvcGFnZS13cmFwcGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9wYWdlLXdyYXBwZXIvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvbWFpbnRlbmFuY2UtcGFnZS9tYWludGVuYW5jZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL3RlbXBsYXRlcy9tYWludGVuYW5jZS1wYWdlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2F1dGgtYmFja2dyb3VuZC9hdXRoLWJhY2tncm91bmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2F1dGgtYmFja2dyb3VuZC90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaWNvbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9pbi1hcHAtYnJvd3Nlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbmstcHJvY2Vzc29yLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xvY2FsZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL25hdmlnYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbmZpcm1hdGlvbi1kaWFsb2cvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcXItZ2VuZXJhdG9yL3FyLWdlbmVyYXRvci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3FyLWdlbmVyYXRvci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tb2RhbC9tb2RhbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21vZGFsL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21ldGEnO1xuXG4vLyBNYXJrZG93biBBcnRpY2xlIFNlcnZpY2VzXG4vLyBQYXJzZXIgTWFya2Rvd24g4oaSIEFydGljbGVNZXRhZGF0YSArIGxvYWRlciBwYXJhIGRvY3MgbGVnYWxlcyBlbiAvYXNzZXRzL2xlZ2FsL3tsb2NhbGV9L3tzbHVnfS5tZFxuLy8gYHBhcnNlTWFya2Rvd25BcnRpY2xlYCAocHVyZSBmbiwgbm8gQW5ndWxhciBkZXBzKSB1c2FibGUgZGVzZGUgTm9kZSBzY3JpcHRzLlxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9tYXJrZG93bi1hcnRpY2xlLXBhcnNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tYXJrZG93bi1hcnRpY2xlL21hcmtkb3duLWFydGljbGUtcGFyc2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFya2Rvd24tYXJ0aWNsZS9sZWdhbC1jb250ZW50LnNlcnZpY2UnO1xuXG4vLyBMZWdhbCBMaW5rIFNlcnZpY2Vcbi8vIENyb3NzLWFwcCByZXNvbHZlcjogc2F0ZWxsaXRlIGFwcHMgcmVkaXJpZ2VuIGxpbmtzIGxlZ2FsL3NpdGUgYWwgbWFpbiBzaXRlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sZWdhbC1saW5rL2xlZ2FsLWxpbmsuc2VydmljZSc7XG5cbi8vIEZpcmViYXNlIFNlcnZpY2VzXG4vLyBMb3Mgc2VydmljaW9zIGRlIEZpcmViYXNlIHJlcXVpZXJlbiBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkgZW4gZWwgYm9vdHN0cmFwIGRlIGxhIGFwcFxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZmlyZWJhc2UnO1xuXG4vLyBBdXRoIFNlcnZpY2VzXG4vLyBMb3Mgc2VydmljaW9zIGRlIEF1dGggcmVxdWllcmVuIHByb3ZpZGVWYWx0ZWNoQXV0aCgpIGVuIGVsIGJvb3RzdHJhcCBkZSBsYSBhcHBcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2F1dGgnO1xuXG4vLyBpMThuIFNlcnZpY2VzXG4vLyBTaXN0ZW1hIGRlIGludGVybmFjaW9uYWxpemFjacOzbiBiYXNhZG8gZW4gU2lnbmFsc1xuLy8gUmVxdWllcmUgcHJvdmlkZVZhbHRlY2hJMThuKCkgZW4gZWwgYm9vdHN0cmFwIGRlIGxhIGFwcFxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaTE4bic7XG5cbi8vIFByZWZlcmVuY2VzIFNlcnZpY2Vcbi8vIFJlYWQgcmVhY3Rpdm8gZGVsIGRvYyAvYXBwcy97YXBwSWR9L3VzZXJzL3t1aWR9L3ByZWZlcmVuY2VzL21haW4gKyB3cml0ZSB2aWEgUFVUIGJhY2tlbmQuXG4vLyBTaWRlLWVmZmVjdHM6IGN1YW5kbyBjYW1iaWEgZWwgc25hcHNob3QsIGFwbGljYSB0aGVtZSArIGxhbmd1YWdlIGEgVGhlbWVTZXJ2aWNlICsgSTE4blNlcnZpY2UuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcmVmZXJlbmNlcyc7XG5cbi8vIERldmljZXMgU2VydmljZSAoRkNNIHB1c2ggcmVnaXN0cmF0aW9uKVxuLy8gT3JxdWVzdGEgbWFzdGVyIChQcmVmZXJlbmNlc1NlcnZpY2UpICsgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gKyBNZXNzYWdpbmdTZXJ2aWNlIChGQ00pICtcbi8vIGJhY2tlbmQgL3YyL3VzZXJzL21lL2RldmljZXMuIEF1dG8tc3luYyByZWdpc3Rlci91bnJlZ2lzdGVyIGN1YW5kbyBjYW1iaWFuIG1hc3RlciBvIHBlcm1pc3Npb24uXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kZXZpY2VzJztcblxuLy8gQXBwIENvbmZpZyBTZXJ2aWNlc1xuLy8gU2lzdGVtYSBkZSBjb25maWd1cmFjacOzbiByZW1vdGEsIGZlYXR1cmUgZmxhZ3MgeSBkZXRlY2Npw7NuIGRlIGFjdHVhbGl6YWNpb25lc1xuLy8gUmVxdWllcmUgcHJvdmlkZVZhbHRlY2hBcHBDb25maWcoKSB5IHByb3ZpZGVWYWx0ZWNoRmlyZWJhc2UoKSBlbiBlbCBib290c3RyYXAgZGUgbGEgYXBwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcHAtY29uZmlnJztcblxuLy8gUHJlc2V0cyBTZXJ2aWNlc1xuLy8gU2lzdGVtYSBkZSBwcmVzZXRzIHBhcmEgY29uZmlndXJhY2nDs24gcmV1dGlsaXphYmxlIGRlIGNvbXBvbmVudGVzXG4vLyBSZXF1aWVyZSBwcm92aWRlVmFsdGVjaFByZXNldHMoKSBlbiBlbCBib290c3RyYXAgZGUgbGEgYXBwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wcmVzZXRzJztcblxuLy8gU2tlbGV0b24gU2VydmljZXNcbi8vIFNpc3RlbWEgZGUgc2tlbGV0b25zIHJldXRpbGl6YWJsZXMgY29uIHRlbXBsYXRlcyB5IGRpcmVjdGl2YXNcbi8vIFJlcXVpZXJlIHByb3ZpZGVWYWx0ZWNoU2tlbGV0b24oKSBlbiBlbCBib290c3RyYXAgZGUgbGEgYXBwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9za2VsZXRvbic7XG5cbi8vIFBhZ2luYXRpb24gU2VydmljZXNcbi8vIENvbnRyb2xhZG9yZXMgZGUgcGFnaW5hY2lvbiByZXV0aWxpemFibGVzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wYWdpbmF0aW9uJztcblxuLy8gSW1hZ2UgU2VydmljZXNcbi8vIFNlcnZpY2lvIHBhcmEgcHJvY2VzYW1pZW50byBkZSBpbcOhZ2VuZXMgKGNvbXByZXNzLCB0aHVtYm5haWwsIGNyb3AsIHZhbGlkYXRlKVxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvaW1hZ2UnO1xuXG4vLyBBZHMgU2VydmljZXNcbi8vIFNpc3RlbWEgZGUgYWRzIGNvbiBHb29nbGUgQWQgTWFuYWdlciAoR1BUKVxuLy8gUmVxdWllcmUgcHJvdmlkZVZhbHRlY2hBZHMoKSBlbiBlbCBib290c3RyYXAgZGUgbGEgYXBwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hZHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvYWQtc2xvdC9hZC1zbG90LmNvbXBvbmVudCc7XG5cbi8vIENvbnRlbnQgVHlwZXNcbi8vIEFic3RyYWNjacOzbiBkZSB0aXBvcyBkZSBjb250ZW5pZG8gcXVlIHNlIHRyYW5zZm9ybWFuIGEgQXJ0aWNsZU1ldGFkYXRhXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb250ZW50JztcblxuLy8gRmVlZGJhY2sgU2VydmljZXMgJiBDb21wb25lbnRzXG4vLyBTaXN0ZW1hIGRlIGZlZWRiYWNrIGRlIHVzdWFyaW9zIHF1ZSByZXF1aWVyZSBwcm92aWRlVmFsdGVjaEZlZWRiYWNrKCkgZW4gZWwgYm9vdHN0cmFwXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9mZWVkYmFjayc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9mZWVkYmFjay1mb3JtL2ZlZWRiYWNrLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2ZlZWRiYWNrLWZvcm0vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvY29udGVudC1yZWFjdGlvbi9jb250ZW50LXJlYWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jb250ZW50LXJlYWN0aW9uL3R5cGVzJztcblxuLy8gRG9jdW1lbnRhdGlvbiBDb21wb25lbnRzXG4vLyBDb21wb25lbnRlcyBwYXJhIGNvbnN0cnVpciBkb2N1bWVudGFjacOzbiB0w6ljbmljYSBlc3RpbG8gSW9uaWMgRG9jc1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1sYXlvdXQvZG9jcy1sYXlvdXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2RvY3MtbGF5b3V0L3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RvY3Mtc2lkZWJhci9kb2NzLXNpZGViYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2RvY3Mtc2lkZWJhci90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9kb2NzLXRvYy9kb2NzLXRvYy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvZG9jcy10b2MvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1uYXYtbGlua3MvZG9jcy1uYXYtbGlua3MuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtbmF2LWxpbmtzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtYXBpLXRhYmxlL2RvY3MtYXBpLXRhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLWFwaS10YWJsZS90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLWNvZGUtZXhhbXBsZS9kb2NzLWNvZGUtZXhhbXBsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1jb2RlLWV4YW1wbGUvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvZG9jcy1zZWFyY2gvZG9jcy1zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3Mtc2VhcmNoL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtYnJlYWRjcnVtYi9kb2NzLWJyZWFkY3J1bWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2RvY3MtYnJlYWRjcnVtYi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLWNhbGxvdXQvZG9jcy1jYWxsb3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLXNlY3Rpb24vZG9jcy1zZWN0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9kb2NzLXNlY3Rpb24vdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1wYWdlL2RvY3MtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1wYWdlL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvdGVtcGxhdGVzL2RvY3Mtc2hlbGwvZG9jcy1zaGVsbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90ZW1wbGF0ZXMvZG9jcy1zaGVsbC90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kb2NzL2RvY3MtbmF2aWdhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvcGlwZXMvcHJvY2Vzcy1saW5rcy5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9kYXRldGltZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvdXRpbHMvZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9mb3JtLWRlZmF1bHRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC91dGlscy9zdHlsZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL3V0aWxzL3RleHQnO1xuXG4vLyBTaGFyZWQgQ29uZmlndXJhdGlvblxuLy8gQ29uZmlndXJhY2nDs24gY29tcGFydGlkYSBwYXJhIHRvZG9zIGxvcyBwcm9kdWN0b3MgVmFsdGVjaFxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlnJztcbiJdfQ==