@en-solutions/tgm-client-sdk 1.8.4 → 1.8.6

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.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * AI usage / cost attribution models.
3
+ * Mirrors GET /api/ai/usage/summary (backend AiUsageController).
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdXNhZ2UubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvYXBpL2FpLXVzYWdlLm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFJIHVzYWdlIC8gY29zdCBhdHRyaWJ1dGlvbiBtb2RlbHMuXG4gKiBNaXJyb3JzIEdFVCAvYXBpL2FpL3VzYWdlL3N1bW1hcnkgKGJhY2tlbmQgQWlVc2FnZUNvbnRyb2xsZXIpLlxuICovXG5cbi8qKiBGZWF0dXJlL3NvdXJjZSB0YXhvbm9teSB1c2VkIHRvIGF0dHJpYnV0ZSBBSSB1c2FnZSAobWF0Y2hlcyBiYWNrZW5kIEFpRmVhdHVyZSkuICovXG5leHBvcnQgdHlwZSBBaUZlYXR1cmUgPVxuICB8ICdBSV9BU1NJU1RBTlQnXG4gIHwgJ0FHRU5UJ1xuICB8ICdDT1JURVgnXG4gIHwgJ0VNQkVERElOR1MnXG4gIHwgJ1NFTUFOVElDX1NFQVJDSCdcbiAgfCAnTkxfU0VBUkNIJ1xuICB8ICdUUkFOU0NSSVBUSU9OJ1xuICB8ICdSRVBPUlRfR0VORVJBVElPTidcbiAgfCAnU0FOREJPWCdcbiAgfCAnT1RIRVInXG4gIHwgc3RyaW5nO1xuXG4vKiogT25lIGFnZ3JlZ2F0aW9uIHJvdyAoYnkgZmVhdHVyZSwgcHJvdmlkZXIgb3IgbW9kZWwpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBBaVVzYWdlUm93IHtcbiAga2V5OiBzdHJpbmc7ICAgICAgICAvLyBmZWF0dXJlIG5hbWUgfCBwcm92aWRlciB8IG1vZGVsXG4gIGNhbGxzOiBudW1iZXI7XG4gIHRva2VuczogbnVtYmVyO1xuICBjb3N0VXNkOiBudW1iZXI7XG59XG5cbi8qKiBVc2FnZSBzdW1tYXJ5IG92ZXIgYSBkYXRlIHJhbmdlIGZvciB0aGUgY3VycmVudCB0ZW5hbnQuICovXG5leHBvcnQgaW50ZXJmYWNlIEFpVXNhZ2VTdW1tYXJ5IHtcbiAgZnJvbTogc3RyaW5nOyAgICAgICAgICAgICAvLyBJU08gZGF0ZSAoeXl5eS1NTS1kZClcbiAgdG86IHN0cmluZzsgICAgICAgICAgICAgICAvLyBJU08gZGF0ZSAoeXl5eS1NTS1kZClcbiAgdG90YWxDYWxsczogbnVtYmVyO1xuICB0b3RhbFRva2VuczogbnVtYmVyO1xuICB0b3RhbENvc3RVc2Q6IG51bWJlcjtcbiAgYnlGZWF0dXJlOiBBaVVzYWdlUm93W107XG4gIGJ5UHJvdmlkZXI6IEFpVXNhZ2VSb3dbXTtcbiAgYnlNb2RlbDogQWlVc2FnZVJvd1tdO1xufVxuIl19
@@ -1,4 +1,5 @@
1
1
  export * from './login.models';
2
2
  export * from './sso.models';
3
3
  export * from './totp.models';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9hdXRoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xvZ2luLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3Nzby5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi90b3RwLm1vZGVscyc7XG4iXX0=
