@cmdoss/memwal-sdk 0.7.0 → 0.9.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 (229) hide show
  1. package/README.md +427 -41
  2. package/dist/client/ClientMemoryManager.js +2 -2
  3. package/dist/client/ClientMemoryManager.js.map +1 -1
  4. package/dist/client/PersonalDataWallet.d.ts.map +1 -1
  5. package/dist/client/SimplePDWClient.d.ts +88 -1
  6. package/dist/client/SimplePDWClient.d.ts.map +1 -1
  7. package/dist/client/SimplePDWClient.js +102 -11
  8. package/dist/client/SimplePDWClient.js.map +1 -1
  9. package/dist/client/namespaces/IndexNamespace.d.ts +1 -1
  10. package/dist/client/namespaces/IndexNamespace.d.ts.map +1 -1
  11. package/dist/client/namespaces/IndexNamespace.js +7 -4
  12. package/dist/client/namespaces/IndexNamespace.js.map +1 -1
  13. package/dist/client/namespaces/MemoryNamespace.d.ts +45 -0
  14. package/dist/client/namespaces/MemoryNamespace.d.ts.map +1 -1
  15. package/dist/client/namespaces/MemoryNamespace.js +292 -46
  16. package/dist/client/namespaces/MemoryNamespace.js.map +1 -1
  17. package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts +215 -0
  18. package/dist/client/namespaces/consolidated/AdvancedNamespace.d.ts.map +1 -0
  19. package/dist/client/namespaces/consolidated/AdvancedNamespace.js +214 -0
  20. package/dist/client/namespaces/consolidated/AdvancedNamespace.js.map +1 -0
  21. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts +12 -2
  22. package/dist/client/namespaces/consolidated/BlockchainNamespace.d.ts.map +1 -1
  23. package/dist/client/namespaces/consolidated/BlockchainNamespace.js +40 -2
  24. package/dist/client/namespaces/consolidated/BlockchainNamespace.js.map +1 -1
  25. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts +67 -2
  26. package/dist/client/namespaces/consolidated/StorageNamespace.d.ts.map +1 -1
  27. package/dist/client/namespaces/consolidated/StorageNamespace.js +549 -16
  28. package/dist/client/namespaces/consolidated/StorageNamespace.js.map +1 -1
  29. package/dist/client/namespaces/consolidated/index.d.ts +1 -0
  30. package/dist/client/namespaces/consolidated/index.d.ts.map +1 -1
  31. package/dist/client/namespaces/consolidated/index.js +1 -0
  32. package/dist/client/namespaces/consolidated/index.js.map +1 -1
  33. package/dist/config/ConfigurationHelper.js +61 -61
  34. package/dist/config/defaults.d.ts.map +1 -1
  35. package/dist/config/defaults.js +11 -6
  36. package/dist/config/defaults.js.map +1 -1
  37. package/dist/core/types/index.d.ts +4 -0
  38. package/dist/core/types/index.d.ts.map +1 -1
  39. package/dist/core/types/index.js.map +1 -1
  40. package/dist/graph/GraphService.js +20 -20
  41. package/dist/infrastructure/seal/EncryptionService.d.ts +9 -5
  42. package/dist/infrastructure/seal/EncryptionService.d.ts.map +1 -1
  43. package/dist/infrastructure/seal/EncryptionService.js +37 -15
  44. package/dist/infrastructure/seal/EncryptionService.js.map +1 -1
  45. package/dist/infrastructure/seal/SealService.d.ts +13 -5
  46. package/dist/infrastructure/seal/SealService.d.ts.map +1 -1
  47. package/dist/infrastructure/seal/SealService.js +36 -34
  48. package/dist/infrastructure/seal/SealService.js.map +1 -1
  49. package/dist/infrastructure/walrus/WalrusStorageService.d.ts +6 -0
  50. package/dist/infrastructure/walrus/WalrusStorageService.d.ts.map +1 -1
  51. package/dist/infrastructure/walrus/WalrusStorageService.js +23 -4
  52. package/dist/infrastructure/walrus/WalrusStorageService.js.map +1 -1
  53. package/dist/langchain/createPDWRAG.js +30 -30
  54. package/dist/retrieval/MemoryDecryptionPipeline.d.ts.map +1 -1
  55. package/dist/retrieval/MemoryDecryptionPipeline.js +2 -1
  56. package/dist/retrieval/MemoryDecryptionPipeline.js.map +1 -1
  57. package/dist/services/CapabilityService.d.ts.map +1 -1
  58. package/dist/services/CapabilityService.js +30 -14
  59. package/dist/services/CapabilityService.js.map +1 -1
  60. package/dist/services/CrossContextPermissionService.d.ts.map +1 -1
  61. package/dist/services/CrossContextPermissionService.js +9 -7
  62. package/dist/services/CrossContextPermissionService.js.map +1 -1
  63. package/dist/services/EmbeddingService.d.ts +9 -0
  64. package/dist/services/EmbeddingService.d.ts.map +1 -1
  65. package/dist/services/EmbeddingService.js +31 -10
  66. package/dist/services/EmbeddingService.js.map +1 -1
  67. package/dist/services/EncryptionService.d.ts.map +1 -1
  68. package/dist/services/EncryptionService.js +6 -5
  69. package/dist/services/EncryptionService.js.map +1 -1
  70. package/dist/services/GeminiAIService.js +309 -309
  71. package/dist/services/MemoryIndexService.d.ts +2 -0
  72. package/dist/services/MemoryIndexService.d.ts.map +1 -1
  73. package/dist/services/MemoryIndexService.js +11 -4
  74. package/dist/services/MemoryIndexService.js.map +1 -1
  75. package/dist/services/StorageService.d.ts +1 -0
  76. package/dist/services/StorageService.d.ts.map +1 -1
  77. package/dist/services/StorageService.js +60 -10
  78. package/dist/services/StorageService.js.map +1 -1
  79. package/dist/services/TransactionService.d.ts +20 -0
  80. package/dist/services/TransactionService.d.ts.map +1 -1
  81. package/dist/services/TransactionService.js +43 -0
  82. package/dist/services/TransactionService.js.map +1 -1
  83. package/dist/services/VectorService.js +1 -1
  84. package/dist/services/VectorService.js.map +1 -1
  85. package/dist/services/ViewService.js +2 -2
  86. package/dist/services/ViewService.js.map +1 -1
  87. package/dist/vector/BrowserHnswIndexService.js +1 -1
  88. package/dist/vector/BrowserHnswIndexService.js.map +1 -1
  89. package/dist/vector/HnswWasmService.js +1 -1
  90. package/dist/vector/HnswWasmService.js.map +1 -1
  91. package/dist/vector/NodeHnswService.js +1 -1
  92. package/dist/vector/NodeHnswService.js.map +1 -1
  93. package/package.json +1 -1
  94. package/src/access/PermissionService.ts +635 -635
  95. package/src/access/index.ts +8 -8
  96. package/src/aggregation/AggregationService.ts +389 -389
  97. package/src/aggregation/index.ts +8 -8
  98. package/src/ai-sdk/PDWVectorStore.ts +715 -715
  99. package/src/ai-sdk/index.ts +65 -65
  100. package/src/ai-sdk/tools.ts +460 -460
  101. package/src/ai-sdk/types.ts +404 -404
  102. package/src/batch/BatchManager.ts +597 -597
  103. package/src/batch/BatchingService.ts +429 -429
  104. package/src/batch/MemoryProcessingCache.ts +492 -492
  105. package/src/batch/index.ts +30 -30
  106. package/src/browser.ts +200 -200
  107. package/src/client/ClientMemoryManager.ts +987 -987
  108. package/src/client/PersonalDataWallet.ts +345 -345
  109. package/src/client/SimplePDWClient.ts +1369 -1237
  110. package/src/client/factory.ts +154 -154
  111. package/src/client/namespaces/AnalyticsNamespace.ts +377 -377
  112. package/src/client/namespaces/BatchNamespace.ts +356 -356
  113. package/src/client/namespaces/CacheNamespace.ts +123 -123
  114. package/src/client/namespaces/CapabilityNamespace.ts +217 -217
  115. package/src/client/namespaces/ClassifyNamespace.ts +169 -169
  116. package/src/client/namespaces/ContextNamespace.ts +297 -297
  117. package/src/client/namespaces/EmbeddingsNamespace.ts +99 -99
  118. package/src/client/namespaces/EncryptionNamespace.ts +221 -221
  119. package/src/client/namespaces/GraphNamespace.ts +468 -468
  120. package/src/client/namespaces/IndexNamespace.ts +364 -361
  121. package/src/client/namespaces/MemoryNamespace.ts +1569 -1272
  122. package/src/client/namespaces/PermissionsNamespace.ts +254 -254
  123. package/src/client/namespaces/PipelineNamespace.ts +220 -220
  124. package/src/client/namespaces/SearchNamespace.ts +1049 -1049
  125. package/src/client/namespaces/StorageNamespace.ts +458 -458
  126. package/src/client/namespaces/TxNamespace.ts +260 -260
  127. package/src/client/namespaces/WalletNamespace.ts +243 -243
  128. package/src/client/namespaces/consolidated/AINamespace.ts +449 -449
  129. package/src/client/namespaces/consolidated/AdvancedNamespace.ts +264 -0
  130. package/src/client/namespaces/consolidated/BlockchainNamespace.ts +607 -564
  131. package/src/client/namespaces/consolidated/SecurityNamespace.ts +648 -648
  132. package/src/client/namespaces/consolidated/StorageNamespace.ts +1141 -497
  133. package/src/client/namespaces/consolidated/index.ts +41 -39
  134. package/src/client/signers/DappKitSigner.ts +207 -207
  135. package/src/client/signers/KeypairSigner.ts +108 -108
  136. package/src/client/signers/UnifiedSigner.ts +110 -110
  137. package/src/client/signers/WalletAdapterSigner.ts +159 -159
  138. package/src/client/signers/index.ts +26 -26
  139. package/src/config/ConfigurationHelper.ts +412 -412
  140. package/src/config/defaults.ts +56 -51
  141. package/src/config/index.ts +8 -8
  142. package/src/config/validation.ts +70 -70
  143. package/src/core/index.ts +14 -14
  144. package/src/core/interfaces/IService.ts +307 -307
  145. package/src/core/interfaces/index.ts +8 -8
  146. package/src/core/types/capability.ts +297 -297
  147. package/src/core/types/index.ts +874 -870
  148. package/src/core/types/wallet.ts +270 -270
  149. package/src/core/types.ts +9 -9
  150. package/src/core/wallet.ts +222 -222
  151. package/src/embedding/index.ts +19 -19
  152. package/src/embedding/types.ts +357 -357
  153. package/src/errors/index.ts +602 -602
  154. package/src/errors/recovery.ts +461 -461
  155. package/src/errors/validation.ts +567 -567
  156. package/src/generated/pdw/capability.ts +319 -319
  157. package/src/generated/pdw/deps/sui/object.ts +12 -12
  158. package/src/generated/pdw/deps/sui/vec_map.ts +32 -32
  159. package/src/generated/pdw/memory.ts +1087 -1087
  160. package/src/generated/pdw/wallet.ts +123 -123
  161. package/src/generated/utils/index.ts +159 -159
  162. package/src/graph/GraphService.ts +887 -887
  163. package/src/graph/KnowledgeGraphManager.ts +728 -728
  164. package/src/graph/index.ts +25 -25
  165. package/src/index.ts +498 -498
  166. package/src/infrastructure/index.ts +22 -22
  167. package/src/infrastructure/seal/EncryptionService.ts +628 -603
  168. package/src/infrastructure/seal/SealService.ts +613 -615
  169. package/src/infrastructure/seal/index.ts +9 -9
  170. package/src/infrastructure/sui/BlockchainManager.ts +627 -627
  171. package/src/infrastructure/sui/SuiService.ts +888 -888
  172. package/src/infrastructure/sui/index.ts +9 -9
  173. package/src/infrastructure/walrus/StorageManager.ts +604 -604
  174. package/src/infrastructure/walrus/WalrusStorageService.ts +637 -612
  175. package/src/infrastructure/walrus/index.ts +9 -9
  176. package/src/langchain/PDWEmbeddings.ts +145 -145
  177. package/src/langchain/PDWVectorStore.ts +456 -456
  178. package/src/langchain/createPDWRAG.ts +303 -303
  179. package/src/langchain/index.ts +47 -47
  180. package/src/permissions/ConsentRepository.browser.ts +249 -249
  181. package/src/permissions/ConsentRepository.ts +364 -364
  182. package/src/permissions/index.ts +9 -9
  183. package/src/pipeline/MemoryPipeline.ts +862 -862
  184. package/src/pipeline/PipelineManager.ts +683 -683
  185. package/src/pipeline/index.ts +26 -26
  186. package/src/retrieval/AdvancedSearchService.ts +629 -629
  187. package/src/retrieval/MemoryAnalyticsService.ts +711 -711
  188. package/src/retrieval/MemoryDecryptionPipeline.ts +825 -824
  189. package/src/retrieval/MemoryRetrievalService.ts +904 -904
  190. package/src/retrieval/index.ts +42 -42
  191. package/src/services/BatchService.ts +352 -352
  192. package/src/services/CapabilityService.ts +464 -448
  193. package/src/services/ClassifierService.ts +465 -465
  194. package/src/services/CrossContextPermissionService.ts +486 -484
  195. package/src/services/EmbeddingService.ts +796 -771
  196. package/src/services/EncryptionService.ts +712 -711
  197. package/src/services/GeminiAIService.ts +753 -753
  198. package/src/services/IndexManager.ts +977 -977
  199. package/src/services/MemoryIndexService.ts +1009 -1003
  200. package/src/services/MemoryService.ts +369 -369
  201. package/src/services/QueryService.ts +890 -890
  202. package/src/services/StorageService.ts +1182 -1126
  203. package/src/services/TransactionService.ts +838 -790
  204. package/src/services/VectorService.ts +462 -462
  205. package/src/services/ViewService.ts +484 -484
  206. package/src/services/index.ts +25 -25
  207. package/src/services/storage/BlobAttributesManager.ts +333 -333
  208. package/src/services/storage/KnowledgeGraphManager.ts +425 -425
  209. package/src/services/storage/MemorySearchManager.ts +387 -387
  210. package/src/services/storage/QuiltBatchManager.ts +1130 -1130
  211. package/src/services/storage/WalrusMetadataManager.ts +268 -268
  212. package/src/services/storage/WalrusStorageManager.ts +287 -287
  213. package/src/services/storage/index.ts +57 -57
  214. package/src/types/index.ts +13 -13
  215. package/src/utils/LRUCache.ts +378 -378
  216. package/src/utils/index.ts +76 -76
  217. package/src/utils/memoryIndexOnChain.ts +507 -507
  218. package/src/utils/rebuildIndex.ts +290 -290
  219. package/src/utils/rebuildIndexNode.ts +771 -771
  220. package/src/vector/BrowserHnswIndexService.ts +758 -758
  221. package/src/vector/HnswWasmService.ts +731 -731
  222. package/src/vector/IHnswService.ts +233 -233
  223. package/src/vector/NodeHnswService.ts +833 -833
  224. package/src/vector/VectorManager.ts +478 -478
  225. package/src/vector/createHnswService.ts +135 -135
  226. package/src/vector/index.ts +56 -56
  227. package/src/wallet/ContextWalletService.ts +656 -656
  228. package/src/wallet/MainWalletService.ts +317 -317
  229. package/src/wallet/index.ts +17 -17
