@optimystic/db-p2p 0.24.2 → 0.25.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 (249) hide show
  1. package/{readme.md → README.md} +688 -668
  2. package/dist/src/cluster/block-transfer-service.d.ts +133 -10
  3. package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
  4. package/dist/src/cluster/block-transfer-service.js +155 -9
  5. package/dist/src/cluster/block-transfer-service.js.map +1 -1
  6. package/dist/src/cluster/block-transfer.d.ts +67 -7
  7. package/dist/src/cluster/block-transfer.d.ts.map +1 -1
  8. package/dist/src/cluster/block-transfer.js +127 -24
  9. package/dist/src/cluster/block-transfer.js.map +1 -1
  10. package/dist/src/cluster/certified-claims.d.ts +170 -0
  11. package/dist/src/cluster/certified-claims.d.ts.map +1 -0
  12. package/dist/src/cluster/certified-claims.js +200 -0
  13. package/dist/src/cluster/certified-claims.js.map +1 -0
  14. package/dist/src/cluster/client-signature-verifier.d.ts +23 -0
  15. package/dist/src/cluster/client-signature-verifier.d.ts.map +1 -0
  16. package/dist/src/cluster/client-signature-verifier.js +33 -0
  17. package/dist/src/cluster/client-signature-verifier.js.map +1 -0
  18. package/dist/src/cluster/cluster-policy.d.ts +9 -3
  19. package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
  20. package/dist/src/cluster/cluster-policy.js +111 -27
  21. package/dist/src/cluster/cluster-policy.js.map +1 -1
  22. package/dist/src/cluster/cluster-repo.d.ts +140 -11
  23. package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
  24. package/dist/src/cluster/cluster-repo.js +485 -29
  25. package/dist/src/cluster/cluster-repo.js.map +1 -1
  26. package/dist/src/cluster/commit-proof.d.ts +134 -0
  27. package/dist/src/cluster/commit-proof.d.ts.map +1 -0
  28. package/dist/src/cluster/commit-proof.js +263 -0
  29. package/dist/src/cluster/commit-proof.js.map +1 -0
  30. package/dist/src/cluster/quorum-restore.d.ts +95 -8
  31. package/dist/src/cluster/quorum-restore.d.ts.map +1 -1
  32. package/dist/src/cluster/quorum-restore.js +113 -14
  33. package/dist/src/cluster/quorum-restore.js.map +1 -1
  34. package/dist/src/cluster/rebalance-monitor.d.ts +84 -0
  35. package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
  36. package/dist/src/cluster/rebalance-monitor.js +207 -5
  37. package/dist/src/cluster/rebalance-monitor.js.map +1 -1
  38. package/dist/src/cluster/reconcile-block.d.ts +27 -7
  39. package/dist/src/cluster/reconcile-block.d.ts.map +1 -1
  40. package/dist/src/cluster/reconcile-block.js +179 -38
  41. package/dist/src/cluster/reconcile-block.js.map +1 -1
  42. package/dist/src/cluster/service.d.ts +13 -4
  43. package/dist/src/cluster/service.d.ts.map +1 -1
  44. package/dist/src/cluster/service.js +17 -18
  45. package/dist/src/cluster/service.js.map +1 -1
  46. package/dist/src/cluster/spread-on-churn.d.ts +8 -2
  47. package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
  48. package/dist/src/cluster/spread-on-churn.js +7 -7
  49. package/dist/src/cluster/spread-on-churn.js.map +1 -1
  50. package/dist/src/cohort-topic/host.d.ts.map +1 -1
  51. package/dist/src/cohort-topic/host.js +8 -7
  52. package/dist/src/cohort-topic/host.js.map +1 -1
  53. package/dist/src/cohort-topic/stream-util.d.ts +7 -6
  54. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  55. package/dist/src/cohort-topic/stream-util.js +14 -41
  56. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  57. package/dist/src/dispute/cascade.d.ts +7 -8
  58. package/dist/src/dispute/cascade.d.ts.map +1 -1
  59. package/dist/src/dispute/cascade.js +24 -7
  60. package/dist/src/dispute/cascade.js.map +1 -1
  61. package/dist/src/dispute/dispute-service.d.ts +5 -0
  62. package/dist/src/dispute/dispute-service.d.ts.map +1 -1
  63. package/dist/src/dispute/dispute-service.js +13 -3
  64. package/dist/src/dispute/dispute-service.js.map +1 -1
  65. package/dist/src/dispute/invalidation.d.ts +33 -15
  66. package/dist/src/dispute/invalidation.d.ts.map +1 -1
  67. package/dist/src/dispute/invalidation.js +127 -34
  68. package/dist/src/dispute/invalidation.js.map +1 -1
  69. package/dist/src/dispute/service.d.ts.map +1 -1
  70. package/dist/src/dispute/service.js +2 -1
  71. package/dist/src/dispute/service.js.map +1 -1
  72. package/dist/src/index.d.ts +7 -0
  73. package/dist/src/index.d.ts.map +1 -1
  74. package/dist/src/index.js +7 -0
  75. package/dist/src/index.js.map +1 -1
  76. package/dist/src/libp2p-key-network.d.ts +14 -10
  77. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  78. package/dist/src/libp2p-key-network.js +28 -58
  79. package/dist/src/libp2p-key-network.js.map +1 -1
  80. package/dist/src/libp2p-node-base.d.ts +38 -7
  81. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  82. package/dist/src/libp2p-node-base.js +148 -63
  83. package/dist/src/libp2p-node-base.js.map +1 -1
  84. package/dist/src/network/open-protocol-stream.d.ts +56 -0
  85. package/dist/src/network/open-protocol-stream.d.ts.map +1 -0
  86. package/dist/src/network/open-protocol-stream.js +60 -0
  87. package/dist/src/network/open-protocol-stream.js.map +1 -0
  88. package/dist/src/network/register-protocol-handler.d.ts +66 -0
  89. package/dist/src/network/register-protocol-handler.d.ts.map +1 -0
  90. package/dist/src/network/register-protocol-handler.js +51 -0
  91. package/dist/src/network/register-protocol-handler.js.map +1 -0
  92. package/dist/src/peer-address-book.d.ts +60 -2
  93. package/dist/src/peer-address-book.d.ts.map +1 -1
  94. package/dist/src/peer-address-book.js +89 -1
  95. package/dist/src/peer-address-book.js.map +1 -1
  96. package/dist/src/pend-validation.d.ts +65 -0
  97. package/dist/src/pend-validation.d.ts.map +1 -0
  98. package/dist/src/pend-validation.js +69 -0
  99. package/dist/src/pend-validation.js.map +1 -0
  100. package/dist/src/reactivity/notify-transport.d.ts.map +1 -1
  101. package/dist/src/reactivity/notify-transport.js +2 -1
  102. package/dist/src/reactivity/notify-transport.js.map +1 -1
  103. package/dist/src/reactivity/push-state-gossip.d.ts.map +1 -1
  104. package/dist/src/reactivity/push-state-gossip.js +2 -1
  105. package/dist/src/reactivity/push-state-gossip.js.map +1 -1
  106. package/dist/src/repo/cluster-coordinator.d.ts +32 -6
  107. package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
  108. package/dist/src/repo/cluster-coordinator.js +44 -10
  109. package/dist/src/repo/cluster-coordinator.js.map +1 -1
  110. package/dist/src/repo/coordinator-repo.d.ts +181 -25
  111. package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
  112. package/dist/src/repo/coordinator-repo.js +650 -62
  113. package/dist/src/repo/coordinator-repo.js.map +1 -1
  114. package/dist/src/repo/served-repo-proxy.d.ts +30 -0
  115. package/dist/src/repo/served-repo-proxy.d.ts.map +1 -0
  116. package/dist/src/repo/served-repo-proxy.js +50 -0
  117. package/dist/src/repo/served-repo-proxy.js.map +1 -0
  118. package/dist/src/repo/service.d.ts +16 -1
  119. package/dist/src/repo/service.d.ts.map +1 -1
  120. package/dist/src/repo/service.js +18 -16
  121. package/dist/src/repo/service.js.map +1 -1
  122. package/dist/src/reputation/types.d.ts +3 -1
  123. package/dist/src/reputation/types.d.ts.map +1 -1
  124. package/dist/src/reputation/types.js +3 -1
  125. package/dist/src/reputation/types.js.map +1 -1
  126. package/dist/src/rn.d.ts +24 -2
  127. package/dist/src/rn.d.ts.map +1 -1
  128. package/dist/src/rn.js +33 -4
  129. package/dist/src/rn.js.map +1 -1
  130. package/dist/src/storage/block-archive.d.ts +153 -0
  131. package/dist/src/storage/block-archive.d.ts.map +1 -0
  132. package/dist/src/storage/block-archive.js +194 -0
  133. package/dist/src/storage/block-archive.js.map +1 -0
  134. package/dist/src/storage/block-latch.d.ts +92 -0
  135. package/dist/src/storage/block-latch.d.ts.map +1 -0
  136. package/dist/src/storage/block-latch.js +132 -0
  137. package/dist/src/storage/block-latch.js.map +1 -0
  138. package/dist/src/storage/block-storage.d.ts +169 -12
  139. package/dist/src/storage/block-storage.d.ts.map +1 -1
  140. package/dist/src/storage/block-storage.js +415 -152
  141. package/dist/src/storage/block-storage.js.map +1 -1
  142. package/dist/src/storage/cached-raw-storage.d.ts +5 -1
  143. package/dist/src/storage/cached-raw-storage.d.ts.map +1 -1
  144. package/dist/src/storage/cached-raw-storage.js +16 -1
  145. package/dist/src/storage/cached-raw-storage.js.map +1 -1
  146. package/dist/src/storage/cached-store-driver.d.ts +14 -4
  147. package/dist/src/storage/cached-store-driver.d.ts.map +1 -1
  148. package/dist/src/storage/cached-store-driver.js +39 -5
  149. package/dist/src/storage/cached-store-driver.js.map +1 -1
  150. package/dist/src/storage/i-block-storage.d.ts +70 -19
  151. package/dist/src/storage/i-block-storage.d.ts.map +1 -1
  152. package/dist/src/storage/i-block-storage.js +21 -1
  153. package/dist/src/storage/i-block-storage.js.map +1 -1
  154. package/dist/src/storage/i-raw-storage.d.ts +38 -0
  155. package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
  156. package/dist/src/storage/kv-raw-storage.d.ts +14 -8
  157. package/dist/src/storage/kv-raw-storage.d.ts.map +1 -1
  158. package/dist/src/storage/kv-raw-storage.js +29 -9
  159. package/dist/src/storage/kv-raw-storage.js.map +1 -1
  160. package/dist/src/storage/memory-store-driver.d.ts +4 -1
  161. package/dist/src/storage/memory-store-driver.d.ts.map +1 -1
  162. package/dist/src/storage/memory-store-driver.js +22 -2
  163. package/dist/src/storage/memory-store-driver.js.map +1 -1
  164. package/dist/src/storage/raw-store-codec.js +2 -2
  165. package/dist/src/storage/raw-store-driver.d.ts +44 -3
  166. package/dist/src/storage/raw-store-driver.d.ts.map +1 -1
  167. package/dist/src/storage/shared-cache-pool.d.ts +60 -3
  168. package/dist/src/storage/shared-cache-pool.d.ts.map +1 -1
  169. package/dist/src/storage/shared-cache-pool.js +68 -4
  170. package/dist/src/storage/shared-cache-pool.js.map +1 -1
  171. package/dist/src/storage/storage-repo.d.ts +204 -26
  172. package/dist/src/storage/storage-repo.d.ts.map +1 -1
  173. package/dist/src/storage/storage-repo.js +422 -119
  174. package/dist/src/storage/storage-repo.js.map +1 -1
  175. package/dist/src/storage/store-identity.d.ts +21 -0
  176. package/dist/src/storage/store-identity.d.ts.map +1 -0
  177. package/dist/src/storage/store-identity.js +33 -0
  178. package/dist/src/storage/store-identity.js.map +1 -0
  179. package/dist/src/storage/struct.d.ts +15 -0
  180. package/dist/src/storage/struct.d.ts.map +1 -1
  181. package/dist/src/storage/with-read-cache.d.ts +92 -0
  182. package/dist/src/storage/with-read-cache.d.ts.map +1 -0
  183. package/dist/src/storage/with-read-cache.js +132 -0
  184. package/dist/src/storage/with-read-cache.js.map +1 -0
  185. package/dist/src/sync/service.d.ts +13 -3
  186. package/dist/src/sync/service.d.ts.map +1 -1
  187. package/dist/src/sync/service.js +7 -30
  188. package/dist/src/sync/service.js.map +1 -1
  189. package/dist/src/testing/mesh-harness.d.ts +75 -2
  190. package/dist/src/testing/mesh-harness.d.ts.map +1 -1
  191. package/dist/src/testing/mesh-harness.js +193 -81
  192. package/dist/src/testing/mesh-harness.js.map +1 -1
  193. package/dist/src/testing/raw-storage-conformance.d.ts +8 -0
  194. package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
  195. package/dist/src/testing/raw-storage-conformance.js +97 -2
  196. package/dist/src/testing/raw-storage-conformance.js.map +1 -1
  197. package/package.json +5 -6
  198. package/src/cluster/block-transfer-service.ts +528 -312
  199. package/src/cluster/block-transfer.ts +547 -424
  200. package/src/cluster/certified-claims.ts +319 -0
  201. package/src/cluster/client-signature-verifier.ts +34 -0
  202. package/src/cluster/cluster-policy.ts +294 -203
  203. package/src/cluster/cluster-repo.ts +2501 -2034
  204. package/src/cluster/commit-proof.ts +344 -0
  205. package/src/cluster/quorum-restore.ts +348 -223
  206. package/src/cluster/rebalance-monitor.ts +539 -254
  207. package/src/cluster/reconcile-block.ts +404 -203
  208. package/src/cluster/service.ts +23 -20
  209. package/src/cluster/spread-on-churn.ts +352 -346
  210. package/src/cohort-topic/host.ts +8 -7
  211. package/src/cohort-topic/stream-util.ts +14 -43
  212. package/src/dispute/cascade.ts +31 -15
  213. package/src/dispute/dispute-service.ts +706 -696
  214. package/src/dispute/invalidation.ts +162 -52
  215. package/src/dispute/service.ts +126 -125
  216. package/src/index.ts +7 -0
  217. package/src/libp2p-key-network.ts +1204 -1235
  218. package/src/libp2p-node-base.ts +185 -70
  219. package/src/network/open-protocol-stream.ts +87 -0
  220. package/src/network/register-protocol-handler.ts +85 -0
  221. package/src/peer-address-book.ts +96 -2
  222. package/src/pend-validation.ts +89 -0
  223. package/src/reactivity/notify-transport.ts +2 -1
  224. package/src/reactivity/push-state-gossip.ts +2 -1
  225. package/src/repo/cluster-coordinator.ts +65 -11
  226. package/src/repo/coordinator-repo.ts +729 -71
  227. package/src/repo/served-repo-proxy.ts +55 -0
  228. package/src/repo/service.ts +25 -16
  229. package/src/reputation/types.ts +3 -1
  230. package/src/rn.ts +34 -4
  231. package/src/storage/block-archive.ts +242 -0
  232. package/src/storage/block-latch.ts +144 -0
  233. package/src/storage/block-storage.ts +787 -498
  234. package/src/storage/cached-raw-storage.ts +21 -1
  235. package/src/storage/cached-store-driver.ts +898 -859
  236. package/src/storage/i-block-storage.ts +172 -116
  237. package/src/storage/i-raw-storage.ts +40 -0
  238. package/src/storage/kv-raw-storage.ts +34 -9
  239. package/src/storage/memory-store-driver.ts +26 -2
  240. package/src/storage/raw-store-codec.ts +42 -42
  241. package/src/storage/raw-store-driver.ts +45 -3
  242. package/src/storage/shared-cache-pool.ts +516 -452
  243. package/src/storage/storage-repo.ts +1421 -1014
  244. package/src/storage/store-identity.ts +41 -0
  245. package/src/storage/struct.ts +52 -34
  246. package/src/storage/with-read-cache.ts +182 -0
  247. package/src/sync/service.ts +178 -198
  248. package/src/testing/mesh-harness.ts +524 -344
  249. package/src/testing/raw-storage-conformance.ts +114 -2
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ import { identify, identifyPush } from '@libp2p/identify';
5
5
  import { ping } from '@libp2p/ping';
