@plane31/blind-relay 0.3.0 → 0.5.0

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 (45) hide show
  1. package/README.md +29 -1
  2. package/dist/adapters/index.d.ts +4 -0
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +5 -0
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/client.d.ts +33 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +76 -13
  9. package/dist/client.js.map +1 -1
  10. package/dist/crypto/sodium.d.ts.map +1 -1
  11. package/dist/crypto/sodium.js +3 -33
  12. package/dist/crypto/sodium.js.map +1 -1
  13. package/dist/crypto/sodiumLike.d.ts +39 -0
  14. package/dist/crypto/sodiumLike.d.ts.map +1 -0
  15. package/dist/crypto/sodiumLike.js +142 -0
  16. package/dist/crypto/sodiumLike.js.map +1 -0
  17. package/dist/errors.d.ts +6 -2
  18. package/dist/errors.d.ts.map +1 -1
  19. package/dist/errors.js +5 -1
  20. package/dist/errors.js.map +1 -1
  21. package/dist/inbox.d.ts +4 -0
  22. package/dist/inbox.d.ts.map +1 -1
  23. package/dist/inbox.js +22 -14
  24. package/dist/inbox.js.map +1 -1
  25. package/dist/index.d.ts +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/outbox.d.ts +5 -0
  29. package/dist/outbox.d.ts.map +1 -1
  30. package/dist/outbox.js +6 -3
  31. package/dist/outbox.js.map +1 -1
  32. package/dist/testing/faults.d.ts +5 -0
  33. package/dist/testing/faults.d.ts.map +1 -1
  34. package/dist/testing/faults.js +13 -0
  35. package/dist/testing/faults.js.map +1 -1
  36. package/package.json +1 -1
  37. package/src/adapters/index.ts +6 -0
  38. package/src/client.ts +107 -13
  39. package/src/crypto/sodium.ts +4 -33
  40. package/src/crypto/sodiumLike.ts +169 -0
  41. package/src/errors.ts +6 -1
  42. package/src/inbox.ts +24 -13
  43. package/src/index.ts +2 -1
  44. package/src/outbox.ts +9 -3
  45. package/src/testing/faults.ts +17 -0
@@ -3,6 +3,7 @@
3
3
  * the wasm; use it on Node, where it is faster than the portable backend, and to cross-check it.
4
4
  */
5
5
  import { createRequire } from "node:module";