package/README.md CHANGED
@@ -5,6 +5,18 @@
5
5
 
6
6
  **MemWal** (Memory + Walrus) - TypeScript SDK for decentralized memory storage on Sui blockchain with Walrus.
7
7
 
8
+ ## Features
9
+
10
+ | Feature | Description |
11
+ |---------|-------------|
12
+ | **Memory CRUD** | Create, read, search, delete memories on Sui + Walrus |
13
+ | **Unified Search** | `pdw.memory.search()` - auto-embeds query and searches |
14
+ | **SEAL Encryption** | Identity-based encryption (enabled by default) |
15
+ | **Vector Search** | Fast HNSW search (768 dimensions default) |
16
+ | **AI Classification** | Auto-categorize memories (fact, event, preference, etc.) |
17
+ | **Batch Upload** | ~90% gas savings with Quilt batching |
18
+ | **Knowledge Graph** | Entity and relationship extraction |
19
+
8
20
  ## Installation
9
21
 
10
22
  ```bash
@@ -31,17 +43,19 @@ const pdw = new SimplePDWClient({
31
43
  embedding: {
32
44
  provider: 'openrouter',
33
45
  apiKey: process.env.OPENROUTER_API_KEY!,
46
+ dimensions: 768 // Default: 768 (fast), 1536, or 3072 (highest quality)
34
47
  }
35
48
  });
36
49
 
37
50
  await pdw.ready();
38
51
 
39
- // Create memory
52
+ // Create memory (auto: embed, classify, encrypt, upload, register, index)
40
53
  const memory = await pdw.memory.create('I work at CommandOSS as a developer');
41
54
  console.log('Memory ID:', memory.id);
42
55
 
43
- // Search memories
44
- const results = await pdw.search.vector('work experience', { limit: 5 });
56
+ // Search memories (NEW: unified search API)
57
+ const results = await pdw.memory.search('work experience', { limit: 5 });
58
+ console.log('Found:', results.length, 'memories');
45
59
  ```