6
6
  import { dcutr } from '@libp2p/dcutr';
7
7
  import { autoNAT } from '@libp2p/autonat';
8
- import { gossipsub } from '@chainsafe/libp2p-gossipsub';
9
8
  import { bootstrap } from '@libp2p/bootstrap';
10
9
  import { circuitRelayServer } from '@libp2p/circuit-relay-v2';
11
10
  import { peerIdFromString } from '@libp2p/peer-id';
@@ -13,9 +12,12 @@ import { generateKeyPair } from '@libp2p/crypto/keys';
13
12
  import { clusterService } from './cluster/service.js';
14
13
  import { blockTransferService } from './cluster/block-transfer-service.js';
15
14
  import { repoService } from './repo/service.js';
16
- import { StorageRepo, withBlockCommitLatch } from './storage/storage-repo.js';
15
+ import { StorageRepo } from './storage/storage-repo.js';
17
16
  import { BlockStorage } from './storage/block-storage.js';
18
17
  import { MemoryRawStorage } from './storage/memory-storage.js';
18
+ import { withReadCache } from './storage/with-read-cache.js';
19
+ import { latestClaimFromArchive, servableProof } from './storage/block-archive.js';
20
+ import { createServedRepoProxy } from './repo/served-repo-proxy.js';
19
21
  import { seedOwnedBlocksFromStorage } from './owned-block-seed.js';
20
22
  import { clusterMember } from './cluster/cluster-repo.js';
21
23
  import { createReconcileBlock } from './cluster/reconcile-block.js';
@@ -24,7 +26,7 @@ import { assertClusterSizeCoupling } from './cluster/cluster-size-coupling.js';
24
26
  import { createCommitCertStore, makeClusterCommitCertExtractor } from './cluster/commit-cert.js';
25
27
  import { coordinatorRepo } from './repo/coordinator-repo.js';
26
28
  import { Libp2pKeyPeerNetwork } from './libp2p-key-network.js';
27
- import { mergePeerAddresses, publishableConnectionAddr } from './peer-address-book.js';
29
+ import { mergePeerAddresses, publishableAddrsForPeer } from './peer-address-book.js';
28
30
  import { ClusterClient } from './cluster/client.js';
29
31
  import { networkManagerService } from './network/network-manager-service.js';
30
32
  import { BlockTransferCoordinator } from './cluster/block-transfer.js';
@@ -67,11 +69,30 @@ const reactivityWiringLog = createLogger('reactivity-node-wiring');
67
69
  * not fatal.
68
70
  */
69
71
  const wiringLog = createLogger('node-wiring');