4
+ export * from './webauthn.models';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9hdXRoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbG9naW4ubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vc3NvLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3RvdHAubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vd2ViYXV0aG4ubW9kZWxzJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4ubW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9tb2RlbHMvYXV0aC93ZWJhdXRobi5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBBIHJlZ2lzdGVyZWQgV2ViQXV0aG4gY3JlZGVudGlhbCAocGFzc2tleSAvIHNlY3VyaXR5IGtleSkg4oCUIG1pcnJvcnMgdGhlIGJhY2tlbmQgdmlldy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgV2ViQXV0aG5DcmVkZW50aWFsVmlldyB7XG4gIGlkOiBudW1iZXI7XG4gIGRldmljZU5hbWU6IHN0cmluZztcbiAgZGlzY292ZXJhYmxlOiBib29sZWFuO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgbGFzdFVzZWRBdD86IHN0cmluZyB8IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,36 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../core/http-client.service";
4
+ /**
5
+ * AI usage & cost attribution for the current tenant.
6
+ * Backend: AiUsageController (admin-only).
7
+ */
8
+ export class AiUsageService {
9
+ http;
10
+ basePath = '/api/ai/usage';
11
+ constructor(http) {
12
+ this.http = http;
13
+ }
14
+ /**
15
+ * Usage summary (calls, tokens, cost) broken down by feature / provider / model.
16
+ * @param from optional ISO date (yyyy-MM-dd), defaults server-side to 30 days ago
17
+ * @param to optional ISO date (yyyy-MM-dd), defaults server-side to today
18
+ */
19
+ getSummary(from, to) {
20
+ const params = {};
21
+ if (from)
22
+ params['from'] = from;
23
+ if (to)
24
+ params['to'] = to;
25
+ return this.http.get(`${this.basePath}/summary`, {
26
+ params: Object.keys(params).length ? params : undefined,
27
+ });
28
+ }
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
30
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, providedIn: 'root' });
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, decorators: [{
33
+ type: Injectable,
34
+ args: [{ providedIn: 'root' }]
35
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdXNhZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXBpL2FpLXVzYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTTNDOzs7R0FHRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBR0w7SUFGWixRQUFRLEdBQUcsZUFBZSxDQUFDO0lBRW5DLFlBQW9CLElBQW1CO1FBQW5CLFNBQUksR0FBSixJQUFJLENBQWU7SUFBRyxDQUFDO0lBRTNDOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsSUFBYSxFQUFFLEVBQVc7UUFDbkMsTUFBTSxNQUFNLEdBQTJCLEVBQUUsQ0FBQztRQUMxQyxJQUFJLElBQUk7WUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2hDLElBQUksRUFBRTtZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsUUFBUSxVQUFVLEVBQUU7WUFDNUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FqQlUsY0FBYzs0R0FBZCxjQUFjLGNBREQsTUFBTTs7NEZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGdtSHR0cENsaWVudCB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9iYXNlLm1vZGVscyc7XG5pbXBvcnQgeyBBaVVzYWdlU3VtbWFyeSB9IGZyb20gJy4uLy4uL21vZGVscy9hcGkvYWktdXNhZ2UubW9kZWxzJztcblxuLyoqXG4gKiBBSSB1c2FnZSAmIGNvc3QgYXR0cmlidXRpb24gZm9yIHRoZSBjdXJyZW50IHRlbmFudC5cbiAqIEJhY2tlbmQ6IEFpVXNhZ2VDb250cm9sbGVyIChhZG1pbi1vbmx5KS5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBaVVzYWdlU2VydmljZSB7XG4gIHByaXZhdGUgYmFzZVBhdGggPSAnL2FwaS9haS91c2FnZSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBUZ21IdHRwQ2xpZW50KSB7fVxuXG4gIC8qKlxuICAgKiBVc2FnZSBzdW1tYXJ5IChjYWxscywgdG9rZW5zLCBjb3N0KSBicm9rZW4gZG93biBieSBmZWF0dXJlIC8gcHJvdmlkZXIgLyBtb2RlbC5cbiAgICogQHBhcmFtIGZyb20gb3B0aW9uYWwgSVNPIGRhdGUgKHl5eXktTU0tZGQpLCBkZWZhdWx0cyBzZXJ2ZXItc2lkZSB0byAzMCBkYXlzIGFnb1xuICAgKiBAcGFyYW0gdG8gICBvcHRpb25hbCBJU08gZGF0ZSAoeXl5eS1NTS1kZCksIGRlZmF1bHRzIHNlcnZlci1zaWRlIHRvIHRvZGF5XG4gICAqL1xuICBnZXRTdW1tYXJ5KGZyb20/OiBzdHJpbmcsIHRvPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBaVVzYWdlU3VtbWFyeT4+IHtcbiAgICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAoZnJvbSkgcGFyYW1zWydmcm9tJ10gPSBmcm9tO1xuICAgIGlmICh0bykgcGFyYW1zWyd0byddID0gdG87XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8QWlVc2FnZVN1bW1hcnk+PihgJHt0aGlzLmJhc2VQYXRofS9zdW1tYXJ5YCwge1xuICAgICAgcGFyYW1zOiBPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCA/IHBhcmFtcyA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  export { BaseCrudService } from './base-crud.service';
2
+ export { AiUsageService } from './ai-usage.service';
2
3
  export { CompanyService } from './company.service';
3
4
  export { UnitService } from './unit.service';
4
5
  export { ComponentService, ComponentGroupService, SubAssemblyService } from './component.service';
@@ -100,4 +101,4 @@ export { AuditEntryService } from './audit-entry.service';
100
101
  export { ThresholdAlertRuleService } from './threshold-alert-rule.service';
101
102
  export { CmsContentTypeService, CmsDataService } from './cms.service';
102
103
  export { CmsMenuHelper } from './cms-menu.helper';
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckksT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlDQUFpQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0ksT0FBTyxFQUFFLHlCQUF5QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkksT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLDJCQUEyQixFQUFFLDBCQUEwQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEosT0FBTyxFQUFFLDJCQUEyQixFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakwsT0FBTyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkYsT0FBTyxFQUFFLGNBQWMsRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUseUJBQXlCLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN08sT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxjQUFjLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQzNELG1CQUFtQixFQUFFLDJCQUEyQixFQUNoRCxVQUFVLEVBQUUsa0JBQWtCLEVBQzlCLG9CQUFvQixFQUNwQixlQUFlLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQzlELGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFDeEQsNkJBQTZCLEVBQUUsbUJBQW1CLEVBQ2xELDBCQUEwQixHQUMzQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzVGLE9BQU8sRUFBRSx1QkFBdUIsSUFBSSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUNMLGlCQUFpQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUMvRCx1QkFBdUIsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFDdkUsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQzFFLDBCQUEwQixFQUFFLGtCQUFrQixFQUM5Qyw0QkFBNEIsRUFBRSwrQkFBK0IsRUFBRSw2QkFBNkIsR0FDN0YsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsZUFBZSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUM3RCxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFDakUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUN0RCwwQkFBMEIsRUFBRSxlQUFlLEVBQUUsc0JBQXNCLEVBQ25FLHlCQUF5QixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUMvRCxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFDOUQsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUMxRCxjQUFjLEVBQUUseUJBQXlCLEVBQUUsOEJBQThCLEVBQ3pFLGlDQUFpQyxHQUNsQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsK0JBQStCLEVBQy9CLDZCQUE2QixFQUM3Qix5QkFBeUIsRUFDekIsaUJBQWlCLEVBQ2pCLG9CQUFvQixHQUNyQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQ2pFLGNBQWMsRUFBRSxrQkFBa0IsRUFBRSxrQkFBa0IsRUFDdEQsNEJBQTRCLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEdBQ2pGLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCx5QkFBeUIsRUFBRSw2QkFBNkIsRUFBRSx1QkFBdUIsR0FDbEYsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUErQixNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZUNydWRTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLWNydWQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wYW55U2VydmljZSB9IGZyb20gJy4vY29tcGFueS5zZXJ2aWNlJztcbmV4cG9ydCB7IFVuaXRTZXJ2aWNlIH0gZnJvbSAnLi91bml0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcG9uZW50U2VydmljZSwgQ29tcG9uZW50R3JvdXBTZXJ2aWNlLCBTdWJBc3NlbWJseVNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IEluc3BlY3Rpb25TZXJ2aWNlLCBJbnNwZWN0aW9uQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4vaW5zcGVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IEZhaWx1cmVTZXJ2aWNlLCBGYWlsdXJlQ2F1c2VTZXJ2aWNlLCBGYWlsdXJlQWN0aW9uU2VydmljZSwgQ29ycmVjdGl2ZUFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2ZhaWx1cmUuc2VydmljZSc7XG5leHBvcnQgeyBJbnRlcnZlbnRpb25TZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcnZlbnRpb24uc2VydmljZSc7XG5leHBvcnQgeyBNYWludGVuYW5jZVJlY29yZFNlcnZpY2UgfSBmcm9tICcuL21haW50ZW5hbmNlLXJlY29yZC5zZXJ2aWNlJztcbmV4cG9ydCB7IEludGVydmVudGlvblJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcnZlbnRpb24tcmVxdWVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsSXRlbVNlcnZpY2UsIE1hdGVyaWFsSXRlbUhpc3RvcnlTZXJ2aWNlLCBNYXRlcmlhbENhdGVnb3J5U2VydmljZSwgU3BhcmVQYXJ0U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtaXRlbS5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsQ29uc3VtYWJsZVNlcnZpY2UsIE1hdGVyaWFsQ29uc3VtYWJsZUNhdGVnb3J5U2VydmljZSwgTWF0ZXJpYWxDb25zdW1hYmxlSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLWNvbnN1bWFibGUuc2VydmljZSc7XG5leHBvcnQgeyBNYXRlcmlhbEluc3RydW1lbnRTZXJ2aWNlLCBNYXRlcmlhbEluc3RydW1lbnRIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtaW5zdHJ1bWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsVG9vbGluZ1NlcnZpY2UsIE1hdGVyaWFsVG9vbGluZ0NhdGVnb3J5U2VydmljZSwgTWF0ZXJpYWxUb29saW5nSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLXRvb2xpbmcuc2VydmljZSc7XG5leHBvcnQgeyBTZW5zb3JTZXJ2aWNlIH0gZnJvbSAnLi9zZW5zb3Iuc2VydmljZSc7XG5leHBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL2FsZXJ0LnNlcnZpY2UnO1xuZXhwb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5leHBvcnQgeyBDYXBleFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9jYXBleC1wcm9qZWN0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQnVkZ2V0U2VydmljZSB9IGZyb20gJy4vYnVkZ2V0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQmlkU2VydmljZSB9IGZyb20gJy4vYmlkLnNlcnZpY2UnO1xuZXhwb3J0IHsgVGdGaWxlU2VydmljZSwgVGdGb2xkZXJTZXJ2aWNlLCBEcmF3aW5nU2VydmljZSwgRHJhd2luZ0NhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wbGlhbmNlT2JsaWdhdGlvblNlcnZpY2UsIENvbXBsaWFuY2VTdWJtaXNzaW9uU2VydmljZSwgRW52aXJvbm1lbnRhbFBlcm1pdFNlcnZpY2UsIENlcnRpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21wbGlhbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQW5jaWxsYXJ5U2VydmljZUNydWRTZXJ2aWNlLCBHcmlkQ29ubmVjdGlvblNlcnZpY2UsIEN1cnRhaWxtZW50RXZlbnRTZXJ2aWNlLCBPdXRhZ2VFdmVudFNlcnZpY2UsIE9wZXJhdGluZ0V2ZW50U2VydmljZSwgU2l0ZUFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbmVyZ3kuc2VydmljZSc7XG5leHBvcnQgeyBXYXJyYW50eUNvbnRyYWN0U2VydmljZSwgV2FycmFudHlDbGFpbVNlcnZpY2UgfSBmcm9tICcuL3dhcnJhbnR5LnNlcnZpY2UnO1xuZXhwb3J0IHsgVmVoaWNsZVNlcnZpY2UsIERyaXZlclNlcnZpY2UsIFZlaGljbGVUcmlwU2VydmljZSwgVmVoaWNsZUluc3BlY3Rpb25TZXJ2aWNlLCBWZWhpY2xlTWFpbnRlbmFuY2VTZXJ2aWNlLCBGdWVsUmVjb3JkU2VydmljZSwgR2VvZmVuY2VTZXJ2aWNlLCBHZW9mZW5jZUV2ZW50U2VydmljZSwgR3BzTG9jYXRpb25TZXJ2aWNlLCBUcmFja2VkRW50aXR5U2VydmljZSB9IGZyb20gJy4vZmxlZXQuc2VydmljZSc7XG5leHBvcnQgeyBTbGFCcmVhY2hSZWNvcmRTZXJ2aWNlIH0gZnJvbSAnLi9zbGEuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yZXBvcnRpbmcuc2VydmljZSc7XG5leHBvcnQgeyBCdWxrT3BlcmF0aW9uU2VydmljZSB9IGZyb20gJy4vYnVsay1vcGVyYXRpb24uc2VydmljZSc7XG5leHBvcnQge1xuICBBcnRpY2xlU2VydmljZSwgQXJ0aWNsZUNhdGVnb3J5U2VydmljZSwgQXJ0aWNsZVRvcGljU2VydmljZSxcbiAgQmVzdFByYWN0aWNlU2VydmljZSwgQmVzdFByYWN0aWNlQ2F0ZWdvcnlTZXJ2aWNlLFxuICBGYXFTZXJ2aWNlLCBGYXFDYXRlZ29yeVNlcnZpY2UsXG4gIExlc3NvbkxlYXJuZWRTZXJ2aWNlLFxuICBSZXNvdXJjZVNlcnZpY2UsIFJlc291cmNlQ2F0ZWdvcnlTZXJ2aWNlLCBSZXNvdXJjZVRvcGljU2VydmljZSxcbiAgTW9kdWxlU2VydmljZSwgTW9kdWxlTGVhcm5pbmdTZXJ2aWNlLCBNb2R1bGVWaWRlb1NlcnZpY2UsXG4gIExlYXJuaW5nTW9kdWxlQ2F0ZWdvcnlTZXJ2aWNlLCBVc2VyTGVhcm5pbmdTZXJ2aWNlLFxuICBUcmFpbmluZ0NlcnRpZmljYXRlU2VydmljZSxcbn0gZnJvbSAnLi9rbm93bGVkZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBSb290Q2F1c2VBbmFseXNpc1NlcnZpY2UsIFN5c3RlbWljUmlza0Fzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9xdWFsaXR5LnNlcnZpY2UnO1xuZXhwb3J0IHsgQXBwcm92YWxXb3JrZmxvd1NlcnZpY2UgYXMgV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1c3RvbUZpZWxkRGVmaW5pdGlvblNlcnZpY2UsIEN1c3RvbUZpZWxkU2VydmljZSwgQ3VzdG9tRm9ybVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1maWVsZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFVzZXJTZXJ2aWNlLCBVc2VyUHJvZmlsZVNlcnZpY2UsIFVzZXJOb3RpZmljYXRpb25TZXJ2aWNlLCBSb2xlU2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFByb2ZpbGVQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbW11bml0eVBvc3RTZXJ2aWNlLCBDb21tdW5pdHlDb21tZW50U2VydmljZSwgRmVlZGJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9jb21tdW5pdHkuc2VydmljZSc7XG5leHBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL2V2ZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IERlcGFydG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9kZXBhcnRtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgUm9vbVNlcnZpY2UgfSBmcm9tICcuL3Jvb20uc2VydmljZSc7XG5leHBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgeyBBaVNlcnZpY2UgfSBmcm9tICcuL2FpLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi9hZ2VudC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNhbmRib3hTZXJ2aWNlIH0gZnJvbSAnLi9zYW5kYm94LnNlcnZpY2UnO1xuZXhwb3J0IHsgRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRXhwb3J0U2VydmljZSB9IGZyb20gJy4vZXhwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHsgVG9kb1NlcnZpY2UgfSBmcm9tICcuL3RvZG8uc2VydmljZSc7XG5leHBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi90aWNrZXQuc2VydmljZSc7XG5leHBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4vbm90ZS5zZXJ2aWNlJztcbmV4cG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcbmV4cG9ydCB7IExvZ2luSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLWhpc3Rvcnkuc2VydmljZSc7XG5leHBvcnQge1xuICBHYXRlU3lzdGVtU2VydmljZSwgQWxlcnREZWZpbml0aW9uU2VydmljZSwgTWFudWFsUmVhZGluZ1NlcnZpY2UsXG4gIExhYm9yYXRvcnlSZXN1bHRTZXJ2aWNlLCBGaXNoTW9uaXRvcmluZ1NlcnZpY2UsIFJlZ3VsYXRvcnlVcGRhdGVTZXJ2aWNlLFxuICBPcGVyYXRpb25hbE9ic2VydmF0aW9uU2VydmljZSwgQmF0aHltZXRyaWNTdXJ2ZXlTZXJ2aWNlLCBBSVNjZW5hcmlvU2VydmljZSxcbiAgUmVzZXJ2b2lyVGltZVNlcmllc1NlcnZpY2UsIEdhdGVDb250cm9sU2VydmljZSxcbiAgRWxldmF0aW9uU3RvcmFnZUN1cnZlU2VydmljZSwgU2VkaW1lbnRSZW1vdmFsT3BlcmF0aW9uU2VydmljZSwgU2VkaW1lbnRNYW5hZ2VtZW50UGxhblNlcnZpY2UsXG59IGZyb20gJy4vcmVzZXJ2b2lyLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgSm9iVGl0bGVTZXJ2aWNlLCBDb3VudHJ5U2VydmljZSwgU3VwcGxpZXJTZXJ2aWNlLCBGb250U2VydmljZSxcbiAgRm9ybVNlcnZpY2UsIEZvcm1DYXRlZ29yeVNlcnZpY2UsIEluY2lkZW50U2VydmljZSwgTWVzc2FnZVNlcnZpY2UsXG4gIEtwaUV2ZW50U2VydmljZSwgVHVyYmluZVR5cGVTZXJ2aWNlLCBUZXJtc09mVXNlU2VydmljZSxcbiAgVW5pdFNodXRkb3duSGlzdG9yeVNlcnZpY2UsIFByb3BlcnR5U2VydmljZSwgUHJvcGVydGllc0dyb3VwU2VydmljZSxcbiAgUHJvcGVydGllc1RlbXBsYXRlU2VydmljZSwgTWVhc3VyZW1lbnRTZXJ2aWNlLCBNaUhpc3RvcnlTZXJ2aWNlLFxuICBNaVJlcXVlc3RTZXJ2aWNlLCBSZWNoYXJnZVJlcXVlc3RTZXJ2aWNlLCBSZWZ1cmJpc2htZW50U2VydmljZSxcbiAgTG9naW5SZXF1ZXN0U2VydmljZSwgTWFpbnRlbmFuY2VKc2FTZXJ2aWNlLCBKc2FJdGVtU2VydmljZSxcbiAgSnNhU3RlcFNlcnZpY2UsIENvbXBvbmVudENoZWNrbGlzdFNlcnZpY2UsIENvbXBvbmVudENoZWNrbGlzdEdyb3VwU2VydmljZSxcbiAgQ29tcG9uZW50Q2hlY2tsaXN0VGVtcGxhdGVTZXJ2aWNlLFxufSBmcm9tICcuL21pc2MtY3J1ZC5zZXJ2aWNlJztcbmV4cG9ydCB7IENsaWVudEFydGljbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtYXJ0aWNsZS5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIENvbmRpdGlvbkFzc2Vzc21lbnRUZXN0U2VydmljZSxcbiAgQ2F0UGxhbm5pbmdFcXVpcG1lbnRJdGVtU2VydmljZSxcbiAgQ2F0UGVyc29ubmVsQXNzaWdubWVudFNlcnZpY2UsXG4gIENhdEV4ZWN1dGlvblJlc3VsdFNlcnZpY2UsXG4gIENhdFNpZ25PZmZTZXJ2aWNlLFxuICBDYXRBdHRhY2htZW50U2VydmljZSxcbn0gZnJvbSAnLi9jYXQuc2VydmljZSc7XG5leHBvcnQgeyBNYWludGVuYW5jZVBsYW5TZXJ2aWNlIH0gZnJvbSAnLi9tYWludGVuYW5jZS1wbGFuLnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVjdXJyaW5nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9yZWN1cnJpbmctZXZlbnQuc2VydmljZSc7XG5leHBvcnQgeyBUaW1lRW50cnlTZXJ2aWNlIH0gZnJvbSAnLi90aW1lLWVudHJ5LnNlcnZpY2UnO1xuZXhwb3J0IHsgU2xhUG9saWN5U2VydmljZSB9IGZyb20gJy4vc2xhLXBvbGljeS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFzc2V0TGlmZWN5Y2xlU2VydmljZSB9IGZyb20gJy4vYXNzZXQtbGlmZWN5Y2xlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5hY3RpdmVDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9pbmFjdGl2ZS1jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wb25lbnRMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC1sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBvbmVudEluZm9TZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQtaW5mby5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBhbnlNYXRlcmlhbFR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9jb21wYW55LW1hdGVyaWFsLXR5cGUuc2VydmljZSc7XG5leHBvcnQgeyBDb21wYW55TWF0ZXJpYWxTZXJ2aWNlIH0gZnJvbSAnLi9jb21wYW55LW1hdGVyaWFsLnNlcnZpY2UnO1xuZXhwb3J0IHsgV2FyZWhvdXNlU2VydmljZSwgV2FyZWhvdXNlU3RvY2tTZXJ2aWNlIH0gZnJvbSAnLi93YXJlaG91c2Uuc2VydmljZSc7XG5leHBvcnQgeyBQdXJjaGFzZU9yZGVyU2VydmljZSwgR29vZHNSZWNlaXB0U2VydmljZSwgU3RvY2tNb3ZlbWVudFNlcnZpY2UsIFN0b2NrQ291bnRTZXJ2aWNlIH0gZnJvbSAnLi9wcm9jdXJlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IExpY2Vuc2VTZXJ2aWNlIH0gZnJvbSAnLi9saWNlbnNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgV29ya1Blcm1pdFNlcnZpY2UgfSBmcm9tICcuL3dvcmstcGVybWl0LnNlcnZpY2UnO1xuZXhwb3J0IHsgRGlhZ25vc3RpY1JlcG9ydFNlcnZpY2UgfSBmcm9tICcuL2RpYWdub3N0aWMtcmVwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ3VzdG9tU2VydmljZSB9IGZyb20gJy4vY3VzdG9tLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGlnaXRhbFR3aW5TZXJ2aWNlLCBNb2RlbFNlcnZpY2UsIE1vZGVsRmlsZVNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9kaWdpdGFsLXR3aW4uc2VydmljZSc7XG5leHBvcnQgeyBEeW5hbWljQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL2R5bmFtaWMtY3J1ZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFVwbG9hZFdpdGhSZWZPcHRpb25zIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgeyBXb3JrT3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi93b3JrLW9yZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgUGxhbnREYXRhU2VydmljZSB9IGZyb20gJy4vcGxhbnQtZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlc2Vydm9pckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9yZXNlcnZvaXItZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpRmVlZGJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9haS1mZWVkYmFjay5zZXJ2aWNlJztcbmV4cG9ydCB7IERldmljZUdhdGV3YXlTZXJ2aWNlIH0gZnJvbSAnLi9kZXZpY2UtZ2F0ZXdheS5zZXJ2aWNlJztcbmV4cG9ydCB7IE91dGFnZVJlc291cmNlU2VydmljZSB9IGZyb20gJy4vb3V0YWdlLXJlc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5lcmd5UHJvZHVjdGlvblNlcnZpY2UgfSBmcm9tICcuL2VuZXJneS1wcm9kdWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5lcmd5QW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vZW5lcmd5LWFuYWx5dGljcy5zZXJ2aWNlJztcbmV4cG9ydCB7IE1lYXN1cmVtZW50VW5pdFNlcnZpY2UgfSBmcm9tICcuL21lYXN1cmVtZW50LXVuaXQuc2VydmljZSc7XG5leHBvcnQgeyBQcm9wZXJ0eVRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4vcHJvcGVydHktdGVtcGxhdGUuc2VydmljZSc7XG5leHBvcnQge1xuICBBaXBTZXR0aW5nc1NlcnZpY2UsIEFpcEFzc2Vzc21lbnRTZXJ2aWNlLCBJbnZlc3RtZW50T3B0aW9uU2VydmljZSxcbiAgQWlwUGxhblNlcnZpY2UsIEFpcFNjZW5hcmlvU2VydmljZSwgQWlwQW5hbHlzaXNTZXJ2aWNlLFxuICBBaXBSZXNvdXJjZUNvbnN0cmFpbnRTZXJ2aWNlLCBBaXBOZXR3b3JrTm9kZVNlcnZpY2UsIEFpcFBlcmZvcm1hbmNlUmVjb3JkU2VydmljZSxcbn0gZnJvbSAnLi9haXAuc2VydmljZSc7XG5leHBvcnQge1xuICBEZWZlcnJhbEV2YWx1YXRpb25TZXJ2aWNlLCBEZWZlcnJhbENvbnN0cmFpbnRSdWxlU2VydmljZSwgRGVmZXJyYWxEZWNpc2lvblNlcnZpY2UsXG59IGZyb20gJy4vZGVmZXJyYWwuc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXguc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhOb2RlU2VydmljZSB9IGZyb20gJy4vY29ydGV4LW5vZGUuc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhFdmVudFNlcnZpY2UgfSBmcm9tICcuL2NvcnRleC1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvcnRleEluc2lnaHRTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXgtaW5zaWdodC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFJpc2tBbmFseXNpc1NlcnZpY2UgfSBmcm9tICcuL2FpcC1hbmFseXNpcy5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcEZpbmFuY2lhbFNlcnZpY2UgfSBmcm9tICcuL2FpcC1maW5hbmNpYWwuc2VydmljZSc7XG5leHBvcnQgeyBBaXBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICcuL2FpcC13b3JrZmxvdy5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFJlc291cmNlU2VydmljZSB9IGZyb20gJy4vYWlwLXJlc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwTmV0d29ya0FuYWx5c2lzU2VydmljZSB9IGZyb20gJy4vYWlwLW5ldHdvcmsuc2VydmljZSc7XG5leHBvcnQgeyBBaXBHZW9ncmFwaGljU2VydmljZSB9IGZyb20gJy4vYWlwLWdlb2dyYXBoaWMuc2VydmljZSc7XG5leHBvcnQgeyBBaXBQZXJmb3JtYW5jZVNlcnZpY2UgfSBmcm9tICcuL2FpcC1wZXJmb3JtYW5jZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFub21hbHlEZXRlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9hbm9tYWx5LWRldGVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IFNjaGVkdWxlZFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuL3NjaGVkdWxlZC1yZXBvcnQuc2VydmljZSc7XG5leHBvcnQgeyBFbnRpdHlDb21tZW50U2VydmljZSB9IGZyb20gJy4vZW50aXR5LWNvbW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBBdWRpdEVudHJ5U2VydmljZSB9IGZyb20gJy4vYXVkaXQtZW50cnkuc2VydmljZSc7XG5leHBvcnQgeyBUaHJlc2hvbGRBbGVydFJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi90aHJlc2hvbGQtYWxlcnQtcnVsZS5zZXJ2aWNlJztcbmV4cG9ydCB7IENtc0NvbnRlbnRUeXBlU2VydmljZSwgQ21zRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Ntcy5zZXJ2aWNlJztcbmV4cG9ydCB7IENtc01lbnVIZWxwZXIsIENtc01lbnVJdGVtLCBDbXNNZW51U2VjdGlvbiB9IGZyb20gJy4vY21zLW1lbnUuaGVscGVyJztcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQ0FBaUMsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9JLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsRUFBRSxN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RSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBK0IsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEJhc2VDcnVkU2VydmljZSB9IGZyb20gJy4vYmFzZS1jcnVkLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlVc2FnZVNlcnZpY2UgfSBmcm9tICcuL2FpLXVzYWdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcGFueVNlcnZpY2UgfSBmcm9tICcuL2NvbXBhbnkuc2VydmljZSc7XG5leHBvcnQgeyBVbml0U2VydmljZSB9IGZyb20gJy4vdW5pdC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBvbmVudFNlcnZpY2UsIENvbXBvbmVudEdyb3VwU2VydmljZSwgU3ViQXNzZW1ibHlTZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgeyBJbnNwZWN0aW9uU2VydmljZSwgSW5zcGVjdGlvbkNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2luc3BlY3Rpb24uc2VydmljZSc7XG5leHBvcnQgeyBGYWlsdXJlU2VydmljZSwgRmFpbHVyZUNhdXNlU2VydmljZSwgRmFpbHVyZUFjdGlvblNlcnZpY2UsIENvcnJlY3RpdmVBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9mYWlsdXJlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW50ZXJ2ZW50aW9uU2VydmljZSB9IGZyb20gJy4vaW50ZXJ2ZW50aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgTWFpbnRlbmFuY2VSZWNvcmRTZXJ2aWNlIH0gZnJvbSAnLi9tYWludGVuYW5jZS1yZWNvcmQuc2VydmljZSc7XG5leHBvcnQgeyBJbnRlcnZlbnRpb25SZXF1ZXN0U2VydmljZSB9IGZyb20gJy4vaW50ZXJ2ZW50aW9uLXJlcXVlc3Quc2VydmljZSc7XG5leHBvcnQgeyBNYXRlcmlhbEl0ZW1TZXJ2aWNlLCBNYXRlcmlhbEl0ZW1IaXN0b3J5U2VydmljZSwgTWF0ZXJpYWxDYXRlZ29yeVNlcnZpY2UsIFNwYXJlUGFydFNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLWl0ZW0uc2VydmljZSc7XG5leHBvcnQgeyBNYXRlcmlhbENvbnN1bWFibGVTZXJ2aWNlLCBNYXRlcmlhbENvbnN1bWFibGVDYXRlZ29yeVNlcnZpY2UsIE1hdGVyaWFsQ29uc3VtYWJsZUhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9tYXRlcmlhbC1jb25zdW1hYmxlLnNlcnZpY2UnO1xuZXhwb3J0IHsgTWF0ZXJpYWxJbnN0cnVtZW50U2VydmljZSwgTWF0ZXJpYWxJbnN0cnVtZW50SGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLWluc3RydW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBNYXRlcmlhbFRvb2xpbmdTZXJ2aWNlLCBNYXRlcmlhbFRvb2xpbmdDYXRlZ29yeVNlcnZpY2UsIE1hdGVyaWFsVG9vbGluZ0hpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9tYXRlcmlhbC10b29saW5nLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2Vuc29yU2VydmljZSB9IGZyb20gJy4vc2Vuc29yLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmV4cG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm9qZWN0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2FwZXhQcm9qZWN0U2VydmljZSB9IGZyb20gJy4vY2FwZXgtcHJvamVjdC5zZXJ2aWNlJztcbmV4cG9ydCB7IEJ1ZGdldFNlcnZpY2UgfSBmcm9tICcuL2J1ZGdldC5zZXJ2aWNlJztcbmV4cG9ydCB7IEJpZFNlcnZpY2UgfSBmcm9tICcuL2JpZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFRnRmlsZVNlcnZpY2UsIFRnRm9sZGVyU2VydmljZSwgRHJhd2luZ1NlcnZpY2UsIERyYXdpbmdDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcGxpYW5jZU9ibGlnYXRpb25TZXJ2aWNlLCBDb21wbGlhbmNlU3VibWlzc2lvblNlcnZpY2UsIEVudmlyb25tZW50YWxQZXJtaXRTZXJ2aWNlLCBDZXJ0aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vY29tcGxpYW5jZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFuY2lsbGFyeVNlcnZpY2VDcnVkU2VydmljZSwgR3JpZENvbm5lY3Rpb25TZXJ2aWNlLCBDdXJ0YWlsbWVudEV2ZW50U2VydmljZSwgT3V0YWdlRXZlbnRTZXJ2aWNlLCBPcGVyYXRpbmdFdmVudFNlcnZpY2UsIFNpdGVBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4vZW5lcmd5LnNlcnZpY2UnO1xuZXhwb3J0IHsgV2FycmFudHlDb250cmFjdFNlcnZpY2UsIFdhcnJhbnR5Q2xhaW1TZXJ2aWNlIH0gZnJvbSAnLi93YXJyYW50eS5zZXJ2aWNlJztcbmV4cG9ydCB7IFZlaGljbGVTZXJ2aWNlLCBEcml2ZXJTZXJ2aWNlLCBWZWhpY2xlVHJpcFNlcnZpY2UsIFZlaGljbGVJbnNwZWN0aW9uU2VydmljZSwgVmVoaWNsZU1haW50ZW5hbmNlU2VydmljZSwgRnVlbFJlY29yZFNlcnZpY2UsIEdlb2ZlbmNlU2VydmljZSwgR2VvZmVuY2VFdmVudFNlcnZpY2UsIEdwc0xvY2F0aW9uU2VydmljZSwgVHJhY2tlZEVudGl0eVNlcnZpY2UgfSBmcm9tICcuL2ZsZWV0LnNlcnZpY2UnO1xuZXhwb3J0IHsgU2xhQnJlYWNoUmVjb3JkU2VydmljZSB9IGZyb20gJy4vc2xhLnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVwb3J0aW5nU2VydmljZSB9IGZyb20gJy4vcmVwb3J0aW5nLnNlcnZpY2UnO1xuZXhwb3J0IHsgQnVsa09wZXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL2J1bGstb3BlcmF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgQXJ0aWNsZVNlcnZpY2UsIEFydGljbGVDYXRlZ29yeVNlcnZpY2UsIEFydGljbGVUb3BpY1NlcnZpY2UsXG4gIEJlc3RQcmFjdGljZVNlcnZpY2UsIEJlc3RQcmFjdGljZUNhdGVnb3J5U2VydmljZSxcbiAgRmFxU2VydmljZSwgRmFxQ2F0ZWdvcnlTZXJ2aWNlLFxuICBMZXNzb25MZWFybmVkU2VydmljZSxcbiAgUmVzb3VyY2VTZXJ2aWNlLCBSZXNvdXJjZUNhdGVnb3J5U2VydmljZSwgUmVzb3VyY2VUb3BpY1NlcnZpY2UsXG4gIE1vZHVsZVNlcnZpY2UsIE1vZHVsZUxlYXJuaW5nU2VydmljZSwgTW9kdWxlVmlkZW9TZXJ2aWNlLFxuICBMZWFybmluZ01vZHVsZUNhdGVnb3J5U2VydmljZSwgVXNlckxlYXJuaW5nU2VydmljZSxcbiAgVHJhaW5pbmdDZXJ0aWZpY2F0ZVNlcnZpY2UsXG59IGZyb20gJy4va25vd2xlZGdlLnNlcnZpY2UnO1xuZXhwb3J0IHsgUm9vdENhdXNlQW5hbHlzaXNTZXJ2aWNlLCBTeXN0ZW1pY1Jpc2tBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4vcXVhbGl0eS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFwcHJvdmFsV29ya2Zsb3dTZXJ2aWNlIGFzIFdvcmtmbG93U2VydmljZSB9IGZyb20gJy4vd29ya2Zsb3cuc2VydmljZSc7XG5leHBvcnQgeyBDdXN0b21GaWVsZERlZmluaXRpb25TZXJ2aWNlLCBDdXN0b21GaWVsZFNlcnZpY2UsIEN1c3RvbUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tZmllbGQuc2VydmljZSc7XG5leHBvcnQgeyBVc2VyU2VydmljZSwgVXNlclByb2ZpbGVTZXJ2aWNlLCBVc2VyTm90aWZpY2F0aW9uU2VydmljZSwgUm9sZVNlcnZpY2UsIFByb2ZpbGVTZXJ2aWNlLCBQcm9maWxlUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL3VzZXIuc2VydmljZSc7XG5leHBvcnQgeyBDb21tdW5pdHlQb3N0U2VydmljZSwgQ29tbXVuaXR5Q29tbWVudFNlcnZpY2UsIEZlZWRiYWNrU2VydmljZSB9IGZyb20gJy4vY29tbXVuaXR5LnNlcnZpY2UnO1xuZXhwb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IExvY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbG9jYXRpb24uc2VydmljZSc7XG5leHBvcnQgeyBEZXBhcnRtZW50U2VydmljZSB9IGZyb20gJy4vZGVwYXJ0bWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IFJvb21TZXJ2aWNlIH0gZnJvbSAnLi9yb29tLnNlcnZpY2UnO1xuZXhwb3J0IHsgVXBsb2FkU2VydmljZSB9IGZyb20gJy4vdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlTZXJ2aWNlIH0gZnJvbSAnLi9haS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFnZW50U2VydmljZSB9IGZyb20gJy4vYWdlbnQuc2VydmljZSc7XG5leHBvcnQgeyBTYW5kYm94U2VydmljZSB9IGZyb20gJy4vc2FuZGJveC5zZXJ2aWNlJztcbmV4cG9ydCB7IEV4dGVuc2lvblNlcnZpY2UgfSBmcm9tICcuL2V4dGVuc2lvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IERhc2hib2FyZFNlcnZpY2UgfSBmcm9tICcuL2Rhc2hib2FyZC5zZXJ2aWNlJztcbmV4cG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICcuL2V4cG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB7IFRvZG9TZXJ2aWNlIH0gZnJvbSAnLi90b2RvLnNlcnZpY2UnO1xuZXhwb3J0IHsgVGlja2V0U2VydmljZSB9IGZyb20gJy4vdGlja2V0LnNlcnZpY2UnO1xuZXhwb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tICcuL25vdGUuc2VydmljZSc7XG5leHBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9sb2cuc2VydmljZSc7XG5leHBvcnQgeyBMb2dpbkhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9sb2dpbi1oaXN0b3J5LnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgR2F0ZVN5c3RlbVNlcnZpY2UsIEFsZXJ0RGVmaW5pdGlvblNlcnZpY2UsIE1hbnVhbFJlYWRpbmdTZXJ2aWNlLFxuICBMYWJvcmF0b3J5UmVzdWx0U2VydmljZSwgRmlzaE1vbml0b3JpbmdTZXJ2aWNlLCBSZWd1bGF0b3J5VXBkYXRlU2VydmljZSxcbiAgT3BlcmF0aW9uYWxPYnNlcnZhdGlvblNlcnZpY2UsIEJhdGh5bWV0cmljU3VydmV5U2VydmljZSwgQUlTY2VuYXJpb1NlcnZpY2UsXG4gIFJlc2Vydm9pclRpbWVTZXJpZXNTZXJ2aWNlLCBHYXRlQ29udHJvbFNlcnZpY2UsXG4gIEVsZXZhdGlvblN0b3JhZ2VDdXJ2ZVNlcnZpY2UsIFNlZGltZW50UmVtb3ZhbE9wZXJhdGlvblNlcnZpY2UsIFNlZGltZW50TWFuYWdlbWVudFBsYW5TZXJ2aWNlLFxufSBmcm9tICcuL3Jlc2Vydm9pci5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIEpvYlRpdGxlU2VydmljZSwgQ291bnRyeVNlcnZpY2UsIFN1cHBsaWVyU2VydmljZSwgRm9udFNlcnZpY2UsXG4gIEZvcm1TZXJ2aWNlLCBGb3JtQ2F0ZWdvcnlTZXJ2aWNlLCBJbmNpZGVudFNlcnZpY2UsIE1lc3NhZ2VTZXJ2aWNlLFxuICBLcGlFdmVudFNlcnZpY2UsIFR1cmJpbmVUeXBlU2VydmljZSwgVGVybXNPZlVzZVNlcnZpY2UsXG4gIFVuaXRTaHV0ZG93bkhpc3RvcnlTZXJ2aWNlLCBQcm9wZXJ0eVNlcnZpY2UsIFByb3BlcnRpZXNHcm91cFNlcnZpY2UsXG4gIFByb3BlcnRpZXNUZW1wbGF0ZVNlcnZpY2UsIE1lYXN1cmVtZW50U2VydmljZSwgTWlIaXN0b3J5U2VydmljZSxcbiAgTWlSZXF1ZXN0U2VydmljZSwgUmVjaGFyZ2VSZXF1ZXN0U2VydmljZSwgUmVmdXJiaXNobWVudFNlcnZpY2UsXG4gIExvZ2luUmVxdWVzdFNlcnZpY2UsIE1haW50ZW5hbmNlSnNhU2VydmljZSwgSnNhSXRlbVNlcnZpY2UsXG4gIEpzYVN0ZXBTZXJ2aWNlLCBDb21wb25lbnRDaGVja2xpc3RTZXJ2aWNlLCBDb21wb25lbnRDaGVja2xpc3RHcm91cFNlcnZpY2UsXG4gIENvbXBvbmVudENoZWNrbGlzdFRlbXBsYXRlU2VydmljZSxcbn0gZnJvbSAnLi9taXNjLWNydWQuc2VydmljZSc7XG5leHBvcnQgeyBDbGllbnRBcnRpY2xlU2VydmljZSB9IGZyb20gJy4vY2xpZW50LWFydGljbGUuc2VydmljZSc7XG5leHBvcnQge1xuICBDb25kaXRpb25Bc3Nlc3NtZW50VGVzdFNlcnZpY2UsXG4gIENhdFBsYW5uaW5nRXF1aXBtZW50SXRlbVNlcnZpY2UsXG4gIENhdFBlcnNvbm5lbEFzc2lnbm1lbnRTZXJ2aWNlLFxuICBDYXRFeGVjdXRpb25SZXN1bHRTZXJ2aWNlLFxuICBDYXRTaWduT2ZmU2VydmljZSxcbiAgQ2F0QXR0YWNobWVudFNlcnZpY2UsXG59IGZyb20gJy4vY2F0LnNlcnZpY2UnO1xuZXhwb3J0IHsgTWFpbnRlbmFuY2VQbGFuU2VydmljZSB9IGZyb20gJy4vbWFpbnRlbmFuY2UtcGxhbi5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlY3VycmluZ0V2ZW50U2VydmljZSB9IGZyb20gJy4vcmVjdXJyaW5nLWV2ZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgVGltZUVudHJ5U2VydmljZSB9IGZyb20gJy4vdGltZS1lbnRyeS5zZXJ2aWNlJztcbmV4cG9ydCB7IFNsYVBvbGljeVNlcnZpY2UgfSBmcm9tICcuL3NsYS1wb2xpY3kuc2VydmljZSc7XG5leHBvcnQgeyBBc3NldExpZmVjeWNsZVNlcnZpY2UgfSBmcm9tICcuL2Fzc2V0LWxpZmVjeWNsZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEluYWN0aXZlQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4vaW5hY3RpdmUtY29tcG9uZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcG9uZW50TG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQtbG9jYXRpb24uc2VydmljZSc7XG5leHBvcnQgeyBDb21wb25lbnRJbmZvU2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LWluZm8uc2VydmljZSc7XG5leHBvcnQgeyBDb21wYW55TWF0ZXJpYWxUeXBlU2VydmljZSB9IGZyb20gJy4vY29tcGFueS1tYXRlcmlhbC10eXBlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcGFueU1hdGVyaWFsU2VydmljZSB9IGZyb20gJy4vY29tcGFueS1tYXRlcmlhbC5zZXJ2aWNlJztcbmV4cG9ydCB7IFdhcmVob3VzZVNlcnZpY2UsIFdhcmVob3VzZVN0b2NrU2VydmljZSB9IGZyb20gJy4vd2FyZWhvdXNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgUHVyY2hhc2VPcmRlclNlcnZpY2UsIEdvb2RzUmVjZWlwdFNlcnZpY2UsIFN0b2NrTW92ZW1lbnRTZXJ2aWNlLCBTdG9ja0NvdW50U2VydmljZSB9IGZyb20gJy4vcHJvY3VyZW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBMaWNlbnNlU2VydmljZSB9IGZyb20gJy4vbGljZW5zZS5zZXJ2aWNlJztcbmV4cG9ydCB7IFdvcmtQZXJtaXRTZXJ2aWNlIH0gZnJvbSAnLi93b3JrLXBlcm1pdC5zZXJ2aWNlJztcbmV4cG9ydCB7IERpYWdub3N0aWNSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9kaWFnbm9zdGljLXJlcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1c3RvbVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS5zZXJ2aWNlJztcbmV4cG9ydCB7IERpZ2l0YWxUd2luU2VydmljZSwgTW9kZWxTZXJ2aWNlLCBNb2RlbEZpbGVTZXJ2aWNlLCBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vZGlnaXRhbC10d2luLnNlcnZpY2UnO1xuZXhwb3J0IHsgRHluYW1pY0NydWRTZXJ2aWNlIH0gZnJvbSAnLi9keW5hbWljLWNydWQuc2VydmljZSc7XG5leHBvcnQgeyBVcGxvYWRXaXRoUmVmT3B0aW9ucyB9IGZyb20gJy4vdXBsb2FkLnNlcnZpY2UnO1xuZXhwb3J0IHsgV29ya09yZGVyU2VydmljZSB9IGZyb20gJy4vd29yay1vcmRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFBsYW50RGF0YVNlcnZpY2UgfSBmcm9tICcuL3BsYW50LWRhdGEuc2VydmljZSc7XG5leHBvcnQgeyBSZXNlcnZvaXJEYXRhU2VydmljZSB9IGZyb20gJy4vcmVzZXJ2b2lyLWRhdGEuc2VydmljZSc7XG5leHBvcnQgeyBBaUZlZWRiYWNrU2VydmljZSB9IGZyb20gJy4vYWktZmVlZGJhY2suc2VydmljZSc7XG5leHBvcnQgeyBEZXZpY2VHYXRld2F5U2VydmljZSB9IGZyb20gJy4vZGV2aWNlLWdhdGV3YXkuc2VydmljZSc7XG5leHBvcnQgeyBPdXRhZ2VSZXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL291dGFnZS1yZXNvdXJjZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEVuZXJneVByb2R1Y3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9lbmVyZ3ktcHJvZHVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IEVuZXJneUFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuL2VuZXJneS1hbmFseXRpY3Muc2VydmljZSc7XG5leHBvcnQgeyBNZWFzdXJlbWVudFVuaXRTZXJ2aWNlIH0gZnJvbSAnLi9tZWFzdXJlbWVudC11bml0LnNlcnZpY2UnO1xuZXhwb3J0IHsgUHJvcGVydHlUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3Byb3BlcnR5LXRlbXBsYXRlLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgQWlwU2V0dGluZ3NTZXJ2aWNlLCBBaXBBc3Nlc3NtZW50U2VydmljZSwgSW52ZXN0bWVudE9wdGlvblNlcnZpY2UsXG4gIEFpcFBsYW5TZXJ2aWNlLCBBaXBTY2VuYXJpb1NlcnZpY2UsIEFpcEFuYWx5c2lzU2VydmljZSxcbiAgQWlwUmVzb3VyY2VDb25zdHJhaW50U2VydmljZSwgQWlwTmV0d29ya05vZGVTZXJ2aWNlLCBBaXBQZXJmb3JtYW5jZVJlY29yZFNlcnZpY2UsXG59IGZyb20gJy4vYWlwLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgRGVmZXJyYWxFdmFsdWF0aW9uU2VydmljZSwgRGVmZXJyYWxDb25zdHJhaW50UnVsZVNlcnZpY2UsIERlZmVycmFsRGVjaXNpb25TZXJ2aWNlLFxufSBmcm9tICcuL2RlZmVycmFsLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29ydGV4U2VydmljZSB9IGZyb20gJy4vY29ydGV4LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29ydGV4Tm9kZVNlcnZpY2UgfSBmcm9tICcuL2NvcnRleC1ub2RlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29ydGV4RXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXgtZXZlbnQuc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhJbnNpZ2h0U2VydmljZSB9IGZyb20gJy4vY29ydGV4LWluc2lnaHQuc2VydmljZSc7XG5leHBvcnQgeyBBaXBSaXNrQW5hbHlzaXNTZXJ2aWNlIH0gZnJvbSAnLi9haXAtYW5hbHlzaXMuc2VydmljZSc7XG5leHBvcnQgeyBBaXBGaW5hbmNpYWxTZXJ2aWNlIH0gZnJvbSAnLi9haXAtZmluYW5jaWFsLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi9haXAtd29ya2Zsb3cuc2VydmljZSc7XG5leHBvcnQgeyBBaXBSZXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL2FpcC1yZXNvdXJjZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcE5ldHdvcmtBbmFseXNpc1NlcnZpY2UgfSBmcm9tICcuL2FpcC1uZXR3b3JrLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwR2VvZ3JhcGhpY1NlcnZpY2UgfSBmcm9tICcuL2FpcC1nZW9ncmFwaGljLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwUGVyZm9ybWFuY2VTZXJ2aWNlIH0gZnJvbSAnLi9haXAtcGVyZm9ybWFuY2Uuc2VydmljZSc7XG5leHBvcnQgeyBBbm9tYWx5RGV0ZWN0aW9uU2VydmljZSB9IGZyb20gJy4vYW5vbWFseS1kZXRlY3Rpb24uc2VydmljZSc7XG5leHBvcnQgeyBTY2hlZHVsZWRSZXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9zY2hlZHVsZWQtcmVwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHsgRW50aXR5Q29tbWVudFNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1jb21tZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgQXVkaXRFbnRyeVNlcnZpY2UgfSBmcm9tICcuL2F1ZGl0LWVudHJ5LnNlcnZpY2UnO1xuZXhwb3J0IHsgVGhyZXNob2xkQWxlcnRSdWxlU2VydmljZSB9IGZyb20gJy4vdGhyZXNob2xkLWFsZXJ0LXJ1bGUuc2VydmljZSc7XG5leHBvcnQgeyBDbXNDb250ZW50VHlwZVNlcnZpY2UsIENtc0RhdGFTZXJ2aWNlIH0gZnJvbSAnLi9jbXMuc2VydmljZSc7XG5leHBvcnQgeyBDbXNNZW51SGVscGVyLCBDbXNNZW51SXRlbSwgQ21zTWVudVNlY3Rpb24gfSBmcm9tICcuL2Ntcy1tZW51LmhlbHBlcic7XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  export { AuthService } from './auth.service';
2
2
  export { SsoAuthService } from './sso-auth.service';
3
3
  export { TotpService } from './totp.service';
4
+ export { WebAuthnService } from './webauthn.service';
4
5
  export { PlatformAuthService } from './platform-auth.service';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNzb0F1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zc28tYXV0aC5zZXJ2aWNlJztcbmV4cG9ydCB7IFRvdHBTZXJ2aWNlIH0gZnJvbSAnLi90b3RwLnNlcnZpY2UnO1xuZXhwb3J0IHsgUGxhdGZvcm1BdXRoU2VydmljZSB9IGZyb20gJy4vcGxhdGZvcm0tYXV0aC5zZXJ2aWNlJztcbiJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2F1dGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5leHBvcnQgeyBTc29BdXRoU2VydmljZSB9IGZyb20gJy4vc3NvLWF1dGguc2VydmljZSc7XG5leHBvcnQgeyBUb3RwU2VydmljZSB9IGZyb20gJy4vdG90cC5zZXJ2aWNlJztcbmV4cG9ydCB7IFdlYkF1dGhuU2VydmljZSB9IGZyb20gJy4vd2ViYXV0aG4uc2VydmljZSc7XG5leHBvcnQgeyBQbGF0Zm9ybUF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9wbGF0Zm9ybS1hdXRoLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,63 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { firstValueFrom } from 'rxjs';
3
+ import { create, get, supported } from '@github/webauthn-json';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../core/http-client.service";
6
+ /**
7
+ * WebAuthn / passkeys / security keys.
8
+ *
9
+ * Registration & key management require an authenticated session; passkey login is public.
10
+ * Uses @github/webauthn-json (the matching browser library for the backend's Yubico server).
11
+ */
12
+ export class WebAuthnService {
13
+ http;
14
+ base = '/auth/webauthn';
15
+ constructor(http) {
16
+ this.http = http;
17
+ }
18
+ /** True if this browser supports WebAuthn. */
19
+ isSupported() {
20
+ return supported();
21
+ }
22
+ /** Register a new passkey / security key for the current (logged-in) user. */
23
+ async registerKey(deviceName) {
24
+ const start = await firstValueFrom(this.http.post(`${this.base}/register/start`, {}));
25
+ const credential = await create(start.data.options);
26
+ await firstValueFrom(this.http.post(`${this.base}/register/finish`, {
27
+ flowId: start.data.flowId,
28
+ credential,
29
+ deviceName,
30
+ }));
31
+ }
32
+ /**
33
+ * Log in with a passkey. Pass a username for username-first flows, or omit it for a
34
+ * usernameless (discoverable credential) login. Stores the JWT on success.
35
+ */
36
+ async loginWithPasskey(username) {
37
+ const start = await firstValueFrom(this.http.post(`${this.base}/login/start`, { username }, { skipAuth: true }));
38
+ const credential = await get(start.data.options);
39
+ const res = await firstValueFrom(this.http.post(`${this.base}/login/finish`, { flowId: start.data.flowId, credential }, { skipAuth: true }));
40
+ if (res?.jwt) {
41
+ this.http.setToken(res.jwt);
42
+ const refresh = res.refreshToken;
43
+ if (refresh)
44
+ this.http.setRefreshToken(refresh);
45
+ }
46
+ return res;
47
+ }
48
+ /** List the current user's registered keys. */
49
+ listKeys() {
50
+ return this.http.get(`${this.base}/credentials`);
51
+ }
52
+ /** Remove a registered key. */
53
+ deleteKey(id) {
54
+ return this.http.delete(`${this.base}/credentials/${id}`);
55
+ }
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
57
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, providedIn: 'root' });
58
+ }
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, decorators: [{
60
+ type: Injectable,
61
+ args: [{ providedIn: 'root' }]
62
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvYXV0aC93ZWJhdXRobi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBVy9EOzs7OztHQUtHO0FBRUgsTUFBTSxPQUFPLGVBQWU7SUFHTjtJQUZaLElBQUksR0FBRyxnQkFBZ0IsQ0FBQztJQUVoQyxZQUFvQixJQUFtQjtRQUFuQixTQUFJLEdBQUosSUFBSSxDQUFlO0lBQUcsQ0FBQztJQUUzQyw4Q0FBOEM7SUFDOUMsV0FBVztRQUNULE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELDhFQUE4RTtJQUM5RSxLQUFLLENBQUMsV0FBVyxDQUFDLFVBQW1CO1FBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sY0FBYyxDQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBNkIsR0FBRyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FDOUUsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsTUFBTSxjQUFjLENBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFvQixHQUFHLElBQUksQ0FBQyxJQUFJLGtCQUFrQixFQUFFO1lBQ2hFLE1BQU0sRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDekIsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsUUFBaUI7UUFDdEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFjLENBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLEdBQUcsSUFBSSxDQUFDLElBQUksY0FBYyxFQUMxQixFQUFFLFFBQVEsRUFBRSxFQUNaLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNuQixDQUNGLENBQUM7UUFDRixNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELE1BQU0sR0FBRyxHQUFHLE1BQU0sY0FBYyxDQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixHQUFHLElBQUksQ0FBQyxJQUFJLGVBQWUsRUFDM0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQ3pDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUNuQixDQUNGLENBQUM7UUFDRixJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QixNQUFNLE9BQU8sR0FBSSxHQUFXLENBQUMsWUFBWSxDQUFDO1lBQzFDLElBQUksT0FBTztnQkFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsK0NBQStDO0lBQy9DLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF3QyxHQUFHLElBQUksQ0FBQyxJQUFJLGNBQWMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsU0FBUyxDQUFDLEVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO3dHQTdEVSxlQUFlOzRHQUFmLGVBQWUsY0FERixNQUFNOzs0RkFDbkIsZUFBZTtrQkFEM0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3JlYXRlLCBnZXQsIHN1cHBvcnRlZCB9IGZyb20gJ0BnaXRodWIvd2ViYXV0aG4tanNvbic7XG5pbXBvcnQgeyBUZ21IdHRwQ2xpZW50IH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UubW9kZWxzJztcbmltcG9ydCB7IEF1dGhSZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRoL2xvZ2luLm1vZGVscyc7XG5pbXBvcnQgeyBXZWJBdXRobkNyZWRlbnRpYWxWaWV3IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dGgvd2ViYXV0aG4ubW9kZWxzJztcblxuaW50ZXJmYWNlIENlcmVtb255U3RhcnQge1xuICBmbG93SWQ6IHN0cmluZztcbiAgb3B0aW9uczogYW55OyAvLyB7IHB1YmxpY0tleTogey4uLn0gfSBmcm9tIHRoZSBiYWNrZW5kIChZdWJpY28gdG9DcmVkZW50aWFscypKc29uKVxufVxuXG4vKipcbiAqIFdlYkF1dGhuIC8gcGFzc2tleXMgLyBzZWN1cml0eSBrZXlzLlxuICpcbiAqIFJlZ2lzdHJhdGlvbiAmIGtleSBtYW5hZ2VtZW50IHJlcXVpcmUgYW4gYXV0aGVudGljYXRlZCBzZXNzaW9uOyBwYXNza2V5IGxvZ2luIGlzIHB1YmxpYy5cbiAqIFVzZXMgQGdpdGh1Yi93ZWJhdXRobi1qc29uICh0aGUgbWF0Y2hpbmcgYnJvd3NlciBsaWJyYXJ5IGZvciB0aGUgYmFja2VuZCdzIFl1YmljbyBzZXJ2ZXIpLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFdlYkF1dGhuU2VydmljZSB7XG4gIHByaXZhdGUgYmFzZSA9ICcvYXV0aC93ZWJhdXRobic7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBUZ21IdHRwQ2xpZW50KSB7fVxuXG4gIC8qKiBUcnVlIGlmIHRoaXMgYnJvd3NlciBzdXBwb3J0cyBXZWJBdXRobi4gKi9cbiAgaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN1cHBvcnRlZCgpO1xuICB9XG5cbiAgLyoqIFJlZ2lzdGVyIGEgbmV3IHBhc3NrZXkgLyBzZWN1cml0eSBrZXkgZm9yIHRoZSBjdXJyZW50IChsb2dnZWQtaW4pIHVzZXIuICovXG4gIGFzeW5jIHJlZ2lzdGVyS2V5KGRldmljZU5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzdGFydCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8Q2VyZW1vbnlTdGFydD4+KGAke3RoaXMuYmFzZX0vcmVnaXN0ZXIvc3RhcnRgLCB7fSksXG4gICAgKTtcbiAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgY3JlYXRlKHN0YXJ0LmRhdGEub3B0aW9ucyk7XG4gICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTx2b2lkPj4oYCR7dGhpcy5iYXNlfS9yZWdpc3Rlci9maW5pc2hgLCB7XG4gICAgICAgIGZsb3dJZDogc3RhcnQuZGF0YS5mbG93SWQsXG4gICAgICAgIGNyZWRlbnRpYWwsXG4gICAgICAgIGRldmljZU5hbWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIExvZyBpbiB3aXRoIGEgcGFzc2tleS4gUGFzcyBhIHVzZXJuYW1lIGZvciB1c2VybmFtZS1maXJzdCBmbG93cywgb3Igb21pdCBpdCBmb3IgYVxuICAgKiB1c2VybmFtZWxlc3MgKGRpc2NvdmVyYWJsZSBjcmVkZW50aWFsKSBsb2dpbi4gU3RvcmVzIHRoZSBKV1Qgb24gc3VjY2Vzcy5cbiAgICovXG4gIGFzeW5jIGxvZ2luV2l0aFBhc3NrZXkodXNlcm5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPEF1dGhSZXNwb25zZT4ge1xuICAgIGNvbnN0IHN0YXJ0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxDZXJlbW9ueVN0YXJ0Pj4oXG4gICAgICAgIGAke3RoaXMuYmFzZX0vbG9naW4vc3RhcnRgLFxuICAgICAgICB7IHVzZXJuYW1lIH0sXG4gICAgICAgIHsgc2tpcEF1dGg6IHRydWUgfSxcbiAgICAgICksXG4gICAgKTtcbiAgICBjb25zdCBjcmVkZW50aWFsID0gYXdhaXQgZ2V0KHN0YXJ0LmRhdGEub3B0aW9ucyk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucG9zdDxBdXRoUmVzcG9uc2U+KFxuICAgICAgICBgJHt0aGlzLmJhc2V9L2xvZ2luL2ZpbmlzaGAsXG4gICAgICAgIHsgZmxvd0lkOiBzdGFydC5kYXRhLmZsb3dJZCwgY3JlZGVudGlhbCB9LFxuICAgICAgICB7IHNraXBBdXRoOiB0cnVlIH0sXG4gICAgICApLFxuICAgICk7XG4gICAgaWYgKHJlcz8uand0KSB7XG4gICAgICB0aGlzLmh0dHAuc2V0VG9rZW4ocmVzLmp3dCk7XG4gICAgICBjb25zdCByZWZyZXNoID0gKHJlcyBhcyBhbnkpLnJlZnJlc2hUb2tlbjtcbiAgICAgIGlmIChyZWZyZXNoKSB0aGlzLmh0dHAuc2V0UmVmcmVzaFRva2VuKHJlZnJlc2gpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqIExpc3QgdGhlIGN1cnJlbnQgdXNlcidzIHJlZ2lzdGVyZWQga2V5cy4gKi9cbiAgbGlzdEtleXMoKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxXZWJBdXRobkNyZWRlbnRpYWxWaWV3W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8V2ViQXV0aG5DcmVkZW50aWFsVmlld1tdPj4oYCR7dGhpcy5iYXNlfS9jcmVkZW50aWFsc2ApO1xuICB9XG5cbiAgLyoqIFJlbW92ZSBhIHJlZ2lzdGVyZWQga2V5LiAqL1xuICBkZWxldGVLZXkoaWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8dm9pZD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxBcGlSZXNwb25zZTx2b2lkPj4oYCR7dGhpcy5iYXNlfS9jcmVkZW50aWFscy8ke2lkfWApO1xuICB9XG59XG4iXX0=
@@ -2,9 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, Injectable, Inject, Optional, NgModule, inject, ViewChild, Input, Component, EventEmitter, Output, HostListener } from '@angular/core';
3
3
  import * as i1 from '@angular/common/http';
4
4
  import { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
5
- import { BehaviorSubject, Subject, catchError, throwError, take, switchMap, takeUntil, share, tap, shareReplay, map } from 'rxjs';
5
+ import { BehaviorSubject, Subject, catchError, throwError, take, switchMap, takeUntil, share, tap, firstValueFrom, shareReplay, map } from 'rxjs';
6
6
  import { Client } from '@stomp/stompjs';
7
7
  import * as SockJSModule from 'sockjs-client';
8
+ import { supported, create, get } from '@github/webauthn-json';
8
9
  import * as i2 from '@angular/common';
9
10
  import { CommonModule } from '@angular/common';
10
11
  import { ConnectionState, Room, RoomEvent, Track } from 'livekit-client';
@@ -1133,6 +1134,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
1133
1134
  args: [{ providedIn: 'root' }]
1134
1135
  }], ctorParameters: () => [{ type: TgmHttpClient }] });