46
60
 
47
61
  ### Browser (with dapp-kit + Slush/Sui Wallet)
@@ -72,64 +86,382 @@ function MyComponent() {
72
86
  network: 'testnet',
73
87
  userAddress: account.address,
74
88
  sui: { packageId: process.env.NEXT_PUBLIC_PACKAGE_ID! },
89
+ embedding: {
90
+ provider: 'openrouter',
91
+ apiKey: process.env.NEXT_PUBLIC_OPENROUTER_API_KEY!,
92
+ dimensions: 768
93
+ },
75
94
  features: { enableLocalIndexing: false }, // Disable for browser
76
95
  });
77
96
 
97
+ await pdw.ready();
98
+
78
99
  // Create memory - wallet popup appears for signing
79
100
  const memory = await pdw.memory.create('Hello from browser!');
101
+
102
+ // Search memories
103
+ const results = await pdw.memory.search('hello', { limit: 5 });
80
104
  };
81
105
  }
82
106
  ```
83
107
 
84
- ## Features
108
+ ## API Reference
85
109
 
86
- | Feature | Description |
87
- |---------|-------------|
88
- | Memory CRUD | Create, read, update, delete memories on Sui + Walrus |
89
- | Vector Search | Semantic search with HNSW (3072 dimensions) |
90
- | AI Classification | Auto-categorize memories (fact, event, preference, etc.) |
91
- | SEAL Encryption | Optional identity-based encryption |
92
- | Batch Upload | ~90% gas savings with Quilt batching |
93
- | Knowledge Graph | Entity and relationship extraction |
110
+ ### Core Namespaces
111
+
112
+ The SDK provides 5 core namespaces for common operations:
113
+
114
+ ```typescript
115
+ pdw.memory // Create, get, search, list, delete memories
116
+ pdw.ai // Embed, classify, extract commands
117
+ pdw.index // HNSW index management
118
+ pdw.wallet // Wallet address and balance info
119
+ pdw.advanced // Power user features (graph, analytics, etc.)
120
+ ```
121
+
122
+ ### `pdw.memory` - Memory Operations
123
+
124
+ ```typescript
125
+ // CREATE - handles everything internally (embed, encrypt, upload, register, index)
126
+ const memory = await pdw.memory.create(content, {
127
+ category?: string, // Auto-classify if not provided
128
+ importance?: number, // Auto-score if not provided (1-10)
129
+ embedding?: number[], // Auto-generate if not provided
130
+ });
131
+
132
+ // CREATE BATCH - upload multiple memories efficiently
133
+ const memories = await pdw.memory.createBatch([
134
+ { content: 'Memory 1', category: 'fact' },
135
+ { content: 'Memory 2', category: 'preference' }
136
+ ]);
137
+
138
+ // SEARCH - unified semantic search (auto-embeds query)
139
+ const results = await pdw.memory.search(query, {
140
+ limit?: number, // Max results (default: 10)
141
+ threshold?: number, // Min similarity 0-1 (default: 0.7)
142
+ category?: string, // Filter by category
143
+ includeContent?: boolean // Include decrypted content (default: true)
144
+ });
145
+
146
+ // GET - retrieve by ID (auto-decrypts)
147
+ const memory = await pdw.memory.get(memoryId);
148
+
149
+ // LIST - list all memories with filters
150
+ const memories = await pdw.memory.list({
151
+ category?: string,
152
+ limit?: number,
153
+ offset?: number
154
+ });
155
+
156
+ // DELETE
157
+ await pdw.memory.delete(memoryId);
158
+ await pdw.memory.deleteBatch([id1, id2, id3]);
159
+ ```
160
+
161
+ ### `pdw.ai` - AI Operations
162
+
163
+ ```typescript
164
+ // Generate embeddings
165
+ const embedding = await pdw.ai.embed(text);
166
+ const embeddings = await pdw.ai.embedBatch([text1, text2]);
167
+
168
+ // Classify content
169
+ const { category, importance } = await pdw.ai.classify(content);
170
+
171
+ // Extract memory commands from user input
172
+ const memories = pdw.ai.extractMultipleMemories(userMessage);
173
+ // Input: "remember I like pizza and my name is John"
174
+ // Output: ["I like pizza", "my name is John"]
175
+
176
+ // Check if content should be saved as memory
177
+ const shouldSave = await pdw.ai.shouldSave(content);
178
+ ```
94
179
 
95
- ## Environment Variables
180
+ ### `pdw.index` - HNSW Index Management
96
181
 
97
- ```env
182
+ ```typescript
183
+ // Add vector to index
184
+ await pdw.index.add(spaceId, vectorId, vector, {
185
+ content: string,
186
+ blobId: string,
187
+ category: string,
188
+ importance: number,
189
+ isEncrypted: boolean,
190
+ forceStoreContent: boolean // Store content even when encrypted (for RAG)
191
+ });
192
+
193
+ // Search vectors
194
+ const results = await pdw.index.search(spaceId, queryVector, {
195
+ k: 10,
196
+ threshold: 0.7
197
+ });
198
+
199
+ // Get index stats
200
+ const stats = pdw.index.getStats(spaceId);
201
+
202
+ // Rebuild index from blockchain
203
+ await pdw.index.rebuild(userAddress);
204
+
205
+ // Clear index
206
+ await pdw.index.clear(spaceId);
207
+
208
+ // Flush to disk
209
+ await pdw.index.flush(spaceId);
210
+ ```
211
+
212
+ ### `pdw.wallet` - Wallet Information
213
+
214
+ ```typescript
215
+ // Get wallet address
216
+ const address = pdw.wallet.address;
217
+
218
+ // Get SUI balance
219
+ const balance = await pdw.wallet.balance();
220
+
221
+ // Get memory count
222
+ const count = await pdw.wallet.memoryCount();
223
+ ```
224
+
225
+ ### `pdw.advanced` - Power User Features
226
+
227
+ ```typescript
228
+ // Knowledge Graph
229
+ const graph = await pdw.advanced.graph.extract(content);
230
+ // Returns: { entities: [...], relationships: [...] }
231
+
232
+ // Analytics
233
+ const insights = await pdw.advanced.analytics.getInsights();
234
+
235
+ // Manual encryption/decryption
236
+ const encrypted = await pdw.advanced.encryption.encrypt(data);
237
+ const decrypted = await pdw.advanced.encryption.decrypt(encrypted);
238
+
239
+ // Permissions
240
+ await pdw.advanced.permissions.grant(memoryId, targetAddress);
241
+ await pdw.advanced.permissions.revoke(memoryId, targetAddress);
242
+
243
+ // Transaction building (low-level)
244
+ const tx = pdw.advanced.blockchain.buildCreateMemoryTx(params);
245
+ ```
246
+
247
+ ### Legacy Search API (Deprecated)
248
+
249
+ ```typescript
250
+ // Still works but deprecated - use pdw.memory.search() instead
251
+ await pdw.search.vector(query, { limit }); // -> pdw.memory.search()
252
+ await pdw.search.byCategory('fact'); // -> pdw.memory.list({ category: 'fact' })
253
+ await pdw.search.hybrid(query, { category }); // -> pdw.memory.search(query, { category })
254
+ ```
255
+
256
+ ## Configuration
257
+
258
+ ### Full Configuration
259
+
260
+ ```typescript
261
+ const pdw = new SimplePDWClient({
262
+ // Required
263
+ signer: keypair, // Sui keypair or wallet adapter
264
+ network: 'testnet', // 'testnet' | 'mainnet' | 'devnet'
265
+
266
+ // Embedding configuration (required for AI features)
267
+ embedding: {
268
+ provider: 'openrouter', // 'google' | 'openai' | 'openrouter' | 'cohere'
269
+ apiKey: process.env.OPENROUTER_API_KEY,
270
+ modelName: 'google/text-embedding-004', // Optional: defaults per provider
271
+ dimensions: 768 // Optional: 768 (default), 1536, or 3072
272
+ },
273
+
274
+ // Optional: Sui configuration
275
+ sui: {
276
+ packageId: '0x...', // Default: from env PACKAGE_ID
277
+ rpcUrl: 'https://...', // Default: from network
278
+ },
279
+
280
+ // Optional: Walrus configuration
281
+ walrus: {
282
+ aggregatorUrl: 'https://aggregator.walrus-testnet.walrus.space',
283
+ publisherUrl: 'https://publisher.walrus-testnet.walrus.space',
284
+ },
285
+
286
+ // Optional: AI configuration
287
+ ai: {
288
+ apiKey: process.env.OPENROUTER_API_KEY,
289
+ chatModel: 'google/gemini-2.5-flash',
290
+ },
291
+
292
+ // Optional: Feature flags
293
+ features: {
294
+ enableEncryption: true, // Default: true (SEAL encryption)
295
+ enableLocalIndexing: true, // Default: true (HNSW vector search)
296
+ enableKnowledgeGraph: true // Default: true (entity extraction)
297
+ },
298
+
299
+ // Optional: Encryption configuration
300
+ encryption: {
301
+ enabled: true,
302
+ keyServers: ['0x...', '0x...'], // Default: testnet key servers
303
+ threshold: 2, // M of N key servers required
304
+ accessRegistryId: '0x...'
305
+ },
306
+
307
+ // Optional: Index backup to Walrus (cloud sync)
308
+ indexBackup: {
309
+ enabled: true,
310
+ aggregatorUrl: 'https://...',
311
+ publisherUrl: 'https://...',
312
+ autoSync: false,
313
+ epochs: 3
314
+ }
315
+ });
316
+ ```
317
+
318
+ ### Environment Variables
319
+
320
+ ```bash
321
+ # Required
98
322
  SUI_PRIVATE_KEY=suiprivkey1...
99
323
  PACKAGE_ID=0x...
324
+
325
+ # Embedding (at least one API key required)
326
+ EMBEDDING_PROVIDER=openrouter # google, openai, openrouter, cohere
327
+ EMBEDDING_API_KEY= # Falls back to provider-specific keys
328
+ EMBEDDING_MODEL= # Optional: override default model
329
+ EMBEDDING_DIMENSIONS=768 # 768 (default), 1536, 3072
330
+
331
+ # Provider-specific API keys (fallback)
100
332
  OPENROUTER_API_KEY=sk-or-v1-...
333
+ GEMINI_API_KEY=...
334
+ OPENAI_API_KEY=sk-...
335
+ COHERE_API_KEY=...
101
336
 
102
- # Optional
337
+ # Walrus (optional - defaults to testnet)
338
+ WALRUS_NETWORK=testnet
103
339
  WALRUS_AGGREGATOR=https://aggregator.walrus-testnet.walrus.space
104
340
  WALRUS_PUBLISHER=https://publisher.walrus-testnet.walrus.space
341
+
342
+ # SEAL Encryption (optional - defaults configured)
343
+ ENABLE_ENCRYPTION=true
344
+ SEAL_KEY_SERVERS=0xKEY1,0xKEY2
345
+ SEAL_THRESHOLD=2
346
+ ACCESS_REGISTRY_ID=0x...
105
347
  ```