6
+ import { sodiumBackend } from "./sodiumLike.js";
6
7
  /**
7
8
  * Node only. The wrapper is loaded through its `require` condition, the CommonJS build, which is
8
9
  * self-contained; its ESM build has shipped broken (0.7.16 imports a sibling file the package does
@@ -14,38 +15,7 @@ export async function loadSodiumBackend() {
14
15
  const mod = require("libsodium-wrappers-sumo");
15
16
  const sodium = mod.default ?? mod;
16
17
  await sodium.ready;
17
- return {
18
- name: "sodium",
19
- blake2b: (data, outLen, key) => sodium.crypto_generichash(outLen, data, key ?? null),
20
- randomBytes: (length) => sodium.randombytes_buf(length),
21
- signKeypairFromSeed(seed) {
22
- const kp = sodium.crypto_sign_seed_keypair(seed);
23
- return { publicKey: kp.publicKey, secretKey: kp.privateKey };
24
- },
25
- signDetached: (message, secretKey) => sodium.crypto_sign_detached(message, secretKey),
26
- verifyDetached(signature, message, publicKey) {
27
- try {
28
- return sodium.crypto_sign_verify_detached(signature, message, publicKey);
29
- }
30
- catch {
31
- return false;
32
- }
33
- },
34
- isValidSignPoint: (publicKey) => publicKey.length === 32 && sodium.crypto_core_ed25519_is_valid_point(publicKey),
35
- boxKeypairFromSeed(seed) {
36
- const kp = sodium.crypto_box_seed_keypair(seed);
37
- return { publicKey: kp.publicKey, secretKey: kp.privateKey };
38
- },
39
- boxKeypair() {
40
- const kp = sodium.crypto_box_keypair();
41
- return { publicKey: kp.publicKey, secretKey: kp.privateKey };
42
- },
43
- scalarMult: (secretKey, publicKey) => sodium.crypto_scalarmult(secretKey, publicKey),
44
- boxEasy: (message, nonce, publicKey, secretKey) => sodium.crypto_box_easy(message, nonce, publicKey, secretKey),
45
- boxOpenEasy: (box, nonce, publicKey, secretKey) => sodium.crypto_box_open_easy(box, nonce, publicKey, secretKey),
46
- aeadEncrypt: (plaintext, aad, nonce, key) => sodium.crypto_aead_xchacha20poly1305_ietf_encrypt(plaintext, aad, null, nonce, key),
47
- aeadDecrypt: (ciphertextAndTag, aad, nonce, key) => sodium.crypto_aead_xchacha20poly1305_ietf_decrypt(null, ciphertextAndTag, aad, nonce, key),
48
- memzero: (bytes) => sodium.memzero(bytes)
49
- };
18
+ // The typed wrapper's overloads (output formats) do not match the structural interface; the calls made are the Uint8Array ones.
19
+ return sodiumBackend(sodium);
50
20
  }
51
21
  //# sourceMappingURL=sodium.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sodium.js","sourceRoot":"","sources":["../../src/crypto/sodium.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sodium.js","sourceRoot":"","sources":["../../src/crypto/sodium.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAIjE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,yBAAyB,CAAkC,CAAC;IAChF,MAAM,MAAM,GAAW,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC;IAC1C,MAAM,MAAM,CAAC,KAAK,CAAC;IACnB,gIAAgI;IAChI,OAAO,aAAa,CAAC,MAA+B,CAAC,CAAC;AACxD,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { CryptoBackend } from "./backend.js";
2
+ /** The subset of libsodium's API the backend can use; everything but signing, boxing and hashing may be absent. */
3
+ export interface SodiumLike {
4
+ crypto_generichash(outLen: number, data: Uint8Array, key?: Uint8Array | null): Uint8Array;
5
+ randombytes_buf(length: number): Uint8Array;
6
+ crypto_sign_seed_keypair(seed: Uint8Array): {
7
+ publicKey: Uint8Array;
8
+ privateKey: Uint8Array;
9
+ };
10
+ crypto_sign_detached(message: Uint8Array, secretKey: Uint8Array): Uint8Array;
11
+ crypto_sign_verify_detached(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): boolean;
12
+ crypto_core_ed25519_is_valid_point?(point: Uint8Array): boolean;
13
+ crypto_box_seed_keypair(seed: Uint8Array): {
14
+ publicKey: Uint8Array;
15
+ privateKey: Uint8Array;
16
+ };
17
+ crypto_box_keypair(): {
18
+ publicKey: Uint8Array;
19
+ privateKey: Uint8Array;
20
+ };
21
+ crypto_scalarmult?(secretKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
22
+ crypto_box_easy(message: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
23
+ crypto_box_open_easy(box: Uint8Array, nonce: Uint8Array, publicKey: Uint8Array, secretKey: Uint8Array): Uint8Array;
24
+ crypto_aead_xchacha20poly1305_ietf_encrypt?(message: Uint8Array, aad: Uint8Array | null, secretNonce: Uint8Array | null, nonce: Uint8Array, key: Uint8Array): Uint8Array;
25
+ crypto_aead_xchacha20poly1305_ietf_decrypt?(secretNonce: Uint8Array | null, ciphertext: Uint8Array, aad: Uint8Array | null, nonce: Uint8Array, key: Uint8Array): Uint8Array;
26
+ memzero?(bytes: Uint8Array): void;
27
+ }
28
+ /** Which of the backend's operations run on the binding and which on the portable implementation, after the build-time check. */
29
+ export interface SodiumBackendReport {
30
+ readonly native: readonly string[];
31
+ readonly portable: readonly string[];
32
+ }
33
+ /** Build the backend; see the module comment for how each function is checked. */
34
+ export declare function sodiumBackend(sodium: SodiumLike): CryptoBackend;
35
+ export declare function buildSodiumBackend(sodium: SodiumLike): {
36
+ backend: CryptoBackend;
37
+ report: SodiumBackendReport;
38
+ };
39
+ //# sourceMappingURL=sodiumLike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sodiumLike.d.ts","sourceRoot":"","sources":["../../src/crypto/sodiumLike.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAc,aAAa,EAAe,MAAM,cAAc,CAAC;AAG3E,mHAAmH;AACnH,MAAM,WAAW,UAAU;IACzB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,CAAC;IAC1F,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC;IAC5C,wBAAwB,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;IAC9F,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IAC7E,2BAA2B,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC;IACxG,kCAAkC,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAChE,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;IAC7F,kBAAkB,IAAI;QAAE,SAAS,EAAE,UAAU,CAAC;QAAC,UAAU,EAAE,UAAU,CAAA;KAAE,CAAC;IACxE,iBAAiB,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IAC7E,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IAClH,oBAAoB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnH,0CAA0C,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;IACzK,0CAA0C,CAAC,CAAC,WAAW,EAAE,UAAU,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAAC;IAC5K,OAAO,CAAC,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;CACnC;AAED,iIAAiI;AACjI,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAMD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAE/D;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG;IAAE,OAAO,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAM9G"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * A libsodium backend over any object with libsodium's JavaScript API: `libsodium-wrappers-sumo`
3
+ * on Node (wasm), or a native binding on a phone (`react-native-libsodium` over JSI), where it
4
+ * replaces the portable backend's pure-JavaScript Ed25519 and X25519 with the C implementation.
5
+ *
6
+ * Bindings differ from libsodium's reference API in small ways (react-native-libsodium 1.7 has
7
+ * no `crypto_scalarmult`, no `memzero`, no `crypto_core_ed25519_is_valid_point`, and its AEAD
8
+ * takes only string associated data, while the protocol's is binary). So the backend is built per
9
+ * function: each one the binding provides is checked once against the portable implementation
10
+ * on known inputs, and a function the binding lacks or gets wrong on a type it does not support
11
+ * falls back to the portable one, while a function that answers differently on the same input is
12
+ * refused outright, since silently wrong bytes would be worse than slow ones. The caller awaits
13
+ * `sodium.ready` before building. Both backends pass the same vectors.
14
+ */
15
+ import { KavachError } from "../errors.js";
16
+ import { nobleBackend } from "./noble.js";
17
+ const same = (a, b) => a.length === b.length && a.every((x, i) => x === b[i]);
18
+ /** The X25519 base point, for deriving a public key from a secret scalar on the portable implementation. */
19
+ const X25519_BASE = Uint8Array.from([9, ...new Array(31).fill(0)]);
20
+ /** Build the backend; see the module comment for how each function is checked. */
21
+ export function sodiumBackend(sodium) {
22
+ return buildSodiumBackend(sodium).backend;
23
+ }
24
+ /** One build per binding object: the checks run once in a JavaScript context, however often the same binding is installed. */
25
+ const built = new WeakMap();
26
+ export function buildSodiumBackend(sodium) {
27
+ const cached = built.get(sodium);
28
+ if (cached)
29
+ return cached;
30
+ const result = checkAndBuild(sodium);
31
+ built.set(sodium, result);
32
+ return result;
33
+ }
34
+ function checkAndBuild(sodium) {
35
+ const stage = "sodiumBackend";
36
+ const native = [];
37
+ const portable = [];
38
+ const n = nobleBackend;
39
+ // Known inputs: deterministic, so the check is the same on every device.
40
+ const seed = Uint8Array.from({ length: 32 }, (_, i) => (i * 37 + 11) & 0xff);
41
+ const message = Uint8Array.from({ length: 70 }, (_, i) => (i * 29 + 3) & 0xff);
42
+ const nonce24 = Uint8Array.from({ length: 24 }, (_, i) => (i * 13 + 5) & 0xff);
43
+ const key32 = Uint8Array.from({ length: 32 }, (_, i) => (255 - i * 7) & 0xff);
44
+ const aad = Uint8Array.from([0, 1, 2, 250, 251, 252]);
45
+ /** A required function: present and agreeing with the portable implementation, or the binding is refused. */
46
+ const required = (name, check) => {
47
+ let ok = false;
48
+ try {
49
+ ok = check();
50
+ }
51
+ catch {
52
+ ok = false;
53
+ }
54
+ if (!ok)
55
+ throw new KavachError("INVALID_KEY", stage, `${name} is missing or disagrees with the portable implementation; the binding cannot be used`);
56
+ native.push(name);
57
+ };
58
+ /** An optional function: used when present and agreeing on the protocol's input types, portable otherwise. */
59
+ const optional = (name, present, check) => {
60
+ let ok = false;
61
+ if (present) {
62
+ try {
63
+ ok = check();
64
+ }
65
+ catch {
66
+ ok = false;
67
+ }
68
+ }
69
+ (ok ? native : portable).push(name);
70
+ return ok;
71
+ };
72
+ const nSign = n.signKeypairFromSeed(seed);
73
+ required("signKeypairFromSeed", () => {
74
+ const kp = sodium.crypto_sign_seed_keypair(seed);
75
+ return same(kp.publicKey, nSign.publicKey) && same(kp.privateKey, nSign.secretKey);
76
+ });
77
+ required("signDetached", () => same(sodium.crypto_sign_detached(message, nSign.secretKey), n.signDetached(message, nSign.secretKey)));
78
+ required("verifyDetached", () => sodium.crypto_sign_verify_detached(n.signDetached(message, nSign.secretKey), message, nSign.publicKey) === true && sodium.crypto_sign_verify_detached(n.signDetached(message, nSign.secretKey), nonce24, nSign.publicKey) === false);
79
+ required("blake2b", () => same(sodium.crypto_generichash(32, message, null), n.blake2b(message, 32)) && same(sodium.crypto_generichash(64, message, key32), n.blake2b(message, 64, key32)));
80
+ const nBox = n.boxKeypairFromSeed(seed);
81
+ required("boxKeypairFromSeed", () => {
82
+ const kp = sodium.crypto_box_seed_keypair(seed);
83
+ return same(kp.publicKey, nBox.publicKey) && same(kp.privateKey, nBox.secretKey);
84
+ });
85
+ required("boxKeypair", () => {
86
+ // A fresh keypair cannot be compared with a known one; its public key must be the one its secret derives.
87
+ const kp = sodium.crypto_box_keypair();
88
+ return kp.publicKey.length === 32 && kp.privateKey.length === 32 && same(kp.publicKey, n.scalarMult(kp.privateKey, X25519_BASE));
89
+ });
90
+ const other = n.boxKeypairFromSeed(key32);
91
+ required("boxEasy", () => same(sodium.crypto_box_easy(message, nonce24, other.publicKey, nBox.secretKey), n.boxEasy(message, nonce24, other.publicKey, nBox.secretKey)));
92
+ required("boxOpenEasy", () => same(sodium.crypto_box_open_easy(n.boxEasy(message, nonce24, other.publicKey, nBox.secretKey), nonce24, nBox.publicKey, other.secretKey), message));
93
+ required("randomBytes", () => sodium.randombytes_buf(16).length === 16);
94
+ const scalarMultNative = optional("scalarMult", typeof sodium.crypto_scalarmult === "function", () => same(sodium.crypto_scalarmult?.(nBox.secretKey, other.publicKey) ?? new Uint8Array(), n.scalarMult(nBox.secretKey, other.publicKey)));
95
+ const aeadNative = optional("aead", typeof sodium.crypto_aead_xchacha20poly1305_ietf_encrypt === "function" && typeof sodium.crypto_aead_xchacha20poly1305_ietf_decrypt === "function", () => {
96
+ // The protocol's associated data is binary; a binding that takes only strings throws here and falls back.
97
+ const sealed = sodium.crypto_aead_xchacha20poly1305_ietf_encrypt?.(message, aad, null, nonce24, key32) ?? new Uint8Array();
98
+ const opened = sodium.crypto_aead_xchacha20poly1305_ietf_decrypt?.(null, n.aeadEncrypt(message, aad, nonce24, key32), aad, nonce24, key32) ?? new Uint8Array();
99
+ return same(sealed, n.aeadEncrypt(message, aad, nonce24, key32)) && same(opened, message);
100
+ });
101
+ const validPointNative = optional("isValidSignPoint", typeof sodium.crypto_core_ed25519_is_valid_point === "function", () => sodium.crypto_core_ed25519_is_valid_point?.(nSign.publicKey) === true && sodium.crypto_core_ed25519_is_valid_point?.(new Uint8Array(32)) === false);
102
+ const memzeroNative = optional("memzero", typeof sodium.memzero === "function", () => {
103
+ const probe = Uint8Array.from([1, 2, 3]);
104
+ sodium.memzero?.(probe);
105
+ return probe.every((b) => b === 0);
106
+ });
107
+ const backend = {
108
+ name: "sodium",
109
+ blake2b: (data, outLen, key) => sodium.crypto_generichash(outLen, data, key ?? null),
110
+ randomBytes: (length) => sodium.randombytes_buf(length),
111
+ signKeypairFromSeed(s) {
112
+ const kp = sodium.crypto_sign_seed_keypair(s);
113
+ return { publicKey: kp.publicKey, secretKey: kp.privateKey };
114
+ },
115
+ signDetached: (m, secretKey) => sodium.crypto_sign_detached(m, secretKey),
116
+ verifyDetached(signature, m, publicKey) {
117
+ try {
118
+ return sodium.crypto_sign_verify_detached(signature, m, publicKey);
119
+ }
120
+ catch {
121
+ return false;
122
+ }
123
+ },
124
+ isValidSignPoint: validPointNative ? (publicKey) => publicKey.length === 32 && sodium.crypto_core_ed25519_is_valid_point?.(publicKey) === true : (publicKey) => n.isValidSignPoint(publicKey),
125
+ boxKeypairFromSeed(s) {
126
+ const kp = sodium.crypto_box_seed_keypair(s);
127
+ return { publicKey: kp.publicKey, secretKey: kp.privateKey };
128
+ },
129
+ boxKeypair() {
130
+ const kp = sodium.crypto_box_keypair();
131
+ return { publicKey: kp.publicKey, secretKey: kp.privateKey };
132
+ },
133
+ scalarMult: scalarMultNative ? (secretKey, publicKey) => sodium.crypto_scalarmult?.(secretKey, publicKey) ?? n.scalarMult(secretKey, publicKey) : (secretKey, publicKey) => n.scalarMult(secretKey, publicKey),
134
+ boxEasy: (m, nonce, publicKey, secretKey) => sodium.crypto_box_easy(m, nonce, publicKey, secretKey),
135
+ boxOpenEasy: (box, nonce, publicKey, secretKey) => sodium.crypto_box_open_easy(box, nonce, publicKey, secretKey),
136
+ aeadEncrypt: aeadNative ? (plaintext, a, nonce, key) => sodium.crypto_aead_xchacha20poly1305_ietf_encrypt?.(plaintext, a, null, nonce, key) ?? n.aeadEncrypt(plaintext, a, nonce, key) : (plaintext, a, nonce, key) => n.aeadEncrypt(plaintext, a, nonce, key),
137
+ aeadDecrypt: aeadNative ? (c, a, nonce, key) => sodium.crypto_aead_xchacha20poly1305_ietf_decrypt?.(null, c, a, nonce, key) ?? n.aeadDecrypt(c, a, nonce, key) : (c, a, nonce, key) => n.aeadDecrypt(c, a, nonce, key),
138
+ memzero: memzeroNative ? (bytes) => sodium.memzero?.(bytes) : (bytes) => bytes.fill(0)
139
+ };
140
+ return { backend, report: { native, portable } };
141
+ }
142
+ //# sourceMappingURL=sodiumLike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sodiumLike.js","sourceRoot":"","sources":["../../src/crypto/sodiumLike.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -7,7 +7,7 @@ export type ErrorCode = "SIZE_LIMIT" | "MALFORMED" | "UNSUPPORTED_VERSION" | "UN
7
7
  /** Account recovery: the proposal has no valid authorization, or it expired, or a definitive conflict ended the proposal. */
8
8
  | "AUTHORIZATION_REQUIRED" | "AUTHORIZATION_EXPIRED" | "REPLACEMENT_CONFLICT"
9
9
  /** The outcome of a submitted succession is not yet known; retry or look it up. */
10
- | "SUCCESSION_PENDING" | "CLOCK_SKEW" | "EXPIRED" | "QUEUE_FULL" | "CURSOR_OUT_OF_RANGE" | "STALE_APPEND" | "LOCKED" | "CLOSED" | "RECOVERY_REQUIRED" | "STORAGE_FAILURE"
10
+ | "SUCCESSION_PENDING" | "CLOCK_SKEW" | "EXPIRED" | "QUEUE_FULL" | "CURSOR_OUT_OF_RANGE" | "STALE_APPEND" | "LOCKED" | "CLOSED" | "RECOVERY_REQUIRED" | "STORAGE_FAILURE" | "RATE_LIMITED"
11
11
  /** The host could not be reached or did not answer in time; the same call may succeed later. A transport raises it, never a plain error. */
12
12
  | "NETWORK";
13
13
  /**
@@ -19,7 +19,11 @@ export declare class KavachError extends Error {
19
19
  readonly code: ErrorCode;
20
20
  readonly stage: string;
21
21
  readonly retryable: boolean;
22
- constructor(code: ErrorCode, stage?: string, message?: string);
22
+ /** On `RATE_LIMITED`: how long the host asked the client to wait, when it said. */
23
+ readonly retryAfterMs: number | undefined;
24
+ constructor(code: ErrorCode, stage?: string, message?: string, options?: {
25
+ retryAfterMs?: number;
26
+ });
23
27
  }
24
28
  export declare function isKavachError(value: unknown, code?: ErrorCode): value is KavachError;
25
29
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,MAAM,MAAM,SAAS,GAEjB,YAAY,GACZ,WAAW,GACX,qBAAqB,GACrB,kBAAkB,GAClB,aAAa,GAEb,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,GAEzB,qBAAqB,GACrB,2BAA2B,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,UAAU,GACV,cAAc,GACd,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB;AACnB,0HAA0H;GACxH,oBAAoB;AACtB,yFAAyF;GACvF,qBAAqB;AACvB,6HAA6H;GAC3H,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB;AACxB,mFAAmF;GACjF,oBAAoB,GAEpB,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,qBAAqB,GACrB,cAAc,GAEd,QAAQ,GACR,QAAQ,GACR,mBAAmB,GACnB,iBAAiB;AACnB,4IAA4I;GAC1I,SAAS,CAAC;AAad;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,IAAI,EAAE,SAAS,EAAE,KAAK,SAAY,EAAE,OAAO,CAAC,EAAE,MAAM;CAOjE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAEpF"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,yGAAyG;AACzG,MAAM,MAAM,SAAS,GAEjB,YAAY,GACZ,WAAW,GACX,qBAAqB,GACrB,kBAAkB,GAClB,aAAa,GAEb,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,yBAAyB,GAEzB,qBAAqB,GACrB,2BAA2B,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,eAAe,GACf,eAAe,GACf,qBAAqB,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,UAAU,GACV,cAAc,GACd,mBAAmB,GACnB,aAAa,GACb,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,iBAAiB;AACnB,0HAA0H;GACxH,oBAAoB;AACtB,yFAAyF;GACvF,qBAAqB;AACvB,6HAA6H;GAC3H,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB;AACxB,mFAAmF;GACjF,oBAAoB,GAEpB,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,qBAAqB,GACrB,cAAc,GAEd,QAAQ,GACR,QAAQ,GACR,mBAAmB,GACnB,iBAAiB,GACjB,cAAc;AAChB,4IAA4I;GAC1I,SAAS,CAAC;AAcd;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;gBAE9B,IAAI,EAAE,SAAS,EAAE,KAAK,SAAY,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;CAQ1G;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,IAAI,WAAW,CAEpF"}
package/dist/errors.js CHANGED
@@ -6,6 +6,7 @@ const RETRYABLE = new Set([
6
6
  "LOCKED",
7
7
  "STORAGE_FAILURE",
8
8
  "NETWORK",
9
+ "RATE_LIMITED",
9
10
  "SUCCESSION_PENDING"
10
11
  ]);
