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

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 (31) hide show
  1. package/esm2022/lib/models/api/ai-usage.models.mjs +6 -0
  2. package/esm2022/lib/models/api/grid.models.mjs +6 -0
  3. package/esm2022/lib/models/api/plugin.models.mjs +3 -0
  4. package/esm2022/lib/models/auth/index.mjs +2 -1
  5. package/esm2022/lib/models/auth/webauthn.models.mjs +2 -0
  6. package/esm2022/lib/models/index.mjs +3 -1
  7. package/esm2022/lib/services/api/ai-usage.service.mjs +36 -0
  8. package/esm2022/lib/services/api/asset-lifecycle.service.mjs +7 -4
  9. package/esm2022/lib/services/api/export.service.mjs +14 -1
  10. package/esm2022/lib/services/api/grid.service.mjs +80 -0
  11. package/esm2022/lib/services/api/index.mjs +4 -1
  12. package/esm2022/lib/services/api/plugin.service.mjs +49 -0
  13. package/esm2022/lib/services/auth/index.mjs +2 -1
  14. package/esm2022/lib/services/auth/webauthn.service.mjs +63 -0
  15. package/fesm2022/en-solutions-tgm-client-sdk.mjs +240 -5
  16. package/fesm2022/en-solutions-tgm-client-sdk.mjs.map +1 -1
  17. package/lib/models/api/ai-usage.models.d.ts +24 -0
  18. package/lib/models/api/grid.models.d.ts +55 -0
  19. package/lib/models/api/plugin.models.d.ts +20 -0
  20. package/lib/models/auth/index.d.ts +1 -0
  21. package/lib/models/auth/webauthn.models.d.ts +8 -0
  22. package/lib/models/index.d.ts +2 -0
  23. package/lib/services/api/ai-usage.service.d.ts +22 -0
  24. package/lib/services/api/asset-lifecycle.service.d.ts +2 -1
  25. package/lib/services/api/export.service.d.ts +4 -0
  26. package/lib/services/api/grid.service.d.ts +54 -0
  27. package/lib/services/api/index.d.ts +3 -0
  28. package/lib/services/api/plugin.service.d.ts +25 -0
  29. package/lib/services/auth/index.d.ts +1 -0
  30. package/lib/services/auth/webauthn.service.d.ts +32 -0
  31. package/package.json +5 -3
@@ -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
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Grid Management plugin models — distribution network nodes/links and live status.
3
+ * Mirrors the backend `ca.ensolutions.tgm.grid` entities and DTOs.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9hcGkvZ3JpZC5tb2RlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHcmlkIE1hbmFnZW1lbnQgcGx1Z2luIG1vZGVscyDigJQgZGlzdHJpYnV0aW9uIG5ldHdvcmsgbm9kZXMvbGlua3MgYW5kIGxpdmUgc3RhdHVzLlxuICogTWlycm9ycyB0aGUgYmFja2VuZCBgY2EuZW5zb2x1dGlvbnMudGdtLmdyaWRgIGVudGl0aWVzIGFuZCBEVE9zLlxuICovXG5cbmV4cG9ydCB0eXBlIEdyaWROb2RlVHlwZSA9XG4gIHwgJ1NVQlNUQVRJT04nXG4gIHwgJ0RJU1RSSUJVVElPTl9TVUJTVEFUSU9OJ1xuICB8ICdUUkFOU0ZPUk1FUidcbiAgfCAnRkVFREVSJ1xuICB8ICdMSU5FJ1xuICB8ICdTV0lUQ0gnXG4gIHwgJ1JJTkdfTUFJTl9VTklUJ1xuICB8ICdCVVNCQVInXG4gIHwgJ1BPTEUnXG4gIHwgJ01FVEVSJ1xuICB8ICdPVEhFUic7XG5cbmV4cG9ydCB0eXBlIEdyaWRMaW5rVHlwZSA9XG4gIHwgJ09WRVJIRUFEX0xJTkUnXG4gIHwgJ1VOREVSR1JPVU5EX0NBQkxFJ1xuICB8ICdUUkFOU0ZPUk1FUl9MSU5LJ1xuICB8ICdCVVNCQVJfTElOSydcbiAgfCAnT1RIRVInO1xuXG4vKiogTGl2ZSBhdmFpbGFiaWxpdHkgc3RhdGUgb2YgYSBncmlkIGVsZW1lbnQuICovXG5leHBvcnQgdHlwZSBPcGVyYXRpb25hbFN0YXRlID0gJ1VQJyB8ICdERUdSQURFRCcgfCAnRE9XTicgfCAnSU1QQUNURUQnIHwgJ1VOS05PV04nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWROb2RlIHtcbiAgaWQ/OiBudW1iZXI7XG4gIG5hbWU6IHN0cmluZztcbiAgbm9kZVR5cGU6IEdyaWROb2RlVHlwZTtcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxhdGl0dWRlPzogbnVtYmVyO1xuICBsb25naXR1ZGU/OiBudW1iZXI7XG4gIHZvbHRhZ2VMZXZlbEt2PzogbnVtYmVyO1xuICByYXRlZENhcGFjaXR5S3ZhPzogbnVtYmVyO1xuICBwYXJlbnROb2RlSWQ/OiBudW1iZXI7XG4gIG9wZXJhdGlvbmFsU3RhdGU/OiBPcGVyYXRpb25hbFN0YXRlO1xuICBzdGF0ZVNpbmNlPzogc3RyaW5nO1xuICBsYXN0VGVsZW1ldHJ5QXQ/OiBzdHJpbmc7XG4gIGNvbXBvbmVudElkPzogbnVtYmVyO1xuICBsb2NhdGlvbklkPzogbnVtYmVyO1xuICBkZXZpY2VHYXRld2F5SWQ/OiBudW1iZXI7XG4gIGFpcE5ldHdvcmtOb2RlSWQ/OiBudW1iZXI7XG4gIGN1c3RvbUZpZWxkcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGNyZWF0ZWRBdD86IHN0cmluZztcbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRMaW5rIHtcbiAgaWQ/OiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZyb21Ob2RlSWQ6IG51bWJlcjtcbiAgdG9Ob2RlSWQ6IG51bWJlcjtcbiAgbGlua1R5cGU/OiBHcmlkTGlua1R5cGU7XG4gIG9wZXJhdGlvbmFsU3RhdGU/OiBPcGVyYXRpb25hbFN0YXRlO1xuICBsZW5ndGhLbT86IG51bWJlcjtcbiAgdm9sdGFnZUxldmVsS3Y/OiBudW1iZXI7XG4gIGNyZWF0ZWRBdD86IHN0cmluZztcbiAgdXBkYXRlZEF0Pzogc3RyaW5nO1xufVxuXG4vKiogQSBub2RlJ3MgbGl2ZSBzdGF0dXMgYXMgcmV0dXJuZWQgYnkgR0VUIC9hcGkvZ3JpZC9zdGF0dXMgYW5kIHB1c2hlZCBvbiAvdG9waWMvZ3JpZC9zdGF0dXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEdyaWROb2RlU3RhdHVzIHtcbiAgaWQ6IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICBub2RlVHlwZTogR3JpZE5vZGVUeXBlO1xuICBsYXRpdHVkZT86IG51bWJlcjtcbiAgbG9uZ2l0dWRlPzogbnVtYmVyO1xuICB2b2x0YWdlTGV2ZWxLdj86IG51bWJlcjtcbiAgb3BlcmF0aW9uYWxTdGF0ZTogT3BlcmF0aW9uYWxTdGF0ZTtcbiAgcGFyZW50Tm9kZUlkPzogbnVtYmVyO1xuICBsYXN0VGVsZW1ldHJ5QXQ/OiBzdHJpbmc7XG4gIGFjdGl2ZUFsZXJ0U2V2ZXJpdHk/OiAnSU5GTycgfCAnV0FSTklORycgfCAnQ1JJVElDQUwnIHwgJ0VNRVJHRU5DWScgfCBudWxsO1xuICByZWFjaGFibGU6IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ /** Plugin framework models — installable per-tenant modules. */
2
+ export {};
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbW9kZWxzL2FwaS9wbHVnaW4ubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGdFQUFnRSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBQbHVnaW4gZnJhbWV3b3JrIG1vZGVscyDigJQgaW5zdGFsbGFibGUgcGVyLXRlbmFudCBtb2R1bGVzLiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblN0YXR1cyB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZXF1aXJlZExpY2Vuc2VGZWF0dXJlPzogc3RyaW5nIHwgbnVsbDtcbiAgbWVudU1vZHVsZUlkPzogc3RyaW5nIHwgbnVsbDtcbiAgaW5zdGFsbGVkOiBib29sZWFuO1xuICBzdGF0dXM6ICdJTlNUQUxMRUQnIHwgJ0RJU0FCTEVEJyB8ICdOT1RfSU5TVEFMTEVEJyB8IHN0cmluZztcbiAgaW5zdGFsbGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbGxlZFBsdWdpbiB7XG4gIGlkPzogbnVtYmVyO1xuICBwbHVnaW5JZDogc3RyaW5nO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xuICBzdGF0dXM6ICdJTlNUQUxMRUQnIHwgJ0RJU0FCTEVEJztcbiAgaW5zdGFsbGVkQXQ/OiBzdHJpbmc7XG4gIGluc3RhbGxlZEJ5Pzogc3RyaW5nO1xufVxuIl19
@@ -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=
@@ -40,4 +40,6 @@ export * from './api/cortex-insight.models';
40
40
  export * from './api/aip.models';
41
41
  export * from './api/reservoir-websocket.models';
42
42
  export * from './api/cms.models';
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoJztcbmV4cG9ydCAqIGZyb20gJy4vYWRtaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY29tcGFueS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvdW5pdC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY29tcG9uZW50Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9pbnNwZWN0aW9uLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9mYWlsdXJlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9pbnRlcnZlbnRpb24ubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21haW50ZW5hbmNlLXJlY29yZC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvbWF0ZXJpYWwubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3NlbnNvci5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvcHJvamVjdC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvZG9jdW1lbnQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvbXBsaWFuY2UubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2VuZXJneS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvd2FycmFudHkubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2ZsZWV0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9rbm93bGVkZ2UubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3F1YWxpdHkubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3dvcmtmbG93Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jdXN0b20tZmllbGQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3VzZXIubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21pc2MubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3Jlc2Vydm9pci5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jaGF0L2NoYXQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21lZGlhLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jYXQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21haW50ZW5hbmNlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3ZpZGVvL3ZpZGVvLWNhbGwubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhbHRpbWUvcmVhbHRpbWUtZXZlbnQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3dvcmstcGVybWl0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9sb3RvLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9kaWFnbm9zdGljLXJlcG9ydC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY29ydGV4LW5vZGUubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvcnRleC1lZGdlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jb3J0ZXgtZXZlbnQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvcnRleC1pbnNpZ2h0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9haXAubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3Jlc2Vydm9pci13ZWJzb2NrZXQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2Ntcy5tb2RlbHMnO1xuIl19
43
+ export * from './api/grid.models';
44
+ export * from './api/plugin.models';
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFFBQVEsQ0FBQztBQUN2QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aCc7XG5leHBvcnQgKiBmcm9tICcuL2FkbWluJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvbXBhbnkubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3VuaXQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvbXBvbmVudC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvaW5zcGVjdGlvbi5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvZmFpbHVyZS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvaW50ZXJ2ZW50aW9uLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9tYWludGVuYW5jZS1yZWNvcmQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL21hdGVyaWFsLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9zZW5zb3IubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3Byb2plY3QubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2RvY3VtZW50Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jb21wbGlhbmNlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9lbmVyZ3kubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3dhcnJhbnR5Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9mbGVldC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkva25vd2xlZGdlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9xdWFsaXR5Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS93b3JrZmxvdy5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY3VzdG9tLWZpZWxkLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS91c2VyLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9taXNjLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9yZXNlcnZvaXIubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY2hhdC9jaGF0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9tZWRpYS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY2F0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9tYWludGVuYW5jZS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi92aWRlby92aWRlby1jYWxsLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWx0aW1lL3JlYWx0aW1lLWV2ZW50Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS93b3JrLXBlcm1pdC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvbG90by5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvZGlhZ25vc3RpYy1yZXBvcnQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2NvcnRleC1ub2RlLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jb3J0ZXgtZWRnZS5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvY29ydGV4LWV2ZW50Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jb3J0ZXgtaW5zaWdodC5tb2RlbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9hcGkvYWlwLm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9yZXNlcnZvaXItd2Vic29ja2V0Lm1vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS9jbXMubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL2dyaWQubW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vYXBpL3BsdWdpbi5tb2RlbHMnO1xuIl19
@@ -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
@@ -19,7 +19,9 @@ export class AssetLifecycleService {
19
19
  return this.http.get(`${this.basePath}/component/${componentId}`);
20
20
  }
21
21
  update(lifecycleId, data) {
22
- return this.http.patch(`${this.basePath}/${lifecycleId}`, data);
22
+ // Use the standard CRUD endpoint — the custom PATCH /asset-lifecycle/:id returns 200 but does
23
+ // not persist. PUT /api/asset-lifecycles/:id saves correctly (matches getAll/createRecord).
24
+ return this.http.put(`/api/asset-lifecycles/${lifecycleId}`, data);
23
25
  }