106
348
 
107
- ## API Overview
349
+ ### Embedding Providers
350
+
351
+ | Provider | Model Default | Dimensions | API Key |
352
+ |----------|---------------|------------|---------|
353
+ | `openrouter` | `google/text-embedding-004` | 768 | `OPENROUTER_API_KEY` |
354
+ | `google` | `text-embedding-004` | 768 | `GEMINI_API_KEY` |
355
+ | `openai` | `text-embedding-3-small` | 1536 | `OPENAI_API_KEY` |
356
+ | `cohere` | `embed-english-v3.0` | 1024 | `COHERE_API_KEY` |
357
+
358
+ **Dimensions Trade-offs:**
359
+ - **768** (default): Fast embedding + small storage + fast search
360
+ - **1536**: Balance of quality and speed
361
+ - **3072**: Highest quality, slowest
362
+
363
+ **Recommendation**: Use `openrouter` with 768 dimensions for best performance.
364
+
365
+ ## SEAL Encryption
366
+
367
+ Encryption is **enabled by default** in v0.8.0+. All memory content is automatically encrypted using SEAL (Secure Encrypted Access Layer).
368
+
369
+ ### How It Works
370
+
371
+ 1. **Identity-based**: Uses Sui address as encryption identity
372
+ 2. **Threshold security**: Requires M of N key servers (default: 2 of 2)
373
+ 3. **Zero gas for decryption**: No blockchain transactions required
374
+ 4. **Privacy-preserving**: Content never exposed on-chain
375
+
376
+ ### Default Encryption (Recommended)
108
377
 