11
12
  /**
@@ -17,12 +18,15 @@ export class KavachError extends Error {
17
18
  code;
18
19
  stage;
19
20
  retryable;
20
- constructor(code, stage = "unknown", message) {
21
+ /** On `RATE_LIMITED`: how long the host asked the client to wait, when it said. */
22
+ retryAfterMs;
23
+ constructor(code, stage = "unknown", message, options = {}) {
21
24
  super(message ?? `${code} at ${stage}`);
22
25
  this.name = "KavachError";
23
26
  this.code = code;
24
27
  this.stage = stage;
25
28
  this.retryable = RETRYABLE.has(code);
29
+ this.retryAfterMs = options.retryAfterMs;
26
30
  }
27
31
  }
28
32
  export function isKavachError(value, code) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAyDA,MAAM,SAAS,GAA2B,IAAI,GAAG,CAAY;IAC3D,aAAa;IACb,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAY;IAChB,KAAK,CAAS;IACd,SAAS,CAAU;IAE5B,YAAY,IAAe,EAAE,KAAK,GAAG,SAAS,EAAE,OAAgB;QAC9D,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,IAAgB;IAC5D,OAAO,KAAK,YAAY,WAAW,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AA0DA,MAAM,SAAS,GAA2B,IAAI,GAAG,CAAY;IAC3D,aAAa;IACb,mBAAmB;IACnB,qBAAqB;IACrB,mBAAmB;IACnB,QAAQ;IACR,iBAAiB;IACjB,SAAS;IACT,cAAc;IACd,oBAAoB;CACrB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,CAAY;IAChB,KAAK,CAAS;IACd,SAAS,CAAU;IAC5B,mFAAmF;IAC1E,YAAY,CAAqB;IAE1C,YAAY,IAAe,EAAE,KAAK,GAAG,SAAS,EAAE,OAAgB,EAAE,UAAqC,EAAE;QACvG,KAAK,CAAC,OAAO,IAAI,GAAG,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,IAAgB;IAC5D,OAAO,KAAK,YAAY,WAAW,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACrF,CAAC"}
