velocious 1.0.663 → 1.0.665

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 (50) hide show
  1. package/README.md +2 -2
  2. package/build/background-jobs/client.js +36 -6
  3. package/build/configuration-types.js +3 -3
  4. package/build/database/query/alter-table-base.js +11 -1
  5. package/build/src/background-jobs/client.d.ts.map +1 -1
  6. package/build/src/background-jobs/client.js +35 -6
  7. package/build/src/configuration-types.d.ts +8 -4
  8. package/build/src/configuration-types.d.ts.map +1 -1
  9. package/build/src/configuration-types.js +4 -4
  10. package/build/src/database/query/alter-table-base.d.ts.map +1 -1
  11. package/build/src/database/query/alter-table-base.js +12 -2
  12. package/build/src/sync/sync-api-client.d.ts +36 -10
  13. package/build/src/sync/sync-api-client.d.ts.map +1 -1
  14. package/build/src/sync/sync-api-client.js +58 -14
  15. package/build/src/sync/sync-client-types.d.ts +41 -2
  16. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  17. package/build/src/sync/sync-client-types.js +20 -3
  18. package/build/src/sync/sync-client.d.ts +112 -3
  19. package/build/src/sync/sync-client.d.ts.map +1 -1
  20. package/build/src/sync/sync-client.js +306 -60
  21. package/build/src/sync/sync-publisher-types.d.ts +36 -3
  22. package/build/src/sync/sync-publisher-types.d.ts.map +1 -1
  23. package/build/src/sync/sync-publisher-types.js +16 -2
  24. package/build/src/sync/sync-publisher.d.ts +22 -3
  25. package/build/src/sync/sync-publisher.d.ts.map +1 -1
  26. package/build/src/sync/sync-publisher.js +134 -13
  27. package/build/src/sync/sync-realtime-bridge.d.ts +11 -5
  28. package/build/src/sync/sync-realtime-bridge.d.ts.map +1 -1
  29. package/build/src/sync/sync-realtime-bridge.js +37 -13
  30. package/build/src/sync/sync-scope-store.d.ts +32 -0
  31. package/build/src/sync/sync-scope-store.d.ts.map +1 -1
  32. package/build/src/sync/sync-scope-store.js +74 -4
  33. package/build/sync/sync-api-client.js +58 -13
  34. package/build/sync/sync-client-types.js +22 -2
  35. package/build/sync/sync-client.js +333 -63
  36. package/build/sync/sync-publisher-types.js +17 -1
  37. package/build/sync/sync-publisher.js +156 -15
  38. package/build/sync/sync-realtime-bridge.js +37 -12
  39. package/build/sync/sync-scope-store.js +79 -3
  40. package/package.json +1 -1
  41. package/src/background-jobs/client.js +36 -6
  42. package/src/configuration-types.js +3 -3
  43. package/src/database/query/alter-table-base.js +11 -1
  44. package/src/sync/sync-api-client.js +58 -13
  45. package/src/sync/sync-client-types.js +22 -2
  46. package/src/sync/sync-client.js +333 -63
  47. package/src/sync/sync-publisher-types.js +17 -1
  48. package/src/sync/sync-publisher.js +156 -15
  49. package/src/sync/sync-realtime-bridge.js +37 -12
  50. package/src/sync/sync-scope-store.js +79 -3
@@ -210,6 +210,24 @@ export type SyncClientOptions = {
210
210
  */
211
211
  tenantHandle?: import("../tenants/tenant-handle.js").default;
212
212
  };