24
26
  transition(lifecycleId, newStage) {
25
27
  return this.http.post(`${this.basePath}/${lifecycleId}/transition`, null, {
@@ -64,9 +66,10 @@ export class AssetLifecycleService {
64
66
  getStageEnums() {
65
67
  return this.http.get(`${this.basePath}/enums/stages`);
66
68
  }
67
- /** Create a lifecycle record via the collection endpoint (wraps data in { data } if needed) */
69
+ /** Create a lifecycle record via the standard collection endpoint. The backend expects a FLAT
70
+ * payload — wrapping it in { data } makes Spring ignore every field and persist an empty record. */
68
71
  createRecord(data) {
69
- return this.http.post('/api/asset-lifecycles', { data });
72
+ return this.http.post('/api/asset-lifecycles', data);
70
73
  }
71
74
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AssetLifecycleService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
72
75
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AssetLifecycleService, providedIn: 'root' });
@@ -75,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
75
78
  type: Injectable,
76
79
  args: [{ providedIn: 'root' }]
77
80
  }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlmZWN5Y2xlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9hc3NldC1saWZlY3ljbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUdaO0lBRlosUUFBUSxHQUFHLGtCQUFrQixDQUFDO0lBRXRDLFlBQW9CLElBQW1CO1FBQW5CLFNBQUksR0FBSixJQUFJLENBQWU7SUFBRyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxNQUErQztRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyx1QkFBdUIsRUFBRTtZQUMzRSxNQUFNLEVBQUUsTUFBYTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQW1CLEVBQUUsSUFBNkI7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBOEIsR0FBRyxJQUFJLENBQUMsUUFBUSxjQUFjLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsUUFBUSxjQUFjLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFtQixFQUFFLElBQTZCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQThCLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBRUQsVUFBVSxDQUFDLFdBQW1CLEVBQUUsUUFBZ0I7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFD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bSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZ21IdHRwQ2xpZW50IH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLWNsaWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBQYWdlZFJlc3BvbnNlLCBQYWdpbmF0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UubW9kZWxzJztcbmltcG9ydCB7IEFzc2V0TGlmZWN5Y2xlLCBMaWZlY3ljbGVFdmVudCB9IGZyb20gJy4uLy4uL21vZGVscy9hcGkvbWFpbnRlbmFuY2UubW9kZWxzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBc3NldExpZmVjeWNsZVNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2VQYXRoID0gJy9hc3NldC1saWZlY3ljbGUnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogVGdtSHR0cENsaWVudCkge31cblxuICBnZXRBbGwocGFyYW1zPzogUGFnaW5hdGlvblBhcmFtcyAmIFJlY29yZDxzdHJpbmcsIGFueT4pOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFnZWRSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KCcvYXBpL2Fzc2V0LWxpZmVjeWNsZXMnLCB7XG4gICAgICBwYXJhbXM6IHBhcmFtcyBhcyBhbnksXG4gICAgfSk7XG4gIH1cblxuICBjcmVhdGUoY29tcG9uZW50SWQ6IG51bWJlciwgZGF0YTogUGFydGlhbDxBc3NldExpZmVjeWNsZT4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KGAke3RoaXMuYmFzZVBhdGh9L2NvbXBvbmVudC8ke2NvbXBvbmVudElkfWAsIGRhdGEpO1xuICB9XG5cbiAgZ2V0QnlDb21wb25lbnQoY29tcG9uZW50SWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS9jb21wb25lbnQvJHtjb21wb25lbnRJZH1gKTtcbiAgfVxuXG4gIHVwZGF0ZShsaWZlY3ljbGVJZDogbnVtYmVyLCBkYXRhOiBQYXJ0aWFsPEFzc2V0TGlmZWN5Y2xlPik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KGAke3RoaXMuYmFzZVBhdGh9LyR7bGlmZWN5Y2xlSWR9YCwgZGF0YSk7XG4gIH1cblxuICB0cmFuc2l0aW9uKGxpZmVjeWNsZUlkOiBudW1iZXIsIG5ld1N0YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KGAke3RoaXMuYmFzZVBhdGh9LyR7bGlmZWN5Y2xlSWR9L3RyYW5zaXRpb25gLCBudWxsLCB7XG4gICAgICBwYXJhbXM6IHsgbmV3U3RhZ2UgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzc2VzcyhsaWZlY3ljbGVJZDogbnVtYmVyLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS8ke2xpZmVjeWNsZUlkfS9hc3Nlc3NgLCBkYXRhKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU1ldHJpY3MobGlmZWN5Y2xlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtsaWZlY3ljbGVJZH0vY2FsY3VsYXRlLW1ldHJpY3NgLCBudWxsKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZURlcHJlY2lhdGlvbihsaWZlY3ljbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS8ke2xpZmVjeWNsZUlkfS9jYWxjdWxhdGUtZGVwcmVjaWF0aW9uYCwgbnVsbCk7XG4gIH1cblxuICBnZXRFdmVudHMobGlmZWN5Y2xlSWQ6IG51bWJlciwgcGFyYW1zPzogUGFnaW5hdGlvblBhcmFtcyk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxMaWZlY3ljbGVFdmVudD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWdlZFJlc3BvbnNlPExpZmVjeWNsZUV2ZW50Pj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtsaWZlY3ljbGVJZH0vZXZlbnRzYCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMgYXMgYW55LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QnlTdGFnZShzdGFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9ieS1zdGFnZWAsIHtcbiAgICAgIHBhcmFtczogeyBzdGFnZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QXBwcm9hY2hpbmdFbmRPZkxpZmUobW9udGhzQWhlYWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGVbXT4+KGAke3RoaXMuYmFzZVBhdGh9L2FwcHJvYWNoaW5nLWVuZC1vZi1saWZlYCwge1xuICAgICAgcGFyYW1zOiBtb250aHNBaGVhZCAhPSBudWxsID8geyBtb250aHNBaGVhZCB9IDoge30sXG4gICAgfSk7XG4gIH1cblxuICBnZXRMb3dIZWFsdGgodGhyZXNob2xkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9sb3ctaGVhbHRoYCwge1xuICAgICAgcGFyYW1zOiB0aHJlc2hvbGQgIT0gbnVsbCA/IHsgdGhyZXNob2xkIH0gOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJlY29tbWVuZGVkUmVwbGFjZW1lbnQoKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9yZWNvbW1lbmRlZC1yZXBsYWNlbWVudGApO1xuICB9XG5cbiAgZ2V0RGFzaGJvYXJkKCk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPGFueT4+KGAke3RoaXMuYmFzZVBhdGh9L2Rhc2hib2FyZGApO1xuICB9XG5cbiAgZ2V0U3RhZ2VFbnVtcygpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPHN0cmluZ1tdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPHN0cmluZ1tdPj4oYCR7dGhpcy5iYXNlUGF0aH0vZW51bXMvc3RhZ2VzYCk7XG4gIH1cblxuICAvKiogQ3JlYXRlIGEgbGlmZWN5Y2xlIHJlY29yZCB2aWEgdGhlIGNvbGxlY3Rpb24gZW5kcG9pbnQgKHdyYXBzIGRhdGEgaW4geyBkYXRhIH0gaWYgbmVlZGVkKSAqL1xuICBjcmVhdGVSZWNvcmQoZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4oJy9hcGkvYXNzZXQtbGlmZWN5Y2xlcycsIHsgZGF0YSB9KTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbGlmZWN5Y2xlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9hc3NldC1saWZlY3ljbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUdaO0lBRlosUUFBUSxHQUFHLGtCQUFrQixDQUFDO0lBRXRDLFlBQW9CLElBQW1CO1FBQW5CLFNBQUksR0FBSixJQUFJLENBQWU7SUFBRyxDQUFDO0lBRTNDLE1BQU0sQ0FBQyxNQUErQztRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFnQyx1QkFBdUIsRUFBRTtZQUMzRSxNQUFNLEVBQUUsTUFBYTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFdBQW1CLEVBQUUsSUFBNkI7UUFDdkQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBOEIsR0FBRyxJQUFJLENBQUMsUUFBUSxjQUFjLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBbUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxJQUFJLENBQUMsUUFBUSxjQUFjLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQztJQUVELE1BQU0sQ0FBQyxXQUFtQixFQUFFLElBQTZCO1FBQ3ZELDhGQUE4RjtRQUM5Riw0RkFBNEY7UUFDNUYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBOEIseUJBQXlCLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxVQUFVLENBQUMsV0FBbUIsRUFBRSxRQUFnQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxJ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J0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGdtSHR0cENsaWVudCB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcGlSZXNwb25zZSwgUGFnZWRSZXNwb25zZSwgUGFnaW5hdGlvblBhcmFtcyB9IGZyb20gJy4uLy4uL21vZGVscy9iYXNlLm1vZGVscyc7XG5pbXBvcnQgeyBBc3NldExpZmVjeWNsZSwgTGlmZWN5Y2xlRXZlbnQgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpL21haW50ZW5hbmNlLm1vZGVscyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQXNzZXRMaWZlY3ljbGVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBiYXNlUGF0aCA9ICcvYXNzZXQtbGlmZWN5Y2xlJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IFRnbUh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0QWxsKHBhcmFtcz86IFBhZ2luYXRpb25QYXJhbXMgJiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxQYWdlZFJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFBhZ2VkUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PignL2FwaS9hc3NldC1saWZlY3ljbGVzJywge1xuICAgICAgcGFyYW1zOiBwYXJhbXMgYXMgYW55LFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlKGNvbXBvbmVudElkOiBudW1iZXIsIGRhdGE6IFBhcnRpYWw8QXNzZXRMaWZlY3ljbGU+KTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS9jb21wb25lbnQvJHtjb21wb25lbnRJZH1gLCBkYXRhKTtcbiAgfVxuXG4gIGdldEJ5Q29tcG9uZW50KGNvbXBvbmVudElkOiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4oYCR7dGhpcy5iYXNlUGF0aH0vY29tcG9uZW50LyR7Y29tcG9uZW50SWR9YCk7XG4gIH1cblxuICB1cGRhdGUobGlmZWN5Y2xlSWQ6IG51bWJlciwgZGF0YTogUGFydGlhbDxBc3NldExpZmVjeWNsZT4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIC8vIFVzZSB0aGUgc3RhbmRhcmQgQ1JVRCBlbmRwb2ludCDigJQgdGhlIGN1c3RvbSBQQVRDSCAvYXNzZXQtbGlmZWN5Y2xlLzppZCByZXR1cm5zIDIwMCBidXQgZG9lc1xuICAgIC8vIG5vdCBwZXJzaXN0LiBQVVQgL2FwaS9hc3NldC1saWZlY3ljbGVzLzppZCBzYXZlcyBjb3JyZWN0bHkgKG1hdGNoZXMgZ2V0QWxsL2NyZWF0ZVJlY29yZCkuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgL2FwaS9hc3NldC1saWZlY3ljbGVzLyR7bGlmZWN5Y2xlSWR9YCwgZGF0YSk7XG4gIH1cblxuICB0cmFuc2l0aW9uKGxpZmVjeWNsZUlkOiBudW1iZXIsIG5ld1N0YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KGAke3RoaXMuYmFzZVBhdGh9LyR7bGlmZWN5Y2xlSWR9L3RyYW5zaXRpb25gLCBudWxsLCB7XG4gICAgICBwYXJhbXM6IHsgbmV3U3RhZ2UgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzc2VzcyhsaWZlY3ljbGVJZDogbnVtYmVyLCBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS8ke2xpZmVjeWNsZUlkfS9hc3Nlc3NgLCBkYXRhKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZU1ldHJpY3MobGlmZWN5Y2xlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtsaWZlY3ljbGVJZH0vY2FsY3VsYXRlLW1ldHJpY3NgLCBudWxsKTtcbiAgfVxuXG4gIGNhbGN1bGF0ZURlcHJlY2lhdGlvbihsaWZlY3ljbGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGU+PihgJHt0aGlzLmJhc2VQYXRofS8ke2xpZmVjeWNsZUlkfS9jYWxjdWxhdGUtZGVwcmVjaWF0aW9uYCwgbnVsbCk7XG4gIH1cblxuICBnZXRFdmVudHMobGlmZWN5Y2xlSWQ6IG51bWJlciwgcGFyYW1zPzogUGFnaW5hdGlvblBhcmFtcyk6IE9ic2VydmFibGU8UGFnZWRSZXNwb25zZTxMaWZlY3ljbGVFdmVudD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWdlZFJlc3BvbnNlPExpZmVjeWNsZUV2ZW50Pj4oYCR7dGhpcy5iYXNlUGF0aH0vJHtsaWZlY3ljbGVJZH0vZXZlbnRzYCwge1xuICAgICAgcGFyYW1zOiBwYXJhbXMgYXMgYW55LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QnlTdGFnZShzdGFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9ieS1zdGFnZWAsIHtcbiAgICAgIHBhcmFtczogeyBzdGFnZSB9LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QXBwcm9hY2hpbmdFbmRPZkxpZmUobW9udGhzQWhlYWQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8QXNzZXRMaWZlY3ljbGVbXT4+KGAke3RoaXMuYmFzZVBhdGh9L2FwcHJvYWNoaW5nLWVuZC1vZi1saWZlYCwge1xuICAgICAgcGFyYW1zOiBtb250aHNBaGVhZCAhPSBudWxsID8geyBtb250aHNBaGVhZCB9IDoge30sXG4gICAgfSk7XG4gIH1cblxuICBnZXRMb3dIZWFsdGgodGhyZXNob2xkPzogbnVtYmVyKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9sb3ctaGVhbHRoYCwge1xuICAgICAgcGFyYW1zOiB0aHJlc2hvbGQgIT0gbnVsbCA/IHsgdGhyZXNob2xkIH0gOiB7fSxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFJlY29tbWVuZGVkUmVwbGFjZW1lbnQoKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZVtdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlW10+PihgJHt0aGlzLmJhc2VQYXRofS9yZWNvbW1lbmRlZC1yZXBsYWNlbWVudGApO1xuICB9XG5cbiAgZ2V0RGFzaGJvYXJkKCk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8YW55Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPGFueT4+KGAke3RoaXMuYmFzZVBhdGh9L2Rhc2hib2FyZGApO1xuICB9XG5cbiAgZ2V0U3RhZ2VFbnVtcygpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPHN0cmluZ1tdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPHN0cmluZ1tdPj4oYCR7dGhpcy5iYXNlUGF0aH0vZW51bXMvc3RhZ2VzYCk7XG4gIH1cblxuICAvKiogQ3JlYXRlIGEgbGlmZWN5Y2xlIHJlY29yZCB2aWEgdGhlIHN0YW5kYXJkIGNvbGxlY3Rpb24gZW5kcG9pbnQuIFRoZSBiYWNrZW5kIGV4cGVjdHMgYSBGTEFUXG4gICAqICBwYXlsb2FkIOKAlCB3cmFwcGluZyBpdCBpbiB7IGRhdGEgfSBtYWtlcyBTcHJpbmcgaWdub3JlIGV2ZXJ5IGZpZWxkIGFuZCBwZXJzaXN0IGFuIGVtcHR5IHJlY29yZC4gKi9cbiAgY3JlYXRlUmVjb3JkKGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPEFzc2V0TGlmZWN5Y2xlPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxBc3NldExpZmVjeWNsZT4+KCcvYXBpL2Fzc2V0LWxpZmVjeWNsZXMnLCBkYXRhKTtcbiAgfVxufVxuIl19
@@ -7,6 +7,19 @@ export class ExportService {
7
7
  constructor(http) {
8
8
  this.http = http;
9
9
  }
10
+ // ================== DASHBOARD ==================
11
+ /** Export the dashboard KPIs as CSV (period in days, default 30). */
12
+ exportDashboardCsv(periodDays = 30) {
13
+ return this.http.download(`${this.basePath}/dashboard`, {
14
+ params: { format: 'csv', periodDays },
15
+ });
16
+ }
17
+ /** Export the dashboard KPIs as Excel (period in days, default 30). */
18
+ exportDashboardExcel(periodDays = 30) {
19
+ return this.http.download(`${this.basePath}/dashboard`, {
20
+ params: { format: 'excel', periodDays },
21
+ });
22
+ }
10
23
  exportInspectionsExcel(ids) {
11
24
  return this.http.download(`${this.basePath}/inspections/excel`, {
12
25
  params: ids?.length ? { ids: ids.join(',') } : undefined,
@@ -213,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
213
226
  type: Injectable,
214
227
  args: [{ providedIn: 'root' }]
215
228
  }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFHSjtJQUZaLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFFN0IsWUFBb0IsSUFBbUI7UUFBbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUFHLENBQUM7SUFFM0Msc0JBQXNCLENBQUMsR0FBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsb0JBQW9CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsa0JBQWtCLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsa0JBQWtCLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsR0FBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsc0JBQXNCLEVBQUU7WUFDaEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsb0JBQW9CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsb0JBQW9CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsR0FBYztRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEs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LEdBQUcsSUFBSSxDQUFDLFFBQVEsd0JBQXdCLEVBQUU7WUFDbEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQseUJBQXlCLENBQUMsR0FBYztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsd0JBQXdCLEVBQUU7WUFDbEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQXpQVSxhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZ21IdHRwQ2xpZW50IH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLWNsaWVudC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBiYXNlUGF0aCA9ICcvZXhwb3J0JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IFRnbUh0dHBDbGllbnQpIHt9XG5cbiAgZXhwb3J0SW5zcGVjdGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW5zcGVjdGlvbnMvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEluc3BlY3Rpb25zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9pbnNwZWN0aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEluc3BlY3Rpb25zUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9pbnNwZWN0aW9ucy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEludGVydmVudGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW50ZXJ2ZW50aW9ucy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0SW50ZXJ2ZW50aW9uc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW50ZXJ2ZW50aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEludGVydmVudGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ludGVydmVudGlvbnMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRGYWlsdXJlc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9mYWlsdXJlcy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmFpbHVyZXNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ZhaWx1cmVzL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmFpbHVyZXNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ZhaWx1cmVzL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0Q29tcG9uZW50c0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9jb21wb25lbnRzL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRVbml0c0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS91bml0cy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gR2F0ZSBTeXN0ZW1zID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0R2F0ZVN5c3RlbXNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZ2F0ZS1zeXN0ZW1zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRHYXRlU3lzdGVtc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZ2F0ZS1zeXN0ZW1zL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0R2F0ZVN5c3RlbXNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2dhdGUtc3lzdGVtcy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IEZpc2ggTW9uaXRvcmluZyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydEZpc2hNb25pdG9yaW5nRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2Zpc2gtbW9uaXRvcmluZy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmlzaE1vbml0b3JpbmdDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2Zpc2gtbW9uaXRvcmluZy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEZpc2hNb25pdG9yaW5nUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9maXNoLW1vbml0b3JpbmcvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBCYXRoeW1ldHJpYyBTdXJ2ZXlzID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0QmF0aHltZXRyaWNTdXJ2ZXlzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2JhdGh5bWV0cmljLXN1cnZleXMvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEJhdGh5bWV0cmljU3VydmV5c0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYmF0aHltZXRyaWMtc3VydmV5cy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEJhdGh5bWV0cmljU3VydmV5c1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYmF0aHltZXRyaWMtc3VydmV5cy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IExhYm9yYXRvcnkgUmVzdWx0cyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydExhYm9yYXRvcnlSZXN1bHRzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2xhYm9yYXRvcnktcmVzdWx0cy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0TGFib3JhdG9yeVJlc3VsdHNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2xhYm9yYXRvcnktcmVzdWx0cy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydExhYm9yYXRvcnlSZXN1bHRzUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9sYWJvcmF0b3J5LXJlc3VsdHMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBNYW51YWwgUmVhZGluZ3MgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRNYW51YWxSZWFkaW5nc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9tYW51YWwtcmVhZGluZ3MvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydE1hbnVhbFJlYWRpbmdzQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9tYW51YWwtcmVhZGluZ3MvY3N2YCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRNYW51YWxSZWFkaW5nc1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vbWFudWFsLXJlYWRpbmdzL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gT3BlcmF0aW9uYWwgT2JzZXJ2YXRpb25zID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0T3BlcmF0aW9uYWxPYnNlcnZhdGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vb3BlcmF0aW9uYWwtb2JzZXJ2YXRpb25zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRPcGVyYXRpb25hbE9ic2VydmF0aW9uc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vb3BlcmF0aW9uYWwtb2JzZXJ2YXRpb25zL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0T3BlcmF0aW9uYWxPYnNlcnZhdGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L29wZXJhdGlvbmFsLW9ic2VydmF0aW9ucy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IFJlZ3VsYXRvcnkgVXBkYXRlcyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydFJlZ3VsYXRvcnlVcGRhdGVzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L3JlZ3VsYXRvcnktdXBkYXRlcy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0UmVndWxhdG9yeVVwZGF0ZXNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L3JlZ3VsYXRvcnktdXBkYXRlcy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydFJlZ3VsYXRvcnlVcGRhdGVzUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9yZWd1bGF0b3J5LXVwZGF0ZXMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBBSSBTY2VuYXJpb3MgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRBSVNjZW5hcmlvc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9haS1zY2VuYXJpb3MvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEFJU2NlbmFyaW9zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9haS1zY2VuYXJpb3MvY3N2YCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRBSVNjZW5hcmlvc1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYWktc2NlbmFyaW9zL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gQWxlcnQgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRBbGVydERlZmluaXRpb25zRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2FsZXJ0LWRlZmluaXRpb25zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRBbGVydERlZmluaXRpb25zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9hbGVydC1kZWZpbml0aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEFsZXJ0RGVmaW5pdGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2FsZXJ0LWRlZmluaXRpb25zL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFHSjtJQUZaLFFBQVEsR0FBRyxTQUFTLENBQUM7SUFFN0IsWUFBb0IsSUFBbUI7UUFBbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtJQUFHLENBQUM7SUFFM0Msa0RBQWtEO0lBRWxELHFFQUFxRTtJQUNyRSxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsWUFBWSxFQUFFO1lBQ3RELE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsb0JBQW9CLENBQUMsVUFBVSxHQUFHLEVBQUU7UUFDbEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLFlBQVksRUFBRTtZQUN0RCxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRTtTQUN4QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsb0JBQW9CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsa0JBQWtCLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsR0FBYztRQUNqQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsa0JBQWtCLEVBQUU7WUFDNUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsR0FBYztRQUNyQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsc0JBQXNCLEVBQUU7WUFDaEUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUN6RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsR0FBYztRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsb0JBQW9CLEVBQUU7WUFDOUQsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdB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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUZ21IdHRwQ2xpZW50IH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLWNsaWVudC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBiYXNlUGF0aCA9ICcvZXhwb3J0JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IFRnbUh0dHBDbGllbnQpIHt9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09IERBU0hCT0FSRCA9PT09PT09PT09PT09PT09PT1cblxuICAvKiogRXhwb3J0IHRoZSBkYXNoYm9hcmQgS1BJcyBhcyBDU1YgKHBlcmlvZCBpbiBkYXlzLCBkZWZhdWx0IDMwKS4gKi9cbiAgZXhwb3J0RGFzaGJvYXJkQ3N2KHBlcmlvZERheXMgPSAzMCk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZGFzaGJvYXJkYCwge1xuICAgICAgcGFyYW1zOiB7IGZvcm1hdDogJ2NzdicsIHBlcmlvZERheXMgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBFeHBvcnQgdGhlIGRhc2hib2FyZCBLUElzIGFzIEV4Y2VsIChwZXJpb2QgaW4gZGF5cywgZGVmYXVsdCAzMCkuICovXG4gIGV4cG9ydERhc2hib2FyZEV4Y2VsKHBlcmlvZERheXMgPSAzMCk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZGFzaGJvYXJkYCwge1xuICAgICAgcGFyYW1zOiB7IGZvcm1hdDogJ2V4Y2VsJywgcGVyaW9kRGF5cyB9LFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0SW5zcGVjdGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW5zcGVjdGlvbnMvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEluc3BlY3Rpb25zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9pbnNwZWN0aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEluc3BlY3Rpb25zUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9pbnNwZWN0aW9ucy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEludGVydmVudGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW50ZXJ2ZW50aW9ucy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0SW50ZXJ2ZW50aW9uc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vaW50ZXJ2ZW50aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEludGVydmVudGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ludGVydmVudGlvbnMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRGYWlsdXJlc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9mYWlsdXJlcy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmFpbHVyZXNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ZhaWx1cmVzL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmFpbHVyZXNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2ZhaWx1cmVzL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0Q29tcG9uZW50c0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9jb21wb25lbnRzL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRVbml0c0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS91bml0cy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gR2F0ZSBTeXN0ZW1zID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0R2F0ZVN5c3RlbXNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZ2F0ZS1zeXN0ZW1zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRHYXRlU3lzdGVtc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vZ2F0ZS1zeXN0ZW1zL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0R2F0ZVN5c3RlbXNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2dhdGUtc3lzdGVtcy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IEZpc2ggTW9uaXRvcmluZyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydEZpc2hNb25pdG9yaW5nRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2Zpc2gtbW9uaXRvcmluZy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0RmlzaE1vbml0b3JpbmdDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2Zpc2gtbW9uaXRvcmluZy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEZpc2hNb25pdG9yaW5nUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9maXNoLW1vbml0b3JpbmcvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBCYXRoeW1ldHJpYyBTdXJ2ZXlzID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0QmF0aHltZXRyaWNTdXJ2ZXlzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2JhdGh5bWV0cmljLXN1cnZleXMvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEJhdGh5bWV0cmljU3VydmV5c0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYmF0aHltZXRyaWMtc3VydmV5cy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEJhdGh5bWV0cmljU3VydmV5c1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYmF0aHltZXRyaWMtc3VydmV5cy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IExhYm9yYXRvcnkgUmVzdWx0cyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydExhYm9yYXRvcnlSZXN1bHRzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2xhYm9yYXRvcnktcmVzdWx0cy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0TGFib3JhdG9yeVJlc3VsdHNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2xhYm9yYXRvcnktcmVzdWx0cy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydExhYm9yYXRvcnlSZXN1bHRzUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9sYWJvcmF0b3J5LXJlc3VsdHMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBNYW51YWwgUmVhZGluZ3MgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRNYW51YWxSZWFkaW5nc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9tYW51YWwtcmVhZGluZ3MvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydE1hbnVhbFJlYWRpbmdzQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9tYW51YWwtcmVhZGluZ3MvY3N2YCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRNYW51YWxSZWFkaW5nc1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vbWFudWFsLXJlYWRpbmdzL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gT3BlcmF0aW9uYWwgT2JzZXJ2YXRpb25zID09PT09PT09PT09PT09PT09PT09XG5cbiAgZXhwb3J0T3BlcmF0aW9uYWxPYnNlcnZhdGlvbnNFeGNlbChpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vb3BlcmF0aW9uYWwtb2JzZXJ2YXRpb25zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRPcGVyYXRpb25hbE9ic2VydmF0aW9uc0NzdihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vb3BlcmF0aW9uYWwtb2JzZXJ2YXRpb25zL2NzdmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0T3BlcmF0aW9uYWxPYnNlcnZhdGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L29wZXJhdGlvbmFsLW9ic2VydmF0aW9ucy9wZGZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09IFJlZ3VsYXRvcnkgVXBkYXRlcyA9PT09PT09PT09PT09PT09PT09PVxuXG4gIGV4cG9ydFJlZ3VsYXRvcnlVcGRhdGVzRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L3JlZ3VsYXRvcnktdXBkYXRlcy9leGNlbGAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgZXhwb3J0UmVndWxhdG9yeVVwZGF0ZXNDc3YoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L3JlZ3VsYXRvcnktdXBkYXRlcy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydFJlZ3VsYXRvcnlVcGRhdGVzUGRmKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9yZWd1bGF0b3J5LXVwZGF0ZXMvcGRmYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PSBBSSBTY2VuYXJpb3MgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRBSVNjZW5hcmlvc0V4Y2VsKGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9haS1zY2VuYXJpb3MvZXhjZWxgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEFJU2NlbmFyaW9zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9haS1zY2VuYXJpb3MvY3N2YCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRBSVNjZW5hcmlvc1BkZihpZHM/OiBudW1iZXJbXSk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZG93bmxvYWQoYCR7dGhpcy5iYXNlUGF0aH0vYWktc2NlbmFyaW9zL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT0gQWxlcnQgRGVmaW5pdGlvbnMgPT09PT09PT09PT09PT09PT09PT1cblxuICBleHBvcnRBbGVydERlZmluaXRpb25zRXhjZWwoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2FsZXJ0LWRlZmluaXRpb25zL2V4Y2VsYCwge1xuICAgICAgcGFyYW1zOiBpZHM/Lmxlbmd0aCA/IHsgaWRzOiBpZHMuam9pbignLCcpIH0gOiB1bmRlZmluZWQsXG4gICAgfSk7XG4gIH1cblxuICBleHBvcnRBbGVydERlZmluaXRpb25zQ3N2KGlkcz86IG51bWJlcltdKTogT2JzZXJ2YWJsZTxCbG9iPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kb3dubG9hZChgJHt0aGlzLmJhc2VQYXRofS9hbGVydC1kZWZpbml0aW9ucy9jc3ZgLCB7XG4gICAgICBwYXJhbXM6IGlkcz8ubGVuZ3RoID8geyBpZHM6IGlkcy5qb2luKCcsJykgfSA6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfVxuXG4gIGV4cG9ydEFsZXJ0RGVmaW5pdGlvbnNQZGYoaWRzPzogbnVtYmVyW10pOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRvd25sb2FkKGAke3RoaXMuYmFzZVBhdGh9L2FsZXJ0LWRlZmluaXRpb25zL3BkZmAsIHtcbiAgICAgIHBhcmFtczogaWRzPy5sZW5ndGggPyB7IGlkczogaWRzLmpvaW4oJywnKSB9IDogdW5kZWZpbmVkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,80 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BaseCrudService } from './base-crud.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../core/http-client.service";
5
+ import * as i2 from "../../core/websocket.service";
6
+ /** CRUD for grid nodes (`/api/grid/nodes`). Requires the grid-management plugin. */
7
+ export class GridNodeService extends BaseCrudService {
8
+ resourcePath = '/api/grid/nodes';
9
+ constructor(http) {
10
+ super(http);
11
+ }
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridNodeService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
13
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridNodeService, providedIn: 'root' });
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridNodeService, decorators: [{
16
+ type: Injectable,
17
+ args: [{ providedIn: 'root' }]
18
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
19
+ /** CRUD for grid links/edges (`/api/grid/links`). */
20
+ export class GridLinkService extends BaseCrudService {
21
+ resourcePath = '/api/grid/links';
22
+ constructor(http) {
23
+ super(http);
24
+ }
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridLinkService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridLinkService, providedIn: 'root' });
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridLinkService, decorators: [{
29
+ type: Injectable,
30
+ args: [{ providedIn: 'root' }]
31
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
32
+ /**
33
+ * Real-time distribution-grid view: the status snapshot that powers the map plus a live STOMP feed.
34
+ *
35
+ * Typical usage:
36
+ * ```ts
37
+ * grid.status().subscribe(r => this.render(r.data)); // initial map render
38
+ * grid.liveStatus().subscribe(snapshot => this.render(snapshot)); // live updates
39
+ * ```
40
+ */
41
+ export class GridService {
42
+ http;
43
+ ws;
44
+ base = '/api/grid';
45
+ static TOPIC_STATUS = '/topic/grid/status';
46
+ constructor(http, ws) {
47
+ this.http = http;
48
+ this.ws = ws;
49
+ }
50
+ /** Live status snapshot of every node (for the initial map render). */
51
+ status() {
52
+ return this.http.get(`${this.base}/status`);
53
+ }
54
+ /** All links/edges (for drawing the topology). */
55
+ links() {
56
+ return this.http.get(`${this.base}/links`);
57
+ }
58
+ /** Admin: recompute and persist live states, then broadcast over WebSocket. */
59
+ recompute() {
60
+ return this.http.post(`${this.base}/status/recompute`, {});
61
+ }
62
+ /**
63
+ * Live stream of full status snapshots pushed on `/topic/grid/status`.
64
+ * Ensure {@link WebSocketService.connect} has been called once after login.
65
+ */
66
+ liveStatus() {
67
+ return this.ws.subscribe(GridService.TOPIC_STATUS);
68
+ }
69
+ /** Live stream for a single node pushed on `/topic/grid/node/{id}`. */
70
+ liveNode(nodeId) {
71
+ return this.ws.subscribe(`/topic/grid/node/${nodeId}`);
72
+ }
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridService, deps: [{ token: i1.TgmHttpClient }, { token: i2.WebSocketService }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridService, providedIn: 'root' });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GridService, decorators: [{
77
+ type: Injectable,
78
+ args: [{ providedIn: 'root' }]
79
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }, { type: i2.WebSocketService }] });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hcGkvZ3JpZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBSXRELG9GQUFvRjtBQUVwRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUF5QjtJQUNsRCxZQUFZLEdBQUcsaUJBQWlCLENBQUM7SUFDM0MsWUFBWSxJQUFtQjtRQUM3QixLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxDQUFDO3dHQUpVLGVBQWU7NEdBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFRbEMscURBQXFEO0FBRXJELE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQXlCO0lBQ2xELFlBQVksR0FBRyxpQkFBaUIsQ0FBQztJQUMzQyxZQUFZLElBQW1CO1FBQzdCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7d0dBSlUsZUFBZTs0R0FBZixlQUFlLGNBREYsTUFBTTs7NEZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQVFsQzs7Ozs7Ozs7R0FRRztBQUVILE1BQU0sT0FBTyxXQUFXO0lBSUY7SUFBNkI7SUFIekMsSUFBSSxHQUFHLFdBQVcsQ0FBQztJQUMzQixNQUFNLENBQVUsWUFBWSxHQUFHLG9CQUFvQixDQUFDO0lBRXBELFlBQW9CLElBQW1CLEVBQVUsRUFBb0I7UUFBakQsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWtCO0lBQUcsQ0FBQztJQUV6RSx1RUFBdUU7SUFDdkUsTUFBTTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWdDLEdBQUcsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEIsR0FBRyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFtQyxHQUFHLElBQUksQ0FBQyxJQUFJLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBbUIsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCx1RUFBdUU7SUFDdkUsUUFBUSxDQUFDLE1BQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBaUIsb0JBQW9CLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzt3R0FoQ1UsV0FBVzs0R0FBWCxXQUFXLGNBREUsTUFBTTs7NEZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGdtSHR0cENsaWVudCB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC1jbGllbnQuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS93ZWJzb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Jhc2UubW9kZWxzJztcbmltcG9ydCB7IEdyaWRMaW5rLCBHcmlkTm9kZSwgR3JpZE5vZGVTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpL2dyaWQubW9kZWxzJztcblxuLyoqIENSVUQgZm9yIGdyaWQgbm9kZXMgKGAvYXBpL2dyaWQvbm9kZXNgKS4gUmVxdWlyZXMgdGhlIGdyaWQtbWFuYWdlbWVudCBwbHVnaW4uICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEdyaWROb2RlU2VydmljZSBleHRlbmRzIEJhc2VDcnVkU2VydmljZTxHcmlkTm9kZT4ge1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VQYXRoID0gJy9hcGkvZ3JpZC9ub2Rlcyc7XG4gIGNvbnN0cnVjdG9yKGh0dHA6IFRnbUh0dHBDbGllbnQpIHtcbiAgICBzdXBlcihodHRwKTtcbiAgfVxufVxuXG4vKiogQ1JVRCBmb3IgZ3JpZCBsaW5rcy9lZGdlcyAoYC9hcGkvZ3JpZC9saW5rc2ApLiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBHcmlkTGlua1NlcnZpY2UgZXh0ZW5kcyBCYXNlQ3J1ZFNlcnZpY2U8R3JpZExpbms+IHtcbiAgcHJvdGVjdGVkIHJlc291cmNlUGF0aCA9ICcvYXBpL2dyaWQvbGlua3MnO1xuICBjb25zdHJ1Y3RvcihodHRwOiBUZ21IdHRwQ2xpZW50KSB7XG4gICAgc3VwZXIoaHR0cCk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWFsLXRpbWUgZGlzdHJpYnV0aW9uLWdyaWQgdmlldzogdGhlIHN0YXR1cyBzbmFwc2hvdCB0aGF0IHBvd2VycyB0aGUgbWFwIHBsdXMgYSBsaXZlIFNUT01QIGZlZWQuXG4gKlxuICogVHlwaWNhbCB1c2FnZTpcbiAqIGBgYHRzXG4gKiBncmlkLnN0YXR1cygpLnN1YnNjcmliZShyID0+IHRoaXMucmVuZGVyKHIuZGF0YSkpOyAgIC8vIGluaXRpYWwgbWFwIHJlbmRlclxuICogZ3JpZC5saXZlU3RhdHVzKCkuc3Vic2NyaWJlKHNuYXBzaG90ID0+IHRoaXMucmVuZGVyKHNuYXBzaG90KSk7IC8vIGxpdmUgdXBkYXRlc1xuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgR3JpZFNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2UgPSAnL2FwaS9ncmlkJztcbiAgc3RhdGljIHJlYWRvbmx5IFRPUElDX1NUQVRVUyA9ICcvdG9waWMvZ3JpZC9zdGF0dXMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogVGdtSHR0cENsaWVudCwgcHJpdmF0ZSB3czogV2ViU29ja2V0U2VydmljZSkge31cblxuICAvKiogTGl2ZSBzdGF0dXMgc25hcHNob3Qgb2YgZXZlcnkgbm9kZSAoZm9yIHRoZSBpbml0aWFsIG1hcCByZW5kZXIpLiAqL1xuICBzdGF0dXMoKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxHcmlkTm9kZVN0YXR1c1tdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEdyaWROb2RlU3RhdHVzW10+PihgJHt0aGlzLmJhc2V9L3N0YXR1c2ApO1xuICB9XG5cbiAgLyoqIEFsbCBsaW5rcy9lZGdlcyAoZm9yIGRyYXdpbmcgdGhlIHRvcG9sb2d5KS4gKi9cbiAgbGlua3MoKTogT2JzZXJ2YWJsZTxBcGlSZXNwb25zZTxHcmlkTGlua1tdPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFwaVJlc3BvbnNlPEdyaWRMaW5rW10+PihgJHt0aGlzLmJhc2V9L2xpbmtzYCk7XG4gIH1cblxuICAvKiogQWRtaW46IHJlY29tcHV0ZSBhbmQgcGVyc2lzdCBsaXZlIHN0YXRlcywgdGhlbiBicm9hZGNhc3Qgb3ZlciBXZWJTb2NrZXQuICovXG4gIHJlY29tcHV0ZSgpOiBPYnNlcnZhYmxlPEFwaVJlc3BvbnNlPHsgY2hhbmdlZDogbnVtYmVyIH0+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEFwaVJlc3BvbnNlPHsgY2hhbmdlZDogbnVtYmVyIH0+PihgJHt0aGlzLmJhc2V9L3N0YXR1cy9yZWNvbXB1dGVgLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogTGl2ZSBzdHJlYW0gb2YgZnVsbCBzdGF0dXMgc25hcHNob3RzIHB1c2hlZCBvbiBgL3RvcGljL2dyaWQvc3RhdHVzYC5cbiAgICogRW5zdXJlIHtAbGluayBXZWJTb2NrZXRTZXJ2aWNlLmNvbm5lY3R9IGhhcyBiZWVuIGNhbGxlZCBvbmNlIGFmdGVyIGxvZ2luLlxuICAgKi9cbiAgbGl2ZVN0YXR1cygpOiBPYnNlcnZhYmxlPEdyaWROb2RlU3RhdHVzW10+IHtcbiAgICByZXR1cm4gdGhpcy53cy5zdWJzY3JpYmU8R3JpZE5vZGVTdGF0dXNbXT4oR3JpZFNlcnZpY2UuVE9QSUNfU1RBVFVTKTtcbiAgfVxuXG4gIC8qKiBMaXZlIHN0cmVhbSBmb3IgYSBzaW5nbGUgbm9kZSBwdXNoZWQgb24gYC90b3BpYy9ncmlkL25vZGUve2lkfWAuICovXG4gIGxpdmVOb2RlKG5vZGVJZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxHcmlkTm9kZVN0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLndzLnN1YnNjcmliZTxHcmlkTm9kZVN0YXR1cz4oYC90b3BpYy9ncmlkL25vZGUvJHtub2RlSWR9YCk7XG4gIH1cbn1cbiJdfQ==
@@ -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,6 @@ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLDBCQUEwQixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckksT0FBTyxFQUFFLHlCQUF5QixFQUFFLGlDQUFpQyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0ksT0FBTyxFQUFFLHlCQUF5QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDNUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDhCQUE4QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkksT0FBTyxFQUFFLGFBQWEsRUFBRSxN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QUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUErQixNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZUNydWRTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLWNydWQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wYW55U2VydmljZSB9IGZyb20gJy4vY29tcGFueS5zZXJ2aWNlJztcbmV4cG9ydCB7IFVuaXRTZXJ2aWNlIH0gZnJvbSAnLi91bml0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcG9uZW50U2VydmljZSwgQ29tcG9uZW50R3JvdXBTZXJ2aWNlLCBTdWJBc3NlbWJseVNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IEluc3BlY3Rpb25TZXJ2aWNlLCBJbnNwZWN0aW9uQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4vaW5zcGVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IEZhaWx1cmVTZXJ2aWNlLCBGYWlsdXJlQ2F1c2VTZXJ2aWNlLCBGYWlsdXJlQWN0aW9uU2VydmljZSwgQ29ycmVjdGl2ZUFjdGlvblNlcnZpY2UgfSBmcm9tICcuL2ZhaWx1cmUuc2VydmljZSc7XG5leHBvcnQgeyBJbnRlcnZlbnRpb25TZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcnZlbnRpb24uc2VydmljZSc7XG5leHBvcnQgeyBNYWludGVuYW5jZVJlY29yZFNlcnZpY2UgfSBmcm9tICcuL21haW50ZW5hbmNlLXJlY29yZC5zZXJ2aWNlJztcbmV4cG9ydCB7IEludGVydmVudGlvblJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9pbnRlcnZlbnRpb24tcmVxdWVzdC5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsSXRlbVNlcnZpY2UsIE1hdGVyaWFsSXRlbUhpc3RvcnlTZXJ2aWNlLCBNYXRlcmlhbENhdGVnb3J5U2VydmljZSwgU3BhcmVQYXJ0U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtaXRlbS5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsQ29uc3VtYWJsZVNlcnZpY2UsIE1hdGVyaWFsQ29uc3VtYWJsZUNhdGVnb3J5U2VydmljZSwgTWF0ZXJpYWxDb25zdW1hYmxlSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLWNvbnN1bWFibGUuc2VydmljZSc7XG5leHBvcnQgeyBNYXRlcmlhbEluc3RydW1lbnRTZXJ2aWNlLCBNYXRlcmlhbEluc3RydW1lbnRIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtaW5zdHJ1bWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsVG9vbGluZ1NlcnZpY2UsIE1hdGVyaWFsVG9vbGluZ0NhdGVnb3J5U2VydmljZSwgTWF0ZXJpYWxUb29saW5nSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL21hdGVyaWFsLXRvb2xpbmcuc2VydmljZSc7XG5leHBvcnQgeyBTZW5zb3JTZXJ2aWNlIH0gZnJvbSAnLi9zZW5zb3Iuc2VydmljZSc7XG5leHBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL2FsZXJ0LnNlcnZpY2UnO1xuZXhwb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5leHBvcnQgeyBDYXBleFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9jYXBleC1wcm9qZWN0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQnVkZ2V0U2VydmljZSB9IGZyb20gJy4vYnVkZ2V0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQmlkU2VydmljZSB9IGZyb20gJy4vYmlkLnNlcnZpY2UnO1xuZXhwb3J0IHsgVGdGaWxlU2VydmljZSwgVGdGb2xkZXJTZXJ2aWNlLCBEcmF3aW5nU2VydmljZSwgRHJhd2luZ0NhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wbGlhbmNlT2JsaWdhdGlvblNlcnZpY2UsIENvbXBsaWFuY2VTdWJtaXNzaW9uU2VydmljZSwgRW52aXJvbm1lbnRhbFBlcm1pdFNlcnZpY2UsIENlcnRpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9jb21wbGlhbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQW5jaWxsYXJ5U2VydmljZUNydWRTZXJ2aWNlLCBHcmlkQ29ubmVjdGlvblNlcnZpY2UsIEN1cnRhaWxtZW50RXZlbnRTZXJ2aWNlLCBPdXRhZ2VFdmVudFNlcnZpY2UsIE9wZXJhdGluZ0V2ZW50U2VydmljZSwgU2l0ZUFzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbmVyZ3kuc2VydmljZSc7XG5leHBvcnQgeyBXYXJyYW50eUNvbnRyYWN0U2VydmljZSwgV2FycmFudHlDbGFpbVNlcnZpY2UgfSBmcm9tICcuL3dhcnJhbnR5LnNlcnZpY2UnO1xuZXhwb3J0IHsgVmVoaWNsZVNlcnZpY2UsIERyaXZlclNlcnZpY2UsIFZlaGljbGVUcmlwU2VydmljZSwgVmVoaWNsZUluc3BlY3Rpb25TZXJ2aWNlLCBWZWhpY2xlTWFpbnRlbmFuY2VTZXJ2aWNlLCBGdWVsUmVjb3JkU2VydmljZSwgR2VvZmVuY2VTZXJ2aWNlLCBHZW9mZW5jZUV2ZW50U2VydmljZSwgR3BzTG9jYXRpb25TZXJ2aWNlLCBUcmFja2VkRW50aXR5U2VydmljZSB9IGZyb20gJy4vZmxlZXQuc2VydmljZSc7XG5leHBvcnQgeyBTbGFCcmVhY2hSZWNvcmRTZXJ2aWNlIH0gZnJvbSAnLi9zbGEuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnRpbmdTZXJ2aWNlIH0gZnJvbSAnLi9yZXBvcnRpbmcuc2VydmljZSc7XG5leHBvcnQgeyBCdWxrT3BlcmF0aW9uU2VydmljZSB9IGZyb20gJy4vYnVsay1vcGVyYXRpb24uc2VydmljZSc7XG5leHBvcnQge1xuICBBcnRpY2xlU2VydmljZSwgQXJ0aWNsZUNhdGVnb3J5U2VydmljZSwgQXJ0aWNsZVRvcGljU2VydmljZSxcbiAgQmVzdFByYWN0aWNlU2VydmljZSwgQmVzdFByYWN0aWNlQ2F0ZWdvcnlTZXJ2aWNlLFxuICBGYXFTZXJ2aWNlLCBGYXFDYXRlZ29yeVNlcnZpY2UsXG4gIExlc3NvbkxlYXJuZWRTZXJ2aWNlLFxuICBSZXNvdXJjZVNlcnZpY2UsIFJlc291cmNlQ2F0ZWdvcnlTZXJ2aWNlLCBSZXNvdXJjZVRvcGljU2VydmljZSxcbiAgTW9kdWxlU2VydmljZSwgTW9kdWxlTGVhcm5pbmdTZXJ2aWNlLCBNb2R1bGVWaWRlb1NlcnZpY2UsXG4gIExlYXJuaW5nTW9kdWxlQ2F0ZWdvcnlTZXJ2aWNlLCBVc2VyTGVhcm5pbmdTZXJ2aWNlLFxuICBUcmFpbmluZ0NlcnRpZmljYXRlU2VydmljZSxcbn0gZnJvbSAnLi9rbm93bGVkZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBSb290Q2F1c2VBbmFseXNpc1NlcnZpY2UsIFN5c3RlbWljUmlza0Fzc2Vzc21lbnRTZXJ2aWNlIH0gZnJvbSAnLi9xdWFsaXR5LnNlcnZpY2UnO1xuZXhwb3J0IHsgQXBwcm92YWxXb3JrZmxvd1NlcnZpY2UgYXMgV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnLi93b3JrZmxvdy5zZXJ2aWNlJztcbmV4cG9ydCB7IEN1c3RvbUZpZWxkRGVmaW5pdGlvblNlcnZpY2UsIEN1c3RvbUZpZWxkU2VydmljZSwgQ3VzdG9tRm9ybVNlcnZpY2UgfSBmcm9tICcuL2N1c3RvbS1maWVsZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFVzZXJTZXJ2aWNlLCBVc2VyUHJvZmlsZVNlcnZpY2UsIFVzZXJOb3RpZmljYXRpb25TZXJ2aWNlLCBSb2xlU2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFByb2ZpbGVQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4vdXNlci5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbW11bml0eVBvc3RTZXJ2aWNlLCBDb21tdW5pdHlDb21tZW50U2VydmljZSwgRmVlZGJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9jb21tdW5pdHkuc2VydmljZSc7XG5leHBvcnQgeyBFdmVudFNlcnZpY2UgfSBmcm9tICcuL2V2ZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IERlcGFydG1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9kZXBhcnRtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgUm9vbVNlcnZpY2UgfSBmcm9tICcuL3Jvb20uc2VydmljZSc7XG5leHBvcnQgeyBVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgeyBBaVNlcnZpY2UgfSBmcm9tICcuL2FpLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWdlbnRTZXJ2aWNlIH0gZnJvbSAnLi9hZ2VudC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNhbmRib3hTZXJ2aWNlIH0gZnJvbSAnLi9zYW5kYm94LnNlcnZpY2UnO1xuZXhwb3J0IHsgRXh0ZW5zaW9uU2VydmljZSB9IGZyb20gJy4vZXh0ZW5zaW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGFzaGJvYXJkU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLnNlcnZpY2UnO1xuZXhwb3J0IHsgRXhwb3J0U2VydmljZSB9IGZyb20gJy4vZXhwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHsgVG9kb1NlcnZpY2UgfSBmcm9tICcuL3RvZG8uc2VydmljZSc7XG5leHBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi90aWNrZXQuc2VydmljZSc7XG5leHBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4vbm90ZS5zZXJ2aWNlJztcbmV4cG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcbmV4cG9ydCB7IExvZ2luSGlzdG9yeVNlcnZpY2UgfSBmcm9tICcuL2xvZ2luLWhpc3Rvcnkuc2VydmljZSc7XG5leHBvcnQge1xuICBHYXRlU3lzdGVtU2VydmljZSwgQWxlcnREZWZpbml0aW9uU2VydmljZSwgTWFudWFsUmVhZGluZ1NlcnZpY2UsXG4gIExhYm9yYXRvcnlSZXN1bHRTZXJ2aWNlLCBGaXNoTW9uaXRvcmluZ1NlcnZpY2UsIFJlZ3VsYXRvcnlVcGRhdGVTZXJ2aWNlLFxuICBPcGVyYXRpb25hbE9ic2VydmF0aW9uU2VydmljZSwgQmF0aHltZXRyaWNTdXJ2ZXlTZXJ2aWNlLCBBSVNjZW5hcmlvU2VydmljZSxcbiAgUmVzZXJ2b2lyVGltZVNlcmllc1NlcnZpY2UsIEdhdGVDb250cm9sU2VydmljZSxcbiAgRWxldmF0aW9uU3RvcmFnZUN1cnZlU2VydmljZSwgU2VkaW1lbnRSZW1vdmFsT3BlcmF0aW9uU2VydmljZSwgU2VkaW1lbnRNYW5hZ2VtZW50UGxhblNlcnZpY2UsXG59IGZyb20gJy4vcmVzZXJ2b2lyLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgSm9iVGl0bGVTZXJ2aWNlLCBDb3VudHJ5U2VydmljZSwgU3VwcGxpZXJTZXJ2aWNlLCBGb250U2VydmljZSxcbiAgRm9ybVNlcnZpY2UsIEZvcm1DYXRlZ29yeVNlcnZpY2UsIEluY2lkZW50U2VydmljZSwgTWVzc2FnZVNlcnZpY2UsXG4gIEtwaUV2ZW50U2VydmljZSwgVHVyYmluZVR5cGVTZXJ2aWNlLCBUZXJtc09mVXNlU2VydmljZSxcbiAgVW5pdFNodXRkb3duSGlzdG9yeVNlcnZpY2UsIFByb3BlcnR5U2VydmljZSwgUHJvcGVydGllc0dyb3VwU2VydmljZSxcbiAgUHJvcGVydGllc1RlbXBsYXRlU2VydmljZSwgTWVhc3VyZW1lbnRTZXJ2aWNlLCBNaUhpc3RvcnlTZXJ2aWNlLFxuICBNaVJlcXVlc3RTZXJ2aWNlLCBSZWNoYXJnZVJlcXVlc3RTZXJ2aWNlLCBSZWZ1cmJpc2htZW50U2VydmljZSxcbiAgTG9naW5SZXF1ZXN0U2VydmljZSwgTWFpbnRlbmFuY2VKc2FTZXJ2aWNlLCBKc2FJdGVtU2VydmljZSxcbiAgSnNhU3RlcFNlcnZpY2UsIENvbXBvbmVudENoZWNrbGlzdFNlcnZpY2UsIENvbXBvbmVudENoZWNrbGlzdEdyb3VwU2VydmljZSxcbiAgQ29tcG9uZW50Q2hlY2tsaXN0VGVtcGxhdGVTZXJ2aWNlLFxufSBmcm9tICcuL21pc2MtY3J1ZC5zZXJ2aWNlJztcbmV4cG9ydCB7IENsaWVudEFydGljbGVTZXJ2aWNlIH0gZnJvbSAnLi9jbGllbnQtYXJ0aWNsZS5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIENvbmRpdGlvbkFzc2Vzc21lbnRUZXN0U2VydmljZSxcbiAgQ2F0UGxhbm5pbmdFcXVpcG1lbnRJdGVtU2VydmljZSxcbiAgQ2F0UGVyc29ubmVsQXNzaWdubWVudFNlcnZpY2UsXG4gIENhdEV4ZWN1dGlvblJlc3VsdFNlcnZpY2UsXG4gIENhdFNpZ25PZmZTZXJ2aWNlLFxuICBDYXRBdHRhY2htZW50U2VydmljZSxcbn0gZnJvbSAnLi9jYXQuc2VydmljZSc7XG5leHBvcnQgeyBNYWludGVuYW5jZVBsYW5TZXJ2aWNlIH0gZnJvbSAnLi9tYWludGVuYW5jZS1wbGFuLnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVjdXJyaW5nRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9yZWN1cnJpbmctZXZlbnQuc2VydmljZSc7XG5leHBvcnQgeyBUaW1lRW50cnlTZXJ2aWNlIH0gZnJvbSAnLi90aW1lLWVudHJ5LnNlcnZpY2UnO1xuZXhwb3J0IHsgU2xhUG9saWN5U2VydmljZSB9IGZyb20gJy4vc2xhLXBvbGljeS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFzc2V0TGlmZWN5Y2xlU2VydmljZSB9IGZyb20gJy4vYXNzZXQtbGlmZWN5Y2xlLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5hY3RpdmVDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9pbmFjdGl2ZS1jb21wb25lbnQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wb25lbnRMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC1sb2NhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBvbmVudEluZm9TZXJ2aWNlIH0gZnJvbSAnLi9jb21wb25lbnQtaW5mby5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBhbnlNYXRlcmlhbFR5cGVTZXJ2aWNlIH0gZnJvbSAnLi9jb21wYW55LW1hdGVyaWFsLXR5cGUuc2VydmljZSc7XG5leHBvcnQgeyBDb21wYW55TWF0ZXJpYWxTZXJ2aWNlIH0gZnJvbSAnLi9jb21wYW55LW1hdGVyaWFsLnNlcnZpY2UnO1xuZXhwb3J0IHsgV2FyZWhvdXNlU2VydmljZSwgV2FyZWhvdXNlU3RvY2tTZXJ2aWNlIH0gZnJvbSAnLi93YXJlaG91c2Uuc2VydmljZSc7XG5leHBvcnQgeyBQdXJjaGFzZU9yZGVyU2VydmljZSwgR29vZHNSZWNlaXB0U2VydmljZSwgU3RvY2tNb3ZlbWVudFNlcnZpY2UsIFN0b2NrQ291bnRTZXJ2aWNlIH0gZnJvbSAnLi9wcm9jdXJlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IExpY2Vuc2VTZXJ2aWNlIH0gZnJvbSAnLi9saWNlbnNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgV29ya1Blcm1pdFNlcnZpY2UgfSBmcm9tICcuL3dvcmstcGVybWl0LnNlcnZpY2UnO1xuZXhwb3J0IHsgRGlhZ25vc3RpY1JlcG9ydFNlcnZpY2UgfSBmcm9tICcuL2RpYWdub3N0aWMtcmVwb3J0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ3VzdG9tU2VydmljZSB9IGZyb20gJy4vY3VzdG9tLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGlnaXRhbFR3aW5TZXJ2aWNlLCBNb2RlbFNlcnZpY2UsIE1vZGVsRmlsZVNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi9kaWdpdGFsLXR3aW4uc2VydmljZSc7XG5leHBvcnQgeyBEeW5hbWljQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL2R5bmFtaWMtY3J1ZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFVwbG9hZFdpdGhSZWZPcHRpb25zIH0gZnJvbSAnLi91cGxvYWQuc2VydmljZSc7XG5leHBvcnQgeyBXb3JrT3JkZXJTZXJ2aWNlIH0gZnJvbSAnLi93b3JrLW9yZGVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgUGxhbnREYXRhU2VydmljZSB9IGZyb20gJy4vcGxhbnQtZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlc2Vydm9pckRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9yZXNlcnZvaXItZGF0YS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpRmVlZGJhY2tTZXJ2aWNlIH0gZnJvbSAnLi9haS1mZWVkYmFjay5zZXJ2aWNlJztcbmV4cG9ydCB7IERldmljZUdhdGV3YXlTZXJ2aWNlIH0gZnJvbSAnLi9kZXZpY2UtZ2F0ZXdheS5zZXJ2aWNlJztcbmV4cG9ydCB7IE91dGFnZVJlc291cmNlU2VydmljZSB9IGZyb20gJy4vb3V0YWdlLXJlc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5lcmd5UHJvZHVjdGlvblNlcnZpY2UgfSBmcm9tICcuL2VuZXJneS1wcm9kdWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRW5lcmd5QW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4vZW5lcmd5LWFuYWx5dGljcy5zZXJ2aWNlJztcbmV4cG9ydCB7IE1lYXN1cmVtZW50VW5pdFNlcnZpY2UgfSBmcm9tICcuL21lYXN1cmVtZW50LXVuaXQuc2VydmljZSc7XG5leHBvcnQgeyBQcm9wZXJ0eVRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4vcHJvcGVydHktdGVtcGxhdGUuc2VydmljZSc7XG5leHBvcnQge1xuICBBaXBTZXR0aW5nc1NlcnZpY2UsIEFpcEFzc2Vzc21lbnRTZXJ2aWNlLCBJbnZlc3RtZW50T3B0aW9uU2VydmljZSxcbiAgQWlwUGxhblNlcnZpY2UsIEFpcFNjZW5hcmlvU2VydmljZSwgQWlwQW5hbHlzaXNTZXJ2aWNlLFxuICBBaXBSZXNvdXJjZUNvbnN0cmFpbnRTZXJ2aWNlLCBBaXBOZXR3b3JrTm9kZVNlcnZpY2UsIEFpcFBlcmZvcm1hbmNlUmVjb3JkU2VydmljZSxcbn0gZnJvbSAnLi9haXAuc2VydmljZSc7XG5leHBvcnQge1xuICBEZWZlcnJhbEV2YWx1YXRpb25TZXJ2aWNlLCBEZWZlcnJhbENvbnN0cmFpbnRSdWxlU2VydmljZSwgRGVmZXJyYWxEZWNpc2lvblNlcnZpY2UsXG59IGZyb20gJy4vZGVmZXJyYWwuc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXguc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhOb2RlU2VydmljZSB9IGZyb20gJy4vY29ydGV4LW5vZGUuc2VydmljZSc7XG5leHBvcnQgeyBDb3J0ZXhFdmVudFNlcnZpY2UgfSBmcm9tICcuL2NvcnRleC1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvcnRleEluc2lnaHRTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXgtaW5zaWdodC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFJpc2tBbmFseXNpc1NlcnZpY2UgfSBmcm9tICcuL2FpcC1hbmFseXNpcy5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcEZpbmFuY2lhbFNlcnZpY2UgfSBmcm9tICcuL2FpcC1maW5hbmNpYWwuc2VydmljZSc7XG5leHBvcnQgeyBBaXBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICcuL2FpcC13b3JrZmxvdy5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFJlc291cmNlU2VydmljZSB9IGZyb20gJy4vYWlwLXJlc291cmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwTmV0d29ya0FuYWx5c2lzU2VydmljZSB9IGZyb20gJy4vYWlwLW5ldHdvcmsuc2VydmljZSc7XG5leHBvcnQgeyBBaXBHZW9ncmFwaGljU2VydmljZSB9IGZyb20gJy4vYWlwLWdlb2dyYXBoaWMuc2VydmljZSc7XG5leHBvcnQgeyBBaXBQZXJmb3JtYW5jZVNlcnZpY2UgfSBmcm9tICcuL2FpcC1wZXJmb3JtYW5jZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEFub21hbHlEZXRlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9hbm9tYWx5LWRldGVjdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IFNjaGVkdWxlZFJlcG9ydFNlcnZpY2UgfSBmcm9tICcuL3NjaGVkdWxlZC1yZXBvcnQuc2VydmljZSc7XG5leHBvcnQgeyBFbnRpdHlDb21tZW50U2VydmljZSB9IGZyb20gJy4vZW50aXR5LWNvbW1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBBdWRpdEVudHJ5U2VydmljZSB9IGZyb20gJy4vYXVkaXQtZW50cnkuc2VydmljZSc7XG5leHBvcnQgeyBUaHJlc2hvbGRBbGVydFJ1bGVTZXJ2aWNlIH0gZnJvbSAnLi90aHJlc2hvbGQtYWxlcnQtcnVsZS5zZXJ2aWNlJztcbmV4cG9ydCB7IENtc0NvbnRlbnRUeXBlU2VydmljZSwgQ21zRGF0YVNlcnZpY2UgfSBmcm9tICcuL2Ntcy5zZXJ2aWNlJztcbmV4cG9ydCB7IENtc01lbnVIZWxwZXIsIENtc01lbnVJdGVtLCBDbXNNZW51U2VjdGlvbiB9IGZyb20gJy4vY21zLW1lbnUuaGVscGVyJztcbiJdfQ==
104
+ export { GridService, GridNodeService, GridLinkService } from './grid.service';
105
+ export { PluginService } from './plugin.service';
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckYsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JJLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxpQ0FBaUMsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9JLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw4QkFBOEIsRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25JLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSwyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xKLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pMLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdPLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsY0FBYyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUMzRCxtQkFBbUIsRUFBRSwyQkFBMkIsRUFDaEQsVUFBVSxFQUFFLGtCQUFrQixFQUM5QixvQkFBb0IsRUFDcEIsZUFBZSxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUM5RCxhQUFhLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQ3hELDZCQUE2QixFQUFFLG1CQUFtQixFQUNsRCwwQkFBMEIsR0FDM0IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsdUJBQXVCLElBQUksZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakosT0FBTyxFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFDTCxpQkFBaUIsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFDL0QsdUJBQXVCLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLEVBQ3ZFLDZCQUE2QixFQUFFLHdCQUF3QixFQUFFLGlCQUFpQixFQUMxRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFDOUMsNEJBQTRCLEVBQUUsK0JBQStCLEVBQUUsNkJBQTZCLEdBQzdGLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLGVBQWUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFDN0QsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQ2pFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFDdEQsMEJBQTBCLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUNuRSx5QkFBeUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFDL0QsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQzlELG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFDMUQsY0FBYyxFQUFFLHlCQUF5QixFQUFFLDhCQUE4QixFQUN6RSxpQ0FBaUMsR0FDbEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLCtCQUErQixFQUMvQiw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixvQkFBb0IsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHVCQUF1QixFQUNqRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQ3RELDRCQUE0QixFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixHQUNqRixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wseUJBQXlCLEVBQUUsNkJBQTZCLEVBQUUsdUJBQXVCLEdBQ2xGLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBK0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBCYXNlQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL2Jhc2UtY3J1ZC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpVXNhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9haS11c2FnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBhbnlTZXJ2aWNlIH0gZnJvbSAnLi9jb21wYW55LnNlcnZpY2UnO1xuZXhwb3J0IHsgVW5pdFNlcnZpY2UgfSBmcm9tICcuL3VuaXQuc2VydmljZSc7XG5leHBvcnQgeyBDb21wb25lbnRTZXJ2aWNlLCBDb21wb25lbnRHcm91cFNlcnZpY2UsIFN1YkFzc2VtYmx5U2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgSW5zcGVjdGlvblNlcnZpY2UsIEluc3BlY3Rpb25Db21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi9pbnNwZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRmFpbHVyZVNlcnZpY2UsIEZhaWx1cmVDYXVzZVNlcnZpY2UsIEZhaWx1cmVBY3Rpb25TZXJ2aWNlLCBDb3JyZWN0aXZlQWN0aW9uU2VydmljZSB9IGZyb20gJy4vZmFpbHVyZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEludGVydmVudGlvblNlcnZpY2UgfSBmcm9tICcuL2ludGVydmVudGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7IE1haW50ZW5hbmNlUmVjb3JkU2VydmljZSB9IGZyb20gJy4vbWFpbnRlbmFuY2UtcmVjb3JkLnNlcnZpY2UnO1xuZXhwb3J0IHsgSW50ZXJ2ZW50aW9uUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuL2ludGVydmVudGlvbi1yZXF1ZXN0LnNlcnZpY2UnO1xuZXhwb3J0IHsgTWF0ZXJpYWxJdGVtU2VydmljZSwgTWF0ZXJpYWxJdGVtSGlzdG9yeVNlcnZpY2UsIE1hdGVyaWFsQ2F0ZWdvcnlTZXJ2aWNlLCBTcGFyZVBhcnRTZXJ2aWNlIH0gZnJvbSAnLi9tYXRlcmlhbC1pdGVtLnNlcnZpY2UnO1xuZXhwb3J0IHsgTWF0ZXJpYWxDb25zdW1hYmxlU2VydmljZSwgTWF0ZXJpYWxDb25zdW1hYmxlQ2F0ZWdvcnlTZXJ2aWNlLCBNYXRlcmlhbENvbnN1bWFibGVIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtY29uc3VtYWJsZS5zZXJ2aWNlJztcbmV4cG9ydCB7IE1hdGVyaWFsSW5zdHJ1bWVudFNlcnZpY2UsIE1hdGVyaWFsSW5zdHJ1bWVudEhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi9tYXRlcmlhbC1pbnN0cnVtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgTWF0ZXJpYWxUb29saW5nU2VydmljZSwgTWF0ZXJpYWxUb29saW5nQ2F0ZWdvcnlTZXJ2aWNlLCBNYXRlcmlhbFRvb2xpbmdIaXN0b3J5U2VydmljZSB9IGZyb20gJy4vbWF0ZXJpYWwtdG9vbGluZy5zZXJ2aWNlJztcbmV4cG9ydCB7IFNlbnNvclNlcnZpY2UgfSBmcm9tICcuL3NlbnNvci5zZXJ2aWNlJztcbmV4cG9ydCB7IEFsZXJ0U2VydmljZSB9IGZyb20gJy4vYWxlcnQuc2VydmljZSc7XG5leHBvcnQgeyBQcm9qZWN0U2VydmljZSB9IGZyb20gJy4vcHJvamVjdC5zZXJ2aWNlJztcbmV4cG9ydCB7IENhcGV4UHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL2NhcGV4LXByb2plY3Quc2VydmljZSc7XG5leHBvcnQgeyBCdWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9idWRnZXQuc2VydmljZSc7XG5leHBvcnQgeyBCaWRTZXJ2aWNlIH0gZnJvbSAnLi9iaWQuc2VydmljZSc7XG5leHBvcnQgeyBUZ0ZpbGVTZXJ2aWNlLCBUZ0ZvbGRlclNlcnZpY2UsIERyYXdpbmdTZXJ2aWNlLCBEcmF3aW5nQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9kb2N1bWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBsaWFuY2VPYmxpZ2F0aW9uU2VydmljZSwgQ29tcGxpYW5jZVN1Ym1pc3Npb25TZXJ2aWNlLCBFbnZpcm9ubWVudGFsUGVybWl0U2VydmljZSwgQ2VydGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2NvbXBsaWFuY2Uuc2VydmljZSc7XG5leHBvcnQgeyBBbmNpbGxhcnlTZXJ2aWNlQ3J1ZFNlcnZpY2UsIEdyaWRDb25uZWN0aW9uU2VydmljZSwgQ3VydGFpbG1lbnRFdmVudFNlcnZpY2UsIE91dGFnZUV2ZW50U2VydmljZSwgT3BlcmF0aW5nRXZlbnRTZXJ2aWNlLCBTaXRlQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuL2VuZXJneS5zZXJ2aWNlJztcbmV4cG9ydCB7IFdhcnJhbnR5Q29udHJhY3RTZXJ2aWNlLCBXYXJyYW50eUNsYWltU2VydmljZSB9IGZyb20gJy4vd2FycmFudHkuc2VydmljZSc7XG5leHBvcnQgeyBWZWhpY2xlU2VydmljZSwgRHJpdmVyU2VydmljZSwgVmVoaWNsZVRyaXBTZXJ2aWNlLCBWZWhpY2xlSW5zcGVjdGlvblNlcnZpY2UsIFZlaGljbGVNYWludGVuYW5jZVNlcnZpY2UsIEZ1ZWxSZWNvcmRTZXJ2aWNlLCBHZW9mZW5jZVNlcnZpY2UsIEdlb2ZlbmNlRXZlbnRTZXJ2aWNlLCBHcHNMb2NhdGlvblNlcnZpY2UsIFRyYWNrZWRFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi9mbGVldC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNsYUJyZWFjaFJlY29yZFNlcnZpY2UgfSBmcm9tICcuL3NsYS5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydGluZ1NlcnZpY2UgfSBmcm9tICcuL3JlcG9ydGluZy5zZXJ2aWNlJztcbmV4cG9ydCB7IEJ1bGtPcGVyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9idWxrLW9wZXJhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIEFydGljbGVTZXJ2aWNlLCBBcnRpY2xlQ2F0ZWdvcnlTZXJ2aWNlLCBBcnRpY2xlVG9waWNTZXJ2aWNlLFxuICBCZXN0UHJhY3RpY2VTZXJ2aWNlLCBCZXN0UHJhY3RpY2VDYXRlZ29yeVNlcnZpY2UsXG4gIEZhcVNlcnZpY2UsIEZhcUNhdGVnb3J5U2VydmljZSxcbiAgTGVzc29uTGVhcm5lZFNlcnZpY2UsXG4gIFJlc291cmNlU2VydmljZSwgUmVzb3VyY2VDYXRlZ29yeVNlcnZpY2UsIFJlc291cmNlVG9waWNTZXJ2aWNlLFxuICBNb2R1bGVTZXJ2aWNlLCBNb2R1bGVMZWFybmluZ1NlcnZpY2UsIE1vZHVsZVZpZGVvU2VydmljZSxcbiAgTGVhcm5pbmdNb2R1bGVDYXRlZ29yeVNlcnZpY2UsIFVzZXJMZWFybmluZ1NlcnZpY2UsXG4gIFRyYWluaW5nQ2VydGlmaWNhdGVTZXJ2aWNlLFxufSBmcm9tICcuL2tub3dsZWRnZS5zZXJ2aWNlJztcbmV4cG9ydCB7IFJvb3RDYXVzZUFuYWx5c2lzU2VydmljZSwgU3lzdGVtaWNSaXNrQXNzZXNzbWVudFNlcnZpY2UgfSBmcm9tICcuL3F1YWxpdHkuc2VydmljZSc7XG5leHBvcnQgeyBBcHByb3ZhbFdvcmtmbG93U2VydmljZSBhcyBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICcuL3dvcmtmbG93LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ3VzdG9tRmllbGREZWZpbml0aW9uU2VydmljZSwgQ3VzdG9tRmllbGRTZXJ2aWNlLCBDdXN0b21Gb3JtU2VydmljZSB9IGZyb20gJy4vY3VzdG9tLWZpZWxkLnNlcnZpY2UnO1xuZXhwb3J0IHsgVXNlclNlcnZpY2UsIFVzZXJQcm9maWxlU2VydmljZSwgVXNlck5vdGlmaWNhdGlvblNlcnZpY2UsIFJvbGVTZXJ2aWNlLCBQcm9maWxlU2VydmljZSwgUHJvZmlsZVBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi91c2VyLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tbXVuaXR5UG9zdFNlcnZpY2UsIENvbW11bml0eUNvbW1lbnRTZXJ2aWNlLCBGZWVkYmFja1NlcnZpY2UgfSBmcm9tICcuL2NvbW11bml0eS5zZXJ2aWNlJztcbmV4cG9ydCB7IEV2ZW50U2VydmljZSB9IGZyb20gJy4vZXZlbnQuc2VydmljZSc7XG5leHBvcnQgeyBMb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuL2xvY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGVwYXJ0bWVudFNlcnZpY2UgfSBmcm9tICcuL2RlcGFydG1lbnQuc2VydmljZSc7XG5leHBvcnQgeyBSb29tU2VydmljZSB9IGZyb20gJy4vcm9vbS5zZXJ2aWNlJztcbmV4cG9ydCB7IFVwbG9hZFNlcnZpY2UgfSBmcm9tICcuL3VwbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpU2VydmljZSB9IGZyb20gJy4vYWkuc2VydmljZSc7XG5leHBvcnQgeyBBZ2VudFNlcnZpY2UgfSBmcm9tICcuL2FnZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgU2FuZGJveFNlcnZpY2UgfSBmcm9tICcuL3NhbmRib3guc2VydmljZSc7XG5leHBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi9leHRlbnNpb24uc2VydmljZSc7XG5leHBvcnQgeyBEYXNoYm9hcmRTZXJ2aWNlIH0gZnJvbSAnLi9kYXNoYm9hcmQuc2VydmljZSc7XG5leHBvcnQgeyBFeHBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9leHBvcnQuc2VydmljZSc7XG5leHBvcnQgeyBUb2RvU2VydmljZSB9IGZyb20gJy4vdG9kby5zZXJ2aWNlJztcbmV4cG9ydCB7IFRpY2tldFNlcnZpY2UgfSBmcm9tICcuL3RpY2tldC5zZXJ2aWNlJztcbmV4cG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi9ub3RlLnNlcnZpY2UnO1xuZXhwb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4vbG9nLnNlcnZpY2UnO1xuZXhwb3J0IHsgTG9naW5IaXN0b3J5U2VydmljZSB9IGZyb20gJy4vbG9naW4taGlzdG9yeS5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIEdhdGVTeXN0ZW1TZXJ2aWNlLCBBbGVydERlZmluaXRpb25TZXJ2aWNlLCBNYW51YWxSZWFkaW5nU2VydmljZSxcbiAgTGFib3JhdG9yeVJlc3VsdFNlcnZpY2UsIEZpc2hNb25pdG9yaW5nU2VydmljZSwgUmVndWxhdG9yeVVwZGF0ZVNlcnZpY2UsXG4gIE9wZXJhdGlvbmFsT2JzZXJ2YXRpb25TZXJ2aWNlLCBCYXRoeW1ldHJpY1N1cnZleVNlcnZpY2UsIEFJU2NlbmFyaW9TZXJ2aWNlLFxuICBSZXNlcnZvaXJUaW1lU2VyaWVzU2VydmljZSwgR2F0ZUNvbnRyb2xTZXJ2aWNlLFxuICBFbGV2YXRpb25TdG9yYWdlQ3VydmVTZXJ2aWNlLCBTZWRpbWVudFJlbW92YWxPcGVyYXRpb25TZXJ2aWNlLCBTZWRpbWVudE1hbmFnZW1lbnRQbGFuU2VydmljZSxcbn0gZnJvbSAnLi9yZXNlcnZvaXIuc2VydmljZSc7XG5leHBvcnQge1xuICBKb2JUaXRsZVNlcnZpY2UsIENvdW50cnlTZXJ2aWNlLCBTdXBwbGllclNlcnZpY2UsIEZvbnRTZXJ2aWNlLFxuICBGb3JtU2VydmljZSwgRm9ybUNhdGVnb3J5U2VydmljZSwgSW5jaWRlbnRTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSxcbiAgS3BpRXZlbnRTZXJ2aWNlLCBUdXJiaW5lVHlwZVNlcnZpY2UsIFRlcm1zT2ZVc2VTZXJ2aWNlLFxuICBVbml0U2h1dGRvd25IaXN0b3J5U2VydmljZSwgUHJvcGVydHlTZXJ2aWNlLCBQcm9wZXJ0aWVzR3JvdXBTZXJ2aWNlLFxuICBQcm9wZXJ0aWVzVGVtcGxhdGVTZXJ2aWNlLCBNZWFzdXJlbWVudFNlcnZpY2UsIE1pSGlzdG9yeVNlcnZpY2UsXG4gIE1pUmVxdWVzdFNlcnZpY2UsIFJlY2hhcmdlUmVxdWVzdFNlcnZpY2UsIFJlZnVyYmlzaG1lbnRTZXJ2aWNlLFxuICBMb2dpblJlcXVlc3RTZXJ2aWNlLCBNYWludGVuYW5jZUpzYVNlcnZpY2UsIEpzYUl0ZW1TZXJ2aWNlLFxuICBKc2FTdGVwU2VydmljZSwgQ29tcG9uZW50Q2hlY2tsaXN0U2VydmljZSwgQ29tcG9uZW50Q2hlY2tsaXN0R3JvdXBTZXJ2aWNlLFxuICBDb21wb25lbnRDaGVja2xpc3RUZW1wbGF0ZVNlcnZpY2UsXG59IGZyb20gJy4vbWlzYy1jcnVkLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ2xpZW50QXJ0aWNsZVNlcnZpY2UgfSBmcm9tICcuL2NsaWVudC1hcnRpY2xlLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgQ29uZGl0aW9uQXNzZXNzbWVudFRlc3RTZXJ2aWNlLFxuICBDYXRQbGFubmluZ0VxdWlwbWVudEl0ZW1TZXJ2aWNlLFxuICBDYXRQZXJzb25uZWxBc3NpZ25tZW50U2VydmljZSxcbiAgQ2F0RXhlY3V0aW9uUmVzdWx0U2VydmljZSxcbiAgQ2F0U2lnbk9mZlNlcnZpY2UsXG4gIENhdEF0dGFjaG1lbnRTZXJ2aWNlLFxufSBmcm9tICcuL2NhdC5zZXJ2aWNlJztcbmV4cG9ydCB7IE1haW50ZW5hbmNlUGxhblNlcnZpY2UgfSBmcm9tICcuL21haW50ZW5hbmNlLXBsYW4uc2VydmljZSc7XG5leHBvcnQgeyBSZWN1cnJpbmdFdmVudFNlcnZpY2UgfSBmcm9tICcuL3JlY3VycmluZy1ldmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IFRpbWVFbnRyeVNlcnZpY2UgfSBmcm9tICcuL3RpbWUtZW50cnkuc2VydmljZSc7XG5leHBvcnQgeyBTbGFQb2xpY3lTZXJ2aWNlIH0gZnJvbSAnLi9zbGEtcG9saWN5LnNlcnZpY2UnO1xuZXhwb3J0IHsgQXNzZXRMaWZlY3ljbGVTZXJ2aWNlIH0gZnJvbSAnLi9hc3NldC1saWZlY3ljbGUuc2VydmljZSc7XG5leHBvcnQgeyBJbmFjdGl2ZUNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuL2luYWN0aXZlLWNvbXBvbmVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBvbmVudExvY2F0aW9uU2VydmljZSB9IGZyb20gJy4vY29tcG9uZW50LWxvY2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcG9uZW50SW5mb1NlcnZpY2UgfSBmcm9tICcuL2NvbXBvbmVudC1pbmZvLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29tcGFueU1hdGVyaWFsVHlwZVNlcnZpY2UgfSBmcm9tICcuL2NvbXBhbnktbWF0ZXJpYWwtdHlwZS5zZXJ2aWNlJztcbmV4cG9ydCB7IENvbXBhbnlNYXRlcmlhbFNlcnZpY2UgfSBmcm9tICcuL2NvbXBhbnktbWF0ZXJpYWwuc2VydmljZSc7XG5leHBvcnQgeyBXYXJlaG91c2VTZXJ2aWNlLCBXYXJlaG91c2VTdG9ja1NlcnZpY2UgfSBmcm9tICcuL3dhcmVob3VzZS5zZXJ2aWNlJztcbmV4cG9ydCB7IFB1cmNoYXNlT3JkZXJTZXJ2aWNlLCBHb29kc1JlY2VpcHRTZXJ2aWNlLCBTdG9ja01vdmVtZW50U2VydmljZSwgU3RvY2tDb3VudFNlcnZpY2UgfSBmcm9tICcuL3Byb2N1cmVtZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgTGljZW5zZVNlcnZpY2UgfSBmcm9tICcuL2xpY2Vuc2Uuc2VydmljZSc7XG5leHBvcnQgeyBXb3JrUGVybWl0U2VydmljZSB9IGZyb20gJy4vd29yay1wZXJtaXQuc2VydmljZSc7XG5leHBvcnQgeyBEaWFnbm9zdGljUmVwb3J0U2VydmljZSB9IGZyb20gJy4vZGlhZ25vc3RpYy1yZXBvcnQuc2VydmljZSc7XG5leHBvcnQgeyBDdXN0b21TZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20uc2VydmljZSc7XG5leHBvcnQgeyBEaWdpdGFsVHdpblNlcnZpY2UsIE1vZGVsU2VydmljZSwgTW9kZWxGaWxlU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuL2RpZ2l0YWwtdHdpbi5zZXJ2aWNlJztcbmV4cG9ydCB7IER5bmFtaWNDcnVkU2VydmljZSB9IGZyb20gJy4vZHluYW1pYy1jcnVkLnNlcnZpY2UnO1xuZXhwb3J0IHsgVXBsb2FkV2l0aFJlZk9wdGlvbnMgfSBmcm9tICcuL3VwbG9hZC5zZXJ2aWNlJztcbmV4cG9ydCB7IFdvcmtPcmRlclNlcnZpY2UgfSBmcm9tICcuL3dvcmstb3JkZXIuc2VydmljZSc7XG5leHBvcnQgeyBQbGFudERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9wbGFudC1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVzZXJ2b2lyRGF0YVNlcnZpY2UgfSBmcm9tICcuL3Jlc2Vydm9pci1kYXRhLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlGZWVkYmFja1NlcnZpY2UgfSBmcm9tICcuL2FpLWZlZWRiYWNrLnNlcnZpY2UnO1xuZXhwb3J0IHsgRGV2aWNlR2F0ZXdheVNlcnZpY2UgfSBmcm9tICcuL2RldmljZS1nYXRld2F5LnNlcnZpY2UnO1xuZXhwb3J0IHsgT3V0YWdlUmVzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9vdXRhZ2UtcmVzb3VyY2Uuc2VydmljZSc7XG5leHBvcnQgeyBFbmVyZ3lQcm9kdWN0aW9uU2VydmljZSB9IGZyb20gJy4vZW5lcmd5LXByb2R1Y3Rpb24uc2VydmljZSc7XG5leHBvcnQgeyBFbmVyZ3lBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi9lbmVyZ3ktYW5hbHl0aWNzLnNlcnZpY2UnO1xuZXhwb3J0IHsgTWVhc3VyZW1lbnRVbml0U2VydmljZSB9IGZyb20gJy4vbWVhc3VyZW1lbnQtdW5pdC5zZXJ2aWNlJztcbmV4cG9ydCB7IFByb3BlcnR5VGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi9wcm9wZXJ0eS10ZW1wbGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIEFpcFNldHRpbmdzU2VydmljZSwgQWlwQXNzZXNzbWVudFNlcnZpY2UsIEludmVzdG1lbnRPcHRpb25TZXJ2aWNlLFxuICBBaXBQbGFuU2VydmljZSwgQWlwU2NlbmFyaW9TZXJ2aWNlLCBBaXBBbmFseXNpc1NlcnZpY2UsXG4gIEFpcFJlc291cmNlQ29uc3RyYWludFNlcnZpY2UsIEFpcE5ldHdvcmtOb2RlU2VydmljZSwgQWlwUGVyZm9ybWFuY2VSZWNvcmRTZXJ2aWNlLFxufSBmcm9tICcuL2FpcC5zZXJ2aWNlJztcbmV4cG9ydCB7XG4gIERlZmVycmFsRXZhbHVhdGlvblNlcnZpY2UsIERlZmVycmFsQ29uc3RyYWludFJ1bGVTZXJ2aWNlLCBEZWZlcnJhbERlY2lzaW9uU2VydmljZSxcbn0gZnJvbSAnLi9kZWZlcnJhbC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvcnRleFNlcnZpY2UgfSBmcm9tICcuL2NvcnRleC5zZXJ2aWNlJztcbmV4cG9ydCB7IENvcnRleE5vZGVTZXJ2aWNlIH0gZnJvbSAnLi9jb3J0ZXgtbm9kZS5zZXJ2aWNlJztcbmV4cG9ydCB7IENvcnRleEV2ZW50U2VydmljZSB9IGZyb20gJy4vY29ydGV4LWV2ZW50LnNlcnZpY2UnO1xuZXhwb3J0IHsgQ29ydGV4SW5zaWdodFNlcnZpY2UgfSBmcm9tICcuL2NvcnRleC1pbnNpZ2h0LnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwUmlza0FuYWx5c2lzU2VydmljZSB9IGZyb20gJy4vYWlwLWFuYWx5c2lzLnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwRmluYW5jaWFsU2VydmljZSB9IGZyb20gJy4vYWlwLWZpbmFuY2lhbC5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFdvcmtmbG93U2VydmljZSB9IGZyb20gJy4vYWlwLXdvcmtmbG93LnNlcnZpY2UnO1xuZXhwb3J0IHsgQWlwUmVzb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9haXAtcmVzb3VyY2Uuc2VydmljZSc7XG5leHBvcnQgeyBBaXBOZXR3b3JrQW5hbHlzaXNTZXJ2aWNlIH0gZnJvbSAnLi9haXAtbmV0d29yay5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcEdlb2dyYXBoaWNTZXJ2aWNlIH0gZnJvbSAnLi9haXAtZ2VvZ3JhcGhpYy5zZXJ2aWNlJztcbmV4cG9ydCB7IEFpcFBlcmZvcm1hbmNlU2VydmljZSB9IGZyb20gJy4vYWlwLXBlcmZvcm1hbmNlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQW5vbWFseURldGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL2Fub21hbHktZGV0ZWN0aW9uLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2NoZWR1bGVkUmVwb3J0U2VydmljZSB9IGZyb20gJy4vc2NoZWR1bGVkLXJlcG9ydC5zZXJ2aWNlJztcbmV4cG9ydCB7IEVudGl0eUNvbW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi9lbnRpdHktY29tbWVudC5zZXJ2aWNlJztcbmV4cG9ydCB7IEF1ZGl0RW50cnlTZXJ2aWNlIH0gZnJvbSAnLi9hdWRpdC1lbnRyeS5zZXJ2aWNlJztcbmV4cG9ydCB7IFRocmVzaG9sZEFsZXJ0UnVsZVNlcnZpY2UgfSBmcm9tICcuL3RocmVzaG9sZC1hbGVydC1ydWxlLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ21zQ29udGVudFR5cGVTZXJ2aWNlLCBDbXNEYXRhU2VydmljZSB9IGZyb20gJy4vY21zLnNlcnZpY2UnO1xuZXhwb3J0IHsgQ21zTWVudUhlbHBlciwgQ21zTWVudUl0ZW0sIENtc01lbnVTZWN0aW9uIH0gZnJvbSAnLi9jbXMtbWVudS5oZWxwZXInO1xuZXhwb3J0IHsgR3JpZFNlcnZpY2UsIEdyaWROb2RlU2VydmljZSwgR3JpZExpbmtTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuZXhwb3J0IHsgUGx1Z2luU2VydmljZSB9IGZyb20gJy4vcGx1Z2luLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,49 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../core/http-client.service";
5
+ /**
6
+ * Installable modules (plugins) for the current organization.
7
+ *
8
+ * `list()` is readable by any authenticated user — the frontend uses it to decide which modules /
9
+ * menus to reveal. `install()` / `uninstall()` require an admin and run the plugin's isolated
10
+ * migrations on the tenant DB.
11
+ */
12
+ export class PluginService {
13
+ http;
14
+ base = '/api/plugins';
15
+ constructor(http) {
16
+ this.http = http;
17
+ }
18
+ /** Catalog of all plugins with this organization's install status. */
19
+ list() {
20
+ return this.http.get(this.base);
21
+ }
22
+ /** True if the given plugin is installed for the current organization. */
23
+ isInstalled(pluginId) {
24
+ return new Observable((sub) => {
25
+ const s = this.list().subscribe({
26
+ next: (r) => {
27
+ const found = (r.data ?? []).find((p) => p.id === pluginId);
28
+ sub.next(!!found?.installed);
29
+ sub.complete();
30
+ },
31
+ error: (e) => sub.error(e),
32
+ });
33
+ return () => s.unsubscribe();
34
+ });
35
+ }
36
+ install(pluginId) {
37
+ return this.http.post(`${this.base}/${pluginId}/install`, {});
38
+ }
39
+ uninstall(pluginId) {
40
+ return this.http.post(`${this.base}/${pluginId}/uninstall`, {});
41
+ }
42
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PluginService, deps: [{ token: i1.TgmHttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
43
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PluginService, providedIn: 'root' });
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PluginService, decorators: [{
46
+ type: Injectable,
47
+ args: [{ providedIn: 'root' }]
48
+ }], ctorParameters: () => [{ type: i1.TgmHttpClient }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2FwaS9wbHVnaW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQUtsQzs7Ozs7O0dBTUc7QUFFSCxNQUFNLE9BQU8sYUFBYTtJQUdKO0lBRlosSUFBSSxHQUFHLGNBQWMsQ0FBQztJQUU5QixZQUFvQixJQUFtQjtRQUFuQixTQUFJLEdBQUosSUFBSSxDQUFlO0lBQUcsQ0FBQztJQUUzQyxzRUFBc0U7SUFDdEUsSUFBSTtRQUNGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQThCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsMEVBQTBFO0lBQzFFLFdBQVcsQ0FBQyxRQUFnQjtRQUMxQixPQUFPLElBQUksVUFBVSxDQUFVLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztnQkFDOUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1YsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztvQkFDNUQsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUM3QixHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUMzQixDQUFDLENBQUM7WUFDSCxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsUUFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBK0IsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBb0IsR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7d0dBL0JVLGFBQWE7NEdBQWIsYUFBYSxjQURBLE1BQU07OzRGQUNuQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRnbUh0dHBDbGllbnQgfSBmcm9tICcuLi8uLi9jb3JlL2h0dHAtY2xpZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBpUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS5tb2RlbHMnO1xuaW1wb3J0IHsgSW5zdGFsbGVkUGx1Z2luLCBQbHVnaW5TdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXBpL3BsdWdpbi5tb2RlbHMnO1xuXG4vKipcbiAqIEluc3RhbGxhYmxlIG1vZHVsZXMgKHBsdWdpbnMpIGZvciB0aGUgY3VycmVudCBvcmdhbml6YXRpb24uXG4gKlxuICogYGxpc3QoKWAgaXMgcmVhZGFibGUgYnkgYW55IGF1dGhlbnRpY2F0ZWQgdXNlciDigJQgdGhlIGZyb250ZW5kIHVzZXMgaXQgdG8gZGVjaWRlIHdoaWNoIG1vZHVsZXMgL1xuICogbWVudXMgdG8gcmV2ZWFsLiBgaW5zdGFsbCgpYCAvIGB1bmluc3RhbGwoKWAgcmVxdWlyZSBhbiBhZG1pbiBhbmQgcnVuIHRoZSBwbHVnaW4ncyBpc29sYXRlZFxuICogbWlncmF0aW9ucyBvbiB0aGUgdGVuYW50IERCLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFBsdWdpblNlcnZpY2Uge1xuICBwcml2YXRlIGJhc2UgPSAnL2FwaS9wbHVnaW5zJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IFRnbUh0dHBDbGllbnQpIHt9XG5cbiAgLyoqIENhdGFsb2cgb2YgYWxsIHBsdWdpbnMgd2l0aCB0aGlzIG9yZ2FuaXphdGlvbidzIGluc3RhbGwgc3RhdHVzLiAqL1xuICBsaXN0KCk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8UGx1Z2luU3RhdHVzW10+PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8QXBpUmVzcG9uc2U8UGx1Z2luU3RhdHVzW10+Pih0aGlzLmJhc2UpO1xuICB9XG5cbiAgLyoqIFRydWUgaWYgdGhlIGdpdmVuIHBsdWdpbiBpcyBpbnN0YWxsZWQgZm9yIHRoZSBjdXJyZW50IG9yZ2FuaXphdGlvbi4gKi9cbiAgaXNJbnN0YWxsZWQocGx1Z2luSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxib29sZWFuPigoc3ViKSA9PiB7XG4gICAgICBjb25zdCBzID0gdGhpcy5saXN0KCkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHIpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IChyLmRhdGEgPz8gW10pLmZpbmQoKHApID0+IHAuaWQgPT09IHBsdWdpbklkKTtcbiAgICAgICAgICBzdWIubmV4dCghIWZvdW5kPy5pbnN0YWxsZWQpO1xuICAgICAgICAgIHN1Yi5jb21wbGV0ZSgpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGUpID0+IHN1Yi5lcnJvcihlKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuICgpID0+IHMudW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGluc3RhbGwocGx1Z2luSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8SW5zdGFsbGVkUGx1Z2luPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcGlSZXNwb25zZTxJbnN0YWxsZWRQbHVnaW4+PihgJHt0aGlzLmJhc2V9LyR7cGx1Z2luSWR9L2luc3RhbGxgLCB7fSk7XG4gIH1cblxuICB1bmluc3RhbGwocGx1Z2luSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QXBpUmVzcG9uc2U8dm9pZD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QXBpUmVzcG9uc2U8dm9pZD4+KGAke3RoaXMuYmFzZX0vJHtwbHVnaW5JZH0vdW5pbnN0YWxsYCwge30pO1xuICB9XG59XG4iXX0=
@@ -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