109
378
  ```typescript
110
- // Memory operations
111
- await pdw.memory.create(content, { category, importance });
112
- await pdw.memory.createBatch([...contents]);
113
- await pdw.memory.get(id);
114
- await pdw.memory.delete(id);
379
+ const pdw = new SimplePDWClient({
380
+ signer: keypair,
381
+ network: 'testnet',
382
+ embedding: { provider: 'openrouter', apiKey: 'key' }
383
+ // Encryption automatically enabled!
384
+ });
115
385
 
116
- // Search
117
- await pdw.search.vector(query, { limit });
118
- await pdw.search.byCategory('fact');
119
- await pdw.search.hybrid(query, { category });
386
+ // Memories encrypted on upload, decrypted on retrieval
387
+ await pdw.memory.create('My private data');
388
+ ```
120
389
 
121
- // AI
122
- await pdw.ai.embed(text);
123
- await pdw.ai.classify(content);
124
- await pdw.ai.shouldSave(content);
390
+ ### Disabling Encryption (Development Only)
125
391
 
126
- // Knowledge Graph
127
- await pdw.graph.extract(content);
392
+ ```typescript
393
+ const pdw = new SimplePDWClient({
394
+ // ...
395
+ features: {
396
+ enableEncryption: false // Stores content in plaintext!
397
+ }
398
+ });
399
+ ```
400
+
401
+ ## Server-Side RAG
402
+
403
+ For server-side applications with RAG (Retrieval-Augmented Generation), content needs to be stored in the local index even when encrypted.
404
+
405
+ ### Configuration
406
+
407
+ When indexing memories server-side, use `forceStoreContent: true`:
408
+
409
+ ```typescript
410
+ await pdw.index.add(walletAddress, vectorId, embedding, {
411
+ content: plaintextContent,
412
+ blobId: blobId,
413
+ isEncrypted: true,
414
+ forceStoreContent: true // Store content for RAG even when encrypted
415
+ });
416
+ ```
417
+
418
+ ### API Route Example
419
+
420
+ ```typescript
421
+ // /api/memory/index/route.ts
422
+ export async function POST(req: Request) {
423
+ const { walletAddress, memoryId, content, embedding, blobId } = await req.json();
424
+
425
+ const pdw = await getReadOnlyPDWClient(walletAddress);
426
+
427
+ await pdw.index.add(walletAddress, vectorId, embedding, {
428
+ content,
429
+ blobId,
430
+ isEncrypted: true,
431
+ forceStoreContent: true // Enable RAG for encrypted memories
432
+ });
433
+ }
434
+ ```
435
+
436
+ ### Chat API with Memory Search
437
+
438
+ ```typescript
439
+ // /api/chat/route.ts
440
+ export async function POST(req: Request) {
441
+ const { messages, walletAddress } = await req.json();
442
+ const pdw = await getReadOnlyPDWClient(walletAddress);
443
+
444
+ // Search memories for context
445
+ const memories = await pdw.memory.search(userMessage, {
446
+ limit: 10,
447
+ threshold: 0.3,
448
+ includeContent: true
449
+ });
450
+
451
+ // Build prompt with memory context
452
+ const systemPrompt = `
453
+ User's memories:
454
+ ${memories.map(m => m.content).join('\n')}
455
+ `;
456
+
457
+ // Call LLM with context
458
+ return streamText({ model, messages, system: systemPrompt });
459
+ }
128
460
  ```