package/dist/inbox.d.ts CHANGED
@@ -62,6 +62,10 @@ export interface StreamSyncSummary {
62
62
  acked: bigint | undefined;
63
63
  /** The relay holds more records past the last page read; the budget stopped the catch-up. */
64
64
  hasMore: boolean;
65
+ /** Record bytes read from the relay. */
66
+ bytes: number;
67
+ /** Set when a read failed after the pages counted above: the caller reports it, with what landed. */
68
+ failure?: unknown;
65
69
  }
66
70
  /**
67
71
  * One pass over one author stream: read a batch above the local scan position, process every
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
package/dist/inbox.js CHANGED
@@ -186,24 +186,31 @@ function eligiblePrefix(tx, streamId, scanPos, expiredThrough) {
186
186
  * records past the last page when the budget stopped the loop.
187
187
  */
188
188
  export async function syncStream(deps, streamId, authorIdentityId, budget = { remainingRecords: READ_BATCH, deadline: deps.now() }) {
189
- const summary = { read: 0, stored: 0, duplicate: 0, keyPending: 0, invalid: 0, expired: 0, acked: undefined, hasMore: false };
189
+ const summary = { read: 0, stored: 0, duplicate: 0, keyPending: 0, invalid: 0, expired: 0, acked: undefined, hasMore: false, bytes: 0 };
190
190
  const sub = await deps.store.read((tx) => subscription(tx, streamId, authorIdentityId));
191
191
  const unresolved = await deps.store.read((tx) => tx.list("unresolved", toHex(streamId) + ":"));
192
192
  let from = unresolved.length > 0 ? unbig(sub.ackPrefix) : unbig(sub.scanPos);
193
- for (;;) {
194
- // A failed read is the caller's to report: the sync names the stream in its report and goes
195
- // on to the next one, rather than counting a stream it never read as synced.
196
- const page = await deps.relay.readRecords(streamId, from, READ_BATCH);
197
- await processPage(deps, streamId, authorIdentityId, page, summary);
198
- budget.remainingRecords -= page.records.length;
199
- const caughtUp = page.nextSeq >= page.tail || page.nextSeq <= from;
200
- if (caughtUp)
201
- break;
202
- if (budget.remainingRecords <= 0 || deps.now() >= budget.deadline) {
203
- summary.hasMore = true;
204
- break;
193
+ try {
194
+ for (;;) {
195
+ // A failed read is the caller's to report: the sync names the stream in its report and goes
196
+ // on to the next one, rather than counting a stream it never read as synced.
197
+ const page = await deps.relay.readRecords(streamId, from, READ_BATCH);
198
+ await processPage(deps, streamId, authorIdentityId, page, summary);
199
+ budget.remainingRecords -= page.records.length;
200
+ const caughtUp = page.nextSeq >= page.tail || page.nextSeq <= from;
201
+ if (caughtUp)
202
+ break;
203
+ if (budget.remainingRecords <= 0 || deps.now() >= budget.deadline) {
204
+ summary.hasMore = true;
205
+ break;
206
+ }
207
+ from = page.nextSeq;
205
208
  }
206
- from = page.nextSeq;
209
+ }
210
+ catch (e) {
211
+ // The pages that landed before the failure are real work: the summary keeps them and carries
212
+ // the failure beside them, untouched, for the caller to report.
213
+ summary.failure = e;
207
214
  }
208
215
  return summary;
209
216
  }
@@ -219,6 +226,7 @@ async function processPage(deps, streamId, authorIdentityId, page, summary) {
219
226
  }
220
227
  for (const item of page.records) {
221
228
  summary.read++;
229
+ summary.bytes += item.wire.length;
222
230
  if (item.deliverySeq <= page.expiredThrough) {
223
231
  summary.expired++;
224
232
  continue;
package/dist/inbox.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbox.js","sourceRoot":"","sources":["../src/inbox.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAyC,MAAM,YAAY,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,SAAS,EAAkC,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,EAAwB,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAQ,CAAC;AAC3C,MAAM,CAAC,MAAM,UAAU,GAAG,GAAG,CAAC;AA4B9B,kGAAkG;AAElG,SAAS,aAAa,CAAC,EAA4B,EAAE,QAAoB;IACvE,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACxF,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;IACzF,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAC/K,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;AAClH,CAAC;AAED,SAAS,YAAY,CAAC,EAA4B,EAAE,gBAA4B,EAAE,IAAgB;IAChG,IAAI,UAAU,CAAC,gBAAgB,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACpD,MAAM,GAAG,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,WAAW,CAAC,EAAmB,EAAE,QAAoB,EAAE,KAAa;IAC3E,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAClE,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,+GAA+G;AAC/G,KAAK,UAAU,aAAa,CAAC,IAAe,EAAE,QAAoB,EAAE,KAAa;IAC/E,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,6BAA6B;QACjG,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,EAAE;YACpD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;YACzB,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC7C,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACnE,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uGAAuG;AAEvG;;;;GAIG;AACH,SAAS,WAAW,CAAC,EAAM,EAAE,IAAe,EAAE,IAAgB,EAAE,GAAW;IACzE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,UAAU,CAAkB,aAAa,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IACzG,IAAI,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,kBAAkB;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACjG,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IACpE,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAClH,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,aAAa,CAAC,CAAC,EAAE,aAAa,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACrH,IAAI,CAAC,YAAY,WAAW;YAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3E,MAAM,CAAC,CAAC;IACV,CAAC;IACD,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;IAChI,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,sCAAsC;IAC1G,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC;IAChE,MAAM,SAAS,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1O,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtB,+FAA+F;QAC/F,4EAA4E;QAC5E,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,IAAI,OAAO,EAAE,QAAQ,KAAK,EAAE,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;gBAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,iBAAiB;YAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;QAC5D,OAAO,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IACzH,CAAC;IACD,MAAM,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvC,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1F,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IACvD,CAAC;IACD,MAAM,GAAG,GAAe;QACtB,QAAQ,EAAE,EAAE;QACZ,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI;QACJ,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;QAC1B,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC;QACpB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAChC,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,OAAO;QAC/C,GAAG,EAAE,KAAK;QACV,QAAQ,EAAE,IAAI;QACd,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;KAChF,CAAC;IACF,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC3B,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IACtB,4FAA4F;IAC5F,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,IAAI,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5G,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC;AACpG,CAAC;AAED,gGAAgG;AAChG,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAe,EAAE,IAAgB;IAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,IAAI,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrG,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc;QAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,cAAc,EAAE,iDAAiD,CAAC,CAAC;IAC3J,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAoBD,SAAS,YAAY,CAAC,EAAmB,EAAE,QAAoB,EAAE,gBAA4B;IAC3F,OAAO,CACL,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI;QAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;QACzB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,CAAC;QACzC,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,GAAG;QACd,eAAe,EAAE,GAAG;QACpB,WAAW,EAAE,KAAK;KACnB,CACF,CAAC;AACJ,CAAC;AAED,uGAAuG;AACvG,SAAS,cAAc,CAAC,EAAoB,EAAE,QAAoB,EAAE,OAAe,EAAE,cAAsB;IACzG,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,GAAG,IAAI,cAAc;YAAE,SAAS,CAAC,wDAAwD;QAC7F,IAAI,GAAG,GAAG,EAAE,GAAG,MAAM;YAAE,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAe,EAAE,QAAoB,EAAE,gBAA4B,EAAE,SAAqB,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE;IAC/K,MAAM,OAAO,GAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC3J,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACxF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC/F,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,SAAS,CAAC;YACR,4FAA4F;YAC5F,6EAA6E;YAC7E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;YACtE,MAAM,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACnE,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YACnE,IAAI,QAAQ;gBAAE,MAAM;YACpB,IAAI,MAAM,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAClE,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,6FAA6F;QAC7F,gEAAgE;QAChE,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4GAA4G;AAC5G,KAAK,UAAU,WAAW,CAAC,IAAe,EAAE,QAAoB,EAAE,gBAA4B,EAAE,IAAuB,EAAE,OAA0B;IACjJ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,iDAAiD;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QACnG,IAAI,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QACpF,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC9B,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,aAAa,CAAC,CAAC,EAAE,gBAAgB,CAAC;oBAAE,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;qBACvF,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;oBAClC,uFAAuF;oBACvF,qFAAqF;oBACrF,0DAA0D;oBAC1D,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,KAAK,cAAc,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;gBAC9G,CAAC;;oBAAM,MAAM,CAAC,CAAC;YACjB,CAAC;YACD,IAAI,OAAO;gBAAE,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;gBAC9B,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/J,CAAC;;gBAAM,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,2FAA2F;YAC3F,6EAA6E;YAC7E,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,sBAAsB,IAAI,CAAC,WAAW,UAAU,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,CAAC,OAAO,EAAE,CAAC;aAChD,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,SAAS,EAAE,CAAC;;YAClD,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,mFAAmF;IACnF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QAChD,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QACpH,MAAM,IAAI,GAAoB,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvH,MAAM,IAAI,GAAG,MAAM,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAClD,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACzD,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW;gBAAE,SAAS,GAAG,GAAG,CAAC,eAAe,IAAI,KAAK,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;YAClC,MAAM,CAAC,GAAG,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YACvD,EAAE,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,KAAK,SAAS,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAChM,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IAC5B,CAAC;AACH,CAAC;AAyCD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AAEjC,SAAS,OAAO,CAAC,CAAa;IAC5B,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC7B,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAC7C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACvB,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QAC/B,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/B,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAY,EAAE,MAAuB,EAAE,IAAkB,EAAE;IAC3F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACjF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACvB,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACzG,oFAAoF;YACpF,8FAA8F;YAC9F,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7J,MAAM,KAAK,GAAa;gBACtB,MAAM;gBACN,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;gBACtD,OAAO;gBACP,KAAK;aACN,CAAC;YACF,OAAO,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxH,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACrG,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAY,EAAE,MAAuB,EAAE,IAAkB,EAAE;IACvF,OAAO,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAY,EAAE,MAAuB,EAAE,IAAqD,EAAE;IACzH,OAAO,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAOD,4FAA4F;AAC5F,SAAS,YAAY,CAAC,KAAmB,EAAE,OAAgB,EAAE,KAAa;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,OAAO,GAAG,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAC1B,IAAI,IAA8C,CAAC;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC;QACtG,CAAC;QACD,IAAI,CAAC,IAAI;YAAE,MAAM;QACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAaD,6IAA6I;AAC7I,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAY,EAAE,gBAA4B,EAAE,IAAY,EAAE,GAAW;IACpG,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QACnD,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;IAC9K,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAY,EAAE,MAAuB;IACrE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM;gBAAE,SAAS;YAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACrC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;QACxV,CAAC;QACD,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAY,EAAE,MAAuB,EAAE,GAAW;IACnF,MAAM,MAAM,GAAG,CAAC,IAAY,EAAsB,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC;IACvF,MAAM,UAAU,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,CAA6C,EAAW,EAAE;QACxF,MAAM,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IAC7E,CAAC,CAAC;IACF,wFAAwF;IACxF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,KAAc,EAAwB,EAAE;QAC1E,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC5J,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,EAAqB,EAAE,KAAc,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/F,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IACH,iFAAiF;IACjF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvH,IAAI,CAAC,GAAG;QAAE,OAAO,CAAC,CAAC;IACnB,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;QAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBAC/B,SAAS;YACX,CAAC;YACD,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACxB,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzC,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;gBACtB,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO;oBAAE,OAAO,EAAE,CAAC,CAAC,mDAAmD;YAC/G,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,sFAAsF;AACtF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAY,EAAE,gBAA4B;IAC3E,MAAM,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,cAAc,CAAC,EAAM,EAAE,gBAA4B;IACjE,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;QAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC3F,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5C,IAAI,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,gBAAgB,CAAC;YAAE,SAAS;QACvD,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;YAAE,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@
8
8
  */
9
9
  export declare const PROTOCOL_NAME = "Kavach";
10
10
  export declare const PROTOCOL_REVISION = 9;
11
- export { open, type CircleSummary, type Client, type DrainOptions, type DrainReport, type DrainStop, type ClientEvent, type ClientState, type ClientStatus, type EnqueueOptions, type EnqueueResult, type HistoryEntry, type HistoryPage, type HistoryQuery, type Inspection, type KeyChangeEntry, type Newest, type OpenOptions, type PauseReason, type ReceiveResult, type ReplaceDeviceOptions, type ReplaceDeviceResult, type ReplacementProposal, type SyncError, type SyncOptions, type SyncReport } from "./client.js";
11
+ export { open, type CircleSummary, type Client, type DrainOptions, type DrainReport, type DrainStop, type ClientEvent, type ClientState, type ClientStatus, type EnqueueOptions, type EnqueueResult, type HistoryEntry, type HistoryPage, type HistoryQuery, type Inspection, type KeyChangeEntry, type Newest, type OpenOptions, type PauseReason, type ReceiveResult, type ReplaceDeviceOptions, type ReplaceDeviceResult, type ReplacementProposal, type SyncError, type SyncOptions, type SyncReport, type SyncTimings } from "./client.js";
12
12
  export { KavachError, isKavachError, type ErrorCode } from "./errors.js";
13
13
  export type { RecordKind } from "./codec.js";
14
14
  export { validatePolicy, type KindDeclaration, type ReplacementModel, type RetentionPolicy } from "./policy.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,OAAO,EACL,IAAI,EACJ,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EAChB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAChH,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,WAAW,CAAC;AACtC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AAGnC,OAAO,EACL,IAAI,EACJ,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAChH,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,qGAAqG;AACrG,OAAO,EACL,IAAI,EA0BL,MAAM,aAAa,CAAC;AAErB,qGAAqG;AACrG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAC;AAKzE,qGAAqG;AACrG,OAAO,EAAE,cAAc,EAAqE,MAAM,aAAa,CAAC;AAEhH,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAEnE,qGAAqG;AACrG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAEpB,qGAAqG;AACrG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC;AACtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC,qGAAqG;AACrG,OAAO,EACL,IAAI,EA2BL,MAAM,aAAa,CAAC;AAErB,qGAAqG;AACrG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAkB,MAAM,aAAa,CAAC;AAKzE,qGAAqG;AACrG,OAAO,EAAE,cAAc,EAAqE,MAAM,aAAa,CAAC;AAEhH,OAAO,EAAE,gBAAgB,EAAsB,MAAM,aAAa,CAAC;AAEnE,qGAAqG;AACrG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAOnB,MAAM,YAAY,CAAC;AAEpB,qGAAqG;AACrG,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
package/dist/outbox.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { KavachError } from "./errors.js";
1
2
  import { type RetentionPolicy } from "./policy.js";
2
3
  import type { Store, Tx } from "./store.js";
3
4
  import type { AppendOutcome, Relay } from "./transport.js";
@@ -68,6 +69,10 @@ export interface DrainSummary {
68
69
  cancelled: number;
69
70
  unknown: number;
70
71
  retry: number;
72
+ /** Record bytes handed to the relay by this drain. */
73
+ bytes: number;
74
+ /** The error that ended the drain early, when a send failed before or without an answer (NETWORK, RATE_LIMITED); its record stays queued. */
75
+ blocked?: KavachError;
71
76
  }
72
77
  /**
73
78
  * The single serialised sender: one record in flight per stream, drained in (epoch, counter)
@@ -1 +1 @@
1
- {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../src/outbox.ts"],"names":[],"mappings":"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"}