@ninebix/nmt-system 1.0.2 → 1.0.3

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 (430) hide show
  1. package/README.md +288 -213
  2. package/dashboard-lite/index.html +1083 -762
  3. package/dist/bin/nmt.js +171 -40
  4. package/dist/bin/nmt.js.map +1 -1
  5. package/dist/src/api/cli-server.d.ts.map +1 -1
  6. package/dist/src/api/cli-server.js +156 -0
  7. package/dist/src/api/cli-server.js.map +1 -1
  8. package/dist/src/core/attractor-model.d.ts +5 -2
  9. package/dist/src/core/attractor-model.d.ts.map +1 -1
  10. package/dist/src/core/attractor-model.js +7 -4
  11. package/dist/src/core/attractor-model.js.map +1 -1
  12. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  13. package/dist/src/core/neuron-graph.js +41 -7
  14. package/dist/src/core/neuron-graph.js.map +1 -1
  15. package/dist/src/mcp/server.d.ts.map +1 -1
  16. package/dist/src/mcp/server.js +168 -34
  17. package/dist/src/mcp/server.js.map +1 -1
  18. package/dist/src/services/four-stage-learning.d.ts +19 -0
  19. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  20. package/dist/src/services/four-stage-learning.js +113 -17
  21. package/dist/src/services/four-stage-learning.js.map +1 -1
  22. package/dist/src/storage/neuron-store.d.ts +2 -0
  23. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  24. package/dist/src/storage/neuron-store.js +22 -14
  25. package/dist/src/storage/neuron-store.js.map +1 -1
  26. package/package.json +1 -1
  27. package/dist/api/cli-server.d.ts +0 -83
  28. package/dist/api/cli-server.d.ts.map +0 -1
  29. package/dist/api/cli-server.js +0 -597
  30. package/dist/api/cli-server.js.map +0 -1
  31. package/dist/api/index.d.ts +0 -6
  32. package/dist/api/index.d.ts.map +0 -1
  33. package/dist/api/index.js +0 -6
  34. package/dist/api/index.js.map +0 -1
  35. package/dist/api/middleware/index.d.ts +0 -12
  36. package/dist/api/middleware/index.d.ts.map +0 -1
  37. package/dist/api/middleware/index.js +0 -13
  38. package/dist/api/middleware/index.js.map +0 -1
  39. package/dist/api/middleware/logger.d.ts +0 -21
  40. package/dist/api/middleware/logger.d.ts.map +0 -1
  41. package/dist/api/middleware/logger.js +0 -134
  42. package/dist/api/middleware/logger.js.map +0 -1
  43. package/dist/api/middleware/rate-limit.d.ts +0 -26
  44. package/dist/api/middleware/rate-limit.d.ts.map +0 -1
  45. package/dist/api/middleware/rate-limit.js +0 -107
  46. package/dist/api/middleware/rate-limit.js.map +0 -1
  47. package/dist/api/middleware/response.d.ts +0 -61
  48. package/dist/api/middleware/response.d.ts.map +0 -1
  49. package/dist/api/middleware/response.js +0 -86
  50. package/dist/api/middleware/response.js.map +0 -1
  51. package/dist/api/middleware/validation.d.ts +0 -43
  52. package/dist/api/middleware/validation.d.ts.map +0 -1
  53. package/dist/api/middleware/validation.js +0 -257
  54. package/dist/api/middleware/validation.js.map +0 -1
  55. package/dist/api/server.d.ts +0 -79
  56. package/dist/api/server.d.ts.map +0 -1
  57. package/dist/api/server.js +0 -2011
  58. package/dist/api/server.js.map +0 -1
  59. package/dist/cli/commands/attractor.d.ts +0 -6
  60. package/dist/cli/commands/attractor.d.ts.map +0 -1
  61. package/dist/cli/commands/attractor.js +0 -167
  62. package/dist/cli/commands/attractor.js.map +0 -1
  63. package/dist/cli/commands/dimension.d.ts +0 -6
  64. package/dist/cli/commands/dimension.d.ts.map +0 -1
  65. package/dist/cli/commands/dimension.js +0 -85
  66. package/dist/cli/commands/dimension.js.map +0 -1
  67. package/dist/cli/commands/index.d.ts +0 -11
  68. package/dist/cli/commands/index.d.ts.map +0 -1
  69. package/dist/cli/commands/index.js +0 -11
  70. package/dist/cli/commands/index.js.map +0 -1
  71. package/dist/cli/commands/infer.d.ts +0 -6
  72. package/dist/cli/commands/infer.d.ts.map +0 -1
  73. package/dist/cli/commands/infer.js +0 -139
  74. package/dist/cli/commands/infer.js.map +0 -1
  75. package/dist/cli/commands/learn.d.ts +0 -6
  76. package/dist/cli/commands/learn.d.ts.map +0 -1
  77. package/dist/cli/commands/learn.js +0 -87
  78. package/dist/cli/commands/learn.js.map +0 -1
  79. package/dist/cli/commands/orchestrate.d.ts +0 -6
  80. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  81. package/dist/cli/commands/orchestrate.js +0 -279
  82. package/dist/cli/commands/orchestrate.js.map +0 -1
  83. package/dist/cli/commands/prob.d.ts +0 -6
  84. package/dist/cli/commands/prob.d.ts.map +0 -1
  85. package/dist/cli/commands/prob.js +0 -256
  86. package/dist/cli/commands/prob.js.map +0 -1
  87. package/dist/cli/commands/quantum.d.ts +0 -6
  88. package/dist/cli/commands/quantum.d.ts.map +0 -1
  89. package/dist/cli/commands/quantum.js +0 -150
  90. package/dist/cli/commands/quantum.js.map +0 -1
  91. package/dist/cli/commands/sync.d.ts +0 -65
  92. package/dist/cli/commands/sync.d.ts.map +0 -1
  93. package/dist/cli/commands/sync.js +0 -338
  94. package/dist/cli/commands/sync.js.map +0 -1
  95. package/dist/cli/index.d.ts +0 -9
  96. package/dist/cli/index.d.ts.map +0 -1
  97. package/dist/cli/index.js +0 -9
  98. package/dist/cli/index.js.map +0 -1
  99. package/dist/cli/probabilistic-commands.d.ts +0 -39
  100. package/dist/cli/probabilistic-commands.d.ts.map +0 -1
  101. package/dist/cli/probabilistic-commands.js +0 -112
  102. package/dist/cli/probabilistic-commands.js.map +0 -1
  103. package/dist/cli/types.d.ts +0 -69
  104. package/dist/cli/types.d.ts.map +0 -1
  105. package/dist/cli/types.js +0 -5
  106. package/dist/cli/types.js.map +0 -1
  107. package/dist/cli/utils/formatters.d.ts +0 -51
  108. package/dist/cli/utils/formatters.d.ts.map +0 -1
  109. package/dist/cli/utils/formatters.js +0 -79
  110. package/dist/cli/utils/formatters.js.map +0 -1
  111. package/dist/cli/utils/helpers.d.ts +0 -21
  112. package/dist/cli/utils/helpers.d.ts.map +0 -1
  113. package/dist/cli/utils/helpers.js +0 -51
  114. package/dist/cli/utils/helpers.js.map +0 -1
  115. package/dist/cli/utils/index.d.ts +0 -7
  116. package/dist/cli/utils/index.d.ts.map +0 -1
  117. package/dist/cli/utils/index.js +0 -13
  118. package/dist/cli/utils/index.js.map +0 -1
  119. package/dist/cli/utils/validators.d.ts +0 -162
  120. package/dist/cli/utils/validators.d.ts.map +0 -1
  121. package/dist/cli/utils/validators.js +0 -351
  122. package/dist/cli/utils/validators.js.map +0 -1
  123. package/dist/core/advanced-embedding.d.ts +0 -154
  124. package/dist/core/advanced-embedding.d.ts.map +0 -1
  125. package/dist/core/advanced-embedding.js +0 -367
  126. package/dist/core/advanced-embedding.js.map +0 -1
  127. package/dist/core/attractor-model.d.ts +0 -381
  128. package/dist/core/attractor-model.d.ts.map +0 -1
  129. package/dist/core/attractor-model.js +0 -821
  130. package/dist/core/attractor-model.js.map +0 -1
  131. package/dist/core/bidirectional-inference.d.ts +0 -143
  132. package/dist/core/bidirectional-inference.d.ts.map +0 -1
  133. package/dist/core/bidirectional-inference.js +0 -501
  134. package/dist/core/bidirectional-inference.js.map +0 -1
  135. package/dist/core/chunk-engine.d.ts +0 -78
  136. package/dist/core/chunk-engine.d.ts.map +0 -1
  137. package/dist/core/chunk-engine.js +0 -192
  138. package/dist/core/chunk-engine.js.map +0 -1
  139. package/dist/core/dynamic-embedding.d.ts +0 -327
  140. package/dist/core/dynamic-embedding.d.ts.map +0 -1
  141. package/dist/core/dynamic-embedding.js +0 -527
  142. package/dist/core/dynamic-embedding.js.map +0 -1
  143. package/dist/core/embedding-similarity.d.ts +0 -68
  144. package/dist/core/embedding-similarity.d.ts.map +0 -1
  145. package/dist/core/embedding-similarity.js +0 -291
  146. package/dist/core/embedding-similarity.js.map +0 -1
  147. package/dist/core/evolution-scheduler.d.ts +0 -101
  148. package/dist/core/evolution-scheduler.d.ts.map +0 -1
  149. package/dist/core/evolution-scheduler.js +0 -235
  150. package/dist/core/evolution-scheduler.js.map +0 -1
  151. package/dist/core/hierarchical-chunker.d.ts +0 -108
  152. package/dist/core/hierarchical-chunker.d.ts.map +0 -1
  153. package/dist/core/hierarchical-chunker.js +0 -296
  154. package/dist/core/hierarchical-chunker.js.map +0 -1
  155. package/dist/core/hnsw-index.d.ts +0 -111
  156. package/dist/core/hnsw-index.d.ts.map +0 -1
  157. package/dist/core/hnsw-index.js +0 -466
  158. package/dist/core/hnsw-index.js.map +0 -1
  159. package/dist/core/index.d.ts +0 -23
  160. package/dist/core/index.d.ts.map +0 -1
  161. package/dist/core/index.js +0 -25
  162. package/dist/core/index.js.map +0 -1
  163. package/dist/core/language-analyzers.d.ts +0 -124
  164. package/dist/core/language-analyzers.d.ts.map +0 -1
  165. package/dist/core/language-analyzers.js +0 -365
  166. package/dist/core/language-analyzers.js.map +0 -1
  167. package/dist/core/local-embedding.d.ts +0 -109
  168. package/dist/core/local-embedding.d.ts.map +0 -1
  169. package/dist/core/local-embedding.js +0 -222
  170. package/dist/core/local-embedding.js.map +0 -1
  171. package/dist/core/merkle-engine.d.ts +0 -263
  172. package/dist/core/merkle-engine.d.ts.map +0 -1
  173. package/dist/core/merkle-engine.js +0 -528
  174. package/dist/core/merkle-engine.js.map +0 -1
  175. package/dist/core/multi-layer-reasoning.d.ts +0 -178
  176. package/dist/core/multi-layer-reasoning.d.ts.map +0 -1
  177. package/dist/core/multi-layer-reasoning.js +0 -607
  178. package/dist/core/multi-layer-reasoning.js.map +0 -1
  179. package/dist/core/neuron-graph.d.ts +0 -134
  180. package/dist/core/neuron-graph.d.ts.map +0 -1
  181. package/dist/core/neuron-graph.js +0 -436
  182. package/dist/core/neuron-graph.js.map +0 -1
  183. package/dist/core/probabilistic-neuron.d.ts +0 -251
  184. package/dist/core/probabilistic-neuron.d.ts.map +0 -1
  185. package/dist/core/probabilistic-neuron.js +0 -618
  186. package/dist/core/probabilistic-neuron.js.map +0 -1
  187. package/dist/core/probabilistic-orchestrator.d.ts +0 -408
  188. package/dist/core/probabilistic-orchestrator.d.ts.map +0 -1
  189. package/dist/core/probabilistic-orchestrator.js +0 -798
  190. package/dist/core/probabilistic-orchestrator.js.map +0 -1
  191. package/dist/core/semantic-chunker.d.ts +0 -117
  192. package/dist/core/semantic-chunker.d.ts.map +0 -1
  193. package/dist/core/semantic-chunker.js +0 -464
  194. package/dist/core/semantic-chunker.js.map +0 -1
  195. package/dist/events/event-bus.d.ts +0 -166
  196. package/dist/events/event-bus.d.ts.map +0 -1
  197. package/dist/events/event-bus.js +0 -228
  198. package/dist/events/event-bus.js.map +0 -1
  199. package/dist/events/index.d.ts +0 -7
  200. package/dist/events/index.d.ts.map +0 -1
  201. package/dist/events/index.js +0 -7
  202. package/dist/events/index.js.map +0 -1
  203. package/dist/events/progress-tracker.d.ts +0 -150
  204. package/dist/events/progress-tracker.d.ts.map +0 -1
  205. package/dist/events/progress-tracker.js +0 -290
  206. package/dist/events/progress-tracker.js.map +0 -1
  207. package/dist/extensions/clustering/community-detection.d.ts +0 -90
  208. package/dist/extensions/clustering/community-detection.d.ts.map +0 -1
  209. package/dist/extensions/clustering/community-detection.js +0 -470
  210. package/dist/extensions/clustering/community-detection.js.map +0 -1
  211. package/dist/extensions/clustering/index.d.ts +0 -114
  212. package/dist/extensions/clustering/index.d.ts.map +0 -1
  213. package/dist/extensions/clustering/index.js +0 -468
  214. package/dist/extensions/clustering/index.js.map +0 -1
  215. package/dist/extensions/clustering/topic-modeling.d.ts +0 -86
  216. package/dist/extensions/clustering/topic-modeling.d.ts.map +0 -1
  217. package/dist/extensions/clustering/topic-modeling.js +0 -355
  218. package/dist/extensions/clustering/topic-modeling.js.map +0 -1
  219. package/dist/extensions/distributed/coordinator.d.ts +0 -114
  220. package/dist/extensions/distributed/coordinator.d.ts.map +0 -1
  221. package/dist/extensions/distributed/coordinator.js +0 -319
  222. package/dist/extensions/distributed/coordinator.js.map +0 -1
  223. package/dist/extensions/distributed/index.d.ts +0 -10
  224. package/dist/extensions/distributed/index.d.ts.map +0 -1
  225. package/dist/extensions/distributed/index.js +0 -10
  226. package/dist/extensions/distributed/index.js.map +0 -1
  227. package/dist/extensions/distributed/queue.d.ts +0 -157
  228. package/dist/extensions/distributed/queue.d.ts.map +0 -1
  229. package/dist/extensions/distributed/queue.js +0 -326
  230. package/dist/extensions/distributed/queue.js.map +0 -1
  231. package/dist/extensions/distributed/scheduler.d.ts +0 -107
  232. package/dist/extensions/distributed/scheduler.d.ts.map +0 -1
  233. package/dist/extensions/distributed/scheduler.js +0 -301
  234. package/dist/extensions/distributed/scheduler.js.map +0 -1
  235. package/dist/extensions/distributed/worker.d.ts +0 -112
  236. package/dist/extensions/distributed/worker.d.ts.map +0 -1
  237. package/dist/extensions/distributed/worker.js +0 -260
  238. package/dist/extensions/distributed/worker.js.map +0 -1
  239. package/dist/index.d.ts +0 -14
  240. package/dist/index.d.ts.map +0 -1
  241. package/dist/index.js +0 -20
  242. package/dist/index.js.map +0 -1
  243. package/dist/mcp/server.d.ts +0 -43
  244. package/dist/mcp/server.d.ts.map +0 -1
  245. package/dist/mcp/server.js +0 -494
  246. package/dist/mcp/server.js.map +0 -1
  247. package/dist/services/adaptive-fallback.d.ts +0 -140
  248. package/dist/services/adaptive-fallback.d.ts.map +0 -1
  249. package/dist/services/adaptive-fallback.js +0 -273
  250. package/dist/services/adaptive-fallback.js.map +0 -1
  251. package/dist/services/answer-gate.d.ts +0 -112
  252. package/dist/services/answer-gate.d.ts.map +0 -1
  253. package/dist/services/answer-gate.js +0 -299
  254. package/dist/services/answer-gate.js.map +0 -1
  255. package/dist/services/auto-learning.d.ts +0 -135
  256. package/dist/services/auto-learning.d.ts.map +0 -1
  257. package/dist/services/auto-learning.js +0 -413
  258. package/dist/services/auto-learning.js.map +0 -1
  259. package/dist/services/context-compressor.d.ts +0 -77
  260. package/dist/services/context-compressor.d.ts.map +0 -1
  261. package/dist/services/context-compressor.js +0 -234
  262. package/dist/services/context-compressor.js.map +0 -1
  263. package/dist/services/efficient-rag.d.ts +0 -140
  264. package/dist/services/efficient-rag.d.ts.map +0 -1
  265. package/dist/services/efficient-rag.js +0 -311
  266. package/dist/services/efficient-rag.js.map +0 -1
  267. package/dist/services/embedding-provider.d.ts +0 -72
  268. package/dist/services/embedding-provider.d.ts.map +0 -1
  269. package/dist/services/embedding-provider.js +0 -176
  270. package/dist/services/embedding-provider.js.map +0 -1
  271. package/dist/services/file-ingestion.d.ts +0 -72
  272. package/dist/services/file-ingestion.d.ts.map +0 -1
  273. package/dist/services/file-ingestion.js +0 -237
  274. package/dist/services/file-ingestion.js.map +0 -1
  275. package/dist/services/four-stage-learning.d.ts +0 -552
  276. package/dist/services/four-stage-learning.d.ts.map +0 -1
  277. package/dist/services/four-stage-learning.js +0 -1110
  278. package/dist/services/four-stage-learning.js.map +0 -1
  279. package/dist/services/graph.d.ts +0 -94
  280. package/dist/services/graph.d.ts.map +0 -1
  281. package/dist/services/graph.js +0 -292
  282. package/dist/services/graph.js.map +0 -1
  283. package/dist/services/index.d.ts +0 -15
  284. package/dist/services/index.d.ts.map +0 -1
  285. package/dist/services/index.js +0 -18
  286. package/dist/services/index.js.map +0 -1
  287. package/dist/services/ingestion.d.ts +0 -98
  288. package/dist/services/ingestion.d.ts.map +0 -1
  289. package/dist/services/ingestion.js +0 -259
  290. package/dist/services/ingestion.js.map +0 -1
  291. package/dist/services/learning.d.ts +0 -67
  292. package/dist/services/learning.d.ts.map +0 -1
  293. package/dist/services/learning.js +0 -262
  294. package/dist/services/learning.js.map +0 -1
  295. package/dist/services/llm-router.d.ts +0 -143
  296. package/dist/services/llm-router.d.ts.map +0 -1
  297. package/dist/services/llm-router.js +0 -284
  298. package/dist/services/llm-router.js.map +0 -1
  299. package/dist/services/llm.d.ts +0 -86
  300. package/dist/services/llm.d.ts.map +0 -1
  301. package/dist/services/llm.js +0 -283
  302. package/dist/services/llm.js.map +0 -1
  303. package/dist/services/metrics-dashboard.d.ts +0 -262
  304. package/dist/services/metrics-dashboard.d.ts.map +0 -1
  305. package/dist/services/metrics-dashboard.js +0 -417
  306. package/dist/services/metrics-dashboard.js.map +0 -1
  307. package/dist/services/neuron-lifecycle.d.ts +0 -137
  308. package/dist/services/neuron-lifecycle.d.ts.map +0 -1
  309. package/dist/services/neuron-lifecycle.js +0 -422
  310. package/dist/services/neuron-lifecycle.js.map +0 -1
  311. package/dist/services/nmt-pipeline.d.ts +0 -219
  312. package/dist/services/nmt-pipeline.d.ts.map +0 -1
  313. package/dist/services/nmt-pipeline.js +0 -449
  314. package/dist/services/nmt-pipeline.js.map +0 -1
  315. package/dist/services/query-cache.d.ts +0 -136
  316. package/dist/services/query-cache.d.ts.map +0 -1
  317. package/dist/services/query-cache.js +0 -255
  318. package/dist/services/query-cache.js.map +0 -1
  319. package/dist/services/query-normalize.d.ts +0 -107
  320. package/dist/services/query-normalize.d.ts.map +0 -1
  321. package/dist/services/query-normalize.js +0 -366
  322. package/dist/services/query-normalize.js.map +0 -1
  323. package/dist/services/query.d.ts +0 -102
  324. package/dist/services/query.d.ts.map +0 -1
  325. package/dist/services/query.js +0 -227
  326. package/dist/services/query.js.map +0 -1
  327. package/dist/services/text-embedding.d.ts +0 -183
  328. package/dist/services/text-embedding.d.ts.map +0 -1
  329. package/dist/services/text-embedding.js +0 -633
  330. package/dist/services/text-embedding.js.map +0 -1
  331. package/dist/services/verification-gate.d.ts +0 -147
  332. package/dist/services/verification-gate.d.ts.map +0 -1
  333. package/dist/services/verification-gate.js +0 -344
  334. package/dist/services/verification-gate.js.map +0 -1
  335. package/dist/services/verify.d.ts +0 -114
  336. package/dist/services/verify.d.ts.map +0 -1
  337. package/dist/services/verify.js +0 -237
  338. package/dist/services/verify.js.map +0 -1
  339. package/dist/services/web-search.d.ts +0 -145
  340. package/dist/services/web-search.d.ts.map +0 -1
  341. package/dist/services/web-search.js +0 -534
  342. package/dist/services/web-search.js.map +0 -1
  343. package/dist/storage/chunk-store.d.ts +0 -107
  344. package/dist/storage/chunk-store.d.ts.map +0 -1
  345. package/dist/storage/chunk-store.js +0 -293
  346. package/dist/storage/chunk-store.js.map +0 -1
  347. package/dist/storage/hybrid-adapters.d.ts +0 -111
  348. package/dist/storage/hybrid-adapters.d.ts.map +0 -1
  349. package/dist/storage/hybrid-adapters.js +0 -223
  350. package/dist/storage/hybrid-adapters.js.map +0 -1
  351. package/dist/storage/hybrid-store.d.ts +0 -125
  352. package/dist/storage/hybrid-store.d.ts.map +0 -1
  353. package/dist/storage/hybrid-store.js +0 -655
  354. package/dist/storage/hybrid-store.js.map +0 -1
  355. package/dist/storage/index-store.d.ts +0 -126
  356. package/dist/storage/index-store.d.ts.map +0 -1
  357. package/dist/storage/index-store.js +0 -316
  358. package/dist/storage/index-store.js.map +0 -1
  359. package/dist/storage/index.d.ts +0 -45
  360. package/dist/storage/index.d.ts.map +0 -1
  361. package/dist/storage/index.js +0 -52
  362. package/dist/storage/index.js.map +0 -1
  363. package/dist/storage/neuron-store.d.ts +0 -121
  364. package/dist/storage/neuron-store.d.ts.map +0 -1
  365. package/dist/storage/neuron-store.js +0 -466
  366. package/dist/storage/neuron-store.js.map +0 -1
  367. package/dist/storage/ontology-store.d.ts +0 -132
  368. package/dist/storage/ontology-store.d.ts.map +0 -1
  369. package/dist/storage/ontology-store.js +0 -319
  370. package/dist/storage/ontology-store.js.map +0 -1
  371. package/dist/storage/probabilistic-store.d.ts +0 -104
  372. package/dist/storage/probabilistic-store.d.ts.map +0 -1
  373. package/dist/storage/probabilistic-store.js +0 -257
  374. package/dist/storage/probabilistic-store.js.map +0 -1
  375. package/dist/storage/redis-adapters.d.ts +0 -102
  376. package/dist/storage/redis-adapters.d.ts.map +0 -1
  377. package/dist/storage/redis-adapters.js +0 -205
  378. package/dist/storage/redis-adapters.js.map +0 -1
  379. package/dist/storage/redis-ontology-store.d.ts +0 -146
  380. package/dist/storage/redis-ontology-store.d.ts.map +0 -1
  381. package/dist/storage/redis-ontology-store.js +0 -384
  382. package/dist/storage/redis-ontology-store.js.map +0 -1
  383. package/dist/storage/redis-store.d.ts +0 -174
  384. package/dist/storage/redis-store.d.ts.map +0 -1
  385. package/dist/storage/redis-store.js +0 -506
  386. package/dist/storage/redis-store.js.map +0 -1
  387. package/dist/sync/change-journal.d.ts +0 -171
  388. package/dist/sync/change-journal.d.ts.map +0 -1
  389. package/dist/sync/change-journal.js +0 -362
  390. package/dist/sync/change-journal.js.map +0 -1
  391. package/dist/sync/index.d.ts +0 -8
  392. package/dist/sync/index.d.ts.map +0 -1
  393. package/dist/sync/index.js +0 -8
  394. package/dist/sync/index.js.map +0 -1
  395. package/dist/sync/state-sync.d.ts +0 -241
  396. package/dist/sync/state-sync.d.ts.map +0 -1
  397. package/dist/sync/state-sync.js +0 -396
  398. package/dist/sync/state-sync.js.map +0 -1
  399. package/dist/sync/vector-clock.d.ts +0 -144
  400. package/dist/sync/vector-clock.d.ts.map +0 -1
  401. package/dist/sync/vector-clock.js +0 -266
  402. package/dist/sync/vector-clock.js.map +0 -1
  403. package/dist/types/index.d.ts +0 -224
  404. package/dist/types/index.d.ts.map +0 -1
  405. package/dist/types/index.js +0 -24
  406. package/dist/types/index.js.map +0 -1
  407. package/dist/utils/hash.d.ts +0 -39
  408. package/dist/utils/hash.d.ts.map +0 -1
  409. package/dist/utils/hash.js +0 -56
  410. package/dist/utils/hash.js.map +0 -1
  411. package/dist/utils/index.d.ts +0 -26
  412. package/dist/utils/index.d.ts.map +0 -1
  413. package/dist/utils/index.js +0 -50
  414. package/dist/utils/index.js.map +0 -1
  415. package/dist/utils/logger.d.ts +0 -88
  416. package/dist/utils/logger.d.ts.map +0 -1
  417. package/dist/utils/logger.js +0 -157
  418. package/dist/utils/logger.js.map +0 -1
  419. package/dist/utils/metrics.d.ts +0 -232
  420. package/dist/utils/metrics.d.ts.map +0 -1
  421. package/dist/utils/metrics.js +0 -387
  422. package/dist/utils/metrics.js.map +0 -1
  423. package/dist/utils/similarity.d.ts +0 -64
  424. package/dist/utils/similarity.d.ts.map +0 -1
  425. package/dist/utils/similarity.js +0 -151
  426. package/dist/utils/similarity.js.map +0 -1
  427. package/dist/utils/uuid.d.ts +0 -23
  428. package/dist/utils/uuid.d.ts.map +0 -1
  429. package/dist/utils/uuid.js +0 -29
  430. package/dist/utils/uuid.js.map +0 -1