70
- function resolveStorage(provider) {
72
+ /**
73
+ * Resolve the node's raw storage and put the write-through read cache in front of it. This is
74
+ * the single place the network node resolves its `IRawStorage`, so it is the single place the
75
+ * cache is wired (`withReadCache` states the exclusions: memory storage and already-cached
76
+ * storage pass through unchanged). The default is a bare `MemoryRawStorage`, deliberately not
77
+ * routed through the helper — nothing to cache.
78
+ *
79
+ * `lease` is this node's claim on the (possibly shared) cache, and the ONLY thing its stop path
80
+ * may release — a host that supplied its own `CachedRawStorage` keeps owning it (see
81
+ * {@link ResolvedReadCache}).
82
+ */
83
+ function resolveStorage(provider, networkName) {
71
84
  if (!provider) {
72
- return new MemoryRawStorage();
85
+ return { storage: new MemoryRawStorage(), lease: undefined };
73
86
  }
74
- return typeof provider === 'function' ? provider() : provider;
87
+ const storage = typeof provider === 'function' ? provider() : provider;
88
+ // NOTE: the label is the network name, so N nodes on one network in one process over N DISTINCT
89
+ // stores produce N identically-labelled rows in `SharedCachePool.stats()` (the pool keys on a
90
+ // monotonic store id, not the label); N nodes over ONE store share a single row, labelled by
91
+ // whichever node wrapped first. Harmless while the label is only read by a human eyeballing
92
+ // occupancy; if pool stats ever need to attribute bytes to a SPECIFIC node, fold the peer id
93
+ // in — it is not known here, so that would mean labelling after node construction rather than
94
+ // at resolve time.
95
+ return withReadCache(storage, `node:${networkName}`);
75
96
  }
76
97
  /**
77
98
  * Resolve the full FRET engine the cohort-topic host needs.
@@ -105,21 +126,13 @@ function resolveCurrentServedTopic(forwarderHost, collectionId) {
105
126
  return ps === undefined ? undefined : b64urlToBytes(ps.topicId);
106
127
  }
107
128
  export async function createLibp2pNodeBase(options, defaults) {
108
- const rawStorage = resolveStorage(options.storage);
129
+ const { storage: rawStorage, lease } = resolveStorage(options.storage, options.networkName);
109
130
  // Create placeholder restore callback (will be replaced after node starts)
110
131
  let restoreCallback = async (_blockId, _rev) => {
111
132
  return undefined;
112
133
  };
113
134
  // Create shared storage layers with restoration callback
114
135
  const storageRepo = new StorageRepo((blockId) => new BlockStorage(blockId, rawStorage, restoreCallback));
115
- // Per-block commit-latch runner, ready to thread into the invalidation-apply sink (`onInvalidate`)
116
- // passed to `clusterMember(...)` and into each cascade `CollectionEnv`, the instant either is wired
117
- // here. Sharing the `StorageRepo.commit:<blockId>` latch makes a compensating saveReplica/saveDeletion
118
- // RMW of `meta.latest` mutually exclusive with a concurrent commit on the same block. It is unused
119
- // today only because no `onInvalidate`/cascade driver is wired in the live node (see review handoff);
120
- // it is bound here so that wiring is a one-liner and cannot reach for a divergent latch key.
121
- const blockCommitLatch = withBlockCommitLatch;
122
- void blockCommitLatch;
123
136
  let clusterImpl;
124
137
  let coordinatedRepo;
125
138
  // The running node, bound immediately after `createLibp2p` below. Service factories that need
@@ -138,24 +151,11 @@ export async function createLibp2pNodeBase(options, defaults) {
138
151
  return await clusterImpl.update(record);
139
152
  }
140
153
  };
141
- const repoProxy = {
142
- async get(blockGets, options) {
143
- const target = coordinatedRepo ?? storageRepo;
144
- return await target.get(blockGets, options);
145
- },
146
- async pend(request, options) {
147
- const target = coordinatedRepo ?? storageRepo;
148
- return await target.pend(request, options);
149
- },
150
- async cancel(trxRef, options) {
151
- const target = coordinatedRepo ?? storageRepo;
152
- return await target.cancel(trxRef, options);
153
- },
154
- async commit(request, options) {
155
- const target = coordinatedRepo ?? storageRepo;
156
- return await target.commit(request, options);
157
- }
158
- };
154
+ // Built by a named factory, not an inline literal: see `createServedRepoProxy` for why (an
155
+ // inline object here is unreachable from every test that does not boot a libp2p node, which is
156
+ // how it served every repair archive without its commit proof). `coordinatedRepo` is read per
157
+ // call because it is assigned further down, after the cluster is assembled.
158
+ const repoProxy = createServedRepoProxy(storageRepo, () => coordinatedRepo);
159
159
  // The ONE authorization slice, spread verbatim into all four database-protocol service inits
160
160
  // below. Building it once (rather than repeating two option reads per service) is what makes
161
161
  // "secured three surfaces, missed the fourth" impossible: adding a fifth protocol service is a
@@ -264,10 +264,16 @@ export async function createLibp2pNodeBase(options, defaults) {
264
264
  // is acceptable — they neither throw nor break the build in that case.
265
265
  dcutr: dcutr(),
266
266
  autoNAT: autoNAT(),
267
- pubsub: gossipsub({
268
- allowPublishToZeroTopicPeers: true,
269
- heartbeatInterval: 7000
270
- }),
267
+ // NOTE: no `pubsub` service. `@chainsafe/libp2p-gossipsub` (currently at 14.1.2, the newest
268
+ // published version) is built against `@libp2p/interface@^2` — its `Stream` still expects
269
+ // `.sink`/`.source`. Under libp2p 3 `Stream extends MessageStream` (event target +
270
+ // AsyncIterable), which has neither, so `it-pipe`'s `isDuplex` check on the outbound stream
271
+ // fails and `OutboundStream`'s constructor throws `fns.shift(...) is not a function`
272
+ // synchronously — before gossipsub's own `.catch` can attach. Gossipsub logs and swallows
273
+ // it, so the service reports as running while never sending a subscription to any peer:
274
+ // `publish` always resolves with zero recipients. Verified end-to-end against this repo's
275
+ // installed dependency tree (gotchoices/Optimystic#9). Nothing in this repo uses `pubsub`
276
+ // today — re-add only against a gossipsub release built for libp2p 3.
271
277
  // Circuit relay server - enables this node to relay connections for other peers
272
278
  ...(options.relay ? { relay: circuitRelayServer(options.relayServerInit) } : {}),
273
279
  // Custom services - create wrapper factories that inject dependencies
@@ -287,18 +293,14 @@ export async function createLibp2pNodeBase(options, defaults) {
287
293
  peerId: components.peerId,
288
294
  // Fallback addr resolver for redirect targets whose multiaddrs are not
289
295
  // already embedded in record.peers. A redirect payload is handed to a THIRD
290
- // party, so it obeys the same rule the cluster record does — see
291
- // `publishableConnectionAddr`: only an outbound connection's remoteAddr is an
292
- // address anyone else can reach.
293
- getConnectionAddrs: (peerId) => {
294
- const conns = liveNode?.getConnections?.(peerId) ?? [];
295
- const addrs = [];
296
- for (const c of conns) {
297
- const addr = publishableConnectionAddr(c, addressLog);
298
- if (addr !== undefined)
299
- addrs.push(addr);
300
- }
301
- return addrs;
296
+ // party, so it answers with `publishableAddrsForPeer` the same rule, and the
297
+ // same function, `findCluster` uses to fill a cluster record: the publishable
298
+ // half of our live connections plus the peer's own advertised addresses.
299
+ getConnectionAddrs: async (peerId) => {
300
+ if (!liveNode)
301
+ return [];
302
+ const conns = liveNode.getConnections?.(peerId) ?? [];
303
+ return await publishableAddrsForPeer(liveNode, conns, peerId, addressLog);
302
304
  },
303
305
  // Inbound cluster records carry each cohort member's multiaddrs. libp2p only
304
306
  // propagates addresses between directly-connected peers, so for a cohort chosen
@@ -350,11 +352,20 @@ export async function createLibp2pNodeBase(options, defaults) {
350
352
  blockTransfer: (components) => {
351
353
  const serviceFactory = blockTransferService({
352
354
  protocolPrefix: `/optimystic/${options.networkName}`,
355
+ // Absent → the strict default inside the service; see `blockTransfer` on the options.
356
+ ...(options.blockTransfer?.requirePushCertificate !== undefined
357
+ ? { requirePushCertificate: options.blockTransfer.requirePushCertificate }
358
+ : {}),
353
359
  ...inboundAuthorization
354
360
  });
355
361
  return serviceFactory({
356
362
  registrar: components.registrar,
357
363
  repo: storageRepo,
364
+ // Verifying a pushed block's commit proof needs the cohort's super-majority fraction.
365
+ // Read from the SAME resolved `consensusConfig` the member and coordinator read (whose
366
+ // coupling `assertSuperMajorityCoupling` below already asserts) — a third copy resolving
367
+ // its own default would defeat that.
368
+ superMajorityThreshold: consensusConfig.superMajorityThreshold,
358
369
  // So this service's authorization denials reach the same error sink as the other three.
359
370
  logger: components.logger
360
371
  });
@@ -412,6 +423,26 @@ export async function createLibp2pNodeBase(options, defaults) {
412
423
  // redirect-addr resolvers read it on every inbound request, and the first one can arrive as
413
424
  // soon as the protocol handler goes live in start().
414
425
  liveNode = node;
426
+ // Release this node's lease on the raw-storage read cache when the node stops. Installed FIRST
427
+ // — before start() and before every other stop wrapper — so it runs LAST in the wrapper chain,
428
+ // after every monitor and service that may still read storage during its own stop. Only wired
429
+ // when the seam handed out a lease: a MemoryRawStorage passes through unwrapped, and a
430
+ // host-supplied `CachedRawStorage` stays the host's to dispose. Releasing a lease is safe even
431
+ // when other nodes share the cache — it is cleared and unregistered only when the last lease
432
+ // goes, so stopping one node never blinds the others. A skipped release leaks only cold
433
+ // entries the pool evicts under pressure; the point of the polite release is honest pool
434
+ // occupancy on a long-lived provider node.
435
+ if (lease) {
436
+ const previousStop = node.stop.bind(node);
437
+ node.stop = async () => {
438
+ try {
439
+ await previousStop();
440
+ }
441
+ finally {
442
+ await lease.release();
443
+ }
444
+ };
445
+ }
415
446
  // Inject the REAL libp2p node into the services that need it, before start(). These are
416
447
  // load-bearing and the node has NOT started yet, so any throw fails fast and rejects node
417
448
  // creation (nothing started leaks) — far better than the service silently falling back to the
@@ -490,10 +521,20 @@ export async function createLibp2pNodeBase(options, defaults) {
490
521
  const reconcileBlock = createReconcileBlock({
491
522
  selfPeerId: node.peerId.toString(),
492
523
  fetchArchive: fetchArchiveFromPeer,
493
- saveReplicatedBlock: (blockId, block, source) => storageRepo.saveReplicatedBlock(blockId, block, source),
524
+ // The 4th parameter is a proof reconcile verified against these exact bytes; it is
525
+ // persisted so the repaired replica serves it onward (see StorageRepo.saveReplicatedBlock).
526
+ saveReplicatedBlock: (blockId, block, source, verifiedProof) => storageRepo.saveReplicatedBlock(blockId, block, source, verifiedProof),
494
527
  simpleMajorityThreshold: consensusConfig.simpleMajorityThreshold,
528
+ superMajorityThreshold: consensusConfig.superMajorityThreshold,
495
529
  repairCorroborationClusterSize: consensusConfig.repairCorroborationClusterSize,
496
530
  reputation
531
+ // `anchoring` (proof layer-2, `ProofAnchoring`) is intentionally NOT wired here yet — nor
532
+ // is the coordinator's `proofAnchoring` below: a real implementation re-derives the
533
+ // block's cohort from `keyNetwork.findCluster` (the same source `deriveExpectedCluster`
534
+ // uses) and needs a churn-tolerance window so historic cohort rotation does not read as an
535
+ // anomaly flood. Until then certification runs on layer-1 cryptography and LOGS the
536
+ // unanchored residual. See `feat-cluster-membership-threshold-cert-anchoring`, and the
537
+ // matching `recomputeArbitratorSet` note at the clusterMember construction below.
497
538
  });
498
539
  // Member-side membership derivation for the admission gate: independently re-derive this block's
499
540
  // responsible cluster from the SAME source the coordinator uses (IKeyNetwork.findCluster), plus FRET's
@@ -558,12 +599,18 @@ export async function createLibp2pNodeBase(options, defaults) {
558
599
  ...consensusConfig
559
600
  }, fretSvc, reputation, options.transactionStateStore);
560
601
  // Create callback for querying cluster peers for their latest block revision. Three-way
561
- // contract (see ClusterLatestCallback): an ActionRev is the peer's claim, a resolved
602
+ // contract (see ClusterLatestCallback): a CertifiedActionRev is the peer's claim, a resolved
562
603
  // `undefined` is the peer answering "I hold nothing", and a REJECTION is silence — the
563
604
  // coordinator counts it as "did not answer" and refuses to report an authoritative absent
564
605
  // over it. Transport errors must therefore propagate, not collapse into `undefined` (that
565
606
  // collapse let a slow two-node cohort report a missing block as authoritatively absent —
566
607
  // ticket cluster-read-consult-cannot-report-unreachable).
608
+ //
609
+ // The claim carries the cohort's commit proof for the claimed revision when the answering
610
+ // peer retained one. It is attached UNVERIFIED — a peer chooses what to send. Both repair
611
+ // paths verify it before weighing it (the shared layer in `cluster/certified-claims.ts`):
612
+ // the coordinator's certifyClaim pass in `queryClusterForLatest`, and reconcile's
613
+ // certification pass in `cluster/reconcile-block.ts`.
567
614
  const clusterLatestCallback = async (peerId, blockId, context) => {
568
615
  // Self-read short-circuit: dialling self via SyncClient is a round trip
569
616
  // with no remote on the other end, and on nodes without listen addresses
@@ -574,7 +621,14 @@ export async function createLibp2pNodeBase(options, defaults) {
574
621
  if (peerId.equals(node.peerId)) {
575
622
  try {
576
623
  const result = await storageRepo.get({ blockIds: [blockId], context });
577
- return result[blockId]?.state?.latest;
624
+ const latest = result[blockId]?.state?.latest;
625
+ if (!latest)
626
+ return undefined;
627
+ // The SAME lookup a peer serving an archive uses, so a self answer and a remote
628
+ // answer attach proofs by one rule (including the mis-pairing guard). It never
629
+ // throws — a proof fault degrades to "no proof", never to a lost claim.
630
+ const proof = await servableProof(storageRepo, blockId, latest);
631
+ return proof ? { ...latest, proof } : latest;
578
632
  }
579
633
  catch {
580
634
  return undefined;
@@ -585,14 +639,12 @@ export async function createLibp2pNodeBase(options, defaults) {
585
639
  // per-peer deadline also bounds a hung request — slowness needs no race here.
586
640
  const response = await syncClient.requestBlock({ blockId, rev: undefined });
587
641
  if (response.success && response.archive) {
588
- const revisions = Object.keys(response.archive.revisions).map(Number);
589
- if (revisions.length > 0) {
590
- const maxRev = Math.max(...revisions);
591
- const revisionData = response.archive.revisions[maxRev];
592
- if (revisionData?.action) {
593
- return { actionId: revisionData.action.actionId, rev: maxRev };
594
- }
595
- }
642
+ // Projection lives with the archive shape (`latestClaimFromArchive`) rather than
643
+ // re-read inline here — it reads the claim and its proof out of ONE revision entry,
644
+ // so a serving peer cannot pair a proof with a revision it does not certify.
645
+ const claim = latestClaimFromArchive(response.archive);
646
+ if (claim)
647
+ return claim;
596
648
  }
597
649
  // The peer DID answer, without data: `success:false` is the sync service's "Block not
598
650
  // found in local storage", and an archive with no usable revisions holds nothing either
@@ -745,7 +797,12 @@ export async function createLibp2pNodeBase(options, defaults) {
745
797
  fretAdapter.setArachnodeInfo(arachnodeInfo);
746
798
  log?.('Announced Arachnode membership: Ring %d', arachnodeInfo.ringDepth);
747
799
  // Setup restoration coordinator with FRET adapter
748
- const restorationCoordinatorV2 = new RestorationCoordinator(fretAdapter, { connect: (pid, protocol) => node.dialProtocol(pid, [protocol]) }, `/optimystic/${options.networkName}`, node.peerId.toString());
800
+ const restorationCoordinatorV2 = new RestorationCoordinator(fretAdapter,
801
+ // The node's own IPeerNetwork, not an inline `dialProtocol` lambda: the lambda opened
802
+ // streams without `runOnLimitedConnection`, so a block holder reachable only through a
803
+ // relay looked like a peer that simply did not have the block, and it dropped the
804
+ // caller's AbortSignal, so `SyncClient`'s per-peer dial deadline never bounded a dial.
805
+ keyNetwork, `/optimystic/${options.networkName}`, node.peerId.toString());
749
806
  // Update restore callback to use new coordinator
750
807
  const newRestoreCallback = async (blockId, rev) => {
751
808
  return await restorationCoordinatorV2.restore(blockId, rev);
@@ -795,6 +852,18 @@ export async function createLibp2pNodeBase(options, defaults) {
795
852
  // async loop. Adding/deleting a Set entry during iteration does not throw in JS — entries
796
853
  // are visited best-effort — which is acceptable for a resilience mechanism, so we
797
854
  // document it here rather than add locking.
855
+ //
856
+ // The event's `grown` arm (blocks this node KEEPS whose cohort acquired new peers — the
857
+ // founder/cohort-growth case): handleRebalanceEvent pushes each grown block to the newly
858
+ // co-responsible peers and returns a per-block GrowthOutcome in `result.growth`, which is
859
+ // fed back into the monitor here. The monitor records a peer as seen ONLY off that
860
+ // feedback (a confirmed replica, or a block that otherwise reached its floor), so a failed
861
+ // push is re-detected on the next check instead of being silently dropped — bounded by
862
+ // growthMaxAttempts, after which the monitor abandons the peer for that block (visible in
863
+ // getGrowthDiagnostics). Nothing is released or untracked off the grown arm — the node
864
+ // keeps serving the block either way. On the catch path NOTHING is recorded: the monitor's
865
+ // state stays un-advanced and the next check retries, the correct outcome for a reaction
866
+ // that threw.
798
867
  rebalanceMonitor.onRebalance((event) => {
799
868
  for (const blockId of event.gained)
800
869
  ownedBlocks.add(blockId);
@@ -803,7 +872,23 @@ export async function createLibp2pNodeBase(options, defaults) {
803
872
  rebalanceMonitor.untrackBlock(blockId); // also evicts from the shared ownedBlocks set
804
873
  gcEligible.add(blockId); // confirmed replicated → safe to sweep
805
874
  }
875
+ for (const [blockId, outcome] of result.growth) {
876
+ rebalanceMonitor.recordGrowthOutcome(blockId, outcome);
877
+ }
878
+ if (result.underReplicated.length > 0) {
879
+ const growthDiag = rebalanceMonitor.getGrowthDiagnostics();
880
+ log?.('cohort-growth: %d of %d grown blocks not confirmed on new peers this pass ' +
881
+ '(awaiting-confirmation=%d given-up-pairs=%d)', result.underReplicated.length, event.grown.size, growthDiag.blocksAwaitingConfirmation, growthDiag.abandonedPairs);
882
+ }
806
883
  }).catch((err) => {
884
+ // NOTE: accepted tradeoff — recording nothing here means growthMaxAttempts (which
885
+ // only counts RECORDED incomplete outcomes) never bounds a reaction that throws
886
+ // every time, so the re-check timer retries it at growthRecheckIntervalMs forever,
887
+ // logging each failure. Kept deliberately: per-peer errors are already caught
888
+ // inside the coordinator, so a throw out of handleRebalanceEvent is a coding bug,
889
+ // and a loud unbounded retry is the right way to surface one — silently abandoning
890
+ // the block would hide it and leave the block singly held. Revisit if a legitimate
891
+ // recoverable condition is ever allowed to throw out of the reaction.
807
892
  log?.('rebalance reaction failed: %o', err);
808
893
  });
809
894
  });
@@ -1145,13 +1230,13 @@ export async function createLibp2pNodeBase(options, defaults) {
1145
1230
  });
1146
1231
  // Inbound notify frames → forwarder host (subscriber role delivers in-process; forwarder role fans out).
1147
1232
  // NOTE: the four `register*Handler` helpers below (notify / pushStateGossip / recover /
1148
- // matchmaking query) all call `node.handle(...)` fire-and-forget (`void`), so a rejected
1233
+ // matchmaking query) all call `registerProtocolHandler(...)` fire-and-forget (`void`), so a rejected
1149
1234
  // registration escapes the post-start rollback `catch` as an UNHANDLED rejection instead of
1150
1235
  // failing node creation. Harmless today — every protocol id here is a fixed constant registered
1151
1236
  // exactly once, so the only realistic rejection is a duplicate, and that needs a caller to pass
1152
1237
  // overlapping custom `cohortTopic.host.protocols`. If any of these ids ever becomes
1153
1238
  // caller-configurable, or a helper grows a registration that can genuinely fail, make them await
1154
- // their `node.handle` so the failure reaches the rollback.
1239
+ // their `registerProtocolHandler` so the failure reaches the rollback.
1155
1240
  registerNotifyHandler(node, reactivityProtocols.notify, notify);
1156
1241
  offInboundNotify = notify.onNotification((from, n) => { void forwarderHost.onInbound(from, n); });
1157
1242
  // 3. Origination emit — install onLocalCommit: a member commit builds a NotificationV1 and ingests it.
@@ -1 +1 @@
1
- {"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAe,MAAM,QAAQ,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAA+B,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,aAAa,EAA+F,MAAM,2BAA2B,CAAC;AACvJ,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAA6B,MAAM,6BAA6B,CAAC;AAC9F,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,8BAA8B,EAAwB,MAAM,0BAA0B,CAAC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAkD,MAAM,yBAAyB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAmB,MAAM,wBAAwB,CAAC;AAExG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAA8B,MAAM,sCAAsC,CAAC;AAEzG,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,EAAE,qBAAqB,EAA+B,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,kCAAkC,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACvH,OAAO,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC1G,OAAO,EACN,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AACrI,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,+BAA+B,EAAE,8BAA8B,EAAmC,MAAM,mCAAmC,CAAC;AACrJ,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AACnF,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpG,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACN,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,IAAI,EACJ,aAAa,EACb,aAAa,GAMb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAGxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAiCtE,kGAAkG;AAClG,MAAM,mBAAmB,GAAG,YAAY,CAAC,wBAAwB,CAAC,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;AAkM9C,SAAS,cAAc,CAAC,QAAwC;IAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,iBAAiB,CAAC,IAA6B;IACvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,IAAiD,CAAC;IACpE,OAAO,OAAO,SAAS,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC3E,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,yBAAyB,CAAC,aAAsC,EAAE,YAAoB;IAC9F,MAAM,EAAE,GAAG,aAAa,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAAoB,EACpB,QAGC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnD,2EAA2E;IAC3E,IAAI,eAAe,GAAoB,KAAK,EAAE,QAAQ,EAAE,IAAK,EAAE,EAAE;QAChE,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IAEF,yDAAyD;IACzD,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,CAAC,OAAO,EAAE,EAAE,CAC/C,IAAI,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,CAAC,CACtD,CAAC;IAEF,mGAAmG;IACnG,oGAAoG;IACpG,uGAAuG;IACvG,mGAAmG;IACnG,sGAAsG;IACtG,6FAA6F;IAC7F,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;IAC9C,KAAK,gBAAgB,CAAC;IAEtB,IAAI,WAAiC,CAAC;IACtC,IAAI,eAAkC,CAAC;IACvC,8FAA8F;IAC9F,8FAA8F;IAC9F,gGAAgG;IAChG,8FAA8F;IAC9F,gGAAgG;IAChG,+FAA+F;IAC/F,4DAA4D;IAC5D,IAAI,QAA4B,CAAC;IAEjC,MAAM,YAAY,GAAa;QAC9B,KAAK,CAAC,MAAM,CAAC,MAAM;YAClB,IAAI,CAAC,WAAW,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;KACD,CAAC;IAEF,MAAM,SAAS,GAAU;QACxB,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO;YAC3B,MAAM,MAAM,GAAG,eAAe,IAAI,WAAW,CAAC;YAC9C,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO;YAC1B,MAAM,MAAM,GAAG,eAAe,IAAI,WAAW,CAAC;YAC9C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO;YAC3B,MAAM,MAAM,GAAG,eAAe,IAAI,WAAW,CAAC;YAC9C,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO;YAC5B,MAAM,MAAM,GAAG,eAAe,IAAI,WAAW,CAAC;YAC9C,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;KACD,CAAC;IAEF,6FAA6F;IAC7F,6FAA6F;IAC7F,+FAA+F;IAC/F,+EAA+E;IAC/E,6FAA6F;IAC7F,wEAAwE;IACxE,MAAM,oBAAoB,GAAmC;QAC5D,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrG,GAAG,CAAC,OAAO,CAAC,+BAA+B,KAAK,SAAS;YACxD,CAAC,CAAC,EAAE,+BAA+B,EAAE,OAAO,CAAC,+BAA+B,EAAE;YAC9E,CAAC,CAAC,EAAE,CAAC;KACN,CAAC;IAEF,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,eAAe,CAAC,SAAS,CAAC,CAAC;IAE9E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;IAChE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC;IAE7D,qGAAqG;IACrG,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,sGAAsG;IACtG,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC;IACrD,oGAAoG;IACpG,kGAAkG;IAClG,gGAAgG;IAChG,oGAAoG;IACpG,MAAM,SAAS,GAAgC,aAAa,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACnG,MAAM,mBAAmB,GAAsC,SAAS;QACvE,mGAAmG;QACnG,mGAAmG;QACnG,oGAAoG;QACpG,gGAAgG;QAChG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAQ,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC;IAE/B,kGAAkG;IAClG,yEAAyE;IACzE,mGAAmG;IACnG,2FAA2F;IAC3F,2GAA2G;IAC3G,oGAAoG;IACpG,oGAAoG;IACpG,4EAA4E;IAC5E,MAAM,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAEtD,MAAM,aAAa,GAAe;QACjC,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,cAAc;QAC1B,iGAAiG;QACjG,gGAAgG;QAChG,iEAAiE;QACjE,SAAS,EAAE;YACV,MAAM,EAAE,WAAW;YACnB,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACvF;QACD,iBAAiB,EAAE;YAClB,uFAAuF;YACvF,0FAA0F;YAC1F,0FAA0F;YAC1F,oFAAoF;YACpF,cAAc,EAAE,EAAE;YAClB,yFAAyF;YACzF,kGAAkG;YAClG,qBAAqB,EAAE,MAAM;SAC7B;QACD,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,UAAU;QACV,oBAAoB,EAAE,CAAC,KAAK,EAAE,CAAC;QAC/B,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,8FAA8F;QAC9F,oGAAoG;QACpG,4FAA4F;QAC5F,oGAAoG;QACpG,gGAAgG;QAChG,iGAAiG;QACjG,4GAA4G;QAC5G,QAAQ,EAAE,CAAC;YACV,iFAAiF;YACjF,mFAAmF;YACnF,+EAA+E;YAC/E,+EAA+E;YAC/E,wEAAwE;YACxE,iFAAiF;YACjF,wEAAwE;YACxE,4CAA4C;YAC5C,QAAQ,EAAE,QAAQ,CAAC;gBAClB,cAAc,EAAE,cAAc,OAAO,CAAC,WAAW,EAAE;aACnD,CAAC;YACF,gFAAgF;YAChF,uFAAuF;YACvF,mFAAmF;YACnF,yEAAyE;YACzE,wFAAwF;YACxF,wFAAwF;YACxF,qFAAqF;YACrF,+FAA+F;YAC/F,oEAAoE;YACpE,oFAAoF;YACpF,wFAAwF;YACxF,+EAA+E;YAC/E,0CAA0C;YAC1C,YAAY,EAAE,YAAY,CAAC;gBAC1B,cAAc,EAAE,cAAc,OAAO,CAAC,WAAW,EAAE;aACnD,CAAC;YACF,IAAI,EAAE,IAAI,EAAE;YACZ,sEAAsE;YACtE,2EAA2E;YAC3E,0EAA0E;YAC1E,4EAA4E;YAC5E,uEAAuE;YACvE,KAAK,EAAE,KAAK,EAAE;YACd,OAAO,EAAE,OAAO,EAAE;YAClB,MAAM,EAAE,SAAS,CAAC;gBACjB,4BAA4B,EAAE,IAAI;gBAClC,iBAAiB,EAAE,IAAI;aACvB,CAAC;YACF,gFAAgF;YAChF,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEhF,sEAAsE;YACtE,OAAO,EAAE,CAAC,UAAe,EAAE,EAAE;gBAC5B,MAAM,UAAU,GAAe,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChG,MAAM,cAAc,GAAG,cAAc,CAAC;oBACrC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;oBAC7C,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,OAAO,EAAE,YAAY;oBACrB,uEAAuE;oBACvE,4DAA4D;oBAC5D,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,uEAAuE;oBACvE,4EAA4E;oBAC5E,iEAAiE;oBACjE,8EAA8E;oBAC9E,iCAAiC;oBACjC,kBAAkB,EAAE,CAAC,MAAW,EAAE,EAAE;wBACnC,MAAM,KAAK,GAAG,QAAQ,EAAE,cAAc,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;wBACvD,MAAM,KAAK,GAAa,EAAE,CAAC;wBAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;4BACvB,MAAM,IAAI,GAAG,yBAAyB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;4BACtD,IAAI,IAAI,KAAK,SAAS;gCAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,CAAC;wBACD,OAAO,KAAK,CAAC;oBACd,CAAC;oBACD,6EAA6E;oBAC7E,gFAAgF;oBAChF,6EAA6E;oBAC7E,2EAA2E;oBAC3E,oEAAoE;oBACpE,mBAAmB,EAAE,CAAC,MAAW,EAAE,UAAoB,EAAE,EAAE;wBAC1D,IAAI,CAAC,QAAQ;4BAAE,OAAO;wBACtB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBAC9D,CAAC;iBACD,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,cAAc,GAAG,WAAW,CAAC;oBAClC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,CAAC;oBAC7C,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,4EAA4E;gBAC5E,4EAA4E;gBAC5E,2EAA2E;gBAC3E,yEAAyE;gBACzE,6EAA6E;gBAC7E,gFAAgF;gBAChF,uDAAuD;gBACvD,sEAAsE;gBACtE,kFAAkF;gBAClF,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,SAAS;iBACf,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,cAAc,GAAG,WAAW,CAAC;oBAClC,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,SAAS;iBACf,CAAC,CAAC;YACJ,CAAC;YAED,yEAAyE;YACzE,0EAA0E;YAC1E,6EAA6E;YAC7E,aAAa,EAAE,CAAC,UAAe,EAAE,EAAE;gBAClC,MAAM,cAAc,GAAG,oBAAoB,CAAC;oBAC3C,cAAc,EAAE,eAAe,OAAO,CAAC,WAAW,EAAE;oBACpD,GAAG,oBAAoB;iBACvB,CAAC,CAAC;gBACH,OAAO,cAAc,CAAC;oBACrB,SAAS,EAAE,UAAU,CAAC,SAAS;oBAC/B,IAAI,EAAE,WAAW;oBACjB,wFAAwF;oBACxF,MAAM,EAAE,UAAU,CAAC,MAAM;iBACzB,CAAC,CAAC;YACJ,CAAC;YAED,cAAc,EAAE,CAAC,UAAe,EAAE,EAAE;gBACnC,MAAM,UAAU,GAAG,qBAAqB,CAAC;oBACxC,WAAW,EAAE,eAAe,CAAC,WAAW;oBACxC,eAAe,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBAC1D,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,IAAI,IAAI;oBAClE,oBAAoB,EAAE,OAAO,CAAC,aAAa,EAAE,aAAa,IAAI,GAAG;iBACjE,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;gBACnC,0FAA0F;gBAC1F,IAAI,CAAC;oBAAE,GAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAC/D,OAAO,GAAG,EAAE,CAAC;oBAAC,SAAS,CAAC,8FAA8F,EAAE,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAC/H,OAAO,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,EAAE,CAAC,UAAe,EAAE,EAAE;gBACzB,MAAM,UAAU,GAAG,WAAW,CAAC;oBAC9B,CAAC,EAAE,EAAE;oBACL,CAAC,EAAE,CAAC;oBACJ,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;oBAC7F,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,OAAO,CAAC,cAAc,IAAI,EAAE;iBACxC,CAAC,CAAC;gBACH,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAsB,CAAC;gBACxD,0FAA0F;gBAC1F,IAAI,CAAC;oBAAE,GAAwB,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBAC/D,OAAO,GAAG,EAAE,CAAC;oBAAC,SAAS,CAAC,oFAAoF,EAAE,GAAG,CAAC,CAAC;gBAAC,CAAC;gBACrH,OAAO,GAAG,CAAC;YACZ,CAAC;YAED,8EAA8E;YAC9E,0FAA0F;YAC1F,wFAAwF;YACxF,uFAAuF;YACvF,6FAA6F;YAC7F,sEAAsE;SACtE,CAAmD;QACpD,gCAAgC;QAChC,aAAa,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACxF;KACD,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,CAAC;IAE/C,4FAA4F;IAC5F,4FAA4F;IAC5F,qDAAqD;IACrD,QAAQ,GAAG,IAAI,CAAC;IAEhB,wFAAwF;IACxF,0FAA0F;IAC1F,8FAA8F;IAC9F,0FAA0F;IAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAoC,CAAC;IACxD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrC,gFAAgF;IAChF,8EAA8E;IAC9E,8EAA8E;IAC9E,iEAAiE;IACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IAEnB,8FAA8F;IAC9F,kGAAkG;IAClG,mGAAmG;IACnG,kGAAkG;IAClG,mEAAmE;IACnE,IAAI,CAAC;QAEJ,qCAAqC;QACrC,MAAM,UAAU,GAAG,IAAI,qBAAqB,EAAE,CAAC;QAE/C,6CAA6C;QAC7C,MAAM,WAAW,GAAgB,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QACnG,oFAAoF;QACpF,uFAAuF;QACvF,+EAA+E;QAC/E,oFAAoF;QACpF,4EAA4E;QAC5E,MAAM,cAAc,GAAG,eAAe,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,eAAe,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QACxJ,MAAM,UAAU,CAAC,sBAAsB,EAAE,CAAC;QAC1C,MAAM,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;QAEtG,8FAA8F;QAC9F,mGAAmG;QACnG,qGAAqG;QACrG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE/C,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,MAAM,OAAO,GAAI,IAAY,CAAC,QAAQ,EAAE,IAA+B,CAAC;QAExE,kFAAkF;QAClF,kFAAkF;QAClF,mFAAmF;QACnF,yEAAyE;QACzE,MAAM,oBAAoB,GAAG,KAAK,EAAE,SAAiB,EAAE,OAAgB,EAAqC,EAAE;YAC7G,IAAI,MAA2C,CAAC;YAChD,IAAI,CAAC;gBACJ,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO,SAAS,CAAC;YAClB,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;gBAAE,OAAO,SAAS,CAAC;YACjD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtE,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAe;oBACjD,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;oBACpD,IAAI,OAAO,CAAe,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;iBACtG,CAAC,CAAC;gBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,CAAC;YAAC,MAAM,CAAC;gBACR,0EAA0E;gBAC1E,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;QAEF,wFAAwF;QACxF,4FAA4F;QAC5F,wFAAwF;QACxF,4EAA4E;QAC5E,qEAAqE;QACrE,+FAA+F;QAC/F,+FAA+F;QAC/F,0EAA0E;QAC1E,kEAAkE;QAClE,MAAM,cAAc,GAA2B,oBAAoB,CAAC;YACnE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAClC,YAAY,EAAE,oBAAoB;YAClC,mBAAmB,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC;YACxG,uBAAuB,EAAE,eAAe,CAAC,uBAAuB;YAChE,8BAA8B,EAAE,eAAe,CAAC,8BAA8B;YAC9E,UAAU;SACV,CAAC,CAAC;QAEH,iGAAiG;QACjG,uGAAuG;QACvG,mGAAmG;QACnG,wGAAwG;QACxG,qFAAqF;QACrF,MAAM,qBAAqB,GAAkC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9E,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9E,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC;oBACJ,UAAU,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,UAAU,CAAC;gBAC1D,CAAC;gBAAC,MAAM,CAAC;oBACR,mDAAmD;gBACpD,CAAC;YACF,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;QAC3C,CAAC,CAAC;QAEF,WAAW,GAAG,aAAa,CAAC;YAC3B,WAAW;YACX,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,cAAc;YAC1B,cAAc;YACd,iBAAiB;YACjB,WAAW,EAAE,OAAO;YACpB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU;YACV,eAAe;YACf,UAAU,EAAE,OAAO,CAAC,qBAAqB;YACzC,cAAc;YACd,mBAAmB;YACnB,qBAAqB;YACrB,mGAAmG;YACnG,oGAAoG;YACpG,4FAA4F;YAC5F,oGAAoG;YACpG,+FAA+F;YAC/F,sGAAsG;SACtG,CAAC,CAAC;QAEH,+FAA+F;QAC/F,8FAA8F;QAC9F,iGAAiG;QACjG,8FAA8F;QAC9F,kCAAkC;QAClC,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACH,WAAiE,CAAC,OAAO,EAAE,CAAC;gBAC9E,CAAC;wBAAS,CAAC;oBACV,mFAAmF;oBACnF,oCAAoC;oBACpC,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,MAAM,sBAAsB,GAAG,eAAe,CAC7C,UAAU,EACV,mBAAmB,EACnB;YACC,yFAAyF;YACzF,GAAG,eAAe;SAClB,EACD,OAAO,EACP,UAAU,EACV,OAAO,CAAC,qBAAqB,CAC7B,CAAC;QAEF,wFAAwF;QACxF,qFAAqF;QACrF,uFAAuF;QACvF,0FAA0F;QAC1F,0FAA0F;QAC1F,yFAAyF;QACzF,0DAA0D;QAC1D,MAAM,qBAAqB,GAA0B,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAQ,EAAE,EAAE;YACxF,wEAAwE;YACxE,yEAAyE;YACzE,uEAAuE;YACvE,6EAA6E;YAC7E,wEAAwE;YACxE,+CAA+C;YAC/C,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACJ,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;oBACvE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC;gBACvC,CAAC;gBAAC,MAAM,CAAC;oBACR,OAAO,SAAS,CAAC;gBAClB,CAAC;YACF,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtE,qFAAqF;YACrF,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5E,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;oBACtC,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACxD,IAAI,YAAY,EAAE,MAAM,EAAE,CAAC;wBAC1B,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;oBAChE,CAAC;gBACF,CAAC;YACF,CAAC;YACD,sFAAsF;YACtF,wFAAwF;YACxF,4CAA4C;YAC5C,OAAO,SAAS,CAAC;QAClB,CAAC,CAAC;QAEF,eAAe,GAAG,sBAAsB,CAAC;YACxC,WAAW;YACX,YAAY,EAAE,WAAW;YACzB,WAAW,EAAE,IAAI,CAAC,MAAM;YACxB,qBAAqB;YACrB,6FAA6F;YAC7F,8FAA8F;YAC9F,2FAA2F;YAC3F,8FAA8F;YAC9F,uDAAuD;YACvD,sBAAsB,EAAE,cAAc;SACtC,CAAC,CAAC;QAEH,+FAA+F;QAC/F,+FAA+F;QAC/F,qGAAqG;QACrG,uGAAuG;QACvG,2DAA2D;QAC3D,2BAA2B,CAC1B,WAAgE,EAChE,eAAuE,CACvE,CAAC;QAEF,oEAAoE;QACpE,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnC,MAAO,WAAiE,CAAC,mBAAmB,EAAE,CAAC;YAC/F,MAAO,eAAwE,CAAC,mBAAmB,EAAE,CAAC;QACvG,CAAC;QAED,6DAA6D;QAC7D,+FAA+F;QAC/F,8FAA8F;QAC9F,6FAA6F;QAC7F,iGAAiG;QACjG,MAAM,cAAc,GAAI,IAAY,CAAC,QAAQ,EAAE,cAAmD,CAAC;QAEnG,iGAAiG;QACjG,mGAAmG;QACnG,+EAA+E;QAC/E,yBAAyB,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC,CAAC;QAEvF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QACtC,wFAAwF;QACxF,4EAA4E;QAC5E,iFAAiF;QACjF,0FAA0F;QAC1F,6FAA6F;QAC7F,8FAA8F;QAC9F,gGAAgG;QAChG,yEAAyE;QACzE,8FAA8F;QAC9F,2DAA2D;QAC3D,IAAI,iBAA2C,CAAC;QAChD,MAAM,oBAAoB,GAAG,GAAS,EAAE;YACvC,IAAI,iBAAiB;gBAAE,OAAO;YAC9B,iBAAiB,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3D,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,QAAQ;oBAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,0FAA0F;QAC1F,sFAAsF;QACtF,6FAA6F;QAC7F,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACJ,iBAAiB,EAAE,EAAE,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACV,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,4FAA4F;QAC5F,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,IAAI,aAA+C,CAAC;QACpD,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACJ,aAAa,GAAG,cAAc,CAAC,wBAAwB,CACtD,iBAAiB,EACjB,WAAW,EACX,UAAU,EACV,eAAe,CAAC,WAAW,EAC3B,cAAc,EACd,WAAW,EACX,OAAO,CAAC,aAAa,CACrB,CAAC;gBACF,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;gBAC5B,oBAAoB,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,gFAAgF;gBAChF,sFAAsF;gBACtF,2EAA2E;gBAC3E,CAAE,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC5F,CAAC;QACF,CAAC;QAED,4EAA4E;QAC3E,IAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC;QAEnD,4FAA4F;QAC5F,2FAA2F;QAC3F,gGAAgG;QAChG,8FAA8F;QAC9F,+CAA+C;QAC/C,CAAC;YACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,IAAI,CAAC;oBACJ,IAAI,aAAa;wBAAE,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC/C,CAAC;wBAAS,CAAC;oBACV,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC;YACF,CAAC,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,cAAc,IAAI,IAAI,CAAC;QAClE,IAAI,eAAe,EAAE,CAAC;YACrB,MAAM,GAAG,GAAI,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,kBAAkB,CAAC,CAAC;YACrE,MAAM,IAAI,GAAI,IAAY,CAAC,QAAQ,EAAE,IAAW,CAAC;YAEjD,IAAI,IAAI,EAAE,CAAC;gBACV,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE3E,qFAAqF;gBACrF,iFAAiF;gBACjF,8FAA8F;gBAC9F,0FAA0F;gBAC1F,gEAAgE;gBAChE,sEAAsE;gBACtE,4FAA4F;gBAC5F,mFAAmF;gBACnF,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;gBACpC,IAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC;gBAE5C,6FAA6F;gBAC7F,wFAAwF;gBACxF,6FAA6F;gBAC7F,yDAAyD;gBACzD,IAAI,SAA2C,CAAC;gBAEhD,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;gBACxF,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,EAAE,cAAc,EAAE;oBAClE,WAAW,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;oBAC9B,UAAU,EAAE;wBACX,OAAO,EAAE,IAAI;wBACb,MAAM,EAAE,IAAI;qBACZ;oBACD,6DAA6D;oBAC7D,6CAA6C;oBAC7C,cAAc,EAAE,GAAG;oBACnB,QAAQ,EAAE,GAAG;oBACb,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;iBAC1B,CAAC,CAAC;gBAEH,yCAAyC;gBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACrE,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAE5C,GAAG,EAAE,CAAC,yCAAyC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;gBAE1E,kDAAkD;gBAClD,MAAM,wBAAwB,GAAG,IAAI,sBAAsB,CAC1D,WAAW,EACX,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAA8C,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAC7G,eAAe,OAAO,CAAC,WAAW,EAAE,EACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CACtB,CAAC;gBAEF,iDAAiD;gBACjD,MAAM,kBAAkB,GAAoB,KAAK,EAAE,OAAO,EAAE,GAAI,EAAE,EAAE;oBACnE,OAAO,MAAM,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC,CAAC;gBAEF,wEAAwE;gBACvE,WAAmB,CAAC,kBAAkB,GAAG,CAAC,OAAe,EAAE,EAAE,CAC7D,IAAI,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;gBAE3D,0FAA0F;gBAC1F,2FAA2F;gBAC3F,mFAAmF;gBACnF,6FAA6F;gBAC7F,wFAAwF;gBACxF,+FAA+F;gBAC/F,4FAA4F;gBAC5F,8FAA8F;gBAC9F,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;oBACtE,IAAI,CAAC;wBACJ,wFAAwF;wBACxF,6EAA6E;wBAC7E,yFAAyF;wBACzF,sFAAsF;wBACtF,iEAAiE;wBACjE,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAC/C,WAAW,EACX,UAAU,EACV,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,CACd,CAAC;wBAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,oBAAoB,CAC3D,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,OAAO,CAAC,SAAS,CACjB,CAAC;wBACF,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;wBAE/B,wFAAwF;wBACxF,yFAAyF;wBACzF,wFAAwF;wBACxF,yFAAyF;wBACzF,wFAAwF;wBACxF,mEAAmE;wBACnE,EAAE;wBACF,sFAAsF;wBACtF,oFAAoF;wBACpF,gEAAgE;wBAChE,EAAE;wBACF,uFAAuF;wBACvF,0FAA0F;wBAC1F,yFAAyF;wBACzF,0FAA0F;wBAC1F,qFAAqF;wBACrF,0FAA0F;wBAC1F,mFAAmF;wBACnF,4DAA4D;wBAC5D,EAAE;wBACF,2EAA2E;wBAC3E,qFAAqF;wBACrF,0FAA0F;wBAC1F,kFAAkF;wBAClF,4CAA4C;wBAC5C,gBAAgB,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,EAAE;4BACtC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,MAAM;gCAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;4BAC7D,WAAW,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gCACvD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oCACvC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,8CAA8C;oCACtF,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAiB,uCAAuC;gCACjF,CAAC;4BACF,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gCAChB,GAAG,EAAE,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;4BAC7C,CAAC,CAAC,CAAC;wBACJ,CAAC,CAAC,CAAC;wBAEH,+EAA+E;wBAC/E,kFAAkF;wBAClF,oFAAoF;wBACpF,0FAA0F;wBAC1F,oBAAoB;wBACpB,SAAS,GAAG,IAAI,oBAAoB,CAAC;4BACpC,WAAW;4BACX,YAAY;4BACZ,IAAI;4BACJ,iBAAiB;4BACjB,SAAS,EAAE,WAAW;4BACtB,WAAW;4BACX,UAAU,EAAE,MAAM;4BAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE;4BAChD,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;gCACvB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oCAChC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;oCACvC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gCACzB,CAAC;4BACF,CAAC;yBACD,CAAC,CAAC;wBACH,uFAAuF;wBACvF,gEAAgE;wBAChE,SAAS,CAAC,gBAAgB,EAAE,CAAC;wBAE7B,wFAAwF;wBACxF,qFAAqF;wBACrF,oBAAoB,EAAE,CAAC;wBAEvB,oEAAoE;wBACnE,IAAY,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;wBACjD,IAAY,CAAC,wBAAwB,GAAG,WAAW,CAAC;wBACpD,IAAY,CAAC,oBAAoB,GAAG,SAAS,CAAC;wBAE/C,mFAAmF;wBACnF,6FAA6F;wBAC7F,0FAA0F;wBAC1F,oFAAoF;wBACpF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;4BACtB,IAAI,CAAC;gCACJ,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;4BAC/B,CAAC;oCAAS,CAAC;gCACV,MAAM,YAAY,EAAE,CAAC;4BACtB,CAAC;wBACF,CAAC,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACd,mFAAmF;wBACnF,2EAA2E;wBAC3E,GAAG,EAAE,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;oBAChD,CAAC;gBACF,CAAC;gBAED,yFAAyF;gBACzF,4FAA4F;gBAC5F,2FAA2F;gBAC3F,8FAA8F;gBAC9F,oFAAoF;gBACpF,EAAE;gBACF,6FAA6F;gBAC7F,6FAA6F;gBAC7F,sEAAsE;gBACtE,MAAM,eAAe,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBAC9C,IAAI,CAAC,SAAS;wBAAE,OAAO;oBACvB,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,gBAAgB,EAAE,CAAC;oBACzD,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC5F,GAAG,EAAE,CAAC,8CAA8C,EAAE,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;wBACrG,IAAI,CAAC;4BACJ,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC;gCAC5C,SAAS,EAAE,UAAU,CAAC,SAAS;gCAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;6BACrC,CAAC,CAAC;4BACH,GAAG,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;wBAC1C,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACd,GAAG,EAAE,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;wBACrC,CAAC;gCAAS,CAAC;4BACV,mFAAmF;4BACnF,0FAA0F;4BAC1F,YAAY,CAAC,kBAAkB,EAAE,CAAC;wBACnC,CAAC;oBACF,CAAC;gBACF,CAAC,EAAE,MAAM,CAAC,CAAC;gBAEX,uBAAuB;gBACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;oBACtB,aAAa,CAAC,eAAe,CAAC,CAAC;oBAC/B,MAAM,YAAY,EAAE,CAAC;gBACtB,CAAC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACP,GAAG,EAAE,CAAC,gDAAgD,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,uEAAuE;QACvE,yFAAyF;QACzF,8FAA8F;QAC9F,8FAA8F;QAC9F,0BAA0B;QAC1B,iGAAiG;QACjG,6FAA6F;QAC7F,2FAA2F;QAC3F,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,4CAA4C;QAC5C,uFAAuF;QACvF,kFAAkF;QAClF,+FAA+F;QAC/F,kGAAkG;QAClG,6FAA6F;QAC7F,mGAAmG;QACnG,gGAAgG;QAChG,4CAA4C;QAC5C,IAAI,iBAAiB,IAAI,OAAO,UAAU,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YACxE,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE;gBACtB,YAAY,GAAG,IAAI,CAAC;gBACpB,MAAM,YAAY,EAAE,CAAC;YACtB,CAAC,CAAC;YACF,KAAK,0BAA0B,CAAC,UAAU,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC;iBAC1E,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAE,IAAY,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/G,CAAC;QAED,0FAA0F;QAC1F,6EAA6E;QAC7E,mFAAmF;QACnF,wFAAwF;QACxF,iGAAiG;QACjG,0GAA0G;QAC1G,6FAA6F;QAC7F,sEAAsE;QACtE,wCAAwC;QACxC,IAAI,sBAAkD,CAAC;QACvD,IAAI,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC;YACrC,MAAM,mBAAmB,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;YACtG,sBAAsB,GAAG,IAAI,cAAc,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,cAAc;gBAC1B,WAAW,EAAE,UAAU;gBACvB,mBAAmB;gBACnB,UAAU;gBACV,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,iBAAiB,EAAE,KAAK,EAAE,OAAe,EAAE,YAAsB,EAAE,KAAa,EAAE,KAAa,EAAE,KAAiB,EAAE,EAAE;oBACrH,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;oBAC1D,MAAM,IAAI,GAAI,IAAY,CAAC,QAAQ,EAAE,IAA+B,CAAC;oBACrE,IAAI,CAAC,IAAI;wBAAE,OAAO,EAAE,CAAC;oBACrB,2FAA2F;oBAC3F,+FAA+F;oBAC/F,6FAA6F;oBAC7F,iGAAiG;oBACjG,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzC,6FAA6F;oBAC7F,uFAAuF;oBACvF,+FAA+F;oBAC/F,+FAA+F;oBAC/F,4FAA4F;oBAC5F,yGAAyG;oBACzG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CACpC,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,EACxF,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAa,EAC/D,WAAW,CACX,CAAC;oBACF,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChD,CAAC;aACD,CAAC,CAAC;QACJ,CAAC;QAED,6FAA6F;QAC7F,iFAAiF;QACjF,wFAAwF;QACxF,8EAA8E;QAC9E,8FAA8F;QAC9F,0FAA0F;QAC1F,sFAAsF;QACtF,uDAAuD;QACvD,MAAM,WAAW,GAA8B;YAC9C,eAAe;YACf,WAAW;YACX,2EAA2E;YAC3E,uFAAuF;YACvF,+FAA+F;YAC/F,iDAAiD;YACjD,mBAAmB,EAAE,WAAW;YAChC,UAAU;YACV,UAAU;YACV,cAAc,EAAE,sBAAsB;YACtC,oFAAoF;YACpF,+FAA+F;YAC/F,gGAAgG;YAChG,gGAAgG;YAChG,uFAAuF;YACvF,cAAc,EAAE,cAAc;SAC9B,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEjC,oGAAoG;QACpG,iGAAiG;QACjG,sGAAsG;QACtG,6FAA6F;QAC7F,oGAAoG;QACpG,iEAAiE;QACjE,IAAI,aAAa,EAAE,CAAC;YACnB,0GAA0G;YAC1G,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACX,0FAA0F;gBAC1F,qGAAqG;gBACrG,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;YACxF,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE;gBACpD,GAAG,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,IAAI,EAAE,CAAC;gBACpC,6FAA6F;gBAC7F,+FAA+F;gBAC/F,+FAA+F;gBAC/F,+FAA+F;gBAC/F,kGAAkG;gBAClG,oFAAoF;gBACpF,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,WAAY,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;gBAChE,8FAA8F;gBAC9F,wFAAwF;gBACxF,8FAA8F;gBAC9F,iGAAiG;gBACjG,mGAAmG;gBACnG,uGAAuG;gBACvG,kFAAkF;gBAClF,UAAU,EAAE,cAAc,EAAE,+BAA+B;gBAC3D,KAAK,EAAE,WAAW;aAClB,CAAC,CAAC;YAEH,2DAA2D;YAC3D,4FAA4F;YAC5F,8FAA8F;YAC9F,8FAA8F;YAC9F,iGAAiG;YACjG,0FAA0F;YAC1F,gGAAgG;YAChG,+EAA+E;YAC/E,EAAE;YACF,4FAA4F;YAC5F,kGAAkG;YAClG,6FAA6F;YAC7F,+FAA+F;YAC/F,4FAA4F;YAC5F,+FAA+F;YAC/F,+DAA+D;YAC/D,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;YACzD,MAAM,oBAAoB,GAAG,6BAA6B,CAAC;YAC3D,IAAI,uBAAiD,CAAC;YACtD,IAAI,gBAA0C,CAAC;YAC/C,IAAI,eAA4D,CAAC;YACjE,IAAI,kBAA+D,CAAC;YACpE,CAAC;gBACA,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,IAAI,CAAC,IAAI,GAAG,KAAK,IAAmB,EAAE;oBACrC,IAAI,CAAC;wBACJ,kBAAkB,EAAE,IAAI,EAAE,CAAC;wBAC3B,eAAe,EAAE,IAAI,EAAE,CAAC;wBACxB,gBAAgB,EAAE,EAAE,CAAC;wBACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,CAAC;wBACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,CAAC,CAAC;wBACnE,uBAAuB,EAAE,EAAE,CAAC;wBAC5B,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,CAAC;4BAAS,CAAC;wBACV,MAAM,YAAY,EAAE,CAAC;oBACtB,CAAC;gBACF,CAAC,CAAC;YACH,CAAC;YAED,gGAAgG;YAChG,6FAA6F;YAC7F,+FAA+F;YAC/F,+FAA+F;YAC/F,gFAAgF;YAChF,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;gBAC7D,IAAI;gBACJ,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;gBAClC,KAAK,EAAE,WAAW;aAClB,CAAC,CAAC;YAEH,uBAAuB,GAAG,wBAAwB,CACjD,IAAiE,EACjE;gBACC,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,kBAAkB;gBAClB,iBAAiB,EAAE,8BAA8B,CAAC,SAAU,CAAC;aAC7D,CACD,CAAC,WAAW,CAAC;YAEd,6FAA6F;YAC7F,sCAAsC;YACrC,IAAY,CAAC,eAAe,GAAG,IAAI,CAAC;YAErC,2GAA2G;YAC3G,uGAAuG;YACvG,oGAAoG;YACpG,0FAA0F;YAC1F,kGAAkG;YAClG,wFAAwF;YACxF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,6DAA6D;YACrG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;YACjE,+FAA+F;YAC/F,gGAAgG;YAChG,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,cAAc,EAAE,CAAC,CAAC;YACpE,oGAAoG;YACpG,kGAAkG;YAClG,8EAA8E;YAC9E,MAAM,8BAA8B,GAAG,CAAC,CAAC;YAEzC,kGAAkG;YAClG,gGAAgG;YAChG,kGAAkG;YAClG,MAAM,qBAAqB,GAAG,IAAI,4BAA4B,EAAE,CAAC;YAChE,IAAY,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YAE5D,uGAAuG;YACvG,MAAM,MAAM,GAAG,IAAI,+BAA+B,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAEzE,8FAA8F;YAC9F,MAAM,aAAa,GAAG,IAAI,uBAAuB,CAAC;gBACjD,SAAS,EAAE,MAAM;gBACjB,UAAU;gBACV,OAAO,EAAE,iBAAiB;gBAC1B,aAAa,EAAE,CAAC,OAAmB,EAAE,CAAiB,EAAiB,EAAE,CAAC,CAAC;oBAC1E,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,OAAO,EAAE,aAAa,CAAC,OAAO,CAAC;oBAC/B,YAAY,EAAE,CAAC,CAAC,MAAM;oBACtB,aAAa,EAAE,gBAAgB,CAAC,aAAa;iBAC7C,CAAC;gBACF,WAAW,EAAE,GAAyB,EAAE,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACzH,iBAAiB,EAAE,CAAC,OAAmB,EAAY,EAAE;oBACpD,iGAAiG;oBACjG,mGAAmG;oBACnG,+FAA+F;oBAC/F,+FAA+F;oBAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,8BAA8B,CAAC,CAAC;oBAClF,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjF,CAAC;gBACD,gGAAgG;gBAChG,qGAAqG;gBACrG,+DAA+D;gBAC/D,mBAAmB,EAAE,CAAC,GAAc,EAAsB,EAAE;oBAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;oBACzE,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChD,CAAC;gBACD,YAAY,EAAE,CAAC,OAAmB,EAAE,CAAiB,EAAQ,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;aACzG,CAAC,CAAC;YAEH,yGAAyG;YACzG,wFAAwF;YACxF,yFAAyF;YACzF,4FAA4F;YAC5F,gGAAgG;YAChG,gGAAgG;YAChG,oFAAoF;YACpF,iGAAiG;YACjG,2DAA2D;YAC3D,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChE,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,EAAQ,EAAE,GAAG,KAAK,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExG,uGAAuG;YACvG,MAAM,WAAW,GAAG,IAAI,4BAA4B,CAAC;gBACpD,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;oBACzB,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBAChC,OAAO,SAAS,CAAC,CAAC,mFAAmF;oBACtG,CAAC;oBACD,OAAO;wBACN,mFAAmF;wBACnF,wFAAwF;wBACxF,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;wBACzC,aAAa,EAAE,gBAAgB,CAAC,aAAa;wBAC7C,4FAA4F;wBAC5F,0FAA0F;wBAC1F,4FAA4F;wBAC5F,8FAA8F;wBAC9F,wEAAwE;qBACxE,CAAC;gBACH,CAAC;gBACD,uFAAuF;gBACvF,oGAAoG;gBACpG,oFAAoF;gBACpF,IAAI,EAAE,CAAC,CAAC,EAAQ,EAAE,GAAG,KAAK,aAAa,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,kGAAkG;gBAClG,kGAAkG;gBAClG,oGAAoG;gBACpG,iGAAiG;gBACjG,WAAW,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAQ,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;aACtG,CAAC,CAAC;YACH,WAAW,CAAC,OAAO,EAAE,CAAC;YAEtB,mGAAmG;YACnG,2FAA2F;YAC3F,eAAe,GAAG,IAAI,+BAA+B,CAAC;gBACrD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,eAAe,EAAE,GAAiC,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvG,SAAS;oBACT,WAAW,EAAE,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;iBAC1E,CAAC,CAAC;gBACH,kBAAkB,EAAE,CAAC,CAAoB,EAAE,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAClG,kGAAkG;gBAClG,6GAA6G;gBAC7G,cAAc,EAAE,CAAC,UAAkB,EAAE,CAAoB,EAAW,EAAE,CACrE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;aAC7G,CAAC,CAAC;YACH,8BAA8B,CAAC,IAAI,EAAE,mBAAmB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;YAC3F,eAAe,CAAC,KAAK,EAAE,CAAC;YAExB,gGAAgG;YAChG,sGAAsG;YACtG,qGAAqG;YACrG,sGAAsG;YACtG,qGAAqG;YACrG,wGAAwG;YACxG,wGAAwG;YACxG,oDAAoD;YACpD,EAAE;YACF,uGAAuG;YACvG,sGAAsG;YACtG,oGAAoG;YACpG,4FAA4F;YAC5F,MAAM,yBAAyB,GAAG,2BAA2B,EAAE,CAAC;YAChE,yGAAyG;YACzG,oGAAoG;YACpG,yGAAyG;YACzG,kGAAkG;YAClG,MAAM,uBAAuB,GAAG,CAAC,OAAmB,EAAY,EAAE,CACjE,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;YAExE,uGAAuG;YACvG,uGAAuG;YACvG,qGAAqG;YACrG,MAAM,OAAO,GAAG,IAAI,gCAAgC,CAAC;gBACpD,MAAM,EAAE,yBAAyB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBACpE,UAAU;gBACV,eAAe,EAAE,yBAAyB;gBAC1C,aAAa,EAAE,uBAAuB;aACtC,CAAC,CAAC;YAEH,0GAA0G;YAC1G,yGAAyG;YACzG,0GAA0G;YAC1G,4FAA4F;YAC5F,sBAAsB,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE;gBACzD,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC5D,sBAAsB,EAAE,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,aAAa,CAAC;gBAChF,WAAW,EAAE,4BAA4B,EAAE;gBAC3C,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;oBACzB,gGAAgG;oBAChG,8FAA8F;oBAC9F,gGAAgG;oBAChG,2FAA2F;oBAC3F,kGAAkG;oBAClG,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,IAAI,yBAAyB,CAAC,aAAa,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC7F,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;gBAClG,CAAC;aACD,CAAC,CAAC;YAEH,0GAA0G;YAC1G,sGAAsG;YACtG,iFAAiF;YACjF,kDAAkD;YAClD,MAAM,cAAc,GAAG,2BAA2B,CAAC,cAAc,CAAC,CAAC;YAEnE,qGAAqG;YACrG,wDAAwD;YACvD,IAAY,CAAC,iBAAiB,GAAG,OAAO,CAAC;YACzC,IAAY,CAAC,wBAAwB,GAAG,cAAc,CAAC;YACvD,IAAY,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;YAEpE,qGAAqG;YACrG,yGAAyG;YACzG,gGAAgG;YAChG,0GAA0G;YAC1G,2GAA2G;YAC3G,0GAA0G;YAC1G,oGAAoG;YACpG,kGAAkG;YAClG,uGAAuG;YACvG,oFAAoF;YACpF,kBAAkB,GAAG,IAAI,+BAA+B,CAAC;gBACxD,UAAU,EAAE,CAAC,IAAI,EAAiB,EAAE;oBACnC,mBAAmB,CAAC,2LAA2L,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACpQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC1B,CAAC;aACD,CAAC,CAAC;YACF,IAAY,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAEtD,0FAA0F;YAC1F,6GAA6G;YAC7G,yGAAyG;YACzG,wGAAwG;YACxG,0GAA0G;YAC1G,qGAAqG;YACrG,0FAA0F;YAC1F,+BAA+B,CAAC,IAAI,EAAE,oBAAoB,CAAC,KAAK,EAAE;gBACjE,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,mGAAmG;gBACnG,kGAAkG;gBAClG,sCAAsC;gBACtC,UAAU,EAAE,oBAAoB;gBAChC,uGAAuG;gBACvG,IAAI,EAAE,KAAK,EAAE,OAAmB,EAAmB,EAAE,CAAC,aAAa,CAAC,MAAM,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;gBAC5G,mGAAmG;gBACnG,sGAAsG;gBACtG,mFAAmF;aACnF,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,IAAiC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,mGAAmG;QACnG,qGAAqG;QACrG,sGAAsG;QACtG,0DAA0D;QAC1D,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,8CAA8C,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,GAAG,CAAC;IACX,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The single place in `db-p2p` that opens a libp2p protocol stream.
3
+ *
4
+ * libp2p refuses to open a protocol stream over a *limited* (circuit-relay) connection unless the
5
+ * caller opts in with `runOnLimitedConnection: true`. Omitting it produces no compile error and no
6
+ * obvious failure — only "that peer never answers" — so every peer reachable only through a relay
7
+ * (the steady state for browsers, phones, and NATed peers) silently drops out. The flag is
8
+ * deliberately NOT an option here: a new call site gets relay support without its author needing to
9
+ * know the flag exists, and `test/dial-options-single-site.spec.ts` fails the build if a second
10
+ * source file calls `dialProtocol` / `newStream` directly.
11
+ *
12
+ * NOTE: accepted tradeoff — this duplicates FRET's `rpc/protocols.ts#openRpcStream` (exported since
13
+ * `p2p-fret@1.0.0-beta.3`) rather than delegating to it. FRET's helper pins `negotiateFully: false`
14
+ * with no way to opt out, and `cohort-topic/stream-util.ts` deliberately does not set that option
15
+ * (see the NOTE at its call sites); adopting FRET's would silently reverse a decision a human
16
+ * already made. It also has no hook for the pre-dial check `libp2p-key-network.ts#connect` runs.
17
+ * Revisit — and delete this module in favour of `openRpcStream` — if FRET ever parameterizes
18
+ * `negotiateFully`.
19
+ *
20
+ * Imports here are type-only on purpose: this module is reachable from the react-native entry
21
+ * (`src/rn.ts`) via `libp2p-key-network.ts`, which must not pull node-specific code.
22
+ */
23
+ import type { Libp2p } from "libp2p";
24
+ import type { Connection, PeerId, Stream } from "@libp2p/interface";
25
+ export interface OpenProtocolStreamOptions {
26
+ /** Forwarded to libp2p so a caller's deadline cancels both the connection reuse and the dial. */
27
+ signal?: AbortSignal;
28
+ /**
29
+ * Omit for libp2p's default (full multistream-select negotiation at stream-open).
30
+ * Pass `false` to save the round trip, accepting that an unsupported-protocol failure is
31
+ * deferred to the first read — only safe when the caller always reads a reply.
32
+ */
33
+ negotiateFully?: boolean;
34
+ /**
35
+ * Runs immediately before a FRESH dial, and never on the connection-reuse path.
36
+ * Throwing aborts the open. This is the seam for checks that are only meaningful when no
37
+ * connection exists yet (see `libp2p-key-network.ts#assertNotSelfRelayOnly`).
38
+ */
39
+ beforeDial?: () => Promise<void> | void;
40
+ }
41
+ /**
42
+ * True for a circuit-relay ("limited") connection: libp2p stamps one with per-circuit `limits`
43
+ * (data/duration caps); sniffing `/p2p-circuit` in the remote multiaddr covers transports and
44
+ * versions that leave `limits` unpopulated.
45
+ */
46
+ export declare function isLimitedConnection(c: Connection): boolean;
47
+ /**
48
+ * Open `protocol` to `peer`, reusing a healthy existing connection when there is one.
49
+ *
50
+ * Skips connections libp2p has not yet evicted from its index but that are no longer open, and
51
+ * prefers a direct connection over a relayed one — a relayed connection can be reset once the
52
+ * relay's per-circuit cap or reservation lapses, and after DCUtR upgrades a link to direct both
53
+ * briefly coexist. Falls back to the relayed connection when it is the only open path.
54
+ */
55
+ export declare function openProtocolStream(node: Libp2p, peer: PeerId, protocol: string, options?: OpenProtocolStreamOptions): Promise<Stream>;
56
+ //# sourceMappingURL=open-protocol-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open-protocol-stream.d.ts","sourceRoot":"","sources":["../../../src/network/open-protocol-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACzC,iGAAiG;IACjG,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAG1D;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,yBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC,CAoBjB"}