213
+ export type SyncClientScopeCleanup = (args: {
214
+ connection: import("../database/drivers/base.js").default | null;
215
+ scopes: SerializedSyncScope[];
216
+ }) => Promise<void> | void;
217
+ export type SyncClientStopOptions = {
218
+ /**
219
+ * - App-owned local-row purge run atomically with resetScopes.
220
+ */
221
+ cleanup?: SyncClientScopeCleanup;
222
+ /**
223
+ * - Selected scope rows to deactivate and restart from a null cursor.
224
+ */
225
+ resetScopes?: SerializedSyncScope[];
226
+ };
227
+ export type SyncClientReplaceIdentityOptions = SyncClientStopOptions & {
228
+ replace: () => Promise<void> | void;
229
+ subscribeUserScope?: boolean;
230
+ };
213
231
  export type SyncClientConfig = {
214
232
  /**
215
233
  * - Resolves the auth token sent with sync requests.
@@ -242,6 +260,8 @@ export type SyncClientConfig = {
242
260
  */
243
261
  postChanges: (payload: import("./sync-api-client-types.js").SyncChangesRequest & {
244
262
  scope: SerializedSyncScope;
263
+ }, options?: {
264
+ signal?: AbortSignal;
245
265
  }) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>;
246
266
  /**
247
267
  * - Posts one replay request.
@@ -249,6 +269,8 @@ export type SyncClientConfig = {
249
269
  postReplay: (payload: {
250
270
  authenticationToken: string;
251
271
  syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>;
272
+ }, options?: {
273
+ signal?: AbortSignal;
252
274
  }) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>;
253
275
  /**
254
276
  * - Realtime push configuration consumed by `subscribeRealtime(...)`.
@@ -372,6 +394,23 @@ export type SyncClientConfig = {
372
394
  * @property {string} [databaseIdentifier] - Tenant database identifier; required with tenantHandle.
373
395
  * @property {import("../tenants/tenant-handle.js").default} [tenantHandle] - Immutable tenant handle binding every local sync state transition.
374
396
  */
397
+ /**
398
+ * Local cleanup hook that runs transactionally with selected scope resets.
399
+ * @typedef {(args: {connection: import("../database/drivers/base.js").default | null, scopes: SerializedSyncScope[]}) => Promise<void> | void} SyncClientScopeCleanup
400
+ */
401
+ /**
402
+ * Options for stopping and resetting a sync client lifecycle.
403
+ * @typedef {object} SyncClientStopOptions
404
+ * @property {SyncClientScopeCleanup} [cleanup] - App-owned local-row purge run atomically with resetScopes.
405
+ * @property {SerializedSyncScope[]} [resetScopes] - Selected scope rows to deactivate and restart from a null cursor.
406
+ */
407
+ /**
408
+ * Options for atomically replacing the external identity read by sync.client.
409
+ * @typedef {SyncClientStopOptions & {
410
+ * replace: () => Promise<void> | void,
411
+ * subscribeUserScope?: boolean
412
+ * }} SyncClientReplaceIdentityOptions
413
+ */
375
414
  /**
376
415
  * Internal derived sync client configuration built by the SyncClient
377
416
  * constructor — not an app-facing API.
@@ -382,8 +421,8 @@ export type SyncClientConfig = {
382
421
  * @property {() => boolean | Promise<boolean>} [isOnline] - Connectivity gate for pulls and replays. Defaults to always online.
383
422
  * @property {(args: {scope: SerializedSyncScope}) => string | null | Promise<string | null>} [legacyCursor] - Seeds a newly declared scope's cursor (e.g. from a pre-scope cursor store) so devices don't re-pull everything.
384
423
  * @property {(error: Error) => void} [onError] - Reports background replay/pull failures. Defaults to rethrowing.
385
- * @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
386
- * @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
424
+ * @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
425
+ * @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
387
426
  * @property {import("../configuration-types.js").VelociousSyncClientRealtimeConfiguration} [realtime] - Realtime push configuration consumed by `subscribeRealtime(...)`.
388
427
  * @property {import("../remote-request-context.js").RemoteRequestContext} requestContext - Immutable scalar context captured for this client.
389
428
  * @property {Record<string, SyncClientResourceConfig>} resources - Derived resource policies keyed by resource/model name.
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-client-types.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client-types.js"],"names":[],"mappings":"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"}
@@ -88,6 +88,23 @@
88
88
  * @property {string} [databaseIdentifier] - Tenant database identifier; required with tenantHandle.
89
89
  * @property {import("../tenants/tenant-handle.js").default} [tenantHandle] - Immutable tenant handle binding every local sync state transition.
90
90
  */
91
+ /**
92
+ * Local cleanup hook that runs transactionally with selected scope resets.
93
+ * @typedef {(args: {connection: import("../database/drivers/base.js").default | null, scopes: SerializedSyncScope[]}) => Promise<void> | void} SyncClientScopeCleanup
94
+ */
95
+ /**
96
+ * Options for stopping and resetting a sync client lifecycle.
97
+ * @typedef {object} SyncClientStopOptions
98
+ * @property {SyncClientScopeCleanup} [cleanup] - App-owned local-row purge run atomically with resetScopes.
99
+ * @property {SerializedSyncScope[]} [resetScopes] - Selected scope rows to deactivate and restart from a null cursor.
100
+ */
101
+ /**
102
+ * Options for atomically replacing the external identity read by sync.client.
103
+ * @typedef {SyncClientStopOptions & {
104
+ * replace: () => Promise<void> | void,
105
+ * subscribeUserScope?: boolean
106
+ * }} SyncClientReplaceIdentityOptions
107
+ */
91
108
  /**
92
109
  * Internal derived sync client configuration built by the SyncClient
93
110
  * constructor — not an app-facing API.
@@ -98,8 +115,8 @@
98
115
  * @property {() => boolean | Promise<boolean>} [isOnline] - Connectivity gate for pulls and replays. Defaults to always online.
99
116
  * @property {(args: {scope: SerializedSyncScope}) => string | null | Promise<string | null>} [legacyCursor] - Seeds a newly declared scope's cursor (e.g. from a pre-scope cursor store) so devices don't re-pull everything.
100
117
  * @property {(error: Error) => void} [onError] - Reports background replay/pull failures. Defaults to rethrowing.
101
- * @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
102
- * @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
118
+ * @property {(payload: import("./sync-api-client-types.js").SyncChangesRequest & {scope: SerializedSyncScope}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncChangesResponse>} postChanges - Posts one changes request.
119
+ * @property {(payload: {authenticationToken: string, syncs: Array<Record<string, ReturnType<typeof JSON.parse>>>}, options?: {signal?: AbortSignal}) => Promise<import("./sync-api-client-types.js").SyncReplayResponse>} postReplay - Posts one replay request.
103
120
  * @property {import("../configuration-types.js").VelociousSyncClientRealtimeConfiguration} [realtime] - Realtime push configuration consumed by `subscribeRealtime(...)`.
104
121
  * @property {import("../remote-request-context.js").RemoteRequestContext} requestContext - Immutable scalar context captured for this client.
105
122
  * @property {Record<string, SyncClientResourceConfig>} resources - Derived resource policies keyed by resource/model name.
@@ -110,4 +127,4 @@
110
127
  * @property {string | (() => string | null | undefined)} [websocketUrl] - Shared app-lifetime websocket URL the framework builds a client from.
111
128
  */
112
129
  export {};
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7Ozs7Ozs7R0FZRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCxPQUFPLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG4vKipcbiAqIENsaWVudC1kZWNsYXJlZCBzeW5jIHNjb3BlIHNlcmlhbGl6ZWQgZnJvbSBhIG1vZGVsIHF1ZXJ5LlxuICogQHR5cGVkZWYge29iamVjdH0gU2VyaWFsaXplZFN5bmNTY29wZVxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IGNvbmRpdGlvbnMgLSBQbGFpbiBhdHRyaWJ1dGUgY29uZGl0aW9ucyBmcm9tIHRoZSBxdWVyeS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nIHwgbnVsbH0gcmVzb3VyY2VUeXBlIC0gUmVzb3VyY2UvbW9kZWwgbmFtZSB0aGUgc2NvcGUgd2FzIGRlY2xhcmVkIGZvciwgb3IgbnVsbCBmb3IgdGhlIGFsbC10eXBlcyAodXNlcikgc2NvcGUgY292ZXJpbmcgZXZlcnkgdHlwZSB0aGUgc2VydmVyIGF1dGhvcml6ZXMgZm9yIHRoZSBjYWxsZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW293bmVyXSAtIExvY2FsIHBhcnRpdGlvbiBrZXk6IHRoZSBhdXRoZW50aWNhdGVkIGlkZW50aXR5IHRoYXQgZGVjbGFyZWQgdGhlIHNjb3BlLiBVc2VkIG9ubHkgdG8gcGFydGl0aW9uIHRoZSBsb2NhbCBzY29wZS9jdXJzb3Igc3RvcmUgKG5ldmVyIHNlbnQgdG8gdGhlIHNlcnZlciBhcyBzY29wZSBjb25kaXRpb25zKSwgc28gYSB1c2VyIHNjb3BlJ3MgZW1wdHktY29uZGl0aW9ucyBjdXJzb3IgZG9lcyBub3QgbGVhayBhY3Jvc3MgYWNjb3VudHMgb24gYSBzaGFyZWQgZGV2aWNlLlxuICovXG5cbi8qKlxuICogU3RhdGljIHJlYWx0aW1lIGNoYW5uZWwgZGVjbGFyYXRpb24gb24gYSBtb2RlbCdzIGBzdGF0aWMgc3luY2AsIGZvciBjaGFubmVsc1xuICogd2hvc2UgbmFtZSBhbmQgcGFyYW1zIGFyZSBzdGF0aWMuXG4gKiBAZGVwcmVjYXRlZCBEZWNsYXJlZCBwdWxsIHNjb3BlcyBzdWJzY3JpYmUgdGhlIGZyYW1ld29yayBzeW5jIGNoYW5uZWwgYXV0b21hdGljYWxseTsga2VlcCB0aGlzIG9ubHkgZm9yIGxlZ2FjeSBhcHAgY2hhbm5lbHMuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNb2RlbFN5bmNSZWFsdGltZURlY2xhcmF0aW9uXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY2hhbm5lbCAtIFNlcnZlciBjaGFubmVsIG5hbWUgdG8gc3Vic2NyaWJlLlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFtwYXJhbXNdIC0gU3RhdGljIHN1YnNjcmliZSBwYXJhbXMuIFRoZSBmcmFtZXdvcmsgaW5qZWN0cyBgYXV0aGVudGljYXRpb25Ub2tlbmAgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIER1cmFibGUgb3B0aW1pc3RpYy12ZXJzaW9uIHRyYWNraW5nIGNvbmZpZ3VyYXRpb24uIElkZW50aXR5L2dyYW50IGZpZWxkcyBhcmVcbiAqIHJldGFpbmVkIGluIHRoZSBzaGFyZWQgTG9jYWxNdXRhdGlvbkxvZyBtdXRhdGlvbiBzaGFwZSB1c2VkIGJ5IG9mZmxpbmUgc3luYy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWN0b3JEZXZpY2VJZCAtIFN0YWJsZSBkZXZpY2UgaWRlbnRpdHkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYWN0b3JVc2VySWQgLSBTdGFibGUgdXNlciBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gc3RyaW5nfSBjbGllbnRNdXRhdGlvbklkIC0gRHVyYWJsZSBpZGVtcG90ZW5jeS1pZCBnZW5lcmF0b3IuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vbG9jYWwtbXV0YXRpb24tbG9nLmpzXCIpLmRlZmF1bHR9IG11dGF0aW9uTG9nIC0gRXhpc3RpbmcgZHVyYWJsZSBtdXRhdGlvbiBsb2cuXG4gKiBAcHJvcGVydHkgeygpID0+IERhdGV9IFtub3ddIC0gTXV0YXRpb24gY2xvY2suXG4gKiBAcHJvcGVydHkge3N0cmluZ30gb2ZmbGluZUdyYW50SWQgLSBHcmFudCBpZGVudGlmaWVyIHJldGFpbmVkIHdpdGggaW50ZW50LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHBvbGljeUhhc2ggLSBQb2xpY3kgaGFzaCByZXRhaW5lZCB3aXRoIGludGVudC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdmVyc2lvbkF0dHJpYnV0ZV0gLSBBdXRob3JpdGF0aXZlIHZlcnNpb24gYXR0cmlidXRlOyBkZWZhdWx0cyB0byB1cGRhdGVkQXQgd2hlbiBwcmVzZW50LlxuICovXG5cbi8qKlxuICogRGVjbGFyYXRpdmUgcGVyLXJlc291cmNlIHN5bmMgcG9saWN5LlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudFJlc291cmNlQ29uZmlnXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBtZXRhZGF0YU1vZGVsQ2xhc3MgLSBNb2RlbCBtZXRhZGF0YSBvd25lciBmb3Igc2NvcGUgdHJhbnNsYXRpb24gYW5kIGRlcml2ZWQgYXR0cmlidXRlcy5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IG1vZGVsQ2xhc3MgLSBMb2NhbCBtb2RlbCBjbGFzcyBmb3IgdGhpcyByZXNvdXJjZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYXR0cmlidXRlc1wiXX0gW2F0dHJpYnV0ZXNdIC0gUHVsbC1hcHBseSBhdHRyaWJ1dGUgbWFwcGVyLiBSZXF1aXJlZCBmb3IgcmVzb3VyY2VzIHRoYXQgcmVjZWl2ZSBwdWxsZWQgY2hhbmdlcy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZFwiXX0gW2ZpbmRSZWNvcmRdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgcmVjb3JkIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkRm9yRGVsZXRlXCJdfSBbZmluZFJlY29yZEZvckRlbGV0ZV0gLSBDdXN0b20gcHVsbC1hcHBseSBkZWxldGUgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImFmdGVyQXBwbHlcIl19IFthZnRlckFwcGx5XSAtIFBvc3QtYXBwbHkgaG9vay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IFtib29sZWFuQXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIGNvZXJjZWQgdGhyb3VnaCBzeW5jIGJvb2xlYW4gcGFyc2luZyB3aGVuIHF1ZXVlaW5nLlxuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50Q29uZmxpY3RUcmFja2luZ0NvbmZpZ30gW2NvbmZsaWN0VHJhY2tpbmddIC0gT3B0LWluIGR1cmFibGUgYmFzZS12ZXJzaW9uIGNvbmZsaWN0IHRyYWNraW5nLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gQXR0cmlidXRlcyBzdHJpcHBlZCBmcm9tIHF1ZXVlZCBwYXlsb2Fkcy5cbiAqIEBwcm9wZXJ0eSB7XCJ1cHNlcnRcIiB8ICgoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IHN0cmluZyl9IFtzeW5jVHlwZV0gLSBNYXBzIGEgbXV0YXRpb24gb3BlcmF0aW9uIHRvIGEgc3luYyB0eXBlLiBUaGUgXCJ1cHNlcnRcIiBmbGFnIHF1ZXVlcyBjcmVhdGVzIGFuZCB1cGRhdGVzIGFzIFwidXBkYXRlXCIgcm93cyAodGhlIHNlcnZlciB1cHNlcnRzIGJ5IHJlc291cmNlIGlkKSBhbmQgZGVzdHJveXMgYXMgXCJkZWxldGVcIi4gRGVmYXVsdHMgdG8gdGhlIG9wZXJhdGlvbiBuYW1lIHdpdGggZGVzdHJveSBtYXBwZWQgdG8gXCJkZWxldGVcIi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59KSA9PiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj59IFt0cmFja2VkRGF0YV0gLSBDdXN0b20gcXVldWVkLXBheWxvYWQgYnVpbGRlciBmb3IgdHJhY2tlZCBtdXRhdGlvbnMuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCB7b3BlcmF0aW9uczogQXJyYXk8XCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIj59fSBbdHJhY2tdIC0gQXV0b21hdGljIG11dGF0aW9uIHRyYWNraW5nIHBvbGljeS4gT24gYnkgZGVmYXVsdCAoY3JlYXRlcyBhbmQgdXBkYXRlcyBxdWV1ZSBhdXRvbWF0aWNhbGx5KTsgYGZhbHNlYCBvcHRzIHRoZSByZXNvdXJjZSBvdXQsIGB0cnVlYCBhZGRzIGRlc3Ryb3lzLCBge29wZXJhdGlvbnN9YCBuYXJyb3dzIHRoZSB0cmFja2VkIG9wZXJhdGlvbnMuXG4gKiBAcHJvcGVydHkge01vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb259IFtyZWFsdGltZV0gLSBEZXByZWNhdGVkOiBzdGF0aWMgbGVnYWN5IHJlYWx0aW1lIGNoYW5uZWwgdGhpcyByZXNvdXJjZSBzdWJzY3JpYmVzIHRocm91Z2ggYHN1YnNjcmliZVJlYWx0aW1lKC4uLilgLiBEZWNsYXJlZCBwdWxsIHNjb3BlcyBzdWJzY3JpYmUgdGhlIGZyYW1ld29yayBzeW5jIGNoYW5uZWwgYXV0b21hdGljYWxseS5cbiAqL1xuXG4vKipcbiAqIE1vZGVsLWxldmVsIGNsaWVudCBzeW5jIGRlY2xhcmF0aW9uIHJlYWQgZnJvbSBgc3RhdGljIHN5bmNgIGJ5XG4gKiBgU3luY0NsaWVudC5mcm9tQ29uZmlndXJhdGlvbiguLi4pYC4gYHRydWVgIG9wdHMgdGhlIG1vZGVsIGluIHdpdGggYWxsXG4gKiBkZWZhdWx0czsgYW4gb2JqZWN0IGN1c3RvbWl6ZXMgdGhlIGRlcml2ZWQgcmVzb3VyY2UgY29uZmlnLlxuICogQHRlbXBsYXRlIFtUTW9kZWw9YW55XVxuICogQHR5cGVkZWYge29iamVjdH0gTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWdcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEV4dHJhIGJvb2xlYW4gYXR0cmlidXRlcyBtZXJnZWQgd2l0aCB0aGUgYm9vbGVhbiBjb2x1bW5zIGRlcml2ZWQgZnJvbSBjb2x1bW4gdHlwZXMuXG4gKiBAcHJvcGVydHkge1N5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnfSBbY29uZmxpY3RUcmFja2luZ10gLSBPcHQtaW4gZHVyYWJsZSBiYXNlLXZlcnNpb24gY29uZmxpY3QgdHJhY2tpbmcuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRcIl19IFtmaW5kUmVjb3JkXSAtIEN1c3RvbSBwdWxsLWFwcGx5IHJlY29yZCByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZEZvckRlbGV0ZVwiXX0gW2ZpbmRSZWNvcmRGb3JEZWxldGVdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgZGVsZXRlIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2xvY2FsT25seUF0dHJpYnV0ZXNdIC0gRXh0cmEgbG9jYWwtb25seSBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBkZXJpdmVkIHByaW1hcnkga2V5LCBjcmVhdGVkQXQvdXBkYXRlZEF0LCBhbmQgc3luYyBib29ra2VlcGluZyBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtcHVibGlzaGVyLXR5cGVzLmpzXCIpLlN5bmNQdWJsaXNoRGVjbGFyYXRpb248VE1vZGVsPn0gW3B1Ymxpc2hdIC0gU2VydmVyLXNpZGUgcHVibGlzaCBkZWNsYXJhdGlvbiBjb25zdW1lZCBieSBgU3luY1B1Ymxpc2hlci5mcm9tQ29uZmlndXJhdGlvbiguLi4pYCBvbiB0aGUgYmFja2VuZDsgaWdub3JlZCBieSB0aGUgY2xpZW50LlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIFN5bmMgdHlwZSBmbGFnIG9yIG1hcHBlciAoc2VlIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW4gfCBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5OyBhbiBhcnJheSBpcyBzaG9ydGhhbmQgZm9yIHtvcGVyYXRpb25zfS4gT24gYnkgZGVmYXVsdCAoY3JlYXRlcyBhbmQgdXBkYXRlcyBxdWV1ZSBhdXRvbWF0aWNhbGx5KTsgYGZhbHNlYCBvcHRzIHRoZSBtb2RlbCBvdXQgKGZvciBtb2RlbHMgd3JpdHRlbiBieSBub24tdXNlciBmbG93cyksIGB0cnVlYCBhZGRzIGRlc3Ryb3lzLlxuICogQHByb3BlcnR5IHsoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIERlcHJlY2F0ZWQ6IHN0YXRpYyBsZWdhY3kgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogTW9kZWwtbGV2ZWwgc3luYyBkZWNsYXJhdGlvbiB2YWx1ZTogYHRydWVgIG9wdHMgaW4gd2l0aCBhbGwgZGVmYXVsdHMsIGFuXG4gKiBvYmplY3QgY3VzdG9taXplcyB0aGUgZGVyaXZlZCByZXNvdXJjZSBjb25maWcuXG4gKiBAdGVtcGxhdGUgW1RNb2RlbD1hbnldXG4gKiBAdHlwZWRlZiB7Ym9vbGVhbiB8IE1vZGVsU3luY0RlY2xhcmF0aW9uQ29uZmlnPFRNb2RlbD59IE1vZGVsU3luY0RlY2xhcmF0aW9uXG4gKi9cblxuLyoqXG4gKiBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBjb25uZWN0aW9uIGFsbCBzeW5jIHRyYWZmaWMgcmlkZXMuIE1hdGNoZXMgdGhlXG4gKiByZWFsdGltZSB3ZWJzb2NrZXQgY2xpZW50IGNvbnRyYWN0OyB0aGUgc3luYyBjbGllbnQgcmlkZXMgaXQgd2l0aG91dCBvd25pbmdcbiAqIGl0cyBjb25uZWN0L2Rpc2Nvbm5lY3QgbGlmZWN5Y2xlLlxuICogQHR5cGVkZWYge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuVmVsb2Npb3VzU3luY1JlYWx0aW1lV2Vic29ja2V0Q2xpZW50fSBTeW5jQ2xpZW50U2hhcmVkQ29ubmVjdGlvblxuICovXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYnVpbGRpbmcgYSBzeW5jIGNsaWVudC4gRXZlcnl0aGluZyBlbHNlIOKAlCByZXNvdXJjZXMsIHRyYW5zcG9ydFxuICogUE9TVGVycywgYXV0aCwgY29ubmVjdGl2aXR5LCBiYXRjaCBzaXplIOKAlCBpcyBkZXJpdmVkIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24nc1xuICogcmVnaXN0ZXJlZCBtb2RlbHMgKGBzdGF0aWMgc3luY2ApIGFuZCBpdHMgYHN5bmMuY2xpZW50YCBibG9jay5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRPcHRpb25zXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gW2NvbmZpZ3VyYXRpb25dIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHJlZ2lzdGVyZWQgbW9kZWxzLCB0aGUgYHN5bmMuY2xpZW50YCBibG9jaywgYW5kIHRoZSBzY29wZS1zdG9yZSBkYXRhYmFzZS4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZW1vdGUtcmVxdWVzdC1jb250ZXh0LmpzXCIpLlJlbW90ZVJlcXVlc3RDb250ZXh0fSBbcmVxdWVzdENvbnRleHRdIC0gSW1tdXRhYmxlIHNjYWxhciBjb250ZXh0IGNhcHR1cmVkIGZvciB0aGlzIGNsaWVudCBhbmQgc2VudCB3aXRoIGV2ZXJ5IHB1bGwsIHJlcGxheSwgYW5kIHJlYWx0aW1lIHN1YnNjcmlwdGlvbi5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLXNjb3BlLXN0b3JlLmpzXCIpLmRlZmF1bHR9IFtzY29wZVN0b3JlXSAtIFNjb3BlIHN0b3JlIG92ZXJyaWRlICh0ZXN0cykuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBbc3luY01vZGVsXSAtIFBlbmRpbmctc3luYyBtb2RlbCBvdmVycmlkZS4gRGVmYXVsdHMgdG8gdGhlIHJlZ2lzdGVyZWQgXCJTeW5jXCIgbW9kZWwuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2RhdGFiYXNlSWRlbnRpZmllcl0gLSBUZW5hbnQgZGF0YWJhc2UgaWRlbnRpZmllcjsgcmVxdWlyZWQgd2l0aCB0ZW5hbnRIYW5kbGUuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3RlbmFudHMvdGVuYW50LWhhbmRsZS5qc1wiKS5kZWZhdWx0fSBbdGVuYW50SGFuZGxlXSAtIEltbXV0YWJsZSB0ZW5hbnQgaGFuZGxlIGJpbmRpbmcgZXZlcnkgbG9jYWwgc3luYyBzdGF0ZSB0cmFuc2l0aW9uLlxuICovXG5cbi8qKlxuICogSW50ZXJuYWwgZGVyaXZlZCBzeW5jIGNsaWVudCBjb25maWd1cmF0aW9uIGJ1aWx0IGJ5IHRoZSBTeW5jQ2xpZW50XG4gKiBjb25zdHJ1Y3RvciDigJQgbm90IGFuIGFwcC1mYWNpbmcgQVBJLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZpZ1xuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz59IGF1dGhlbnRpY2F0aW9uVG9rZW4gLSBSZXNvbHZlcyB0aGUgYXV0aCB0b2tlbiBzZW50IHdpdGggc3luYyByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbYmF0Y2hTaXplXSAtIE1heCBzeW5jcyBwZXIgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLlxuICogQHByb3BlcnR5IHsoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gW2lzT25saW5lXSAtIENvbm5lY3Rpdml0eSBnYXRlIGZvciBwdWxscyBhbmQgcmVwbGF5cy4gRGVmYXVsdHMgdG8gYWx3YXlzIG9ubGluZS5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHsoZXJyb3I6IEVycm9yKSA9PiB2b2lkfSBbb25FcnJvcl0gLSBSZXBvcnRzIGJhY2tncm91bmQgcmVwbGF5L3B1bGwgZmFpbHVyZXMuIERlZmF1bHRzIHRvIHJldGhyb3dpbmcuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiBpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1JlcXVlc3QgJiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9KSA9PiBQcm9taXNlPGltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNDaGFuZ2VzUmVzcG9uc2U+fSBwb3N0Q2hhbmdlcyAtIFBvc3RzIG9uZSBjaGFuZ2VzIHJlcXVlc3QuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiB7YXV0aGVudGljYXRpb25Ub2tlbjogc3RyaW5nLCBzeW5jczogQXJyYXk8UmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+Pn0pID0+IFByb21pc2U8aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1JlcGxheVJlc3BvbnNlPn0gcG9zdFJlcGxheSAtIFBvc3RzIG9uZSByZXBsYXkgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jQ2xpZW50UmVhbHRpbWVDb25maWd1cmF0aW9ufSBbcmVhbHRpbWVdIC0gUmVhbHRpbWUgcHVzaCBjb25maWd1cmF0aW9uIGNvbnN1bWVkIGJ5IGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vcmVtb3RlLXJlcXVlc3QtY29udGV4dC5qc1wiKS5SZW1vdGVSZXF1ZXN0Q29udGV4dH0gcmVxdWVzdENvbnRleHQgLSBJbW11dGFibGUgc2NhbGFyIGNvbnRleHQgY2FwdHVyZWQgZm9yIHRoaXMgY2xpZW50LlxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLCBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWc+fSByZXNvdXJjZXMgLSBEZXJpdmVkIHJlc291cmNlIHBvbGljaWVzIGtleWVkIGJ5IHJlc291cmNlL21vZGVsIG5hbWUuXG4gKiBAcHJvcGVydHkge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBzeW5jTW9kZWwgLSBMb2NhbCBwZW5kaW5nLXN5bmMgbW9kZWwgY2xhc3MuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2RhdGFiYXNlSWRlbnRpZmllcl0gLSBUZW5hbnQtc2NvcGVkIGRhdGFiYXNlIGlkZW50aWZpZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3RlbmFudHMvdGVuYW50LWhhbmRsZS5qc1wiKS5kZWZhdWx0fSBbdGVuYW50SGFuZGxlXSAtIFRlbmFudC1zY29wZWQgaW1tdXRhYmxlIGhhbmRsZS5cbiAqIEBwcm9wZXJ0eSB7U3luY0NsaWVudFNoYXJlZENvbm5lY3Rpb259IFt3ZWJzb2NrZXRDbGllbnRdIC0gU2hhcmVkIGFwcC1saWZldGltZSB3ZWJzb2NrZXQgY2xpZW50IGluc3RhbmNlICh0aGUgbG93LWxldmVsIHNoYXJlZC1jb25uZWN0aW9uIGZvcm0pLlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCAoKCkgPT4gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCl9IFt3ZWJzb2NrZXRVcmxdIC0gU2hhcmVkIGFwcC1saWZldGltZSB3ZWJzb2NrZXQgVVJMIHRoZSBmcmFtZXdvcmsgYnVpbGRzIGEgY2xpZW50IGZyb20uXG4gKi9cblxuZXhwb3J0IHt9XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1jbGllbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luYy9zeW5jLWNsaWVudC10eXBlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7OztHQU1HO0FBRUg7Ozs7Ozs7R0FPRztBQUVIOzs7Ozs7Ozs7Ozs7R0FZRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUVIOzs7OztHQUtHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7Ozs7Ozs7O0dBWUc7QUFFSDs7O0dBR0c7QUFFSDs7Ozs7R0FLRztBQUVIOzs7Ozs7R0FNRztBQUVIOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUVILE9BQU8sRUFBRSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogQ2xpZW50LWRlY2xhcmVkIHN5bmMgc2NvcGUgc2VyaWFsaXplZCBmcm9tIGEgbW9kZWwgcXVlcnkuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTZXJpYWxpemVkU3luY1Njb3BlXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gY29uZGl0aW9ucyAtIFBsYWluIGF0dHJpYnV0ZSBjb25kaXRpb25zIGZyb20gdGhlIHF1ZXJ5LlxuICogQHByb3BlcnR5IHtzdHJpbmcgfCBudWxsfSByZXNvdXJjZVR5cGUgLSBSZXNvdXJjZS9tb2RlbCBuYW1lIHRoZSBzY29wZSB3YXMgZGVjbGFyZWQgZm9yLCBvciBudWxsIGZvciB0aGUgYWxsLXR5cGVzICh1c2VyKSBzY29wZSBjb3ZlcmluZyBldmVyeSB0eXBlIHRoZSBzZXJ2ZXIgYXV0aG9yaXplcyBmb3IgdGhlIGNhbGxlci5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbb3duZXJdIC0gTG9jYWwgcGFydGl0aW9uIGtleTogdGhlIGF1dGhlbnRpY2F0ZWQgaWRlbnRpdHkgdGhhdCBkZWNsYXJlZCB0aGUgc2NvcGUuIFVzZWQgb25seSB0byBwYXJ0aXRpb24gdGhlIGxvY2FsIHNjb3BlL2N1cnNvciBzdG9yZSAobmV2ZXIgc2VudCB0byB0aGUgc2VydmVyIGFzIHNjb3BlIGNvbmRpdGlvbnMpLCBzbyBhIHVzZXIgc2NvcGUncyBlbXB0eS1jb25kaXRpb25zIGN1cnNvciBkb2VzIG5vdCBsZWFrIGFjcm9zcyBhY2NvdW50cyBvbiBhIHNoYXJlZCBkZXZpY2UuXG4gKi9cblxuLyoqXG4gKiBTdGF0aWMgcmVhbHRpbWUgY2hhbm5lbCBkZWNsYXJhdGlvbiBvbiBhIG1vZGVsJ3MgYHN0YXRpYyBzeW5jYCwgZm9yIGNoYW5uZWxzXG4gKiB3aG9zZSBuYW1lIGFuZCBwYXJhbXMgYXJlIHN0YXRpYy5cbiAqIEBkZXByZWNhdGVkIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5OyBrZWVwIHRoaXMgb25seSBmb3IgbGVnYWN5IGFwcCBjaGFubmVscy5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IE1vZGVsU3luY1JlYWx0aW1lRGVjbGFyYXRpb25cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjaGFubmVsIC0gU2VydmVyIGNoYW5uZWwgbmFtZSB0byBzdWJzY3JpYmUuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3BhcmFtc10gLSBTdGF0aWMgc3Vic2NyaWJlIHBhcmFtcy4gVGhlIGZyYW1ld29yayBpbmplY3RzIGBhdXRoZW50aWNhdGlvblRva2VuYCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogRHVyYWJsZSBvcHRpbWlzdGljLXZlcnNpb24gdHJhY2tpbmcgY29uZmlndXJhdGlvbi4gSWRlbnRpdHkvZ3JhbnQgZmllbGRzIGFyZVxuICogcmV0YWluZWQgaW4gdGhlIHNoYXJlZCBMb2NhbE11dGF0aW9uTG9nIG11dGF0aW9uIHNoYXBlIHVzZWQgYnkgb2ZmbGluZSBzeW5jLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZsaWN0VHJhY2tpbmdDb25maWdcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3RvckRldmljZUlkIC0gU3RhYmxlIGRldmljZSBpZGVudGl0eS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhY3RvclVzZXJJZCAtIFN0YWJsZSB1c2VyIGlkZW50aXR5LlxuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmd9IGNsaWVudE11dGF0aW9uSWQgLSBEdXJhYmxlIGlkZW1wb3RlbmN5LWlkIGdlbmVyYXRvci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9sb2NhbC1tdXRhdGlvbi1sb2cuanNcIikuZGVmYXVsdH0gbXV0YXRpb25Mb2cgLSBFeGlzdGluZyBkdXJhYmxlIG11dGF0aW9uIGxvZy5cbiAqIEBwcm9wZXJ0eSB7KCkgPT4gRGF0ZX0gW25vd10gLSBNdXRhdGlvbiBjbG9jay5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBvZmZsaW5lR3JhbnRJZCAtIEdyYW50IGlkZW50aWZpZXIgcmV0YWluZWQgd2l0aCBpbnRlbnQuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcG9saWN5SGFzaCAtIFBvbGljeSBoYXNoIHJldGFpbmVkIHdpdGggaW50ZW50LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt2ZXJzaW9uQXR0cmlidXRlXSAtIEF1dGhvcml0YXRpdmUgdmVyc2lvbiBhdHRyaWJ1dGU7IGRlZmF1bHRzIHRvIHVwZGF0ZWRBdCB3aGVuIHByZXNlbnQuXG4gKi9cblxuLyoqXG4gKiBEZWNsYXJhdGl2ZSBwZXItcmVzb3VyY2Ugc3luYyBwb2xpY3kuXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBTeW5jQ2xpZW50UmVzb3VyY2VDb25maWdcbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IG1ldGFkYXRhTW9kZWxDbGFzcyAtIE1vZGVsIG1ldGFkYXRhIG93bmVyIGZvciBzY29wZSB0cmFuc2xhdGlvbiBhbmQgZGVyaXZlZCBhdHRyaWJ1dGVzLlxuICogQHByb3BlcnR5IHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gbW9kZWxDbGFzcyAtIExvY2FsIG1vZGVsIGNsYXNzIGZvciB0aGlzIHJlc291cmNlLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhdHRyaWJ1dGVzXCJdfSBbYXR0cmlidXRlc10gLSBQdWxsLWFwcGx5IGF0dHJpYnV0ZSBtYXBwZXIuIFJlcXVpcmVkIGZvciByZXNvdXJjZXMgdGhhdCByZWNlaXZlIHB1bGxlZCBjaGFuZ2VzLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkXCJdfSBbZmluZFJlY29yZF0gLSBDdXN0b20gcHVsbC1hcHBseSByZWNvcmQgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImZpbmRSZWNvcmRGb3JEZWxldGVcIl19IFtmaW5kUmVjb3JkRm9yRGVsZXRlXSAtIEN1c3RvbSBwdWxsLWFwcGx5IGRlbGV0ZSByZXNvbHZlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiYWZ0ZXJBcHBseVwiXX0gW2FmdGVyQXBwbHldIC0gUG9zdC1hcHBseSBob29rLlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gW2Jvb2xlYW5BdHRyaWJ1dGVzXSAtIEF0dHJpYnV0ZXMgY29lcmNlZCB0aHJvdWdoIHN5bmMgYm9vbGVhbiBwYXJzaW5nIHdoZW4gcXVldWVpbmcuXG4gKiBAcHJvcGVydHkge1N5bmNDbGllbnRDb25mbGljdFRyYWNraW5nQ29uZmlnfSBbY29uZmxpY3RUcmFja2luZ10gLSBPcHQtaW4gZHVyYWJsZSBiYXNlLXZlcnNpb24gY29uZmxpY3QgdHJhY2tpbmcuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBBdHRyaWJ1dGVzIHN0cmlwcGVkIGZyb20gcXVldWVkIHBheWxvYWRzLlxuICogQHByb3BlcnR5IHtcInVwc2VydFwiIHwgKChhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gc3RyaW5nKX0gW3N5bmNUeXBlXSAtIE1hcHMgYSBtdXRhdGlvbiBvcGVyYXRpb24gdG8gYSBzeW5jIHR5cGUuIFRoZSBcInVwc2VydFwiIGZsYWcgcXVldWVzIGNyZWF0ZXMgYW5kIHVwZGF0ZXMgYXMgXCJ1cGRhdGVcIiByb3dzICh0aGUgc2VydmVyIHVwc2VydHMgYnkgcmVzb3VyY2UgaWQpIGFuZCBkZXN0cm95cyBhcyBcImRlbGV0ZVwiLiBEZWZhdWx0cyB0byB0aGUgb3BlcmF0aW9uIG5hbWUgd2l0aCBkZXN0cm95IG1hcHBlZCB0byBcImRlbGV0ZVwiLlxuICogQHByb3BlcnR5IHsoYXJnczoge29wZXJhdGlvbjogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBcImRlc3Ryb3lcIiwgcmVjb3JkOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0pID0+IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW3RyYWNrZWREYXRhXSAtIEN1c3RvbSBxdWV1ZWQtcGF5bG9hZCBidWlsZGVyIGZvciB0cmFja2VkIG11dGF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IHtvcGVyYXRpb25zOiBBcnJheTxcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiPn19IFt0cmFja10gLSBBdXRvbWF0aWMgbXV0YXRpb24gdHJhY2tpbmcgcG9saWN5LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIHJlc291cmNlIG91dCwgYHRydWVgIGFkZHMgZGVzdHJveXMsIGB7b3BlcmF0aW9uc31gIG5hcnJvd3MgdGhlIHRyYWNrZWQgb3BlcmF0aW9ucy5cbiAqIEBwcm9wZXJ0eSB7TW9kZWxTeW5jUmVhbHRpbWVEZWNsYXJhdGlvbn0gW3JlYWx0aW1lXSAtIERlcHJlY2F0ZWQ6IHN0YXRpYyBsZWdhY3kgcmVhbHRpbWUgY2hhbm5lbCB0aGlzIHJlc291cmNlIHN1YnNjcmliZXMgdGhyb3VnaCBgc3Vic2NyaWJlUmVhbHRpbWUoLi4uKWAuIERlY2xhcmVkIHB1bGwgc2NvcGVzIHN1YnNjcmliZSB0aGUgZnJhbWV3b3JrIHN5bmMgY2hhbm5lbCBhdXRvbWF0aWNhbGx5LlxuICovXG5cbi8qKlxuICogTW9kZWwtbGV2ZWwgY2xpZW50IHN5bmMgZGVjbGFyYXRpb24gcmVhZCBmcm9tIGBzdGF0aWMgc3luY2AgYnlcbiAqIGBTeW5jQ2xpZW50LmZyb21Db25maWd1cmF0aW9uKC4uLilgLiBgdHJ1ZWAgb3B0cyB0aGUgbW9kZWwgaW4gd2l0aCBhbGxcbiAqIGRlZmF1bHRzOyBhbiBvYmplY3QgY3VzdG9taXplcyB0aGUgZGVyaXZlZCByZXNvdXJjZSBjb25maWcuXG4gKiBAdGVtcGxhdGUgW1RNb2RlbD1hbnldXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBNb2RlbFN5bmNEZWNsYXJhdGlvbkNvbmZpZ1xuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJhZnRlckFwcGx5XCJdfSBbYWZ0ZXJBcHBseV0gLSBQb3N0LWFwcGx5IGhvb2suXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1hcGktY2xpZW50LXR5cGVzLmpzXCIpLlN5bmNSZXNvdXJjZUNvbmZpZ1tcImF0dHJpYnV0ZXNcIl19IFthdHRyaWJ1dGVzXSAtIFB1bGwtYXBwbHkgYXR0cmlidXRlIG1hcHBlci4gUmVxdWlyZWQgZm9yIHJlc291cmNlcyB0aGF0IHJlY2VpdmUgcHVsbGVkIGNoYW5nZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbYm9vbGVhbkF0dHJpYnV0ZXNdIC0gRXh0cmEgYm9vbGVhbiBhdHRyaWJ1dGVzIG1lcmdlZCB3aXRoIHRoZSBib29sZWFuIGNvbHVtbnMgZGVyaXZlZCBmcm9tIGNvbHVtbiB0eXBlcy5cbiAqIEBwcm9wZXJ0eSB7U3luY0NsaWVudENvbmZsaWN0VHJhY2tpbmdDb25maWd9IFtjb25mbGljdFRyYWNraW5nXSAtIE9wdC1pbiBkdXJhYmxlIGJhc2UtdmVyc2lvbiBjb25mbGljdCB0cmFja2luZy5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi9zeW5jLWFwaS1jbGllbnQtdHlwZXMuanNcIikuU3luY1Jlc291cmNlQ29uZmlnW1wiZmluZFJlY29yZFwiXX0gW2ZpbmRSZWNvcmRdIC0gQ3VzdG9tIHB1bGwtYXBwbHkgcmVjb3JkIHJlc29sdmVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVzb3VyY2VDb25maWdbXCJmaW5kUmVjb3JkRm9yRGVsZXRlXCJdfSBbZmluZFJlY29yZEZvckRlbGV0ZV0gLSBDdXN0b20gcHVsbC1hcHBseSBkZWxldGUgcmVzb2x2ZXIuXG4gKiBAcHJvcGVydHkge3N0cmluZ1tdfSBbbG9jYWxPbmx5QXR0cmlidXRlc10gLSBFeHRyYSBsb2NhbC1vbmx5IGF0dHJpYnV0ZXMgbWVyZ2VkIHdpdGggdGhlIGRlcml2ZWQgcHJpbWFyeSBrZXksIGNyZWF0ZWRBdC91cGRhdGVkQXQsIGFuZCBzeW5jIGJvb2trZWVwaW5nIGF0dHJpYnV0ZXMuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4vc3luYy1wdWJsaXNoZXItdHlwZXMuanNcIikuU3luY1B1Ymxpc2hEZWNsYXJhdGlvbjxUTW9kZWw+fSBbcHVibGlzaF0gLSBTZXJ2ZXItc2lkZSBwdWJsaXNoIGRlY2xhcmF0aW9uIGNvbnN1bWVkIGJ5IGBTeW5jUHVibGlzaGVyLmZyb21Db25maWd1cmF0aW9uKC4uLilgIG9uIHRoZSBiYWNrZW5kOyBpZ25vcmVkIGJ5IHRoZSBjbGllbnQuXG4gKiBAcHJvcGVydHkge1widXBzZXJ0XCIgfCAoKGFyZ3M6IHtvcGVyYXRpb246IFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCIsIHJlY29yZDogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59KSA9PiBzdHJpbmcpfSBbc3luY1R5cGVdIC0gU3luYyB0eXBlIGZsYWcgb3IgbWFwcGVyIChzZWUgU3luY0NsaWVudFJlc291cmNlQ29uZmlnKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbiB8IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+IHwge29wZXJhdGlvbnM6IEFycmF5PFwiY3JlYXRlXCIgfCBcInVwZGF0ZVwiIHwgXCJkZXN0cm95XCI+fX0gW3RyYWNrXSAtIEF1dG9tYXRpYyBtdXRhdGlvbiB0cmFja2luZyBwb2xpY3k7IGFuIGFycmF5IGlzIHNob3J0aGFuZCBmb3Ige29wZXJhdGlvbnN9LiBPbiBieSBkZWZhdWx0IChjcmVhdGVzIGFuZCB1cGRhdGVzIHF1ZXVlIGF1dG9tYXRpY2FsbHkpOyBgZmFsc2VgIG9wdHMgdGhlIG1vZGVsIG91dCAoZm9yIG1vZGVscyB3cml0dGVuIGJ5IG5vbi11c2VyIGZsb3dzKSwgYHRydWVgIGFkZHMgZGVzdHJveXMuXG4gKiBAcHJvcGVydHkgeyhhcmdzOiB7b3BlcmF0aW9uOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IFwiZGVzdHJveVwiLCByZWNvcmQ6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSkgPT4gUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+fSBbdHJhY2tlZERhdGFdIC0gQ3VzdG9tIHF1ZXVlZC1wYXlsb2FkIGJ1aWxkZXIgZm9yIHRyYWNrZWQgbXV0YXRpb25zLlxuICogQHByb3BlcnR5IHtNb2RlbFN5bmNSZWFsdGltZURlY2xhcmF0aW9ufSBbcmVhbHRpbWVdIC0gRGVwcmVjYXRlZDogc3RhdGljIGxlZ2FjeSByZWFsdGltZSBjaGFubmVsIHRoaXMgcmVzb3VyY2Ugc3Vic2NyaWJlcyB0aHJvdWdoIGBzdWJzY3JpYmVSZWFsdGltZSguLi4pYC4gRGVjbGFyZWQgcHVsbCBzY29wZXMgc3Vic2NyaWJlIHRoZSBmcmFtZXdvcmsgc3luYyBjaGFubmVsIGF1dG9tYXRpY2FsbHkuXG4gKi9cblxuLyoqXG4gKiBNb2RlbC1sZXZlbCBzeW5jIGRlY2xhcmF0aW9uIHZhbHVlOiBgdHJ1ZWAgb3B0cyBpbiB3aXRoIGFsbCBkZWZhdWx0cywgYW5cbiAqIG9iamVjdCBjdXN0b21pemVzIHRoZSBkZXJpdmVkIHJlc291cmNlIGNvbmZpZy5cbiAqIEB0ZW1wbGF0ZSBbVE1vZGVsPWFueV1cbiAqIEB0eXBlZGVmIHtib29sZWFuIHwgTW9kZWxTeW5jRGVjbGFyYXRpb25Db25maWc8VE1vZGVsPn0gTW9kZWxTeW5jRGVjbGFyYXRpb25cbiAqL1xuXG4vKipcbiAqIFNoYXJlZCBhcHAtbGlmZXRpbWUgd2Vic29ja2V0IGNvbm5lY3Rpb24gYWxsIHN5bmMgdHJhZmZpYyByaWRlcy4gTWF0Y2hlcyB0aGVcbiAqIHJlYWx0aW1lIHdlYnNvY2tldCBjbGllbnQgY29udHJhY3Q7IHRoZSBzeW5jIGNsaWVudCByaWRlcyBpdCB3aXRob3V0IG93bmluZ1xuICogaXRzIGNvbm5lY3QvZGlzY29ubmVjdCBsaWZlY3ljbGUuXG4gKiBAdHlwZWRlZiB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5WZWxvY2lvdXNTeW5jUmVhbHRpbWVXZWJzb2NrZXRDbGllbnR9IFN5bmNDbGllbnRTaGFyZWRDb25uZWN0aW9uXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBidWlsZGluZyBhIHN5bmMgY2xpZW50LiBFdmVyeXRoaW5nIGVsc2Ug4oCUIHJlc291cmNlcywgdHJhbnNwb3J0XG4gKiBQT1NUZXJzLCBhdXRoLCBjb25uZWN0aXZpdHksIGJhdGNoIHNpemUg4oCUIGlzIGRlcml2ZWQgZnJvbSB0aGUgY29uZmlndXJhdGlvbidzXG4gKiByZWdpc3RlcmVkIG1vZGVscyAoYHN0YXRpYyBzeW5jYCkgYW5kIGl0cyBgc3luYy5jbGllbnRgIGJsb2NrLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBbY29uZmlndXJhdGlvbl0gLSBDb25maWd1cmF0aW9uIG93bmluZyB0aGUgcmVnaXN0ZXJlZCBtb2RlbHMsIHRoZSBgc3luYy5jbGllbnRgIGJsb2NrLCBhbmQgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLiBEZWZhdWx0cyB0byB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLlxuICogQHByb3BlcnR5IHsoYXJnczoge3Njb3BlOiBTZXJpYWxpemVkU3luY1Njb3BlfSkgPT4gc3RyaW5nIHwgbnVsbCB8IFByb21pc2U8c3RyaW5nIHwgbnVsbD59IFtsZWdhY3lDdXJzb3JdIC0gU2VlZHMgYSBuZXdseSBkZWNsYXJlZCBzY29wZSdzIGN1cnNvciAoZS5nLiBmcm9tIGEgcHJlLXNjb3BlIGN1cnNvciBzdG9yZSkgc28gZGV2aWNlcyBkb24ndCByZS1wdWxsIGV2ZXJ5dGhpbmcuXG4gKiBAcHJvcGVydHkge2ltcG9ydChcIi4uL3JlbW90ZS1yZXF1ZXN0LWNvbnRleHQuanNcIikuUmVtb3RlUmVxdWVzdENvbnRleHR9IFtyZXF1ZXN0Q29udGV4dF0gLSBJbW11dGFibGUgc2NhbGFyIGNvbnRleHQgY2FwdHVyZWQgZm9yIHRoaXMgY2xpZW50IGFuZCBzZW50IHdpdGggZXZlcnkgcHVsbCwgcmVwbGF5LCBhbmQgcmVhbHRpbWUgc3Vic2NyaXB0aW9uLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3N5bmMtc2NvcGUtc3RvcmUuanNcIikuZGVmYXVsdH0gW3Njb3BlU3RvcmVdIC0gU2NvcGUgc3RvcmUgb3ZlcnJpZGUgKHRlc3RzKS5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IFtzeW5jTW9kZWxdIC0gUGVuZGluZy1zeW5jIG1vZGVsIG92ZXJyaWRlLiBEZWZhdWx0cyB0byB0aGUgcmVnaXN0ZXJlZCBcIlN5bmNcIiBtb2RlbC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGF0YWJhc2VJZGVudGlmaWVyXSAtIFRlbmFudCBkYXRhYmFzZSBpZGVudGlmaWVyOyByZXF1aXJlZCB3aXRoIHRlbmFudEhhbmRsZS5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vdGVuYW50cy90ZW5hbnQtaGFuZGxlLmpzXCIpLmRlZmF1bHR9IFt0ZW5hbnRIYW5kbGVdIC0gSW1tdXRhYmxlIHRlbmFudCBoYW5kbGUgYmluZGluZyBldmVyeSBsb2NhbCBzeW5jIHN0YXRlIHRyYW5zaXRpb24uXG4gKi9cblxuLyoqXG4gKiBMb2NhbCBjbGVhbnVwIGhvb2sgdGhhdCBydW5zIHRyYW5zYWN0aW9uYWxseSB3aXRoIHNlbGVjdGVkIHNjb3BlIHJlc2V0cy5cbiAqIEB0eXBlZGVmIHsoYXJnczoge2Nvbm5lY3Rpb246IGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0IHwgbnVsbCwgc2NvcGVzOiBTZXJpYWxpemVkU3luY1Njb3BlW119KSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZH0gU3luY0NsaWVudFNjb3BlQ2xlYW51cFxuICovXG5cbi8qKlxuICogT3B0aW9ucyBmb3Igc3RvcHBpbmcgYW5kIHJlc2V0dGluZyBhIHN5bmMgY2xpZW50IGxpZmVjeWNsZS5cbiAqIEB0eXBlZGVmIHtvYmplY3R9IFN5bmNDbGllbnRTdG9wT3B0aW9uc1xuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50U2NvcGVDbGVhbnVwfSBbY2xlYW51cF0gLSBBcHAtb3duZWQgbG9jYWwtcm93IHB1cmdlIHJ1biBhdG9taWNhbGx5IHdpdGggcmVzZXRTY29wZXMuXG4gKiBAcHJvcGVydHkge1NlcmlhbGl6ZWRTeW5jU2NvcGVbXX0gW3Jlc2V0U2NvcGVzXSAtIFNlbGVjdGVkIHNjb3BlIHJvd3MgdG8gZGVhY3RpdmF0ZSBhbmQgcmVzdGFydCBmcm9tIGEgbnVsbCBjdXJzb3IuXG4gKi9cblxuLyoqXG4gKiBPcHRpb25zIGZvciBhdG9taWNhbGx5IHJlcGxhY2luZyB0aGUgZXh0ZXJuYWwgaWRlbnRpdHkgcmVhZCBieSBzeW5jLmNsaWVudC5cbiAqIEB0eXBlZGVmIHtTeW5jQ2xpZW50U3RvcE9wdGlvbnMgJiB7XG4gKiAgIHJlcGxhY2U6ICgpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkLFxuICogICBzdWJzY3JpYmVVc2VyU2NvcGU/OiBib29sZWFuXG4gKiB9fSBTeW5jQ2xpZW50UmVwbGFjZUlkZW50aXR5T3B0aW9uc1xuICovXG5cbi8qKlxuICogSW50ZXJuYWwgZGVyaXZlZCBzeW5jIGNsaWVudCBjb25maWd1cmF0aW9uIGJ1aWx0IGJ5IHRoZSBTeW5jQ2xpZW50XG4gKiBjb25zdHJ1Y3RvciDigJQgbm90IGFuIGFwcC1mYWNpbmcgQVBJLlxuICogQHR5cGVkZWYge29iamVjdH0gU3luY0NsaWVudENvbmZpZ1xuICogQHByb3BlcnR5IHsoKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz59IGF1dGhlbnRpY2F0aW9uVG9rZW4gLSBSZXNvbHZlcyB0aGUgYXV0aCB0b2tlbiBzZW50IHdpdGggc3luYyByZXF1ZXN0cy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbYmF0Y2hTaXplXSAtIE1heCBzeW5jcyBwZXIgcmVxdWVzdC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbiBvd25pbmcgdGhlIHNjb3BlLXN0b3JlIGRhdGFiYXNlLlxuICogQHByb3BlcnR5IHsoKSA9PiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPn0gW2lzT25saW5lXSAtIENvbm5lY3Rpdml0eSBnYXRlIGZvciBwdWxscyBhbmQgcmVwbGF5cy4gRGVmYXVsdHMgdG8gYWx3YXlzIG9ubGluZS5cbiAqIEBwcm9wZXJ0eSB7KGFyZ3M6IHtzY29wZTogU2VyaWFsaXplZFN5bmNTY29wZX0pID0+IHN0cmluZyB8IG51bGwgfCBQcm9taXNlPHN0cmluZyB8IG51bGw+fSBbbGVnYWN5Q3Vyc29yXSAtIFNlZWRzIGEgbmV3bHkgZGVjbGFyZWQgc2NvcGUncyBjdXJzb3IgKGUuZy4gZnJvbSBhIHByZS1zY29wZSBjdXJzb3Igc3RvcmUpIHNvIGRldmljZXMgZG9uJ3QgcmUtcHVsbCBldmVyeXRoaW5nLlxuICogQHByb3BlcnR5IHsoZXJyb3I6IEVycm9yKSA9PiB2b2lkfSBbb25FcnJvcl0gLSBSZXBvcnRzIGJhY2tncm91bmQgcmVwbGF5L3B1bGwgZmFpbHVyZXMuIERlZmF1bHRzIHRvIHJldGhyb3dpbmcuXG4gKiBAcHJvcGVydHkgeyhwYXlsb2FkOiBpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1JlcXVlc3QgJiB7c2NvcGU6IFNlcmlhbGl6ZWRTeW5jU2NvcGV9LCBvcHRpb25zPzoge3NpZ25hbD86IEFib3J0U2lnbmFsfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jQ2hhbmdlc1Jlc3BvbnNlPn0gcG9zdENoYW5nZXMgLSBQb3N0cyBvbmUgY2hhbmdlcyByZXF1ZXN0LlxuICogQHByb3BlcnR5IHsocGF5bG9hZDoge2F1dGhlbnRpY2F0aW9uVG9rZW46IHN0cmluZywgc3luY3M6IEFycmF5PFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pj59LCBvcHRpb25zPzoge3NpZ25hbD86IEFib3J0U2lnbmFsfSkgPT4gUHJvbWlzZTxpbXBvcnQoXCIuL3N5bmMtYXBpLWNsaWVudC10eXBlcy5qc1wiKS5TeW5jUmVwbGF5UmVzcG9uc2U+fSBwb3N0UmVwbGF5IC0gUG9zdHMgb25lIHJlcGxheSByZXF1ZXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLlZlbG9jaW91c1N5bmNDbGllbnRSZWFsdGltZUNvbmZpZ3VyYXRpb259IFtyZWFsdGltZV0gLSBSZWFsdGltZSBwdXNoIGNvbmZpZ3VyYXRpb24gY29uc3VtZWQgYnkgYHN1YnNjcmliZVJlYWx0aW1lKC4uLilgLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuLi9yZW1vdGUtcmVxdWVzdC1jb250ZXh0LmpzXCIpLlJlbW90ZVJlcXVlc3RDb250ZXh0fSByZXF1ZXN0Q29udGV4dCAtIEltbXV0YWJsZSBzY2FsYXIgY29udGV4dCBjYXB0dXJlZCBmb3IgdGhpcyBjbGllbnQuXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIFN5bmNDbGllbnRSZXNvdXJjZUNvbmZpZz59IHJlc291cmNlcyAtIERlcml2ZWQgcmVzb3VyY2UgcG9saWNpZXMga2V5ZWQgYnkgcmVzb3VyY2UvbW9kZWwgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IHN5bmNNb2RlbCAtIExvY2FsIHBlbmRpbmctc3luYyBtb2RlbCBjbGFzcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGF0YWJhc2VJZGVudGlmaWVyXSAtIFRlbmFudC1zY29wZWQgZGF0YWJhc2UgaWRlbnRpZmllci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi4vdGVuYW50cy90ZW5hbnQtaGFuZGxlLmpzXCIpLmRlZmF1bHR9IFt0ZW5hbnRIYW5kbGVdIC0gVGVuYW50LXNjb3BlZCBpbW11dGFibGUgaGFuZGxlLlxuICogQHByb3BlcnR5IHtTeW5jQ2xpZW50U2hhcmVkQ29ubmVjdGlvbn0gW3dlYnNvY2tldENsaWVudF0gLSBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBjbGllbnQgaW5zdGFuY2UgKHRoZSBsb3ctbGV2ZWwgc2hhcmVkLWNvbm5lY3Rpb24gZm9ybSkuXG4gKiBAcHJvcGVydHkge3N0cmluZyB8ICgoKSA9PiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKX0gW3dlYnNvY2tldFVybF0gLSBTaGFyZWQgYXBwLWxpZmV0aW1lIHdlYnNvY2tldCBVUkwgdGhlIGZyYW1ld29yayBidWlsZHMgYSBjbGllbnQgZnJvbS5cbiAqL1xuXG5leHBvcnQge31cbiJdfQ==
@@ -1,6 +1,14 @@
1
1
  import Configuration from "../configuration.js";
2
2
  import Logger from "../logger.js";
3
3
  import SyncRealtimeBridge from "./sync-realtime-bridge.js";
4
+ /** Expected cooperative cancellation raised by a SyncClient lifecycle transition. */
5
+ export declare class SyncClientLifecycleAbortError extends Error {
6
+ /**
7
+ * Builds an expected lifecycle cancellation error.
8
+ * @param {string} message - Lifecycle cancellation reason.
9
+ */
10
+ constructor(message: string);
11
+ }
4
12
  /**
5
13
  * Declarative client-side sync driver.
6
14
  *
@@ -50,6 +58,13 @@ export default class SyncClient {
50
58
  _logger: Logger | {
51
59
  error: (...messages: Array<ReturnType<typeof JSON.parse>>) => Promise<void>;
52
60
  } | null;
61
+ /** @type {Set<Promise<unknown>>} */
62
+ _activeLifecycleWork: Set<Promise<unknown>>;
63
+ _lifecycleAbortController: AbortController;
64
+ _lifecycleGeneration: number;
65
+ _lifecycleTransitionCount: number;
66
+ /** @type {Promise<void>} */
67
+ _lifecycleTransitionPromise: Promise<void>;
53
68
  _started: boolean;
54
69
  /**
55
70
  * Builds the sync client by deriving everything from the app's Velocious
@@ -73,10 +88,84 @@ export default class SyncClient {
73
88
  */
74
89
  start(): Promise<void>;
75
90
  /**
76
- * Unregisters all tracking callbacks (tests, sign-out, hot reload).
91
+ * Unregisters all tracking callbacks, aborts in-flight pull/replay/realtime
92
+ * work and resolves after it is quiescent. Optional selected scope reset and
93
+ * app-owned cleanup happen after old work drains.
94
+ * @param {import("./sync-client-types.js").SyncClientStopOptions} [options] - Stop and selected-scope reset options.
95
+ * @returns {Promise<void>}
96
+ */
97
+ stop(options?: import("./sync-client-types.js").SyncClientStopOptions): Promise<void>;
98
+ /**
99
+ * Aborts and drains current work, then atomically resets selected scope
100
+ * cursors together with an optional app-owned local-row cleanup hook.
101
+ * Tracking declarations remain registered so the same client may continue.
102
+ * @param {import("./sync-client-types.js").SerializedSyncScope[]} scopes - Selected scopes to reset.
103
+ * @param {{cleanup?: import("./sync-client-types.js").SyncClientScopeCleanup}} [options] - Scope cleanup options.
104
+ * @returns {Promise<void>}
105
+ */
106
+ resetScopes(scopes: import("./sync-client-types.js").SerializedSyncScope[], options?: {
107
+ cleanup?: import("./sync-client-types.js").SyncClientScopeCleanup;
108
+ }): Promise<void>;
109
+ /**
110
+ * Atomically replaces the external identity read by the configured auth and
111
+ * scope-owner resolvers: old work is aborted and drained, selected private
112
+ * scope state/cache is reset, then the app's replacement callback runs while
113
+ * new sync work remains behind the lifecycle barrier. Optionally subscribes
114
+ * the new user scope before resolving.
115
+ * @param {import("./sync-client-types.js").SyncClientReplaceIdentityOptions} options - Identity replacement contract.
116
+ * @returns {Promise<void>}
117
+ */
118
+ replaceIdentity(options: import("./sync-client-types.js").SyncClientReplaceIdentityOptions): Promise<void>;
119
+ /**
120
+ * Runs one callback while holding the current lifecycle generation and
121
+ * tracks it so stop/reset/identity replacement can await quiescence.
122
+ * @template Result
123
+ * @param {(signal: AbortSignal) => Promise<Result>} callback - Generation-bound work.
124
+ * @returns {Promise<Result>} Callback result.
125
+ */
126
+ _runLifecycleWork<Result>(callback: (signal: AbortSignal) => Promise<Result>): Promise<Result>;
127
+ /**
128
+ * Runs mutation queueing only while the lifecycle generation captured by the
129
+ * caller remains active. Unlike pulls, a mutation must never wait through an
130
+ * identity transition and then persist under the replacement identity.
131
+ * @template Result
132
+ * @param {number} lifecycleGeneration - Generation owning the mutation.
133
+ * @param {() => Promise<Result>} callback - Mutation queueing work.
134
+ * @returns {Promise<Result>} Callback result.
135
+ */
136
+ _runMutationLifecycleWork<Result>(lifecycleGeneration: number, callback: () => Promise<Result>): Promise<Result>;
137
+ /**
138
+ * Rejects mutation queueing captured outside the current stable lifecycle.
139
+ * @param {number} lifecycleGeneration - Generation owning the mutation.
140
+ * @returns {void}
141
+ */
142
+ _assertMutationLifecycleGeneration(lifecycleGeneration: number): void;
143
+ /**
144
+ * Serializes a lifecycle barrier: cooperatively aborts transport/start work,
145
+ * stops new realtime delivery, awaits old applies/replays/pulls, rejects on
146
+ * unexpected old-work failures, then runs the reset/replacement callback.
147
+ * @param {() => Promise<void>} callback - Transition action after quiescence.
148
+ * @returns {Promise<void>}
149
+ */
150
+ _runLifecycleTransition(callback: () => Promise<void>): Promise<void>;
151
+ /**
152
+ * Resets selected scopes through the framework-owned store.
153
+ * @param {import("./sync-client-types.js").SyncClientStopOptions} options - Reset options.
154
+ * @returns {Promise<void>}
155
+ */
156
+ _resetScopesForLifecycle(options: import("./sync-client-types.js").SyncClientStopOptions): Promise<void>;
157
+ /**
158
+ * Whether an error is the framework's narrow expected lifecycle abort.
159
+ * @param {unknown} error - Candidate error.
160
+ * @returns {boolean} Whether the error is an expected lifecycle abort.
161
+ */
162
+ isLifecycleAbort(error: unknown): boolean;
163
+ /**
164
+ * Throws the current lifecycle reason when the signal is aborted.
165
+ * @param {AbortSignal} signal - Lifecycle signal.
77
166
  * @returns {void}
78
167
  */
79
- stop(): void;
168
+ _throwIfLifecycleAborted(signal: AbortSignal): void;
80
169
  /**
81
170
  * Resolves and validates the tracked operations for a resource config.
82
171
  * Tracking is on by default: models declaring `static sync` without a `track`
@@ -210,6 +299,19 @@ export default class SyncClient {
210
299
  onProgress?: (progress: import("./sync-api-client-types.js").SyncPullProgress) => void;
211
300
  upstreamRefresh?: boolean;
212
301
  }): Promise<import("./sync-api-client-types.js").SyncChangesResult | null>;
302
+ /**
303
+ * Pull implementation bound to one lifecycle generation.
304
+ * @param {object} args - Pull args.
305
+ * @param {(progress: import("./sync-api-client-types.js").SyncPullProgress) => void} [args.onProgress] - Progress callback.
306
+ * @param {AbortSignal} args.signal - Lifecycle cancellation signal.
307
+ * @param {boolean} [args.upstreamRefresh] - User-initiated upstream refresh marker.
308
+ * @returns {Promise<import("./sync-api-client-types.js").SyncChangesResult | null>} Combined pull result, or null while offline.
309
+ */
310
+ _pull({ onProgress, signal, upstreamRefresh }: {
311
+ onProgress?: (progress: import("./sync-api-client-types.js").SyncPullProgress) => void;
312
+ signal: AbortSignal;
313
+ upstreamRefresh?: boolean;
314
+ }): Promise<import("./sync-api-client-types.js").SyncChangesResult | null>;
213
315
  /**
214
316
  * Builds the derived remote-change applier shared by pulls and realtime pushes:
215
317
  * applies through the declared resource configs, registers each written record
@@ -255,9 +357,10 @@ export default class SyncClient {
255
357
  /**
256
358
  * Declares and activates the user scope for every pullable resource, then
257
359
  * subscribes realtime and pulls.
360
+ * @param {AbortSignal} signal - Lifecycle cancellation signal.
258
361
  * @returns {Promise<void>}
259
362
  */
260
- _subscribeUserScope(): Promise<void>;
363
+ _subscribeUserScope(signal: AbortSignal): Promise<void>;
261
364
  /**
262
365
  * Unsubscribes the user scope: deactivates the per-resource user scopes and
263
366
  * closes the realtime channel subscriptions. The shared websocket connection
@@ -338,6 +441,12 @@ export default class SyncClient {
338
441
  * @returns {Promise<void>}
339
442
  */
340
443
  replayPending(): Promise<void>;
444
+ /**
445
+ * Replay implementation bound to one lifecycle generation.
446
+ * @param {AbortSignal} signal - Lifecycle cancellation signal.
447
+ * @returns {Promise<void>}
448
+ */
449
+ _replayPending(signal: AbortSignal): Promise<void>;
341
450
  /**
342
451
  * Records an authoritative remote observation so an in-flight acknowledgement
343
452
  * cannot rebase a successor across that observation.
@@ -1 +1 @@
1
- {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/sync/sync-client.js"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,qBAAqB,CAAA;AAE/C,OAAO,MAAM,MAAM,cAAc,CAAA;AAQjC,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAqC1D,qFAAqF;AACrF,qBAAa,6BAA8B,SAAQ,KAAK;IACtD;;;OAGG;IACH,YAAY,OAAO,EAFR,MAEQ,EAGlB;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAyE3B,gEAAgE;IAC3D,MAAM,EADA,OAAO,wBAAwB,EAAE,gBAAgB;IAmBvD,aAAa;IACb,iBAAiB;IACjB,uBAAuB;IAG5B,wCAAwC;IACnC,eAAe,EADT,kBAAkB,GAAG,IAAI;IAEpC,sMAAsM;IACjM,eAAe,EADT,OAAO,wBAAwB,EAAE,0BAA0B,GAAG,IAAI,GAAG,SAAS;IAEzF,mCAAmC;IAC9B,0BAA0B,EADpB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE/B,4DAA4D;IACvD,eAAe,EADT,YAAY,GAAG,aAAa,GAAG,cAAc;IAExD,6DAA6D;IACxD,WAAW,EADL,OAAO,uBAAuB,EAAE,OAAO,GAAG,IAAI;IAEzD,mCAAmC;IAC9B,gBAAgB,EADV,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAE/B,6FAA6F;IACxF,oBAAoB,EADd,MAAM,CAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,GAAG,IAAI;IAEzF,6OAA6O;IACxO,iBAAiB,EADX,KAAK,CAAC;QAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,aAAa,GAAG,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;QAAC,UAAU,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;KAAC,CAAC;IAEzO,8BAA8B;IACzB,mBAAmB,EADb,OAAO,CAAC,MAAM,CAAC;IAE1B,kCAAkC;IAC7B,kBAAkB,EADZ,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAE9B,6DAA6D;IACxD,qBAAqB,EADf,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAEpD,qBAAqB;IAC1B,4GAA4G;IACvG,OAAO,EADD,MAAM,GAAG;QAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,GAAG,IAAI;IAExG,oCAAoC;IAC/B,oBAAoB,EADd,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3B,yBAAyB;IACzB,oBAAoB;IACpB,yBAAyB;IAC9B,4BAA4B;IACvB,2BAA2B,EADrB,OAAO,CAAC,IAAI,CAAC;IAEnB,QAAQ;IAhIf;;;;;;;;;;OAUG;IACH,YAAY,OAAO,AAFhB,CACF,EADU,OAAO,wBAAwB,EAAE,iBAEpB,EAsHvB;IAED;;;;;;;OAOG;IACG,KAAK,IAFE,OAAO,CAAC,IAAI,CAAC,CAsCzB;IAED;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,AAHT,CACA,EADQ,OAAO,wBAAwB,EAAE,qBAG3B,GAFJ,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;;;;;OAOG;IACG,WAAW,CAAC,MAAM,EAJb,OAAO,wBAAwB,EAAE,mBAAmB,EAIvC,EAAE,OAAO,AAH9B,CACA,EADQ;QAAC,OAAO,CAAC,EAAE,OAAO,wBAAwB,EAAE,sBAAsB,CAAA;KAGvC,GAFzB,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAHlB,OAAO,wBAAwB,EAAE,gCAGf,GAFhB,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;;;;OAMG;IACG,iBAAiB,CAJV,MAAM,EAIK,QAAQ,EAHrB,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAGlB,GAFnB,OAAO,CAAC,MAAM,CAAC,CAkB3B;IAED;;;;;;;;OAQG;IACG,yBAAyB,CALlB,MAAM,EAKa,mBAAmB,EAJxC,MAIwC,EAAE,QAAQ,EAHlD,MAAM,OAAO,CAAC,MAAM,CAG8B,GAFhD,OAAO,CAAC,MAAM,CAAC,CAU3B;IAED;;;;OAIG;IACH,kCAAkC,CAAC,mBAAmB,EAH3C,MAG2C,GAFzC,IAAI,CAMhB;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,QAAQ,EAHrB,MAAM,OAAO,CAAC,IAAI,CAGG,GAFnB,OAAO,CAAC,IAAI,CAAC,CA2CzB;IAED;;;;OAIG;IACG,wBAAwB,CAAC,OAAO,EAH3B,OAAO,wBAAwB,EAAE,qBAGN,GAFzB,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAHX,OAGW,GAFT,OAAO,CAInB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,MAAM,EAHpB,WAGoB,GAFlB,IAAI,CAMhB;IAED;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAC,cAAc,EAAE,YAAY,EAAC,EAHrC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAG3D,GAFnC,KAAK,CAAC,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,CAoBlD;IAED;;;;;;;;;;;;OAYG;IACH,uBAAuB,CAAC,EAAC,SAAS,EAAE,cAAc,EAAC,EAHxC;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAA;KAG9E,GAFtC,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAmDpE;IAED;;;;;;;;OAQG;IACG,sBAAsB,CAAC,KAAK,EAHvB,KAGuB,GAFrB,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,MAAM,IAFO,MAAM,GAAG;QAAC,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAAC,CAMlG;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAHT,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGnB,GAFP,OAAO,CAInB;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAHhB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGZ,GAFd,OAAO,CAInB;IAED;;;;;;;;;;;;OAYG;IACG,eAAe,CAJR,CAAC,EAIQ,QAAQ,EAHnB,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAGA,GAFjB,OAAO,CAAC,CAAC,CAAC,CAUtB;IAED;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAHX,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGjB,GAFT,MAAM,IAAI,CAMtB;IAED;;;OAGG;IACH,UAAU,IAFG,IAAI,CAIhB;IAED;;;OAGG;IACH,MAAM,CAAC,OAAO,IAFD,UAAU,CAItB;IAED;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,aAAa,AAJnC,CACA,EADQ,aAIqD,EAAE,OAAO,AAHtE,CACA,EADQ,IAAI,CAAC,OAAO,wBAAwB,EAAE,iBAAiB,EAAE,eAAe,CAGL,GAFjE,UAAU,CAItB;IAED;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,EANL,OAAO,wCAAwC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAMjF,EAAE,EAAC,UAAU,EAAE,eAAe,EAAC,AAL5C,CAGA,EAFA;QAA4F,UAAU,AAAtG,CACA,EADQ,CAAC,QAAQ,EAAE,OAAO,4BAA4B,EAAE,gBAAgB,KAAK,IAAI,CACjF;QAA0B,eAAe,AAAzC,CACA,EADQ,OAAO,CACf;KAEiD,GAFvC,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,wBAAwB,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,iBAAiB,GAAG,IAAI,CAAA;KAAC,CAAC,CAgBzJ;IAED;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAHP,OAAO,wCAAwC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAG/E,GAFL,OAAO,CAAC,IAAI,CAAC,CAKzB;IAED;;;;;;OAMG;IACG,IAAI,CAAC,EAAC,UAAU,EAAE,eAAe,EAAC,AALrC,CAGA,EAFA;QAA4F,UAAU,AAAtG,CACA,EADQ,CAAC,QAAQ,EAAE,OAAO,4BAA4B,EAAE,gBAAgB,KAAK,IAAI,CACjF;QAA0B,eAAe,AAAzC,CACA,EADQ,OAAO,CACf;KAE0C,GAFhC,OAAO,CAAC,OAAO,4BAA4B,EAAE,iBAAiB,GAAG,IAAI,CAAC,CAIlF;IAED;;;;;;;OAOG;IACG,KAAK,CAAC,EAAC,UAAU,EAAE,MAAM,EAAE,eAAe,EAAC,EAL9C;QAAyF,UAAU,AAAnG,CACA,EADQ,CAAC,QAAQ,EAAE,OAAO,4BAA4B,EAAE,gBAAgB,KAAK,IAAI,CACjF;QAA0B,MAAM,EAAxB,WAAW,CACnB;QAAuB,eAAe,AAAtC,CACA,EADQ,OAAO,CACf;KAE8C,GAFpC,OAAO,CAAC,OAAO,4BAA4B,EAAE,iBAAiB,GAAG,IAAI,CAAC,CA4ElF;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,EAAC,MAAwB,EAAC,AAHvC,CACA,EADQ;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAGoB,GAFlC,CAAC,IAAI,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,KAAK,OAAO,CAAC,OAAO,4BAA4B,EAAE,qBAAqB,CAAC,CAiClJ;IAED;;;;;;;;;;OAUG;IACH,cAAc,IAFD,OAAO,wBAAwB,EAAE,0BAA0B,GAAG,IAAI,CAgB9E;IAED;;;;;OAKG;IACG,iBAAiB,CAAC,OAAO,AAH5B,CACA,EADQ,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGR,GAFlB,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;;;;;OAUG;IACG,kBAAkB,IAFX,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,MAAM,EAHrB,WAGqB,GAFnB,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;;;;OAMG;IACG,oBAAoB,IAFb,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;;;;;OAQG;IACG,SAAS,IAFF,OAAO,CAAC,OAAO,wBAAwB,EAAE,mBAAmB,CAAC,CAIzE;IAED;;;;;;;;;OASG;IACH,sBAAsB,IAFT,MAAM,EAAE,CAIpB;IAED;;;;;;;;;OASG;IACG,cAAc,IAFP,OAAO,CAAC,MAAM,CAAC,CAI3B;IAED;;;OAGG;IACG,mBAAmB,IAFZ,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,cAAc,IAFD,UAAU,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAIpD;IAED;;;;OAIG;IACG,sBAAsB,IAFf,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;OAGG;IACH,cAAc,IAFD,kBAAkB,CAM9B;IAED;;;;;OAKG;IACG,KAAK,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,SAAoB,EAAE,QAAQ,EAAE,QAAQ,EAAC,EAH9D;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAGtI,GAF5D,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,OAAO,yBAAyB,EAAE,sBAAsB,CAAC,CA8C7G;IAED;;;;OAIG;IACG,aAAa,IAFN,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACG,cAAc,CAAC,MAAM,EAHhB,WAGgB,GAFd,OAAO,CAAC,IAAI,CAAC,CAmCzB;IAED;;;;;OAKG;IACH,iBAAiB,CAAC,EAAC,UAAU,EAAE,YAAY,EAAE,OAAO,EAAC,EAH1C;QAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAG1C,GAFxC,IAAI,CAOhB;IAED;;;;OAIG;IACH,cAAc,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAC,EAHvC;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAA;KAGtH,GAFrC,MAAM,GAAG,MAAM,GAAG,IAAI,CAelC;IAED;;;;;OAKG;IACH,yBAAyB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAC,EAHlD;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAA;KAG3G,GAFhD,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBlC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAC,EAH/C;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAA;KAG9G,GAF7C,MAAM,GAAG,MAAM,GAAG,IAAI,CAYlC;IAED;;;;OAIG;IACH,cAAc,IAFD,IAAI,CAYhB;IAED;;;OAGG;IACG,sBAAsB,IAFf,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAHN,KAGM,GAFJ,IAAI,CAShB;IAED;;;OAGG;IACG,QAAQ,IAFD,OAAO,CAAC,OAAO,CAAC,CAM5B;IAED;;;OAGG;IACH,UAAU,IAFG,OAAO,uBAAuB,EAAE,OAAO,CAgBnD;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAHf,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGb,GAFb,OAAO,wBAAwB,EAAE,wBAAwB,CAerE;IAED;;;;;;OAMG;IACH,eAAe,CAAC,EAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAC,EAHxC;QAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,cAAc,EAAE,OAAO,wBAAwB,EAAE,wBAAwB,CAAA;KAGrH,GAFtC,MAAM,CAQlB;IAED;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,AAH1B,CACA,EADQ,OAAO,0BAA0B,EAAE,OAAO,GAAG,IAG3B,GAFhB,MAAM,CAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,kBAAkB,CAAC,CA+BnF;IAED;;;;;OAKG;IACG,mBAAmB,CAJZ,CAAC,EAIY,QAAQ,EAHvB,CAAC,SAAS,EAAE,OAAO,0BAA0B,EAAE,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAGpD,GAFrB,OAAO,CAAC,CAAC,CAAC,CActB;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAM,EAHN,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGtB,GAFJ,OAAO,CASnB;IAED;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAHjB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGX,GAFf,IAAI,CAIhB;IAED;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAHf,OAAO,wCAAwC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGvE,GAFb,IAAI,CAchB;IAED;;;OAGG;IACH,iBAAiB,IAFJ,IAAI,CAUhB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,EAAC,SAAS,EAAE,MAAM,EAAC,EAHzB;QAAC,SAAS,EAAE,OAAO,0BAA0B,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAA;KAGpE,GAFvB,IAAI,CAMhB;CACF;AAsKD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,aAAa,AAHrC,CACA,EADQ,aAGuD,GAFrD,UAAU,CAYtB;AAED;;;;GAIG;AACH,wBAAsB,IAAI,CAAC,KAAK,EAHrB,OAAO,wCAAwC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGjE,GAFnB,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,wBAAwB,EAAE,mBAAmB,CAAC;IAAC,MAAM,EAAE,OAAO,4BAA4B,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAC,CAAC,CAIzJ"}