1135
1136
 
1137
+ /**
1138
+ * WebAuthn / passkeys / security keys.
1139
+ *
1140
+ * Registration & key management require an authenticated session; passkey login is public.
1141
+ * Uses @github/webauthn-json (the matching browser library for the backend's Yubico server).
1142
+ */
1143
+ class WebAuthnService {
1144
+ http;
1145
+ base = '/auth/webauthn';
1146
+ constructor(http) {
1147
+ this.http = http;
1148
+ }
1149
+ /** True if this browser supports WebAuthn. */
1150
+ isSupported() {
1151
+ return supported();
1152
+ }
1153
+ /** Register a new passkey / security key for the current (logged-in) user. */
1154
+ async registerKey(deviceName) {
1155
+ const start = await firstValueFrom(this.http.post(`${this.base}/register/start`, {}));
1156
+ const credential = await create(start.data.options);
1157
+ await firstValueFrom(this.http.post(`${this.base}/register/finish`, {
1158
+ flowId: start.data.flowId,
1159
+ credential,
1160
+ deviceName,
1161
+ }));
1162
+ }
1163
+ /**
1164
+ * Log in with a passkey. Pass a username for username-first flows, or omit it for a
1165
+ * usernameless (discoverable credential) login. Stores the JWT on success.
1166
+ */
1167
+ async loginWithPasskey(username) {
1168
+ const start = await firstValueFrom(this.http.post(`${this.base}/login/start`, { username }, { skipAuth: true }));
1169
+ const credential = await get(start.data.options);
1170
+ const res = await firstValueFrom(this.http.post(`${this.base}/login/finish`, { flowId: start.data.flowId, credential }, { skipAuth: true }));
1171
+ if (res?.jwt) {
1172
+ this.http.setToken(res.jwt);
1173
+ const refresh = res.refreshToken;
1174
+ if (refresh)
1175
+ this.http.setRefreshToken(refresh);
1176
+ }
1177
+ return res;
1178
+ }
1179
+ /** List the current user's registered keys. */
1180
+ listKeys() {
1181
+ return this.http.get(`${this.base}/credentials`);
1182
+ }
1183
+ /** Remove a registered key. */
1184
+ deleteKey(id) {
1185
+ return this.http.delete(`${this.base}/credentials/${id}`);
1186
+ }
1187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, deps: [{ token: TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1188
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, providedIn: 'root' });
1189
+ }
1190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebAuthnService, decorators: [{
1191
+ type: Injectable,
1192
+ args: [{ providedIn: 'root' }]
1193
+ }], ctorParameters: () => [{ type: TgmHttpClient }] });
1194
+
1136
1195
  class PlatformAuthService {
1137
1196
  http;
1138
1197
  currentAdmin$ = new BehaviorSubject(null);
@@ -2485,6 +2544,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
2485
2544
  type: Injectable
2486
2545
  }], ctorParameters: () => [{ type: TgmHttpClient }] });