129
461
 
130
462
  ## Vector Search (HNSW)
131
463
 
132
- The SDK uses HNSW for fast vector search:
464
+ The SDK uses HNSW for fast approximate nearest neighbor search:
133
465
 
134
466
  | Implementation | Environment | Performance |
135
467
  |----------------|-------------|-------------|
@@ -138,7 +470,7 @@ The SDK uses HNSW for fast vector search:
138
470
 
139
471
  The SDK auto-detects and uses the best available implementation.
140
472
 
141
- **For best performance in Node.js:**
473
+ ### For Best Performance in Node.js
142
474
 
143
475
  ```bash
144
476
  # Requires C++ build tools
@@ -156,19 +488,73 @@ npm install hnswlib-node
156
488
 
157
489
  </details>
158
490
 
491
+ ## Index Rebuild
492
+
493
+ When users log in on a new device or the local index is lost, rebuild from blockchain:
494
+
495
+ ```typescript
496
+ import { rebuildIndexNode, hasExistingIndexNode } from '@cmdoss/memwal-sdk';
497
+ import { SuiClient, getFullnodeUrl } from '@mysten/sui/client';
498
+
499
+ const client = new SuiClient({ url: getFullnodeUrl('testnet') });
500
+
501
+ // Check if index exists
502
+ const hasIndex = await hasExistingIndexNode(userAddress);
503
+
504
+ if (!hasIndex) {
505
+ // Rebuild from blockchain + Walrus
506
+ const result = await rebuildIndexNode({
507
+ userAddress,
508
+ client,
509
+ packageId: process.env.PACKAGE_ID!,
510
+ network: 'testnet',
511
+ force: false, // Set true to force rebuild
512
+ fetchConcurrency: 10, // Parallel blob fetches
513
+ onProgress: (current, total, status) => {
514
+ console.log(`${current}/${total}: ${status}`);
515
+ }
516
+ });
517
+
518
+ console.log(`Indexed ${result.indexedMemories}/${result.totalMemories} memories`);
519
+ }
520
+ ```
521
+
522
+ ## Exports
523
+
524
+ ```typescript
525
+ // Main exports
526
+ import { SimplePDWClient } from '@cmdoss/memwal-sdk';
527
+
528
+ // Browser-safe exports
529
+ import { SimplePDWClient, DappKitSigner } from '@cmdoss/memwal-sdk/browser';
530
+
531
+ // React hooks
532
+ import { usePDWClient, useMemory } from '@cmdoss/memwal-sdk/hooks';
533
+
534
+ // Services (advanced)
535
+ import { EmbeddingService, MemoryIndexService } from '@cmdoss/memwal-sdk/services';
536
+
537
+ // LangChain integration
538
+ import { PDWVectorStore } from '@cmdoss/memwal-sdk/langchain';
539
+
540
+ // Vercel AI SDK integration
541
+ import { createPDWTool } from '@cmdoss/memwal-sdk/ai-sdk';
542
+
543
+ // Node.js utilities
544
+ import { rebuildIndexNode, hasExistingIndexNode, clearIndexNode } from '@cmdoss/memwal-sdk';
545
+ ```
546
+
159
547
  ## Benchmarks
160
548
 
161
- Tested on localhost with Option A+ (local content retrieval enabled):
549
+ Tested on localhost with encryption enabled:
162
550
 
163
551
  | Operation | Time | Description |
164
552
  |-----------|------|-------------|
165
- | Vector Search + RAG | ~2.3s | Chat with semantic search |
166
- | Create Memory | ~2.3s | Classify + embed + upload + index |
167
- | AI Classification | ~2.3s | Categorize content |
168
- | Batch Upload (2 items) | ~2.3s | Quilt batching |
169
- | Blockchain Query | ~2.3s | List memories from Sui |
170
-
171
- **Average query time: ~2.3s** (with OpenRouter API latency included)
553
+ | Memory Search | ~0.5s | Semantic search (local HNSW) |
554
+ | Create Memory | ~2.5s | Classify + embed + encrypt + upload + index |
555
+ | AI Classification | ~0.8s | Categorize content |
556
+ | Batch Upload (5 items) | ~3s | Quilt batching with encryption |
557
+ | Blockchain Query | ~0.3s | List memories from Sui |
172
558
 
173
559
  ## Documentation
174
560
 
@@ -701,7 +701,7 @@ export class ClientMemoryManager {
701
701
  : account.address;
702
702
  const idBytes = fromHex(addressHex);
703
703
  tx.moveCall({
704
- target: `${this.config.packageId}::seal_access_control::seal_approve`,
704
+ target: `${this.config.packageId}::capability::seal_approve`,
705
705
  arguments: [
706
706
  tx.pure.vector('u8', Array.from(idBytes)),
707
707
  tx.pure.address(account.address),
@@ -746,7 +746,7 @@ export class ClientMemoryManager {
746
746
  : account.address;
747
747
  const idBytes = fromHex(addressHex);
748
748
  tx.moveCall({
749
- target: `${this.config.packageId}::seal_access_control::seal_approve`,
749
+ target: `${this.config.packageId}::capability::seal_approve`,
750
750
  arguments: [
751
751
  tx.pure.vector('u8', Array.from(idBytes)),
752
752
  tx.pure.address(account.address),
@@ -1 +1 @@
1
- {"version":3,"file":"ClientMemoryManager.js","sourceRoot":"","sources":["../../src/client/ClientMemoryManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientMemoryManager.js","sourceRoot":"","sources":["../../src/client/ClientMemoryManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AA8E9D;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAa9B,YAAY,MAAiC;QAX5B,sBAAiB,GAAG;YACnC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS;YACpD,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO;SAChD,CAAC;QAKM,gBAAW,GAAwB,IAAI,CAAC;QACxC,uBAAkB,GAAiC,IAAI,CAAC;QAgGhE,4CAA4C;QACpC,qBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QA9FnD,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,MAAM;YACT,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI;gBACjD,oEAAoE;gBACpE,oEAAoE;aACrE;YACD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS;YAChD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB;YACvD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,KAAK,KAAK,EAAE,gBAAgB;YAC3E,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC,kCAAkC;SACvF,CAAC;QAEF,uDAAuD;QACvD,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBAChC,KAAK,EAAE,oBAAoB;gBAC3B,UAAU,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY;gBAChC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,yBAAyB;gBAC7D,WAAW,EAAE,GAAG;aACjB,CAAC,CAAC;YAEH,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC7E,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,0EAA0E;YAC1E,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzG,OAAO,CAAC,GAAG,CAAC,sDAAsD,OAAO,GAAG,CAAC,CAAC;gBAC9E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,qBAAqB;QACjC,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;YAE1E,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC;gBACtC,WAAW,EAAE;oBACX,SAAS,EAAE,IAAI;oBACf,WAAW,EAAE,KAAK;oBAClB,CAAC,EAAE,EAAE;oBACL,cAAc,EAAE,GAAG;iBACpB;gBACD,WAAW,EAAE;oBACX,YAAY,EAAE,EAAE;oBAChB,YAAY,EAAE,IAAI;iBACnB;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,KAAK,CAAC,CAAC;YACjF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;gBAC3D,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAKD;;;OAGG;IACK,KAAK,CAAC,eAAe,CAAC,WAAmB;QAC/C,wDAAwD;QACxD,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,gEAAgE;gBAChE,MAAM,EAAE,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC5D,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC;oBACxD,OAAO,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClD,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC9C,OAAO,CAAC,eAAe,GAAG,CAAC,KAAK,EAAE,EAAE;wBAClC,MAAM,EAAE,GAAI,KAAK,CAAC,MAA2B,CAAC,MAAM,CAAC;wBACrD,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC9C,EAAE,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC;wBAC/D,CAAC;oBACH,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAElD,sBAAsB;gBACtB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,OAAO,CAAuD,CAAC,OAAO,EAAE,EAAE;oBACtG,UAAU,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;oBACxD,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE/C,iBAAiB;gBACjB,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;gBAE5C,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,WAAW,CAAC,UAAU,GAAG,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBACzC,WAAW,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;gBAEH,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,mBAAmB,CAAC,CAAC;gBAC5E,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,sDAAsD;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,cAAc,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAA4B;QAC7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAEnF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,UAAU,EAAE,CAAC,6BAA6B,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,kDAAkD;YAClD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;YAChD,UAAU,EAAE,CAAC,8BAA8B,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAErC,qDAAqD;YACrD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YACxE,UAAU,EAAE,CAAC,kCAAkC,CAAC,CAAC;YAEjD,iCAAiC;YACjC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE;gBACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;aACvC,CAAC,CAAC;YAEH,iDAAiD;YACjD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,CAAC,uEAAuE,CAAC,CAAC;YAErF,sDAAsD;YACtD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,MAAM,UAAU,GAAyB;gBACvC,OAAO;gBACP,SAAS;gBACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE3D,0CAA0C;YAC1C,IAAI,UAAsB,CAAC;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAEjD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAClD,UAAU,EAAE,CAAC,yBAAyB,CAAC,CAAC;gBACxC,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC5E,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;gBACvE,UAAU,EAAE,CAAC,mCAAmC,CAAC,CAAC;gBAClD,UAAU,GAAG,SAAS,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACzE,CAAC;YAED,0CAA0C;YAC1C,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,UAAU,EAAE,CAAC,uCAAuC,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;YACtF,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;YAE7C,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,QAAQ,CAAC,CAAC;YAE5D,6DAA6D;YAC7D,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;YACrE,UAAU,EAAE,CAAC,uCAAuC,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,eAAe,CAAC;gBACzB,MAAM;gBACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAS,0CAA0C;gBACxE,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,QAAQ,EAAuB,sBAAsB;gBACrD,OAAO;gBACP,cAAc;gBACd,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE;gBACzD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ;aACT,CAAC,CAAC;YACH,UAAU,EAAE,CAAC,8BAA8B,CAAC,CAAC;YAE7C,gDAAgD;YAChD,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YAE3D,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,mDAAmD;oBACnD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC;oBAEvD,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;wBAC/D,UAAU,EAAE,CAAC,8BAA8B,CAAC,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,CAAC;wBAE5C,0DAA0D;wBAC1D,gEAAgE;wBAChE,+EAA+E;wBAC/E,6DAA6D;wBAC7D,MAAM,QAAQ,GAAG;4BACf,MAAM;4BACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;4BAC3B,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAe,wBAAwB;4BAC5D,UAAU,EAAE,QAAQ,CAAC,UAAU;4BAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAW,wBAAwB;4BAC5D,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE;4BAC5B,WAAW,EAAE,YAAY;4BACzB,WAAW,EAAE,OAAO,CAAC,MAAM;4BAC3B,MAAM,EAAE,uBAAuB;4BAC/B,aAAa,EAAE,UAAU,EAAW,qCAAqC;4BACzE,WAAW,EAAyB,6CAA6C;4BACjF,+EAA+E;4BAC/E,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;yBACpC,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,QAAQ,CAAC,CAAC;wBAEnD,kDAAkD;wBAClD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;wBAC5C,MAAM,WAAW,CAAC,SAAS,CACzB,OAAO,CAAC,OAAO,EACf,QAAQ,EACR,SAAS,EAAE,4DAA4D;wBACvE,QAAQ,CACT,CAAC;wBACF,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACvC,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;wBACtF,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;wBAE7D,2BAA2B;wBAC3B,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;wBAC1E,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC9C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;wBAExD,6BAA6B;wBAC7B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;wBAClD,MAAM,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;wBAC7C,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;wBAE1D,OAAO,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC;wBAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;wBACtC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;wBACjE,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;wBACzD,UAAU,EAAE,CAAC,2BAA2B,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBAAC,OAAO,UAAe,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;oBACtD,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;oBACtD,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;gBAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB;oBAAE,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;gBAClF,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;gBAC7D,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACvF,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,OAA8B;QACjD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE7E,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,UAAU,EAAE,CAAC,uBAAuB,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,UAAU,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE3D,4BAA4B;YAC5B,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,UAAU,EAAE,CAAC,yBAAyB,CAAC,CAAC;YACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;gBAC/C,aAAa;gBACb,OAAO;gBACP,mBAAmB;gBACnB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAE3D,qBAAqB;YACrB,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChE,MAAM,MAAM,GAAyB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YAEjE,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;YAC7C,UAAU,EAAE,CAAC,gCAAgC,CAAC,CAAC;YAE/C,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,OAAqC;QAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE9E,OAAO,CAAC,GAAG,CAAC,wCAAwC,EAAE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrF,UAAU,EAAE,CAAC,oCAAoC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,iEAAiE;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC;gBACjD,OAAO;gBACP,mBAAmB;gBACnB,MAAM;aACP,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;YAEtG,MAAM,OAAO,GAA0B,EAAE,CAAC;YAE1C,sDAAsD;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;gBAC1E,UAAU,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAEvF,IAAI,CAAC;oBACH,oBAAoB;oBACpB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAEjE,6CAA6C;oBAC7C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;wBACrD,IAAI,EAAE,aAAa;wBACnB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC,CAAC;oBAEH,aAAa;oBACb,MAAM,eAAe,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAChE,MAAM,MAAM,GAAyB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAEjE,OAAO,CAAC,IAAI,CAAC;wBACX,MAAM;wBACN,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,CAAC,CAAC;oBAEH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;gBAC1D,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;oBAE9D,4CAA4C;oBAC5C,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;wBAC7F,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM;4BACN,OAAO,EAAE,uCAAuC;yBACjD,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC;4BACX,MAAM;4BACN,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,mBAAmB;yBAC5C,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,UAAU,EAAE,CAAC,yBAAyB,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAExE,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,4DAA4D;IAEpD,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,gBAAyB;QAClE,yDAAyD;QACzD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gBACxF,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;gBAClD,OAAO,QAAQ,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;gBAChF,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,IAAY,EAAE,gBAAyB;QACjE,OAAO;YACL,QAAQ,EAAE,gBAAgB,IAAI,UAAU;YACxC,KAAK,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC;YACzC,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;SACnE,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,IAAY;QAC1C,4BAA4B;QAC5B,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QACrE,CAAC;QAED,gCAAgC;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACK,iBAAiB,CAAC,QAA8B;QACtD,MAAM,KAAK,GAAG;YACZ,aAAa,QAAQ,CAAC,QAAQ,EAAE;YAChC,UAAU,QAAQ,CAAC,KAAK,EAAE;YAC1B,eAAe,QAAQ,CAAC,UAAU,EAAE;SACrC,CAAC;QAEF,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAC1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CACb,sFAAsF;gBACtF,wEAAwE,CACzE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;gBACnD,IAAI;gBACJ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,IAAgB,EAChB,YAAoB,EACpB,MAAiB;QAEjB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,SAAS,EAAE,MAAa;YACxB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1D,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YACnE,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,EAAE,EAAE,YAAY,EAAE,sDAAsD;YACxE,IAAI;SACL,CAAC,CAAC;QAEH,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,IAAgB,EAChB,OAA4B,EAC5B,cAAqD,EACrD,MAAiB;QAEjB,MAAM,cAAc,GAAI,MAAc,CAAC,OAAO,CAC5C,YAAY,CAAC,8BAA8B,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YAClC,WAAW,EAAE;gBACX,IAAI,EAAE,wBAAwB,IAAI,CAAC,MAAM,CAAC,aAAa,eAAe;gBACtE,OAAO,EAAE,EAAE,GAAG,EAAE,IAAK,EAAE;gBACvB,OAAO,EAAE,KAAM;aAChB;YACD,wBAAwB,EAAE;gBACxB,OAAO,EAAE,KAAM;aAChB;SACF,CAAC,CACH,CAAC;QAEF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAa,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAExD,SAAS;QACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAEpB,yBAAyB;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC/B,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,OAAO,CAAC,OAAO;SACvB,CAAC,CAAC;QACH,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAEtC,MAAM,cAAc,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnE,cAAc,CACZ,EAAE,WAAW,EAAE,UAAU,EAAE,EAC3B;gBACE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBAC7C,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAClC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,SAAS;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;QAE9C,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAErC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,cAAc,CACZ,EAAE,WAAW,EAAE,SAAS,EAAE,EAC1B;gBACE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;gBAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aAClC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAU7B;QACC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEjH,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE3D,OAAO,CAAC,GAAG,CAAC,6CAA6C,EAAE;YACzD,QAAQ;YACR,KAAK;YACL,UAAU;YACV,QAAQ;YACR,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;SACxC,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,SAAS,gCAAgC;YACpD,SAAS,EAAE;gBACT,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACxB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACrB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACtB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC5B,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC1B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAa,mDAAmD;gBACtF,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAe,qDAAqD;gBACzF,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;gBACtB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAc,8CAA8C;aACnF;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,cAAc,CACZ,EAAE,WAAW,EAAE,EAAE,EAAE,EACnB;gBACE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;oBACpB,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;oBACxD,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE;wBAC3D,QAAQ;wBACR,KAAK;wBACL,UAAU;qBACX,CAAC,CAAC;oBACH,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;oBAC9C,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;aACF,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,MAAiB;QAC7D,oEAAoE;QACpE,MAAM,cAAc,GAAI,MAAc,CAAC,OAAO,CAC5C,YAAY,CAAC,8BAA8B,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;SACnC,CAAC,CACH,CAAC;QAEF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAa,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB,CAAC,MAIrC;QACC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAExD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAEjD,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,SAAS,EAAE,MAAa;YACxB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1D,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,gCAAgC;QAChC,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;YACzC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,MAAa;SACzB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAChF,MAAM,UAAU,CAAC,2BAA2B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAEzC,sCAAsC;QACtC,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACjD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAEpC,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,4BAA4B;YAC5D,SAAS,EAAE;gBACT,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACvC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QAErE,OAAO;YACL,UAAU;YACV,UAAU;YACV,OAAO;SACR,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAK7B;QACC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAEvE,qBAAqB;QACrB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;YAChC,SAAS,EAAE,MAAa;YACxB,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC1D,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YACH,gBAAgB,EAAE,KAAK;SACxB,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC;YACzC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,MAAa;SACzB,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,eAAe,GAAG,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACxD,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAChF,MAAM,UAAU,CAAC,2BAA2B,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAExE,iCAAiC;QACjC,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACjD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACpB,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAEpC,EAAE,CAAC,QAAQ,CAAC;YACV,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,4BAA4B;YAC5D,SAAS,EAAE;gBACT,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBACvC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC;QAEtE,UAAU;QACV,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAC7C,IAAI,EAAE,aAAa;YACnB,UAAU;YACV,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAED,eAAe,mBAAmB,CAAC"}