@@ -1,528 +0,0 @@
1
- /**
2
- * Merkle Engine - Tree construction and verification
3
- *
4
- * Extended features:
5
- * - Tree diff computation
6
- * - Batch proofs for multiple leaves
7
- * - Range proofs for consecutive leaves
8
- * - Versioned trees
9
- *
10
- * @module core/merkle-engine
11
- */
12
- import { hash, hashPair } from '../utils/hash.js';
13
- /**
14
- * MerkleEngine class for tree operations
15
- */
16
- export class MerkleEngine {
17
- /**
18
- * Build a Merkle tree from leaf hashes
19
- * @param leaves - Array of leaf hashes
20
- * @returns Complete Merkle tree structure
21
- */
22
- buildTree(leaves) {
23
- if (leaves.length === 0) {
24
- throw new Error('Cannot build Merkle tree from empty leaves');
25
- }
26
- const originalLeaves = [...leaves];
27
- // Pad to power of 2 by duplicating last leaf
28
- const paddedLeaves = [...leaves];
29
- while (!this.isPowerOfTwo(paddedLeaves.length)) {
30
- paddedLeaves.push(paddedLeaves[paddedLeaves.length - 1]);
31
- }
32
- // Build levels from bottom to top
33
- const levels = [paddedLeaves];
34
- let currentLevel = paddedLeaves;
35
- while (currentLevel.length > 1) {
36
- const nextLevel = [];
37
- for (let i = 0; i < currentLevel.length; i += 2) {
38
- const left = currentLevel[i];
39
- const right = currentLevel[i + 1];
40
- const parent = hashPair(left, right);
41
- nextLevel.push(parent);
42
- }
43
- levels.push(nextLevel);
44
- currentLevel = nextLevel;
45
- }
46
- return {
47
- root: currentLevel[0],
48
- levels,
49
- leafCount: originalLeaves.length,
50
- originalLeaves
51
- };
52
- }
53
- /**
54
- * Build Merkle tree from raw data buffers
55
- * @param data - Array of data buffers
56
- * @returns Merkle tree with hashed leaves
57
- */
58
- buildTreeFromData(data) {
59
- const leaves = data.map(d => hash(d));
60
- return this.buildTree(leaves);
61
- }
62
- /**
63
- * Generate inclusion proof for a leaf
64
- * @param tree - Merkle tree
65
- * @param leafIndex - Index of leaf to prove
66
- * @returns Merkle proof
67
- */
68
- generateProof(tree, leafIndex) {
69
- if (leafIndex < 0 || leafIndex >= tree.leafCount) {
70
- throw new Error(`Invalid leaf index: ${leafIndex}`);
71
- }
72
- const siblings = [];
73
- const directions = [];
74
- // Handle padding - if index is beyond padded leaves, use last leaf
75
- let currentIndex = Math.min(leafIndex, tree.levels[0].length - 1);
76
- // Traverse from leaf to root
77
- for (let level = 0; level < tree.levels.length - 1; level++) {
78
- const currentLevel = tree.levels[level];
79
- const isLeft = currentIndex % 2 === 0;
80
- const siblingIndex = isLeft ? currentIndex + 1 : currentIndex - 1;
81
- // Ensure sibling exists
82
- if (siblingIndex >= 0 && siblingIndex < currentLevel.length) {
83
- siblings.push(currentLevel[siblingIndex]);
84
- directions.push(isLeft);
85
- }
86
- // Move to parent index
87
- currentIndex = Math.floor(currentIndex / 2);
88
- }
89
- return {
90
- leaf: tree.levels[0][Math.min(leafIndex, tree.levels[0].length - 1)],
91
- leafIndex,
92
- siblings,
93
- directions,
94
- root: tree.root
95
- };
96
- }
97
- /**
98
- * Verify a Merkle proof
99
- * @param proof - Proof to verify
100
- * @returns true if proof is valid
101
- */
102
- verifyProof(proof) {
103
- let currentHash = proof.leaf;
104
- for (let i = 0; i < proof.siblings.length; i++) {
105
- const sibling = proof.siblings[i];
106
- const isLeft = proof.directions[i];
107
- if (isLeft) {
108
- currentHash = hashPair(currentHash, sibling);
109
- }
110
- else {
111
- currentHash = hashPair(sibling, currentHash);
112
- }
113
- }
114
- return currentHash === proof.root;
115
- }
116
- /**
117
- * Verify proof with explicit root and leaf
118
- * @param proof - Proof structure
119
- * @param root - Expected root hash
120
- * @param leaf - Expected leaf hash
121
- * @returns true if valid
122
- */
123
- verifyProofWithValues(proof, root, leaf) {
124
- return proof.root === root && proof.leaf === leaf && this.verifyProof(proof);
125
- }
126
- /**
127
- * Compute the root hash directly from leaves
128
- * @param leaves - Leaf hashes
129
- * @returns Root hash
130
- */
131
- computeRoot(leaves) {
132
- return this.buildTree(leaves).root;
133
- }
134
- /**
135
- * Update a leaf in the tree (returns new tree)
136
- * @param tree - Original tree
137
- * @param index - Leaf index to update
138
- * @param newLeaf - New leaf hash
139
- * @returns Updated tree
140
- */
141
- updateLeaf(tree, index, newLeaf) {
142
- if (index < 0 || index >= tree.leafCount) {
143
- throw new Error(`Invalid leaf index: ${index}`);
144
- }
145
- // Create new original leaves array
146
- const newOriginalLeaves = [...tree.originalLeaves];
147
- newOriginalLeaves[index] = newLeaf;
148
- // Rebuild tree with new leaves
149
- return this.buildTree(newOriginalLeaves);
150
- }
151
- /**
152
- * Add a new leaf to the tree
153
- * @param tree - Original tree
154
- * @param newLeaf - New leaf hash
155
- * @returns Updated tree
156
- */
157
- addLeaf(tree, newLeaf) {
158
- const newLeaves = [...tree.originalLeaves, newLeaf];
159
- return this.buildTree(newLeaves);
160
- }
161
- /**
162
- * Get the height of the tree
163
- * @param tree - Merkle tree
164
- * @returns Tree height (number of levels)
165
- */
166
- getHeight(tree) {
167
- return tree.levels.length;
168
- }
169
- /**
170
- * Get all nodes at a specific level
171
- * @param tree - Merkle tree
172
- * @param level - Level index (0 = leaves)
173
- * @returns Array of hashes at that level
174
- */
175
- getLevel(tree, level) {
176
- if (level < 0 || level >= tree.levels.length) {
177
- throw new Error(`Invalid level: ${level}`);
178
- }
179
- return [...tree.levels[level]];
180
- }
181
- /**
182
- * Serialize tree to JSON-friendly format
183
- */
184
- serialize(tree) {
185
- return {
186
- root: tree.root,
187
- levels: tree.levels,
188
- leafCount: tree.leafCount,
189
- originalLeaves: tree.originalLeaves
190
- };
191
- }
192
- /**
193
- * Deserialize tree from JSON
194
- */
195
- deserialize(data) {
196
- return {
197
- root: data.root,
198
- levels: data.levels,
199
- leafCount: data.leafCount,
200
- originalLeaves: data.originalLeaves
201
- };
202
- }
203
- // ==================== EXTENDED FEATURES ====================
204
- /**
205
- * Compute the difference between two Merkle trees
206
- *
207
- * @param oldTree - Original tree
208
- * @param newTree - Updated tree
209
- * @returns TreeDiff with added, removed, and modified leaves
210
- *
211
- * @example
212
- * ```typescript
213
- * const tree1 = engine.buildTree(['a', 'b', 'c']);
214
- * const tree2 = engine.buildTree(['a', 'b', 'd']);
215
- * const diff = engine.computeDiff(tree1, tree2);
216
- * // diff.modified = [{ index: 2, oldHash: 'c', newHash: 'd' }]
217
- * ```
218
- */
219
- computeDiff(oldTree, newTree) {
220
- const added = [];
221
- const removed = [];
222
- const modified = [];
223
- const oldLeaves = oldTree.originalLeaves;
224
- const newLeaves = newTree.originalLeaves;
225
- // Find modified and removed
226
- for (let i = 0; i < oldLeaves.length; i++) {
227
- if (i < newLeaves.length) {
228
- if (oldLeaves[i] !== newLeaves[i]) {
229
- modified.push({
230
- index: i,
231
- oldHash: oldLeaves[i],
232
- newHash: newLeaves[i],
233
- });
234
- }
235
- }
236
- else {
237
- removed.push(oldLeaves[i]);
238
- }
239
- }
240
- // Find added
241
- for (let i = oldLeaves.length; i < newLeaves.length; i++) {
242
- added.push(newLeaves[i]);
243
- }
244
- return {
245
- added,
246
- removed,
247
- modified,
248
- oldRoot: oldTree.root,
249
- newRoot: newTree.root,
250
- };
251
- }
252
- /**
253
- * Check if two trees have the same content
254
- */
255
- treesEqual(tree1, tree2) {
256
- return tree1.root === tree2.root;
257
- }
258
- /**
259
- * Generate a batch proof for multiple leaves at once
260
- *
261
- * More efficient than generating individual proofs as siblings are deduplicated.
262
- *
263
- * @param tree - Merkle tree
264
- * @param indices - Array of leaf indices to prove
265
- * @returns BatchMerkleProof with deduplicated siblings
266
- *
267
- * @example
268
- * ```typescript
269
- * const batchProof = engine.generateBatchProof(tree, [0, 2, 5]);
270
- * const valid = engine.verifyBatchProof(batchProof);
271
- * ```
272
- */
273
- generateBatchProof(tree, indices) {
274
- if (indices.length === 0) {
275
- throw new Error('Cannot generate batch proof for empty indices');
276
- }
277
- // Validate indices
278
- for (const index of indices) {
279
- if (index < 0 || index >= tree.leafCount) {
280
- throw new Error(`Invalid leaf index: ${index}`);
281
- }
282
- }
283
- const leaves = [];
284
- const siblings = {};
285
- // Collect leaves
286
- for (const index of indices) {
287
- const actualIndex = Math.min(index, tree.levels[0].length - 1);
288
- leaves.push({
289
- index,
290
- hash: tree.levels[0][actualIndex],
291
- });
292
- }
293
- // For each level, track which nodes we need vs which we can compute
294
- const nodesNeeded = new Set();
295
- // Mark all leaf nodes we have
296
- for (const index of indices) {
297
- const actualIndex = Math.min(index, tree.levels[0].length - 1);
298
- nodesNeeded.add(`0:${actualIndex}`);
299
- }
300
- // Traverse up the tree to find all needed siblings
301
- for (let level = 0; level < tree.levels.length - 1; level++) {
302
- const currentLevel = tree.levels[level];
303
- const parentNodesNeeded = new Set();
304
- // Find siblings we need for this level
305
- for (const nodeKey of nodesNeeded) {
306
- const [lvl, idx] = nodeKey.split(':').map(Number);
307
- if (lvl !== level)
308
- continue;
309
- const isLeft = idx % 2 === 0;
310
- const siblingIndex = isLeft ? idx + 1 : idx - 1;
311
- // If sibling exists and we don't already have it, add to siblings
312
- if (siblingIndex >= 0 && siblingIndex < currentLevel.length) {
313
- const siblingKey = `${level}:${siblingIndex}`;
314
- if (!nodesNeeded.has(siblingKey)) {
315
- siblings[siblingKey] = currentLevel[siblingIndex];
316
- }
317
- }
318
- // Mark parent as needed
319
- const parentIndex = Math.floor(idx / 2);
320
- parentNodesNeeded.add(`${level + 1}:${parentIndex}`);
321
- }
322
- // Add parent nodes to needed set
323
- for (const key of parentNodesNeeded) {
324
- nodesNeeded.add(key);
325
- }
326
- }
327
- return {
328
- leaves,
329
- siblings,
330
- root: tree.root,
331
- };
332
- }
333
- /**
334
- * Verify a batch proof
335
- *
336
- * @param proof - BatchMerkleProof to verify
337
- * @returns true if all leaves are proven to be in the tree
338
- */
339
- verifyBatchProof(proof) {
340
- if (proof.leaves.length === 0) {
341
- return false;
342
- }
343
- // Build a map of known node hashes
344
- const knownNodes = new Map();
345
- // Add leaves
346
- for (const { index, hash } of proof.leaves) {
347
- knownNodes.set(`0:${index}`, hash);
348
- }
349
- // Add siblings
350
- for (const [key, hash] of Object.entries(proof.siblings)) {
351
- knownNodes.set(key, hash);
352
- }
353
- // Find the maximum level we need to compute
354
- const maxLevel = Math.ceil(Math.log2(Math.max(...proof.leaves.map(l => l.index + 1)))) + 1;
355
- // Compute up the tree
356
- for (let level = 0; level < maxLevel; level++) {
357
- const indices = new Set();
358
- for (const key of knownNodes.keys()) {
359
- const [lvl, idx] = key.split(':').map(Number);
360
- if (lvl === level) {
361
- indices.add(Math.floor(idx / 2));
362
- }
363
- }
364
- for (const parentIndex of indices) {
365
- const leftKey = `${level}:${parentIndex * 2}`;
366
- const rightKey = `${level}:${parentIndex * 2 + 1}`;
367
- const left = knownNodes.get(leftKey);
368
- const right = knownNodes.get(rightKey);
369
- if (left && right) {
370
- const parentHash = hashPair(left, right);
371
- knownNodes.set(`${level + 1}:${parentIndex}`, parentHash);
372
- }
373
- }
374
- }
375
- // Find the root (should be at 0 index of highest level)
376
- for (const [key, hash] of knownNodes.entries()) {
377
- if (key.endsWith(':0') && hash === proof.root) {
378
- return true;
379
- }
380
- }
381
- return false;
382
- }
383
- /**
384
- * Generate a range proof for consecutive leaves
385
- *
386
- * Useful for proving a subset of the tree without full proofs for each leaf.
387
- *
388
- * @param tree - Merkle tree
389
- * @param startIndex - Start index (inclusive)
390
- * @param endIndex - End index (exclusive)
391
- * @returns RangeProof
392
- */
393
- generateRangeProof(tree, startIndex, endIndex) {
394
- if (startIndex < 0 || startIndex >= tree.leafCount) {
395
- throw new Error(`Invalid start index: ${startIndex}`);
396
- }
397
- if (endIndex <= startIndex || endIndex > tree.leafCount) {
398
- throw new Error(`Invalid end index: ${endIndex}`);
399
- }
400
- // Get leaves in range
401
- const leaves = tree.originalLeaves.slice(startIndex, endIndex);
402
- // Generate boundary proofs
403
- const leftProof = startIndex > 0
404
- ? this.generateProof(tree, startIndex)
405
- : null;
406
- const rightProof = endIndex < tree.leafCount
407
- ? this.generateProof(tree, endIndex - 1)
408
- : null;
409
- return {
410
- startIndex,
411
- endIndex,
412
- leaves,
413
- leftProof,
414
- rightProof,
415
- root: tree.root,
416
- };
417
- }
418
- /**
419
- * Verify a range proof
420
- *
421
- * @param proof - RangeProof to verify
422
- * @returns true if the range is valid
423
- */
424
- verifyRangeProof(proof) {
425
- // Verify boundary proofs if they exist
426
- if (proof.leftProof) {
427
- if (proof.leftProof.root !== proof.root) {
428
- return false;
429
- }
430
- if (!this.verifyProof(proof.leftProof)) {
431
- return false;
432
- }
433
- // Check that the left boundary leaf matches
434
- if (proof.leftProof.leaf !== proof.leaves[0]) {
435
- return false;
436
- }
437
- }
438
- if (proof.rightProof) {
439
- if (proof.rightProof.root !== proof.root) {
440
- return false;
441
- }
442
- if (!this.verifyProof(proof.rightProof)) {
443
- return false;
444
- }
445
- // Check that the right boundary leaf matches
446
- if (proof.rightProof.leaf !== proof.leaves[proof.leaves.length - 1]) {
447
- return false;
448
- }
449
- }
450
- // Verify the range is contiguous
451
- if (proof.endIndex - proof.startIndex !== proof.leaves.length) {
452
- return false;
453
- }
454
- return true;
455
- }
456
- /**
457
- * Create a versioned tree from an existing tree
458
- *
459
- * @param tree - Source tree
460
- * @param parentRoot - Parent version root (null for initial)
461
- * @returns VersionedMerkleTree
462
- */
463
- createVersion(tree, parentRoot = null) {
464
- return {
465
- ...tree,
466
- version: parentRoot ? 1 : 0, // Version increments handled externally
467
- parentRoot,
468
- timestamp: new Date().toISOString(),
469
- };
470
- }
471
- /**
472
- * Create a new version from changes
473
- *
474
- * @param currentVersion - Current versioned tree
475
- * @param newTree - New tree state
476
- * @returns New VersionedMerkleTree with diff
477
- */
478
- createNewVersion(currentVersion, newTree) {
479
- const diff = this.computeDiff(currentVersion, newTree);
480
- return {
481
- ...newTree,
482
- version: currentVersion.version + 1,
483
- parentRoot: currentVersion.root,
484
- timestamp: new Date().toISOString(),
485
- diff,
486
- };
487
- }
488
- /**
489
- * Serialize a versioned tree
490
- */
491
- serializeVersioned(tree) {
492
- return {
493
- ...this.serialize(tree),
494
- version: tree.version,
495
- parentRoot: tree.parentRoot,
496
- timestamp: tree.timestamp,
497
- diff: tree.diff,
498
- };
499
- }
500
- /**
501
- * Deserialize a versioned tree
502
- */
503
- deserializeVersioned(data) {
504
- return {
505
- root: data.root,
506
- levels: data.levels,
507
- leafCount: data.leafCount,
508
- originalLeaves: data.originalLeaves,
509
- version: data.version,
510
- parentRoot: data.parentRoot,
511
- timestamp: data.timestamp,
512
- diff: data.diff,
513
- };
514
- }
515
- /**
516
- * Check if number is power of 2
517
- */
518
- isPowerOfTwo(n) {
519
- return n > 0 && (n & (n - 1)) === 0;
520
- }
521
- }
522
- /**
523
- * Create a MerkleEngine instance
524
- */
525
- export function createMerkleEngine() {
526
- return new MerkleEngine();
527
- }
528
- //# sourceMappingURL=merkle-engine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merkle-engine.js","sourceRoot":"","sources":["../../src/core/merkle-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AA8DlD;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB;;;;OAIG;IACH,SAAS,CAAC,MAAkB;QAC1B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QAEnC,6CAA6C;QAC7C,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACjC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YAC/C,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,YAAY,GAAG,YAAY,CAAC;QAEhC,OAAO,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAe,EAAE,CAAC;YAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,YAAY,GAAG,SAAS,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;YACrB,MAAM;YACN,SAAS,EAAE,cAAc,CAAC,MAAM;YAChC,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,IAAc;QAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAgB,EAAE,SAAiB;QAC/C,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,MAAM,UAAU,GAAc,EAAE,CAAC;QAEjC,mEAAmE;QACnE,IAAI,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAElE,6BAA6B;QAC7B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,YAAY,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC;YAElE,wBAAwB;YACxB,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC5D,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,CAAC;YAED,uBAAuB;YACvB,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpE,SAAS;YACT,QAAQ;YACR,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAkB;QAC5B,IAAI,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;QAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAEnC,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,OAAO,WAAW,KAAK,KAAK,CAAC,IAAI,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,qBAAqB,CACnB,KAAkB,EAClB,IAAgB,EAChB,IAAc;QAEd,OAAO,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAkB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,IAAgB,EAAE,KAAa,EAAE,OAAiB;QAC3D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;QAClD,CAAC;QAED,mCAAmC;QACnC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACnD,iBAAiB,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;QAEnC,+BAA+B;QAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,IAAgB,EAAE,OAAiB;QACzC,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAgB;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,IAAgB,EAAE,KAAa;QACtC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,IAAgB;QACxB,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,IAKX;QACC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;IAED,8DAA8D;IAE9D;;;;;;;;;;;;;;OAcG;IACH,WAAW,CAAC,OAAmB,EAAE,OAAmB;QAClD,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAA8D,EAAE,CAAC;QAE/E,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,cAAc,CAAC;QAEzC,4BAA4B;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK,EAAE,CAAC;wBACR,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;wBACrB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;qBACtB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,aAAa;QACb,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO;YACP,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,OAAO,EAAE,OAAO,CAAC,IAAI;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAAiB,EAAE,KAAiB;QAC7C,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAAC,IAAgB,EAAE,OAAiB;QACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,mBAAmB;QACnB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAwC,EAAE,CAAC;QACvD,MAAM,QAAQ,GAA6B,EAAE,CAAC;QAE9C,iBAAiB;QACjB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,IAAI,CAAC;gBACV,KAAK;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAED,oEAAoE;QACpE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,8BAA8B;QAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,WAAW,CAAC,GAAG,CAAC,KAAK,WAAW,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,mDAAmD;QACnD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;YAE5C,uCAAuC;YACvC,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,GAAG,KAAK,KAAK;oBAAE,SAAS;gBAE5B,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAEhD,kEAAkE;gBAClE,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;oBAC5D,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,YAAY,EAAE,CAAC;oBAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;wBACjC,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;oBACpD,CAAC;gBACH,CAAC;gBAED,wBAAwB;gBACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;gBACxC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,iCAAiC;YACjC,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;gBACpC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM;YACN,QAAQ;YACR,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,KAAuB;QACtC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mCAAmC;QACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE/C,aAAa;QACb,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3C,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,eAAe;QACf,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAClC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAChD,CAAC,GAAG,CAAC,CAAC;QAEP,sBAAsB;QACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAElC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;oBAClB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,WAAW,IAAI,OAAO,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,GAAG,KAAK,IAAI,WAAW,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAEnD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAEvC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;oBAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBACzC,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;gBAC5D,CAAC;YACH,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC9C,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;OASG;IACH,kBAAkB,CAChB,IAAgB,EAChB,UAAkB,EAClB,QAAgB;QAEhB,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,QAAQ,IAAI,UAAU,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,sBAAsB,QAAQ,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,sBAAsB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE/D,2BAA2B;QAC3B,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC;YAC9B,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC,SAAS;YAC1C,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC;QAET,OAAO;YACL,UAAU;YACV,QAAQ;YACR,MAAM;YACN,SAAS;YACT,UAAU;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,KAAiB;QAChC,uCAAuC;QACvC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,4CAA4C;YAC5C,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBACzC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;gBACxC,OAAO,KAAK,CAAC;YACf,CAAC;YACD,6CAA6C;YAC7C,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpE,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CACX,IAAgB,EAChB,aAAgC,IAAI;QAEpC,OAAO;YACL,GAAG,IAAI;YACP,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,wCAAwC;YACrE,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB,CACd,cAAmC,EACnC,OAAmB;QAEnB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAEvD,OAAO;YACL,GAAG,OAAO;YACV,OAAO,EAAE,cAAc,CAAC,OAAO,GAAG,CAAC;YACnC,UAAU,EAAE,cAAc,CAAC,IAAI;YAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,IAAI;SACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,IAAyB;QAC1C,OAAO;YACL,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,IASpB;QACC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,CAAS;QAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,YAAY,EAAE,CAAC;AAC5B,CAAC"}