2487
2546
 
2547
+ /**
2548
+ * AI usage & cost attribution for the current tenant.
2549
+ * Backend: AiUsageController (admin-only).
2550
+ */
2551
+ class AiUsageService {
2552
+ http;
2553
+ basePath = '/api/ai/usage';
2554
+ constructor(http) {
2555
+ this.http = http;
2556
+ }
2557
+ /**
2558
+ * Usage summary (calls, tokens, cost) broken down by feature / provider / model.
2559
+ * @param from optional ISO date (yyyy-MM-dd), defaults server-side to 30 days ago
2560
+ * @param to optional ISO date (yyyy-MM-dd), defaults server-side to today
2561
+ */
2562
+ getSummary(from, to) {
2563
+ const params = {};
2564
+ if (from)
2565
+ params['from'] = from;
2566
+ if (to)
2567
+ params['to'] = to;
2568
+ return this.http.get(`${this.basePath}/summary`, {
2569
+ params: Object.keys(params).length ? params : undefined,
2570
+ });
2571
+ }
2572
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, deps: [{ token: TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
2573
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, providedIn: 'root' });
2574
+ }
2575
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AiUsageService, decorators: [{
2576
+ type: Injectable,
2577
+ args: [{ providedIn: 'root' }]
2578
+ }], ctorParameters: () => [{ type: TgmHttpClient }] });
2579
+
2488
2580
  class CompanyService extends BaseCrudService {
2489
2581
  resourcePath = '/api/companies';
2490
2582
  constructor(http) {
@@ -11376,5 +11468,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
11376
11468
  * Generated bundle index. Do not edit.
11377
11469
  */
11378
11470
 
11379
- export { AIScenarioService, AIScenarioType, ActivePermitHolder, ActivityLogService, AgentService, AiFeedbackService, AiProvider, AiService, AipAnalysisService, AipAssessmentService, AipFinancialService, AipGeographicService, AipNetworkAnalysisService, AipNetworkNodeService, AipPerformanceRecordService, AipPerformanceService, AipPlanService, AipResourceConstraintService, AipResourceService, AipRiskAnalysisService, AipScenarioService, AipSettingsService, AipWorkflowService, AlertDefinitionService, AlertService, AlertSeverity, AlertStatus, AncillaryServiceCrudService, AncillaryServiceStatus, AncillaryServiceType, AnnouncementService, AnnouncementType, AnomalyDetectionService, ApiTokenStatus, AppLanguage, ApprovalStatus, ArticleAdminService, ArticleCategoryService, ArticleService, ArticleTopicService, AssetLifecycleService, AssetLifecycleStage, AssetLifecycleStatus, AssetPhase, AuditEntryService, AuditLogService, AuthInterceptor, AuthService, BackupService, BackupStatus, BaseCrudService, BathymetricSurveyService, BestPracticeCategoryService, BestPracticeService, BidService, BudgetService, BulkOperationService, CAPAStatus, CAPAType, CacheAdminService, CalendarPlanning, CapexProjectService, CatAttachmentCategory, CatAttachmentPhase, CatAttachmentService, CatComponentType, CatDoneBy, CatEquipmentOwner, CatExecutionResultService, CatMachineCondition, CatOutageType, CatPersonnelAssignmentService, CatPlanningEquipmentItemService, CatRecommendedAction, CatSignOffRole, CatSignOffService, CatStatus, CatTestResult, CatTestTrigger, CatTrendVsPrevious, CatTypeOfTest, CatWhereDone, CertificationService, ChatMessageType, ChatRestService, ChatWebSocketService, ChecklistPeriodicity, ChecklistRunningMode, ClientAdminService, ClientApiKeyService, ClientArticleService, ClientInterceptor, ClientOcrService, ClientStatus, ClientUsageService, CmsContentTypeService, CmsDataService, CmsMenuHelper, CommunityCommentService, CommunityPostService, CompanyMaterialService, CompanyMaterialTypeService, CompanyService, ComplianceObligationService, ComplianceSubmissionService, ComplianceSubmissionStatus, ComponentCategory, ComponentChecklistGroupService, ComponentChecklistService, ComponentChecklistTemplateService, ComponentGroupService, ComponentInfoCategory, ComponentInfoService, ComponentInfoStatus, ComponentInfoType, ComponentLocationService, ComponentService, ComponentType, ConditionAssessmentTestService, ConversationType, CorrectiveActionService, CortexEventService, CortexInsightService, CortexNodeService, CortexService, CostAllocation, CountryService, CurtailmentEventService, CurtailmentStatus, CurtailmentType, CustomFieldDefinitionService, CustomFieldService, CustomFieldType, CustomFormService, CustomService, DEFAULT_EXCLUDED_ENTITIES, DashboardService, DataExportService, DatabaseManagerComponent, DatabaseManagerModule, DeferralConstraintRuleService, DeferralDecisionService, DeferralEvaluationService, DepartmentService, DeploymentType, DepreciationMethod, DeviceGatewayService, DiagnosticReportService, DigitalTwinService, DocumentAdminService, DrawingCategoryService, DrawingService, DriverService, DriverStatus, DynamicCrudService, ENTITY_REGISTRY, ENTITY_SERVICE_MAP, ElevationStorageCurveService, EmailAdminService, EmailProviderAdminService, EmailProviderType, EnergyAnalyticsService, EnergyProductionService, EnergySourceType, EntityCommentService, EntitySchemaService, EnvironmentalPermitService, ErpAdminService, ErpAuthType, ErpType, EventNature, EventService, ExportButtonComponent, ExportService, ExtensionEventType, ExtensionService, ExtensionStatus, FailureActionService, FailureCauseService, FailureImpact, FailureLikelihood, FailureRiskLevel, FailureService, FaqCategoryService, FaqService, FeedbackService, FilterParams, FishMonitoringService, FishboneCategory, FontService, FormCategoryService, FormService, FuelRecordService, FuelType, GateControlService, GateControlType, GateSystemService, GateType, GeneratedReportListComponent, GeofenceEventService, GeofenceEventType, GeofenceService, GeofenceType, GoodsReceiptService, GpsLocationService, GridConnectionService, GridConnectionStatus, IdentityProviderAdminService, ImpersonationService, InMemoryTokenStorage, InactiveComponentService, IncidentCategory, IncidentService, IncidentType, IncomingCallComponent, InspectionComponentService, InspectionLevel, InspectionNature, InspectionService, InspectionType, InterventionRequestService, InterventionRequestStatus, InterventionService, InvestmentOptionService, JobTitleService, JsaItemService, JsaStepService, KpiEventService, LOTOBoxStatus, LOTOBoxType, LOTOLockRole, LOTOLockStatus, LOTOLockType, LOTOOverallStatus, LaboratoryResultService, LayoutType, LearningModuleCategoryService, LessonLearnedOrigin, LessonLearnedService, LessonLearnedStatus, LicenseService, LivekitRoomService, LocationService, LogService, LoginHistoryService, LoginRequestService, MODULE_LABELS, MaintenanceJsaService, MaintenancePlanService, MaintenanceRecordService, MaintenanceStatus, MaintenanceType, ManualReadingService, MaterialCategoryService, MaterialConsumableCategoryService, MaterialConsumableHistoryService, MaterialConsumableService, MaterialInstrumentHistoryService, MaterialInstrumentService, MaterialItemHistoryService, MaterialItemService, MaterialToolingCategoryService, MaterialToolingHistoryService, MaterialToolingService, MeasurementService, MeasurementUnitService, MeasurementUnitSystem, MessageChannel, MessageService, MessagingProviderAdminService, MessagingProviderType, MeteringParameterStatus, MeteringParameterSubType, MeteringParameterType, MiHistoryService, MiRequestService, MigrationStatus, ModelFileService, ModelService, ModuleLearningService, ModuleService, ModuleVideoService, MonitoringLocationType, MonitoringMethod, NoteService, ObjectBrowserComponent, ObligationFrequency, ObligationStatus, ObligationType, ObservationCategory, ObservationSeverity, OcrProcessingStatus, OperatingEventService, OperatingMode, OperationalObservationService, OutageEventService, OutageResourceService, OutageStatus, OutageType, PC2PermitSubType, ParticipantRole, Periodicity, PermissionService, PermitOrigin, PermitStatus, PermitType, PlantDataService, PlantSize, PlantStatus, PlatformAdminRole, PlatformAdminService, PlatformAuthService, PlatformNotificationService, PlatformWebhookService, PremiseType, PresenceStatus, PresetProvider, Priority, ProfilePermissionService, ProfileService, ProjectService, PropertiesGroupService, PropertiesTemplateService, PropertyService, PropertyTemplateService, ProviderType, ProvisioningStep, PurchaseOrderService, QueryEditorComponent, QueryExecutorService, QueryToolbarComponent, QueueAdminService, RCAMethodology, RCAStatus, RcaEventCause, RcaWorkOrderType, ReadingType, RealtimeEventService, ReasonForInspection, ReasonForIntervention, RechargeRequestService, RecordDetailComponent, RecurringEventService, RefurbishmentService, Region, RegulatoryUpdateService, RegulatoryUpdateType, ReportDefinitionFormComponent, ReportDefinitionListComponent, ReportGenerateDialogComponent, ReportStatsComponent, ReportTemplateListComponent, ReportingModule, ReportingService, ReservoirDataService, ReservoirTimeSeriesService, ReservoirWebSocketService, ResourceCategoryService, ResourceService, ResourceTopicService, ResultsGridComponent, RoleAdminService, RoleService, RoleType, RoomService, RootCauseAnalysisService, SampleType, SandboxAccessLevel, SandboxAdminService, SandboxService, SandboxStatus, ScheduledReportService, SchedulerAdminService, SearchService, SedimentManagementPlanService, SedimentRemovalOperationService, SensorService, SensorType, SiteAssessmentService, SlaBreachRecordService, SlaPolicyService, SparePartService, SsoAuthService, StockCountService, StockMovementService, SubAssemblyService, SubscriptionPlan, SubscriptionService, SubscriptionStatus, SupplierService, SurveyMethod, SyncDirection, SystemHealthService, SystemicRiskAssessmentService, TGM_SDK_CONFIG, TableDataViewerComponent, TableStructureComponent, TaskRunStatus, TermsOfUseService, TgFileService, TgFolderService, TgmApiError, TgmEntityType, TgmHttpClient, TgmSdkModule, ThresholdAlertRuleService, TicketPriority, TicketService, TicketStatus, TimeEntryService, TodoService, TotpService, TrackedEntityService, TrackedEntityType, TrackingStatus, TrainingCertificateService, TripStatus, TurbineTypeService, UnitService, UnitShutdownHistoryService, UnitStatus, UploadService, UserAdminService, UserLearningService, UserNotificationService, UserPermissionService, UserProfileService, UserService, VehicleInspectionService, VehicleInspectionType, VehicleMaintenanceService, VehicleMaintenanceType, VehicleService, VehicleStatus, VehicleTripService, VehicleType, VerificationStatus, VideoCallModule, VideoCallRestService, VideoCallSignalingService, VideoCallStateService, VideoCallStatus, VideoCallType, VideoCallWebSocketService, VideoControlsComponent, VideoParticipantComponent, VideoParticipantRole, VideoParticipantStatus, VideoRoomComponent, WarehouseService, WarehouseStockService, WarrantyClaimService, WarrantyClaimStatus, WarrantyContractService, WarrantyStatus, WarrantyType, WaterLevel, WebSocketService, WebhookAdminService, WorkOrderService, WorkOrderSourceType, WorkOrderStatus, WorkPermitCategory, WorkPermitService, WorkPermitStatus, ApprovalWorkflowService as WorkflowService, WorkflowStatus, WorkflowType, YesNo, isBulkSensorMessage, mapHttpError };
11471
+ export { AIScenarioService, AIScenarioType, ActivePermitHolder, ActivityLogService, AgentService, AiFeedbackService, AiProvider, AiService, AiUsageService, AipAnalysisService, AipAssessmentService, AipFinancialService, AipGeographicService, AipNetworkAnalysisService, AipNetworkNodeService, AipPerformanceRecordService, AipPerformanceService, AipPlanService, AipResourceConstraintService, AipResourceService, AipRiskAnalysisService, AipScenarioService, AipSettingsService, AipWorkflowService, AlertDefinitionService, AlertService, AlertSeverity, AlertStatus, AncillaryServiceCrudService, AncillaryServiceStatus, AncillaryServiceType, AnnouncementService, AnnouncementType, AnomalyDetectionService, ApiTokenStatus, AppLanguage, ApprovalStatus, ArticleAdminService, ArticleCategoryService, ArticleService, ArticleTopicService, AssetLifecycleService, AssetLifecycleStage, AssetLifecycleStatus, AssetPhase, AuditEntryService, AuditLogService, AuthInterceptor, AuthService, BackupService, BackupStatus, BaseCrudService, BathymetricSurveyService, BestPracticeCategoryService, BestPracticeService, BidService, BudgetService, BulkOperationService, CAPAStatus, CAPAType, CacheAdminService, CalendarPlanning, CapexProjectService, CatAttachmentCategory, CatAttachmentPhase, CatAttachmentService, CatComponentType, CatDoneBy, CatEquipmentOwner, CatExecutionResultService, CatMachineCondition, CatOutageType, CatPersonnelAssignmentService, CatPlanningEquipmentItemService, CatRecommendedAction, CatSignOffRole, CatSignOffService, CatStatus, CatTestResult, CatTestTrigger, CatTrendVsPrevious, CatTypeOfTest, CatWhereDone, CertificationService, ChatMessageType, ChatRestService, ChatWebSocketService, ChecklistPeriodicity, ChecklistRunningMode, ClientAdminService, ClientApiKeyService, ClientArticleService, ClientInterceptor, ClientOcrService, ClientStatus, ClientUsageService, CmsContentTypeService, CmsDataService, CmsMenuHelper, CommunityCommentService, CommunityPostService, CompanyMaterialService, CompanyMaterialTypeService, CompanyService, ComplianceObligationService, ComplianceSubmissionService, ComplianceSubmissionStatus, ComponentCategory, ComponentChecklistGroupService, ComponentChecklistService, ComponentChecklistTemplateService, ComponentGroupService, ComponentInfoCategory, ComponentInfoService, ComponentInfoStatus, ComponentInfoType, ComponentLocationService, ComponentService, ComponentType, ConditionAssessmentTestService, ConversationType, CorrectiveActionService, CortexEventService, CortexInsightService, CortexNodeService, CortexService, CostAllocation, CountryService, CurtailmentEventService, CurtailmentStatus, CurtailmentType, CustomFieldDefinitionService, CustomFieldService, CustomFieldType, CustomFormService, CustomService, DEFAULT_EXCLUDED_ENTITIES, DashboardService, DataExportService, DatabaseManagerComponent, DatabaseManagerModule, DeferralConstraintRuleService, DeferralDecisionService, DeferralEvaluationService, DepartmentService, DeploymentType, DepreciationMethod, DeviceGatewayService, DiagnosticReportService, DigitalTwinService, DocumentAdminService, DrawingCategoryService, DrawingService, DriverService, DriverStatus, DynamicCrudService, ENTITY_REGISTRY, ENTITY_SERVICE_MAP, ElevationStorageCurveService, EmailAdminService, EmailProviderAdminService, EmailProviderType, EnergyAnalyticsService, EnergyProductionService, EnergySourceType, EntityCommentService, EntitySchemaService, EnvironmentalPermitService, ErpAdminService, ErpAuthType, ErpType, EventNature, EventService, ExportButtonComponent, ExportService, ExtensionEventType, ExtensionService, ExtensionStatus, FailureActionService, FailureCauseService, FailureImpact, FailureLikelihood, FailureRiskLevel, FailureService, FaqCategoryService, FaqService, FeedbackService, FilterParams, FishMonitoringService, FishboneCategory, FontService, FormCategoryService, FormService, FuelRecordService, FuelType, GateControlService, GateControlType, GateSystemService, GateType, GeneratedReportListComponent, GeofenceEventService, GeofenceEventType, GeofenceService, GeofenceType, GoodsReceiptService, GpsLocationService, GridConnectionService, GridConnectionStatus, IdentityProviderAdminService, ImpersonationService, InMemoryTokenStorage, InactiveComponentService, IncidentCategory, IncidentService, IncidentType, IncomingCallComponent, InspectionComponentService, InspectionLevel, InspectionNature, InspectionService, InspectionType, InterventionRequestService, InterventionRequestStatus, InterventionService, InvestmentOptionService, JobTitleService, JsaItemService, JsaStepService, KpiEventService, LOTOBoxStatus, LOTOBoxType, LOTOLockRole, LOTOLockStatus, LOTOLockType, LOTOOverallStatus, LaboratoryResultService, LayoutType, LearningModuleCategoryService, LessonLearnedOrigin, LessonLearnedService, LessonLearnedStatus, LicenseService, LivekitRoomService, LocationService, LogService, LoginHistoryService, LoginRequestService, MODULE_LABELS, MaintenanceJsaService, MaintenancePlanService, MaintenanceRecordService, MaintenanceStatus, MaintenanceType, ManualReadingService, MaterialCategoryService, MaterialConsumableCategoryService, MaterialConsumableHistoryService, MaterialConsumableService, MaterialInstrumentHistoryService, MaterialInstrumentService, MaterialItemHistoryService, MaterialItemService, MaterialToolingCategoryService, MaterialToolingHistoryService, MaterialToolingService, MeasurementService, MeasurementUnitService, MeasurementUnitSystem, MessageChannel, MessageService, MessagingProviderAdminService, MessagingProviderType, MeteringParameterStatus, MeteringParameterSubType, MeteringParameterType, MiHistoryService, MiRequestService, MigrationStatus, ModelFileService, ModelService, ModuleLearningService, ModuleService, ModuleVideoService, MonitoringLocationType, MonitoringMethod, NoteService, ObjectBrowserComponent, ObligationFrequency, ObligationStatus, ObligationType, ObservationCategory, ObservationSeverity, OcrProcessingStatus, OperatingEventService, OperatingMode, OperationalObservationService, OutageEventService, OutageResourceService, OutageStatus, OutageType, PC2PermitSubType, ParticipantRole, Periodicity, PermissionService, PermitOrigin, PermitStatus, PermitType, PlantDataService, PlantSize, PlantStatus, PlatformAdminRole, PlatformAdminService, PlatformAuthService, PlatformNotificationService, PlatformWebhookService, PremiseType, PresenceStatus, PresetProvider, Priority, ProfilePermissionService, ProfileService, ProjectService, PropertiesGroupService, PropertiesTemplateService, PropertyService, PropertyTemplateService, ProviderType, ProvisioningStep, PurchaseOrderService, QueryEditorComponent, QueryExecutorService, QueryToolbarComponent, QueueAdminService, RCAMethodology, RCAStatus, RcaEventCause, RcaWorkOrderType, ReadingType, RealtimeEventService, ReasonForInspection, ReasonForIntervention, RechargeRequestService, RecordDetailComponent, RecurringEventService, RefurbishmentService, Region, RegulatoryUpdateService, RegulatoryUpdateType, ReportDefinitionFormComponent, ReportDefinitionListComponent, ReportGenerateDialogComponent, ReportStatsComponent, ReportTemplateListComponent, ReportingModule, ReportingService, ReservoirDataService, ReservoirTimeSeriesService, ReservoirWebSocketService, ResourceCategoryService, ResourceService, ResourceTopicService, ResultsGridComponent, RoleAdminService, RoleService, RoleType, RoomService, RootCauseAnalysisService, SampleType, SandboxAccessLevel, SandboxAdminService, SandboxService, SandboxStatus, ScheduledReportService, SchedulerAdminService, SearchService, SedimentManagementPlanService, SedimentRemovalOperationService, SensorService, SensorType, SiteAssessmentService, SlaBreachRecordService, SlaPolicyService, SparePartService, SsoAuthService, StockCountService, StockMovementService, SubAssemblyService, SubscriptionPlan, SubscriptionService, SubscriptionStatus, SupplierService, SurveyMethod, SyncDirection, SystemHealthService, SystemicRiskAssessmentService, TGM_SDK_CONFIG, TableDataViewerComponent, TableStructureComponent, TaskRunStatus, TermsOfUseService, TgFileService, TgFolderService, TgmApiError, TgmEntityType, TgmHttpClient, TgmSdkModule, ThresholdAlertRuleService, TicketPriority, TicketService, TicketStatus, TimeEntryService, TodoService, TotpService, TrackedEntityService, TrackedEntityType, TrackingStatus, TrainingCertificateService, TripStatus, TurbineTypeService, UnitService, UnitShutdownHistoryService, UnitStatus, UploadService, UserAdminService, UserLearningService, UserNotificationService, UserPermissionService, UserProfileService, UserService, VehicleInspectionService, VehicleInspectionType, VehicleMaintenanceService, VehicleMaintenanceType, VehicleService, VehicleStatus, VehicleTripService, VehicleType, VerificationStatus, VideoCallModule, VideoCallRestService, VideoCallSignalingService, VideoCallStateService, VideoCallStatus, VideoCallType, VideoCallWebSocketService, VideoControlsComponent, VideoParticipantComponent, VideoParticipantRole, VideoParticipantStatus, VideoRoomComponent, WarehouseService, WarehouseStockService, WarrantyClaimService, WarrantyClaimStatus, WarrantyContractService, WarrantyStatus, WarrantyType, WaterLevel, WebAuthnService, WebSocketService, WebhookAdminService, WorkOrderService, WorkOrderSourceType, WorkOrderStatus, WorkPermitCategory, WorkPermitService, WorkPermitStatus, ApprovalWorkflowService as WorkflowService, WorkflowStatus, WorkflowType, YesNo, isBulkSensorMessage, mapHttpError };
11380
11472
  //# sourceMappingURL=en-solutions-tgm-client-sdk.mjs.map