agent-nuvira 3.3.3 → 3.3.4

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 (349) hide show
  1. package/README.md +13 -5
  2. package/dist/agent-sdk/src/agent.d.ts +2 -0
  3. package/dist/agent-sdk/src/agent.d.ts.map +1 -1
  4. package/dist/agent-sdk/src/define.d.ts +64 -0
  5. package/dist/agent-sdk/src/define.d.ts.map +1 -0
  6. package/dist/agent-sdk/src/define.js +76 -0
  7. package/dist/agent-sdk/src/define.js.map +1 -0
  8. package/dist/agent-sdk/src/index.d.ts +9 -0
  9. package/dist/agent-sdk/src/index.d.ts.map +1 -1
  10. package/dist/agent-sdk/src/index.js +9 -0
  11. package/dist/agent-sdk/src/index.js.map +1 -1
  12. package/dist/agent-sdk/src/scaffold.d.ts +11 -0
  13. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
  14. package/dist/agent-sdk/src/scaffold.js +16 -6
  15. package/dist/agent-sdk/src/scaffold.js.map +1 -1
  16. package/dist/agents/long-form-plan.d.ts.map +1 -1
  17. package/dist/agents/long-form-plan.js +2 -1
  18. package/dist/agents/long-form-plan.js.map +1 -1
  19. package/dist/agents/orchestrator.d.ts.map +1 -1
  20. package/dist/agents/orchestrator.js +5 -4
  21. package/dist/agents/orchestrator.js.map +1 -1
  22. package/dist/cli/agent.d.ts +2 -2
  23. package/dist/cli/agent.js +10 -10
  24. package/dist/cli/chat.d.ts +94 -0
  25. package/dist/cli/chat.d.ts.map +1 -1
  26. package/dist/cli/chat.js +354 -20
  27. package/dist/cli/chat.js.map +1 -1
  28. package/dist/cli/cli-program.d.ts.map +1 -1
  29. package/dist/cli/cli-program.js +5 -0
  30. package/dist/cli/cli-program.js.map +1 -1
  31. package/dist/cli/config.d.ts.map +1 -1
  32. package/dist/cli/config.js +9 -1
  33. package/dist/cli/config.js.map +1 -1
  34. package/dist/cli/doctor.d.ts.map +1 -1
  35. package/dist/cli/doctor.js +3 -2
  36. package/dist/cli/doctor.js.map +1 -1
  37. package/dist/cli/edit.js +2 -2
  38. package/dist/cli/eval.d.ts +17 -0
  39. package/dist/cli/eval.d.ts.map +1 -1
  40. package/dist/cli/eval.js +105 -2
  41. package/dist/cli/eval.js.map +1 -1
  42. package/dist/cli/execute.d.ts +16 -1
  43. package/dist/cli/execute.d.ts.map +1 -1
  44. package/dist/cli/execute.js +192 -22
  45. package/dist/cli/execute.js.map +1 -1
  46. package/dist/cli/loop-executor.d.ts +55 -0
  47. package/dist/cli/loop-executor.d.ts.map +1 -1
  48. package/dist/cli/loop-executor.js +212 -13
  49. package/dist/cli/loop-executor.js.map +1 -1
  50. package/dist/cli/model.d.ts.map +1 -1
  51. package/dist/cli/model.js +9 -8
  52. package/dist/cli/model.js.map +1 -1
  53. package/dist/cli/models.d.ts +1 -1
  54. package/dist/cli/models.js +4 -4
  55. package/dist/cli/parity.d.ts +85 -0
  56. package/dist/cli/parity.d.ts.map +1 -0
  57. package/dist/cli/parity.js +506 -0
  58. package/dist/cli/parity.js.map +1 -0
  59. package/dist/cli/plan.d.ts.map +1 -1
  60. package/dist/cli/plan.js +2 -1
  61. package/dist/cli/plan.js.map +1 -1
  62. package/dist/cli/retrieval.d.ts.map +1 -1
  63. package/dist/cli/retrieval.js +5 -4
  64. package/dist/cli/retrieval.js.map +1 -1
  65. package/dist/cli/sdk.js +4 -4
  66. package/dist/cli/sdk.js.map +1 -1
  67. package/dist/cli/trace.d.ts.map +1 -1
  68. package/dist/cli/trace.js +2 -1
  69. package/dist/cli/trace.js.map +1 -1
  70. package/dist/cli/workflow.js +2 -2
  71. package/dist/cli/workflow.js.map +1 -1
  72. package/dist/config/types.d.ts +44 -0
  73. package/dist/config/types.d.ts.map +1 -1
  74. package/dist/findings/verdicts.d.ts +241 -0
  75. package/dist/findings/verdicts.d.ts.map +1 -0
  76. package/dist/findings/verdicts.js +284 -0
  77. package/dist/findings/verdicts.js.map +1 -0
  78. package/dist/gateway/adapters.d.ts +65 -0
  79. package/dist/gateway/adapters.d.ts.map +1 -1
  80. package/dist/gateway/adapters.js +216 -10
  81. package/dist/gateway/adapters.js.map +1 -1
  82. package/dist/gateway/channel-directory.d.ts +31 -0
  83. package/dist/gateway/channel-directory.d.ts.map +1 -1
  84. package/dist/gateway/channel-directory.js +40 -0
  85. package/dist/gateway/channel-directory.js.map +1 -1
  86. package/dist/gateway/gateway-log.d.ts +1 -1
  87. package/dist/gateway/gateway-log.d.ts.map +1 -1
  88. package/dist/gateway/gateway-log.js.map +1 -1
  89. package/dist/gateway/hooks.d.ts +87 -19
  90. package/dist/gateway/hooks.d.ts.map +1 -1
  91. package/dist/gateway/hooks.js +62 -23
  92. package/dist/gateway/hooks.js.map +1 -1
  93. package/dist/gateway/inbound-media.d.ts +147 -0
  94. package/dist/gateway/inbound-media.d.ts.map +1 -0
  95. package/dist/gateway/inbound-media.js +317 -0
  96. package/dist/gateway/inbound-media.js.map +1 -0
  97. package/dist/gateway/inbox.d.ts +8 -1
  98. package/dist/gateway/inbox.d.ts.map +1 -1
  99. package/dist/gateway/inbox.js.map +1 -1
  100. package/dist/gateway/platform-config.d.ts +14 -0
  101. package/dist/gateway/platform-config.d.ts.map +1 -1
  102. package/dist/gateway/platform-config.js +26 -8
  103. package/dist/gateway/platform-config.js.map +1 -1
  104. package/dist/gateway/realtime.d.ts +114 -0
  105. package/dist/gateway/realtime.d.ts.map +1 -0
  106. package/dist/gateway/realtime.js +402 -0
  107. package/dist/gateway/realtime.js.map +1 -0
  108. package/dist/gateway/registry.d.ts +31 -0
  109. package/dist/gateway/registry.d.ts.map +1 -1
  110. package/dist/gateway/registry.js +224 -4
  111. package/dist/gateway/registry.js.map +1 -1
  112. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  113. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  114. package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
  115. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  116. package/dist/gateway/whatsapp/bridge.d.ts +6 -2
  117. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  118. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  119. package/dist/index.js +8 -0
  120. package/dist/index.js.map +1 -1
  121. package/dist/inference/factory.d.ts +14 -0
  122. package/dist/inference/factory.d.ts.map +1 -1
  123. package/dist/inference/factory.js +17 -0
  124. package/dist/inference/factory.js.map +1 -1
  125. package/dist/inference/groq-adapter.d.ts +2 -0
  126. package/dist/inference/groq-adapter.d.ts.map +1 -1
  127. package/dist/inference/groq-adapter.js +16 -6
  128. package/dist/inference/groq-adapter.js.map +1 -1
  129. package/dist/inference/tools.d.ts.map +1 -1
  130. package/dist/inference/tools.js +29 -0
  131. package/dist/inference/tools.js.map +1 -1
  132. package/dist/learning/benchmark.d.ts.map +1 -1
  133. package/dist/learning/benchmark.js +3 -2
  134. package/dist/learning/benchmark.js.map +1 -1
  135. package/dist/learning/continuation.d.ts.map +1 -1
  136. package/dist/learning/continuation.js +2 -1
  137. package/dist/learning/continuation.js.map +1 -1
  138. package/dist/learning/cost-tracker.d.ts.map +1 -1
  139. package/dist/learning/cost-tracker.js +2 -1
  140. package/dist/learning/cost-tracker.js.map +1 -1
  141. package/dist/learning/deferred-task.d.ts.map +1 -1
  142. package/dist/learning/deferred-task.js +13 -4
  143. package/dist/learning/deferred-task.js.map +1 -1
  144. package/dist/learning/eval-framework.d.ts.map +1 -1
  145. package/dist/learning/eval-framework.js +2 -1
  146. package/dist/learning/eval-framework.js.map +1 -1
  147. package/dist/learning/long-form.d.ts.map +1 -1
  148. package/dist/learning/long-form.js +2 -1
  149. package/dist/learning/long-form.js.map +1 -1
  150. package/dist/learning/model-registry.d.ts.map +1 -1
  151. package/dist/learning/model-registry.js +2 -1
  152. package/dist/learning/model-registry.js.map +1 -1
  153. package/dist/learning/reasoning-cache.d.ts.map +1 -1
  154. package/dist/learning/reasoning-cache.js +2 -1
  155. package/dist/learning/reasoning-cache.js.map +1 -1
  156. package/dist/learning/reasoning-trace.d.ts +37 -1
  157. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  158. package/dist/learning/reasoning-trace.js +66 -0
  159. package/dist/learning/reasoning-trace.js.map +1 -1
  160. package/dist/learning/resilient-call.d.ts.map +1 -1
  161. package/dist/learning/resilient-call.js +2 -1
  162. package/dist/learning/resilient-call.js.map +1 -1
  163. package/dist/learning/retrieval.d.ts.map +1 -1
  164. package/dist/learning/retrieval.js +2 -1
  165. package/dist/learning/retrieval.js.map +1 -1
  166. package/dist/learning/seeded-benchmark.d.ts +160 -0
  167. package/dist/learning/seeded-benchmark.d.ts.map +1 -0
  168. package/dist/learning/seeded-benchmark.js +321 -0
  169. package/dist/learning/seeded-benchmark.js.map +1 -0
  170. package/dist/learning/seeded-bugs.d.ts +142 -0
  171. package/dist/learning/seeded-bugs.d.ts.map +1 -0
  172. package/dist/learning/seeded-bugs.js +535 -0
  173. package/dist/learning/seeded-bugs.js.map +1 -0
  174. package/dist/learning/step-checkpoint.d.ts +127 -0
  175. package/dist/learning/step-checkpoint.d.ts.map +1 -0
  176. package/dist/learning/step-checkpoint.js +244 -0
  177. package/dist/learning/step-checkpoint.js.map +1 -0
  178. package/dist/nlu/intent-confirm.d.ts +23 -1
  179. package/dist/nlu/intent-confirm.d.ts.map +1 -1
  180. package/dist/nlu/intent-confirm.js +85 -2
  181. package/dist/nlu/intent-confirm.js.map +1 -1
  182. package/dist/nlu/learnings.d.ts +7 -0
  183. package/dist/nlu/learnings.d.ts.map +1 -1
  184. package/dist/nlu/learnings.js +7 -0
  185. package/dist/nlu/learnings.js.map +1 -1
  186. package/dist/observability/debug-log.d.ts +250 -0
  187. package/dist/observability/debug-log.d.ts.map +1 -0
  188. package/dist/observability/debug-log.js +500 -0
  189. package/dist/observability/debug-log.js.map +1 -0
  190. package/dist/observability/event-bus.d.ts.map +1 -1
  191. package/dist/observability/event-bus.js +4 -1
  192. package/dist/observability/event-bus.js.map +1 -1
  193. package/dist/observability/otel.d.ts +278 -0
  194. package/dist/observability/otel.d.ts.map +1 -0
  195. package/dist/observability/otel.js +590 -0
  196. package/dist/observability/otel.js.map +1 -0
  197. package/dist/parity/drivers.d.ts +99 -0
  198. package/dist/parity/drivers.d.ts.map +1 -0
  199. package/dist/parity/drivers.js +1362 -0
  200. package/dist/parity/drivers.js.map +1 -0
  201. package/dist/parity/graph.d.ts +73 -0
  202. package/dist/parity/graph.d.ts.map +1 -0
  203. package/dist/parity/graph.js +162 -0
  204. package/dist/parity/graph.js.map +1 -0
  205. package/dist/parity/matrix.d.ts +105 -0
  206. package/dist/parity/matrix.d.ts.map +1 -0
  207. package/dist/parity/matrix.js +352 -0
  208. package/dist/parity/matrix.js.map +1 -0
  209. package/dist/parity/observation.d.ts +444 -0
  210. package/dist/parity/observation.d.ts.map +1 -0
  211. package/dist/parity/observation.js +333 -0
  212. package/dist/parity/observation.js.map +1 -0
  213. package/dist/parity/scenarios.d.ts +229 -0
  214. package/dist/parity/scenarios.d.ts.map +1 -0
  215. package/dist/parity/scenarios.js +175 -0
  216. package/dist/parity/scenarios.js.map +1 -0
  217. package/dist/parity/surfaces.d.ts +122 -0
  218. package/dist/parity/surfaces.d.ts.map +1 -0
  219. package/dist/parity/surfaces.js +190 -0
  220. package/dist/parity/surfaces.js.map +1 -0
  221. package/dist/runtime/fault-injection.d.ts +173 -0
  222. package/dist/runtime/fault-injection.d.ts.map +1 -0
  223. package/dist/runtime/fault-injection.js +281 -0
  224. package/dist/runtime/fault-injection.js.map +1 -0
  225. package/dist/tools/child-agent-entry.d.ts +23 -0
  226. package/dist/tools/child-agent-entry.d.ts.map +1 -0
  227. package/dist/tools/child-agent-entry.js +129 -0
  228. package/dist/tools/child-agent-entry.js.map +1 -0
  229. package/dist/tools/child-agent-runtime.d.ts +124 -0
  230. package/dist/tools/child-agent-runtime.d.ts.map +1 -0
  231. package/dist/tools/child-agent-runtime.js +704 -0
  232. package/dist/tools/child-agent-runtime.js.map +1 -0
  233. package/dist/tools/coding-tools.d.ts.map +1 -1
  234. package/dist/tools/coding-tools.js +82 -10
  235. package/dist/tools/coding-tools.js.map +1 -1
  236. package/dist/tools/delegation-system.d.ts +31 -0
  237. package/dist/tools/delegation-system.d.ts.map +1 -1
  238. package/dist/tools/delegation-system.js +70 -9
  239. package/dist/tools/delegation-system.js.map +1 -1
  240. package/dist/tools/extract/docx.d.ts +27 -0
  241. package/dist/tools/extract/docx.d.ts.map +1 -0
  242. package/dist/tools/extract/docx.js +48 -0
  243. package/dist/tools/extract/docx.js.map +1 -0
  244. package/dist/tools/extract/html-text.d.ts +27 -0
  245. package/dist/tools/extract/html-text.d.ts.map +1 -0
  246. package/dist/tools/extract/html-text.js +86 -0
  247. package/dist/tools/extract/html-text.js.map +1 -0
  248. package/dist/tools/extract/pdf-ocr.d.ts +58 -0
  249. package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
  250. package/dist/tools/extract/pdf-ocr.js +116 -0
  251. package/dist/tools/extract/pdf-ocr.js.map +1 -0
  252. package/dist/tools/extract/pdf.d.ts +65 -0
  253. package/dist/tools/extract/pdf.d.ts.map +1 -0
  254. package/dist/tools/extract/pdf.js +197 -0
  255. package/dist/tools/extract/pdf.js.map +1 -0
  256. package/dist/tools/extract/pptx.d.ts +32 -0
  257. package/dist/tools/extract/pptx.d.ts.map +1 -0
  258. package/dist/tools/extract/pptx.js +77 -0
  259. package/dist/tools/extract/pptx.js.map +1 -0
  260. package/dist/tools/extract/xlsx.d.ts +47 -0
  261. package/dist/tools/extract/xlsx.d.ts.map +1 -0
  262. package/dist/tools/extract/xlsx.js +111 -0
  263. package/dist/tools/extract/xlsx.js.map +1 -0
  264. package/dist/tools/finding-tool.d.ts +76 -0
  265. package/dist/tools/finding-tool.d.ts.map +1 -0
  266. package/dist/tools/finding-tool.js +125 -0
  267. package/dist/tools/finding-tool.js.map +1 -0
  268. package/dist/tools/messaging-tools.d.ts +41 -11
  269. package/dist/tools/messaging-tools.d.ts.map +1 -1
  270. package/dist/tools/messaging-tools.js +104 -55
  271. package/dist/tools/messaging-tools.js.map +1 -1
  272. package/dist/tools/neutts-synth.d.ts +27 -3
  273. package/dist/tools/neutts-synth.d.ts.map +1 -1
  274. package/dist/tools/neutts-synth.js +57 -13
  275. package/dist/tools/neutts-synth.js.map +1 -1
  276. package/dist/tools/pipeline-tool.d.ts +43 -1
  277. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  278. package/dist/tools/pipeline-tool.js +13 -2
  279. package/dist/tools/pipeline-tool.js.map +1 -1
  280. package/dist/tools/read-extract.d.ts +116 -45
  281. package/dist/tools/read-extract.d.ts.map +1 -1
  282. package/dist/tools/read-extract.js +494 -158
  283. package/dist/tools/read-extract.js.map +1 -1
  284. package/dist/tools/registry.d.ts +2 -2
  285. package/dist/tools/registry.d.ts.map +1 -1
  286. package/dist/tools/registry.js +152 -23
  287. package/dist/tools/registry.js.map +1 -1
  288. package/dist/tools/subagent-refusal.d.ts +15 -0
  289. package/dist/tools/subagent-refusal.d.ts.map +1 -0
  290. package/dist/tools/subagent-refusal.js +18 -0
  291. package/dist/tools/subagent-refusal.js.map +1 -0
  292. package/dist/tools/subagent-spawner.d.ts +122 -0
  293. package/dist/tools/subagent-spawner.d.ts.map +1 -1
  294. package/dist/tools/subagent-spawner.js +249 -28
  295. package/dist/tools/subagent-spawner.js.map +1 -1
  296. package/dist/tools/tool-hooks.d.ts +177 -0
  297. package/dist/tools/tool-hooks.d.ts.map +1 -0
  298. package/dist/tools/tool-hooks.js +427 -0
  299. package/dist/tools/tool-hooks.js.map +1 -0
  300. package/dist/tools/tool-loop.d.ts +82 -0
  301. package/dist/tools/tool-loop.d.ts.map +1 -1
  302. package/dist/tools/tool-loop.js +167 -9
  303. package/dist/tools/tool-loop.js.map +1 -1
  304. package/dist/tools/tool-refusal.d.ts +68 -0
  305. package/dist/tools/tool-refusal.d.ts.map +1 -0
  306. package/dist/tools/tool-refusal.js +78 -0
  307. package/dist/tools/tool-refusal.js.map +1 -0
  308. package/dist/tools/toolsets.d.ts +8 -0
  309. package/dist/tools/toolsets.d.ts.map +1 -1
  310. package/dist/tools/toolsets.js +12 -2
  311. package/dist/tools/toolsets.js.map +1 -1
  312. package/dist/tools/vision-tools.d.ts +88 -83
  313. package/dist/tools/vision-tools.d.ts.map +1 -1
  314. package/dist/tools/vision-tools.js +134 -103
  315. package/dist/tools/vision-tools.js.map +1 -1
  316. package/dist/tools/worktree.d.ts +210 -0
  317. package/dist/tools/worktree.d.ts.map +1 -0
  318. package/dist/tools/worktree.js +374 -0
  319. package/dist/tools/worktree.js.map +1 -0
  320. package/dist/utils/format.d.ts +3 -0
  321. package/dist/utils/format.d.ts.map +1 -0
  322. package/dist/utils/format.js +32 -0
  323. package/dist/utils/format.js.map +1 -0
  324. package/dist/web-dashboard/attachment-extract.d.ts +64 -0
  325. package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
  326. package/dist/web-dashboard/attachment-extract.js +154 -0
  327. package/dist/web-dashboard/attachment-extract.js.map +1 -0
  328. package/dist/web-dashboard/chat-console.d.ts +108 -1
  329. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  330. package/dist/web-dashboard/chat-console.js +36 -0
  331. package/dist/web-dashboard/chat-console.js.map +1 -1
  332. package/dist/web-dashboard/hub-data.d.ts +37 -0
  333. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  334. package/dist/web-dashboard/hub-data.js +61 -1
  335. package/dist/web-dashboard/hub-data.js.map +1 -1
  336. package/dist/web-dashboard/server.d.ts +14 -0
  337. package/dist/web-dashboard/server.d.ts.map +1 -1
  338. package/dist/web-dashboard/server.js +247 -13
  339. package/dist/web-dashboard/server.js.map +1 -1
  340. package/dist/web-dashboard/src/types.d.ts +196 -48
  341. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  342. package/package.json +18 -3
  343. package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
  344. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
  345. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
  346. package/src/web-dashboard/public/index.html +2 -2
  347. package/dist/tools/child-agent-worker.js +0 -212
  348. package/src/web-dashboard/public/assets/index-CxDj7p6i.js +0 -207
  349. package/src/web-dashboard/public/assets/index-CxDj7p6i.js.map +0 -1
@@ -16,6 +16,20 @@
16
16
  * blocks after its response text (contract in TOOL_CONTRACT_JSON).
17
17
  */
18
18
  import { getTool, toolJsonSchemas } from './registry.js';
19
+ // WS3 (#25) — the turn's span tree. Null-safe throughout: with export off every
20
+ // helper below is a no-op and no span object is ever built.
21
+ import { TOOL_SPAN_PREFIX, withSpanActive } from '../observability/otel.js';
22
+ // WS4 (#26) — the operator's tool lifecycle hooks. Never able to break a call:
23
+ // `runBeforeToolHooks` always resolves, and a broken hook never vetoes.
24
+ import { runBeforeToolHooks, runToolOutcomeHooks, toolHookRefusalText, } from './tool-hooks.js';
25
+ // WS5 (#27) — the resume ledger. A `StepReplay` is threaded through the turn
26
+ // when the run is a resume; `stepDigest` is over the whole input, so a step whose
27
+ // thread or tool schema changed MISSES and is paid for again (see the module).
28
+ import { stepDigest } from '../learning/step-checkpoint.js';
29
+ // WS6 (#28) — the declared fault seam. `faultAt` is a null check when this
30
+ // process declared no fault (`NUVIRA_INJECT_FAULT`), so an ordinary turn is
31
+ // unaffected.
32
+ import { faultAt } from '../runtime/fault-injection.js';
19
33
  import { detectPermissionSeeking, isAffirmativeReply, replyAsksTheReader, requestAuthorizesWrites, stripTrailingPermissionSeek, } from '../learning/autonomy-policy.js';
20
34
  import { envelopeFromPlan, envelopeFromRequest, getEnvelope, grantEnvelope, isEnvelopeKey, } from '../learning/intent-envelope.js';
21
35
  import { detectProcessComplaint, isTraceKey, repeatNudge, runTraceFor, RunTrace, } from '../learning/run-trace.js';
@@ -591,6 +605,13 @@ async function runToolLoopInner(opts, progress) {
591
605
  // steps, one advisory delegate suggestion fires (bounded, deterministic).
592
606
  const parallel = makeParallelSuggester();
593
607
  let steps = 0;
608
+ /**
609
+ * WS5 (#27) — model calls this run did NOT make because the checkpoint had a
610
+ * recorded answer for the exact same input. Zero on an ordinary run, and
611
+ * reported rather than merely logged: "this turn cost one model call instead of
612
+ * three" is the whole claim of a partial resume.
613
+ */
614
+ let replayedSteps = 0;
594
615
  // The last SUBSTANTIVE answer text. JSON-only steps (a `{"tool":...}` block
595
616
  // with no visible text, common after the model already answered) must NOT
596
617
  // clobber it — otherwise the delivered answer is lost and the turn ends
@@ -615,7 +636,7 @@ async function runToolLoopInner(opts, progress) {
615
636
  // P4 — check cancellation BEFORE each step (a pre-aborted signal never
616
637
  // spends a model call) and after tool executions (below).
617
638
  if (opts.signal?.aborted) {
618
- return { content: '', followups, toolCalls: toolCallsRun, steps, bounded: false, cancelled: true };
639
+ return { content: '', followups, toolCalls: toolCallsRun, steps, ...(opts.resume ? { replayedSteps } : {}), bounded: false, cancelled: true };
619
640
  }
620
641
  steps += 1;
621
642
  // Mechanical thread budget: trim BEFORE the model call so a provider
@@ -637,7 +658,27 @@ async function runToolLoopInner(opts, progress) {
637
658
  syncRouteFeed(thread, opts.servedRoute, routeFeedState);
638
659
  let response;
639
660
  try {
640
- response = await deps.callModel(thread, schemas, opts.onToken, opts.signal);
661
+ // WS5 (#27) — a resumed run replays this step when its input is unchanged.
662
+ // The key is the step's POSITION and the digest is its whole input, so both
663
+ // have to line up: a plan that shifted by one step replays nothing (the
664
+ // positions hold different inputs), while a re-run of the same plan replays
665
+ // every step whose thread and schema are byte-identical.
666
+ const resumeKey = `model:${steps}`;
667
+ const resumeDigest = opts.resume ? stepDigest(thread, schemas) : '';
668
+ const replayed = opts.resume?.replay(resumeKey, resumeDigest) ?? null;
669
+ if (replayed) {
670
+ response = replayed;
671
+ replayedSteps += 1;
672
+ deps.onEvent?.(` ↩️ step ${steps} replayed from the checkpoint — no model call`);
673
+ }
674
+ else {
675
+ response = await deps.callModel(thread, schemas, opts.onToken, opts.signal);
676
+ // Recorded AFTER the call, and only what the model actually returned: a
677
+ // failed call records nothing, so a resume cannot inherit a failure as an
678
+ // answer.
679
+ if (opts.resume)
680
+ opts.resume.record(resumeKey, resumeDigest, response);
681
+ }
641
682
  // A provider/adapter that resolves with nothing usable (undefined, a
642
683
  // missing content field) must not crash the turn — treat it as this
643
684
  // step's generation failure so the bounded continuation logic below can
@@ -646,13 +687,18 @@ async function runToolLoopInner(opts, progress) {
646
687
  if (!response || typeof response.content !== 'string' || !Array.isArray(response.toolCalls)) {
647
688
  throw new Error('model returned a malformed step response (no content/toolCalls)');
648
689
  }
690
+ // R2 — the transport the caller reported for THIS step. Recorded before
691
+ // anything can return, so a turn that dies mid-way still attributes the
692
+ // transport that served the steps it did complete.
693
+ if (response.transport)
694
+ progress.transport = response.transport;
649
695
  }
650
696
  catch (err) {
651
697
  // P4 — an abort (the dashboard Cancel button) is a clean stop, NOT a
652
698
  // generation failure: the caller discards the turn. No error text, no
653
699
  // fallback — the fetch itself aborted on the caller's signal.
654
700
  if (opts.signal?.aborted) {
655
- return { content: '', followups, toolCalls: toolCallsRun, steps, bounded: false, cancelled: true };
701
+ return { content: '', followups, toolCalls: toolCallsRun, steps, ...(opts.resume ? { replayedSteps } : {}), bounded: false, cancelled: true };
656
702
  }
657
703
  // Generation failure — surface what we have rather than crash the turn.
658
704
  // generationFailed is TRUE only when NOTHING happened yet (no content, no
@@ -714,6 +760,7 @@ async function runToolLoopInner(opts, progress) {
714
760
  followups,
715
761
  toolCalls: toolCallsRun,
716
762
  steps,
763
+ ...(opts.resume ? { replayedSteps } : {}),
717
764
  bounded: false,
718
765
  continuations,
719
766
  generationFailed: delivered === '' || !madeProgress,
@@ -985,6 +1032,7 @@ async function runToolLoopInner(opts, progress) {
985
1032
  followups,
986
1033
  toolCalls: toolCallsRun,
987
1034
  steps,
1035
+ ...(opts.resume ? { replayedSteps } : {}),
988
1036
  bounded: false,
989
1037
  continuations,
990
1038
  };
@@ -1067,31 +1115,117 @@ async function runToolLoopInner(opts, progress) {
1067
1115
  followups.length = 0;
1068
1116
  }
1069
1117
  // I2: emit `tool:started` (before execution) + `tool:called` (after)
1070
- // on the observability bus — drives the hooks registry's
1071
- // the `post_tool_call` hook AND the dashboard's
1118
+ // on the observability bus — drives the dashboard's
1072
1119
  // step cards (P0.6: the GUI renders each call as a live card —
1073
1120
  // running → ok/error with duration + collapsible result). Timing is
1074
1121
  // wall-clock; `ok` mirrors the tool-result convention (Error: prefix).
1075
1122
  const startedAt = Date.now();
1123
+ // WS4 (#26) — the `before` hooks, and the ONE place an operator's veto can
1124
+ // stop a call. It happens before `tool:started` is announced and before a
1125
+ // span is created, so a vetoed call leaves no evidence of having run — and
1126
+ // it is reported as a `called` call with an `Error:` result, so every
1127
+ // surface's tool lifecycle shows the attempt and its outcome rather than an
1128
+ // unexplained gap.
1129
+ const beforeHooks = await runBeforeToolHooks({
1130
+ tool: call.name,
1131
+ args: call.arguments,
1132
+ callId: call.id,
1133
+ ...(opts.surface ? { surface: opts.surface } : {}),
1134
+ ...(ctx.cwd ? { cwd: ctx.cwd } : {}),
1135
+ ...(ctx.configManager ? { configManager: ctx.configManager } : {}),
1136
+ });
1137
+ for (const problem of beforeHooks.problems) {
1138
+ // A hook that failed to run is REPORTED rather than swallowed: the seam
1139
+ // fails open, so without this a broken policy looks exactly like one that
1140
+ // allowed everything.
1141
+ traceEvent({ kind: 'gate', gate: 'tool-hook', tool: call.name, ok: false, summary: problem });
1142
+ }
1143
+ if (beforeHooks.denied) {
1144
+ const refusal = toolHookRefusalText(beforeHooks);
1145
+ traceEvent({
1146
+ kind: 'gate',
1147
+ gate: 'tool-hook',
1148
+ tool: call.name,
1149
+ ok: false,
1150
+ summary: `${beforeHooks.by ?? 'a tool hook'} refused ${call.name}` +
1151
+ (beforeHooks.reason ? `: ${beforeHooks.reason}` : ''),
1152
+ });
1153
+ deps.onEvent?.(` ⛔ ${call.name} — refused by a tool hook`);
1154
+ ctx.emit?.('tool:called', {
1155
+ id: call.id,
1156
+ tool: call.name,
1157
+ ok: false,
1158
+ result: refusal,
1159
+ durationMs: Date.now() - startedAt,
1160
+ });
1161
+ return refusal;
1162
+ }
1163
+ /**
1164
+ * Tell the `after` / `failed` hooks what happened to this call.
1165
+ *
1166
+ * Observe-only by construction: the outcome has already been decided and
1167
+ * reported by the time this runs, so a hook here cannot rewrite history —
1168
+ * the phase it is named for is the fact it receives.
1169
+ */
1170
+ const reportToolOutcome = async (outcome) => {
1171
+ const report = await runToolOutcomeHooks({
1172
+ tool: call.name,
1173
+ args: call.arguments,
1174
+ callId: call.id,
1175
+ ...(opts.surface ? { surface: opts.surface } : {}),
1176
+ ...(ctx.cwd ? { cwd: ctx.cwd } : {}),
1177
+ ...(ctx.configManager ? { configManager: ctx.configManager } : {}),
1178
+ durationMs: Date.now() - startedAt,
1179
+ ...outcome,
1180
+ });
1181
+ for (const problem of report.problems) {
1182
+ traceEvent({ kind: 'gate', gate: 'tool-hook', tool: call.name, ok: false, summary: problem });
1183
+ }
1184
+ };
1076
1185
  ctx.emit?.('tool:started', {
1077
1186
  id: call.id,
1078
1187
  tool: call.name,
1079
1188
  args: call.arguments,
1080
1189
  });
1190
+ // WS3 (#25) — the call as a child span of the turn. Created where the call
1191
+ // actually runs (not where it is announced), so a call that was REFUSED by
1192
+ // a gate above never gets a span claiming it happened.
1193
+ const toolSpan = opts.otel?.child(`${TOOL_SPAN_PREFIX}${call.name}`, { 'nuvira.tool': call.name }) ?? null;
1081
1194
  try {
1082
1195
  deps.onEvent?.(` ⚙ ${call.name}(${summarizeArgs(call.arguments)})`);
1083
- let resultText = await deps.executeTool(call.name, call.arguments, ctx);
1196
+ // The span is ACTIVE for the whole execution: that is what lets a tool
1197
+ // which spawns a subagent propagate the trace instead of starting a
1198
+ // second, unrelated one in the child.
1199
+ let resultText = await withSpanActive(toolSpan, async () => {
1200
+ // WS6 (#28) — a DECLARED fault, injected at the one place this loop runs
1201
+ // a tool, so every in-process surface (CLI chat, dashboard, gateway,
1202
+ // execute) is affected by the same declaration and none of them needs to
1203
+ // know the seam exists. The result is an `Error:` string rather than a
1204
+ // throw, which is exactly what a tool that really failed returns — so the
1205
+ // call is reported as FAILED, the `failed` hook fires, and the model is
1206
+ // handed the fault's own words. With no declaration this is a null check.
1207
+ const injected = faultAt('tool', call.name);
1208
+ if (injected)
1209
+ return `Error: ${injected.message}`;
1210
+ return deps.executeTool(call.name, call.arguments, ctx);
1211
+ });
1084
1212
  // I3: a tool that returns {artifact, result} gets its deliverable
1085
1213
  // recorded on the session and only `result`
1086
1214
  // is fed back to the model — the JSON payload is runtime metadata.
1087
1215
  resultText = appendToolArtifact(resultText, ctx.artifacts);
1216
+ // The SAME outcome convention the loop uses everywhere else (`Error:`
1217
+ // prefix), so the span cannot report a success the result did not have.
1218
+ const toolOk = !resultText.startsWith('Error:');
1088
1219
  ctx.emit?.('tool:called', {
1089
1220
  id: call.id,
1090
1221
  tool: call.name,
1091
- ok: !resultText.startsWith('Error:'),
1222
+ ok: toolOk,
1092
1223
  result: resultText,
1093
1224
  durationMs: Date.now() - startedAt,
1094
1225
  });
1226
+ toolSpan?.attr('nuvira.ok', toolOk);
1227
+ toolSpan?.end({ ok: toolOk });
1228
+ await reportToolOutcome({ ok: toolOk, result: resultText });
1095
1229
  if (call.name === 'suggest_followups')
1096
1230
  endedAfterConcluding = true;
1097
1231
  return resultText;
@@ -1105,10 +1239,16 @@ async function runToolLoopInner(opts, progress) {
1105
1239
  error: message,
1106
1240
  durationMs: Date.now() - startedAt,
1107
1241
  });
1242
+ toolSpan?.end({ ok: false, message });
1243
+ await reportToolOutcome({ ok: false, error: message });
1108
1244
  return `Error: ${message}`;
1109
1245
  }
1110
1246
  finally {
1111
1247
  toolDurations.set(call.id, Date.now() - startedAt);
1248
+ // A safety net, not a second report: `end()` is idempotent, so a call
1249
+ // that already ended its span is untouched, and one that reached here
1250
+ // without reporting says so rather than defaulting to success.
1251
+ toolSpan?.end({ ok: false, message: 'tool outcome was never reported' });
1112
1252
  }
1113
1253
  };
1114
1254
  const executed = new Array(plans.length).fill('');
@@ -1271,7 +1411,7 @@ async function runToolLoopInner(opts, progress) {
1271
1411
  // P4 — cancellation during/after tool execution: do NOT request another
1272
1412
  // model step on a cancelled turn (the user already walked away).
1273
1413
  if (opts.signal?.aborted) {
1274
- return { content: '', followups, toolCalls: toolCallsRun, steps, bounded: false, cancelled: true };
1414
+ return { content: '', followups, toolCalls: toolCallsRun, steps, ...(opts.resume ? { replayedSteps } : {}), bounded: false, cancelled: true };
1275
1415
  }
1276
1416
  // ── endsAgentStep — a successful dispenser's RESULT is the answer ────────
1277
1417
  // `build`/`resume`/`repair`/`document`/`website`/`analyze`/`test`/`publish`
@@ -1298,6 +1438,7 @@ async function runToolLoopInner(opts, progress) {
1298
1438
  followups,
1299
1439
  toolCalls: toolCallsRun,
1300
1440
  steps,
1441
+ ...(opts.resume ? { replayedSteps } : {}),
1301
1442
  bounded: false,
1302
1443
  continuations,
1303
1444
  };
@@ -1376,6 +1517,7 @@ async function runToolLoopInner(opts, progress) {
1376
1517
  followups,
1377
1518
  toolCalls: toolCallsRun,
1378
1519
  steps,
1520
+ ...(opts.resume ? { replayedSteps } : {}),
1379
1521
  bounded: false,
1380
1522
  continuations,
1381
1523
  };
@@ -1395,6 +1537,7 @@ async function runToolLoopInner(opts, progress) {
1395
1537
  followups,
1396
1538
  toolCalls: toolCallsRun,
1397
1539
  steps,
1540
+ ...(opts.resume ? { replayedSteps } : {}),
1398
1541
  bounded: true,
1399
1542
  continuations,
1400
1543
  };
@@ -1600,6 +1743,11 @@ export async function runToolLoop(opts) {
1600
1743
  verificationEvidence: [],
1601
1744
  };
1602
1745
  const result = await runToolLoopInner(opts, progress);
1746
+ // R2 — relay the transport the caller's seam reported. Attached on EVERY
1747
+ // exit path, including a cancelled/failed turn: if a model call happened over
1748
+ // the JSON fallback before the turn died, that is a fact about the run.
1749
+ if (progress.transport)
1750
+ result.transport = progress.transport;
1603
1751
  if (!result.cancelled && !result.generationFailed) {
1604
1752
  result.successfulToolCalls = [...progress.successfulToolCalls];
1605
1753
  result.deliveryConfirmed = progress.deliveryConfirmed;
@@ -1727,7 +1875,17 @@ function previewToolResult(result, max = 200) {
1727
1875
  */
1728
1876
  export function classifyToolRefusal(result) {
1729
1877
  const text = result || '';
1730
- if (/needs explicit confirmation|requires confirmation|retry with confirm|call ask_user/i.test(text)) {
1878
+ if (/needs explicit confirmation|requires confirmation|retry with confirm|call ask_user/i.test(text) ||
1879
+ // The REAL `confirmFirst` wording (coding-tools.ts: "write_file: state-changing
1880
+ // — NOT applied. Ask the user first via ask_user (…), then retry write_file with
1881
+ // confirm:true once they approve.") matched NONE of the patterns above: the
1882
+ // words are the same but the phrasing is "retry write_file with confirm", not
1883
+ // "retry with confirm". A write that was NOT applied therefore counted as a call
1884
+ // that ran — so the path it named counted as a MUTATION, the run trace recorded
1885
+ // a change that never happened, and the verification gate asked the model to
1886
+ // check a file nothing had written. Found by the child's gate, where the same
1887
+ // miscount reported `unverifiedEdit` for an empty diff.
1888
+ /\bstate-changing\b[^.]*\bNOT applied\b|\bretry\s+\w+\s+with\s+confirm/i.test(text)) {
1731
1889
  return { gate: 'confirmation', summary: 'declined until the user approves — the gate asked before acting' };
1732
1890
  }
1733
1891
  // A BOUNDARY denial is the other refusal that did not read as one. The
@@ -1 +1 @@
1
- {"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-loop.js","sourceRoot":"","sources":["../../src/tools/tool-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAyC,MAAM,eAAe,CAAC;AAChG,gFAAgF;AAChF,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAmB,MAAM,0BAA0B,CAAC;AAC7F,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AACzB,6EAA6E;AAC7E,kFAAkF;AAClF,+EAA+E;AAC/E,OAAO,EAAE,UAAU,EAAmB,MAAM,gCAAgC,CAAC;AAC7E,2EAA2E;AAC3E,4EAA4E;AAC5E,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,aAAa,GAEd,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,sBAAsB,EACtB,UAAU,EACV,WAAW,EACX,WAAW,EACX,QAAQ,GAET,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAA2B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnF;;;;GAIG;AACH,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC;IACvD,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,SAAS;CACV,CAAC,CAAC;AAEH,gEAAgE;AAChE,SAAS,aAAa,CAAC,IAAa;IAClC,MAAM,CAAC,GAAG,IAA2E,CAAC;IACtF,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,IAAI,CAAC;IAC7C,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClE,CAAC;AAED;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,IAAqB;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;IAC5D,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QAChC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAYD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,yBAAyB,EACzB,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC;AAIzC,+EAA+E;AAC/E,0EAA0E;AAC1E,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,2EAA2E;AAC3E,0BAA0B;AAE1B;;;GAGG;AACH,MAAM,mBAAmB,GAA2B;IAClD,YAAY,EACV,wHAAwH;IAC1H,SAAS,EACP,4HAA4H;IAC9H,IAAI,EAAE,+DAA+D;IACrE,QAAQ,EAAE,2EAA2E;IACrF,WAAW,EAAE,0FAA0F;IACvG,SAAS,EACP,0FAA0F;IAC5F,UAAU,EAAE,kEAAkE;IAC9E,UAAU,EAAE,0GAA0G;IACtH,SAAS,EAAE,yEAAyE;IACpF,SAAS,EAAE,wFAAwF;IACnG,KAAK,EAAE,iHAAiH;IACxH,UAAU,EAAE,0HAA0H;IACtI,GAAG,EAAE,mIAAmI;IACxI,QAAQ,EAAE,uGAAuG;IACjH,YAAY,EAAE,8EAA8E;CAC7F,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,UAAkB;IAClE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,2EAA2E;AAC3E,4EAA4E;AAC5E,6EAA6E;AAC7E,2EAA2E;AAC3E,0DAA0D;AAE1D,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;AAE/G;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,gBAAwC,EAAE;IAC9E,MAAM,MAAM,GAA2B,EAAE,GAAG,aAAa,EAAE,CAAC;IAC5D,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO;QACL,iFAAiF;QACjF,IAAI,CAAC,IAAY,EAAE,EAAW;YAC5B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,KAAK,GAAG,IAAI,CAAC;gBACb,OAAO,CACL,6BAA6B,MAAM,CAAC,IAAI,CAAC,2BAA2B,IAAI,qCAAqC;oBAC7G,mGAAmG;oBACnG,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,sDAAsD;QACtD,IAAI,QAAQ;YACV,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC;AAmVD,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,0DAA0D;IAC1D,IAAI,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,yEAAyE;IACzE,IAAI,+DAA+D,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5G,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe;IACtD,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,IAAI,OAAO,GAAG,OAAO,CAAC;IACtB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,2DAA2D;IAC3D,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,QAAQ,GAAG,4BAA4B,CAAC;IAC9C,IAAI,CAAyB,CAAC;IAC9B,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,mEAAmE;YACnE,qEAAqE;YACrE,8DAA8D;YAC9D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACpC,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAC9C,iEAAiE;QACjE,qEAAqE;QACrE,yEAAyE;QACzE,oDAAoD;QACpD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QAC7D,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;QAC7B,WAAW,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAA2D,CAAC;YAC3F,IAAI,MAAM,CAAC,IAAI,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnD,KAAK,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;iBAC5F,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6DAA6D;QAC/D,CAAC;IACH,CAAC;IACD,2EAA2E;IAC3E,0DAA0D;IAC1D,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,kCAAkC;IAClC,MAAM,OAAO,GAAG,qCAAqC,CAAC;IACtD,IAAI,KAA6B,CAAC;IAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,kEAAkE;YAClE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,WAAW,GAAG,IAAI,CAAC;YACnB,MAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,MAAM,GAAY,IAAI,CAAC;QAC3B,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAY,CAAC;QACxC,CAAC;QAAC,MAAM,CAAC;YACP,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAAE,SAAS;QACjE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,WAAW,GAAG,IAAI,CAAC;QACnB,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,QAAQ,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC9B,IAAI,EAAE,mBAAmB;gBACzB,SAAS,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE;aAClC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,IAAI,CAAC,WAAW;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClD,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,IAAI,GAAG,4BAA4B,CACvC,OAAO,CAAC,OAAO,CAAC,+BAA+B,EAAE,IAAI,CAAC,CACvD,CAAC,IAAI,EAAE,CAAC;IACT,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,yCAAyC;IACjF,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACnF,OAAO,8JAA8J,CAAC,IAAI,CAAC,OAAO,CAAC;QACjL,6FAA6F,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChH,CAAC;AAED,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,IAAY,EAAE,KAAa;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO;gBAAE,OAAO,GAAG,KAAK,CAAC;iBACxB,IAAI,EAAE,KAAK,IAAI;gBAAE,OAAO,GAAG,IAAI,CAAC;iBAChC,IAAI,EAAE,KAAK,GAAG;gBAAE,QAAQ,GAAG,KAAK,CAAC;YACtC,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,QAAQ,GAAG,IAAI,CAAC;aAC3B,IAAI,EAAE,KAAK,GAAG;YAAE,KAAK,EAAE,CAAC;aACxB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,+EAA+E;AAC/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC;IACnE,WAAW;IACX,UAAU;IACV,MAAM;IACN,aAAa;IACb,YAAY;IACZ,WAAW;CACZ,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED;;4EAE4E;AAC5E,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAE7B,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,wEAAwE;AACxE,4EAA4E;AAC5E,6EAA6E;AAC7E,yDAAyD;AAEzD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,yEAAyE;AACzE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C,oDAAoD;AACpD,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAAC,OAAe;IAC1D,OAAO,gMAAgM,CAAC,IAAI,CAC1M,OAAO,CACR,CAAC;AACJ,CAAC;AAED,2DAA2D;AAC3D,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAiCD;;;;GAIG;AACH,KAAK,UAAU,gBAAgB,CAAC,IAAqB,EAAE,QAA0B;IAC/E,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAC1E,0EAA0E;IAC1E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC;IACzF,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,iBAAiB,IAAI,0BAA0B,CAAC,CAAC;IAC5F,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,2EAA2E;IAC3E,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,8EAA8E;IAC9E,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,kEAAkE;IAClE,4BAA4B;IAC5B,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,sEAAsE;IACtE,2EAA2E;IAC3E,6EAA6E;IAC7E,gCAAgC;IAChC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,4EAA4E;IAC5E,+BAA+B;IAC/B,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B;;;;OAIG;IACH,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAQ,EAAE;QACjD,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC,CAAC;IACF,4EAA4E;IAC5E,iEAAiE;IACjE,IAAI,SAAS,GAAG,QAAQ,CAAC;IACzB,yEAAyE;IACzE,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,CAAC;IAElF,MAAM,SAAS,GAAyB,EAAE,CAAC;IAC3C,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,0EAA0E;IAC1E,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,MAAM,IAAI,GAAG;QACX,IAAI,CAAC,CAAqB;YACxB,MAAM,IAAI,GAAG,kBAAkB,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;YACnD,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QAC1B,CAAC;KACF,CAAC;IACF,2EAA2E;IAC3E,0EAA0E;IAC1E,yEAAyE;IACzE,6EAA6E;IAC7E,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,0BAA0B;IAC1B,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC3D,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAC5E,6EAA6E;IAC7E,wEAAwE;IACxE,2EAA2E;IAC3E,+EAA+E;IAC/E,0EAA0E;IAC1E,EAAE;IACF,+EAA+E;IAC/E,+EAA+E;IAC/E,oCAAoC;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,SAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IACjG,IAAI,QAAQ,GAA0B,WAAW,CAAC,WAAW,CAAC,CAAC;IAC/D,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI,CAAC;QACrD,IAAI,IAAI,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,OAAO,EAAE,CAAC,0EAA0E,CAAC,CAAC;QAC7F,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,GAAG,KAAK,CAAC;gBACjB,aAAa,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,wEAAwE;IACxE,2EAA2E;IAC3E,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,OAAO,CAAC,SAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3F,MAAM,QAAQ,GAAa,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;IAC7E,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,MAAM,GAAG,GAAgB;QACvB,GAAG,OAAO;QACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,gBAAgB,EAAE,aAAa;QAC/B,4EAA4E;QAC5E,2EAA2E;QAC3E,wEAAwE;QACxE,+DAA+D;QAC/D,oBAAoB,EAAE,WAAW;QACjC,iFAAiF;QACjF,QAAQ;QACR,yEAAyE;QACzE,qDAAqD;QACrD,QAAQ;KACT,CAAC;IAEF,mEAAmE;IACnE,qEAAqE;IACrE,yEAAyE;IACzE,yEAAyE;IACzE,+DAA+D;IAC/D,EAAE;IACF,wEAAwE;IACxE,2EAA2E;IAC3E,yEAAyE;IACzE,wEAAwE;IACxE,sEAAsE;IACtE,4DAA4D;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC;IAC5D,wEAAwE;IACxE,oEAAoE;IACpE,IAAI,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,gBAAgB,YAAY,GAAG,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,CAAC;IACD,MAAM,OAAO,GAAqB,SAAS;QACzC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC;QAC5B,CAAC,CAAC,MAAM;YACN,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5C,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACtD,0EAA0E;IAC1E,0EAA0E;IAC1E,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACxD,MAAM,gBAAgB,GAAG,GAAW,EAAE;QACpC,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;QACpC,IAAI,CAAC,CAAC,MAAM,YAAY,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,qCAAqC;YACnE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC;gBAAE,SAAS,CAAC,UAAU;YACrE,MAAM,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,KAAK,mDAAmD,OAAO,CAAC,MAAM,UAAU,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAkB,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC5C,6EAA6E;IAC7E,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;IACjD,4EAA4E;IAC5E,2EAA2E;IAC3E,+EAA+E;IAC/E,yEAAyE;IACzE,4EAA4E;IAC5E,gDAAgD;IAChD,IAAI,sBAAsB,CAAC,WAAW,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC,+EAA+E,CAAC,CAAC;QAChG,UAAU,CAAC;YACT,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,oEAAoE,QAAQ,CAAC,SAAS,EAAE,YAAY,QAAQ,CAAC,gBAAgB,EAAE,YAAY;SACrJ,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,OAAO,EACL,GAAG,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAC9B,qFAAqF;gBACrF,0FAA0F;gBAC1F,2FAA2F;gBAC3F,oFAAoF;SACvF,CAAC,CAAC;IACL,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;IAC1E,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,qBAAqB,EAAE,CAAC;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd;;;;;OAKG;IACH,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,4EAA4E;IAC5E,0EAA0E;IAC1E,wEAAwE;IACxE,kEAAkE;IAClE,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,SAAS,CAAC;QACR,0EAA0E;QAC1E,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,uEAAuE;QACvE,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;YACvB,IAAI,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBACrC,aAAa,IAAI,CAAC,CAAC;gBACnB,SAAS,IAAI,iBAAiB,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CACZ,2EAA2E,aAAa,IAAI,gBAAgB,YAAY,SAAS,UAAU,CAC5I,CAAC;gBACF,SAAS;YACX,CAAC;YACD,MAAM;QACR,CAAC;QACD,uEAAuE;QACvE,0DAA0D;QAC1D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChJ,CAAC;QACD,KAAK,IAAI,CAAC,CAAC;QACX,qEAAqE;QACrE,uEAAuE;QACvE,+CAA+C;QAC/C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAC5D,IAAI,aAAa,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,aAAa,CAAC,OAAO,0CAA0C,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACjJ,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2CAA2C;QAC3C,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QACxD,IAAI,QAAsB,CAAC;QAC3B,IAAI,CAAC;YACH,2EAA2E;YAC3E,4EAA4E;YAC5E,wEAAwE;YACxE,4EAA4E;YAC5E,yDAAyD;YACzD,MAAM,SAAS,GAAG,SAAS,KAAK,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC;YACtE,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,GAAG,QAAQ,CAAC;gBACpB,aAAa,IAAI,CAAC,CAAC;gBACnB,IAAI,CAAC,OAAO,EAAE,CAAC,cAAc,KAAK,+CAA+C,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5E,wEAAwE;gBACxE,0EAA0E;gBAC1E,UAAU;gBACV,IAAI,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzE,CAAC;YACD,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,mEAAmE;YACnE,oEAAoE;YACpE,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5F,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACrF,CAAC;YACD,wEAAwE;YACxE,wEAAwE;YACxE,mDAAmD;YACnD,IAAI,QAAQ,CAAC,SAAS;gBAAE,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAClE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qEAAqE;YACrE,sEAAsE;YACtE,8DAA8D;YAC9D,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YAChJ,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,sEAAsE;YACtE,0EAA0E;YAC1E,sEAAsE;YACtE,yEAAyE;YACzE,6DAA6D;YAC7D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,iEAAiE;YACjE,kEAAkE;YAClE,kEAAkE;YAClE,sEAAsE;YACtE,MAAM,CAAC,IAAI,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1E,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,wEAAwE;YACxE,uEAAuE;YACvE,wEAAwE;YACxE,iDAAiD;YACjD,0EAA0E;YAC1E,uEAAuE;YACvE,yEAAyE;YACzE,uEAAuE;YACvE,EAAE;YACF,0EAA0E;YAC1E,yEAAyE;YACzE,2EAA2E;YAC3E,0EAA0E;YAC1E,4CAA4C;YAC5C,IAAI,aAAa,GAAG,gBAAgB,IAAI,YAAY,EAAE,CAAC;gBACrD,aAAa,IAAI,CAAC,CAAC;gBACnB,SAAS,IAAI,iBAAiB,CAAC;gBAC/B,IAAI,CAAC,OAAO,EAAE,CACZ,uEAAuE,aAAa,IAAI,gBAAgB,YAAY,SAAS,UAAU,CACxI,CAAC;gBACF,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChH,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;gBAClC,SAAS;YACX,CAAC;YACD,uEAAuE;YACvE,yEAAyE;YACzE,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,2EAA2E;YAC3E,2EAA2E;YAC3E,0EAA0E;YAC1E,0EAA0E;YAC1E,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;YACrC,OAAO;gBACL,OAAO,EAAE,SAAS,IAAI,2BAA2B,CAAC,GAAG,CAAC;gBACtD,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK;gBACd,aAAa;gBACb,gBAAgB,EAAE,SAAS,KAAK,EAAE,IAAI,CAAC,YAAY;aACpD,CAAC;QACJ,CAAC;QAED,0EAA0E;QAC1E,yEAAyE;QACzE,kEAAkE;QAClE,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,qEAAqE;QACrE,wEAAwE;QACxE,wEAAwE;QACxE,IAAI,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrF,MAAM,SAAS,GAAG,wBAAwB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACxC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC;gBAClC,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;oBACrC,IAAI,CAAC,OAAO,EAAE,CAAC,sDAAsD,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,yEAAyE;QACzE,sEAAsE;QACtE,sEAAsE;QACtE,qEAAqE;QACrE,mEAAmE;QACnE,kCAAkC;QAClC,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW;YACxC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;YACpC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACnG,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,CAAC;QAE/B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,yDAAyD;YACzD,oDAAoD;YACpD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClG,kEAAkE;gBAClE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,cAAc,IAAI,CAAC,CAAC;gBACpB,2EAA2E;gBAC3E,yEAAyE;gBACzE,sEAAsE;gBACtE,0EAA0E;gBAC1E,uEAAuE;gBACvE,sEAAsE;gBACtE,+DAA+D;gBAC/D,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC3D,wEAAwE;gBACxE,sEAAsE;gBACtE,yEAAyE;gBACzE,sEAAsE;gBACtE,IAAI,cAAc,IAAI,mBAAmB,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,EAAE,CACZ,aAAa;wBACX,CAAC,CAAC,kDAAkD,cAAc,IAAI,mBAAmB,wBAAwB;wBACjH,CAAC,CAAC,sCAAsC,cAAc,IAAI,mBAAmB,GAAG,CACnF,CAAC;oBACF,UAAU,CAAC;wBACT,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,aAAa;4BACpB,CAAC,CAAC,iGAAiG;4BACnG,CAAC,CAAC,oFAAoF;qBACzF,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBACD,IAAI,cAAc,KAAK,mBAAmB,GAAG,CAAC,EAAE,CAAC;oBAC/C,qEAAqE;oBACrE,SAAS,IAAI,CAAC,CAAC;oBACf,IAAI,CAAC,OAAO,EAAE,CACZ,aAAa;wBACX,CAAC,CAAC,gFAAgF;wBAClF,CAAC,CAAC,4EAA4E,CACjF,CAAC;oBACF,UAAU,CAAC;wBACT,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,aAAa;4BACpB,CAAC,CAAC,2CAA2C,cAAc,iDAAiD;4BAC5G,CAAC,CAAC,4CAA4C,cAAc,2CAA2C;gCACrG,yCAAyC;qBAC9C,CAAC,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBACD,yEAAyE;gBACzE,sEAAsE;gBACtE,2DAA2D;gBAC3D,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CACZ,aAAa;oBACX,CAAC,CAAC,8HAA8H;oBAChI,CAAC,CAAC,mFAAmF,CACxF,CAAC;gBACF,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,aAAa;wBACpB,CAAC,CAAC,yBAAyB,cAAc,iGAAiG;wBAC1I,CAAC,CAAC,kCAAkC,cAAc,wEAAwE;iBAC7H,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,uEAAuE;YACvE,uEAAuE;YACvE,yEAAyE;YACzE,sEAAsE;YACtE,qEAAqE;YACrE,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,sEAAsE;YACtE,IACE,YAAY,GAAG,CAAC;gBAChB,QAAQ,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC;gBACzC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,8BAA8B,CAC5B,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAC/E,EACD,CAAC;gBACD,YAAY,IAAI,CAAC,CAAC;gBAClB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,yFAAyF,CAAC,CAAC;gBAC1G,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,mGAAmG;iBAC7G,CAAC,CAAC;gBACH,0DAA0D;gBAC1D,qEAAqE;gBACrE,mEAAmE;gBACnE,kEAAkE;gBAClE,iDAAiD;gBACjD,WAAW,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,OAAO,EACL,+FAA+F;wBAC/F,uHAAuH;iBAC1H,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,wEAAwE;YACxE,sEAAsE;YACtE,yEAAyE;YACzE,sEAAsE;YACtE,wEAAwE;YACxE,yEAAyE;YACzE,0EAA0E;YAC1E,oEAAoE;YACpE,uEAAuE;YACvE,yEAAyE;YACzE,sDAAsD;YACtD,IACE,gBAAgB,GAAG,CAAC;gBACpB,aAAa,CAAC,UAAU;gBACxB,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,uBAAuB,CACrB,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAC/E,EACD,CAAC;gBACD,gBAAgB,IAAI,CAAC,CAAC;gBACtB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,4GAA4G,CAAC,CAAC;gBAC7H,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,kDAAkD,aAAa,CAAC,MAAM,kCAAkC;iBAClH,CAAC,CAAC;gBACH,sEAAsE;gBACtE,uEAAuE;gBACvE,oEAAoE;gBACpE,mEAAmE;gBACnE,6DAA6D;gBAC7D,IAAI,QAAQ,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9C,WAAW,GAAG,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,2BAA2B,CACvC,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAC/E,CAAC;gBACJ,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBAC9D,SAAS;YACX,CAAC;YACD,wEAAwE;YACxE,wEAAwE;YACxE,0EAA0E;YAC1E,wEAAwE;YACxE,oEAAoE;YACpE,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,IACE,YAAY,GAAG,CAAC;gBAChB,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,uBAAuB,CACrB,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAC/E;gBACD,QAAQ,CAAC,eAAe,CACtB,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAC/E,CAAC,MAAM,GAAG,CAAC,EACZ,CAAC;gBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC/F,YAAY,IAAI,CAAC,CAAC;gBAClB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,yGAAyG,CAAC,CAAC;gBAC1H,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,oHAAoH;iBAC9H,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9C,WAAW,GAAG,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,WAAW,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5F,SAAS;YACX,CAAC;YACD,qEAAqE;YACrE,qEAAqE;YACrE,oEAAoE;YACpE,4DAA4D;YAC5D,gCAAgC;YAChC,EAAE;YACF,uEAAuE;YACvE,0EAA0E;YAC1E,yEAAyE;YACzE,yBAAyB;YACzB,IAAI,iBAAiB,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;gBACjL,iBAAiB,IAAI,CAAC,CAAC;gBACvB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,2FAA2F,CAAC,CAAC;gBAC5G,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,aAAa,CAAC,aAAa;wBAClC,CAAC,CAAC,4CAA4C,aAAa,CAAC,aAAa,4DAA4D;wBACrI,CAAC,CAAC,iGAAiG;iBACtG,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACtF,SAAS;YACX,CAAC;YACD,EAAE;YACF,qEAAqE;YACrE,wEAAwE;YACxE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,2DAA2D;YAC3D,IACE,kBAAkB,GAAG,CAAC;gBACtB,IAAI,CAAC,mBAAmB,KAAK,KAAK;gBAClC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAAC;qBACnG,iBAAiB,EACpB,CAAC;gBACD,kBAAkB,IAAI,CAAC,CAAC;gBACxB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,uFAAuF,CAAC,CAAC;gBACxG,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,8FAA8F;iBACxG,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,wEAAwE;gBACxE,wEAAwE;gBACxE,iEAAiE;gBACjE,yEAAyE;gBACzE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC;iBAC/E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW;gBACvF,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,2EAA2E;YAC3E,sEAAsE;YACtE,wEAAwE;YACxE,iDAAiD;YACjD,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;gBACvC,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;SACJ,CAAC,CAAC;QAEH,IAAI,oBAAoB,GAAG,KAAK,CAAC;QASjC,MAAM,KAAK,GAAkB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACzE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7B,oEAAoE;YACpE,2CAA2C;YAC3C,4DAA4D;YAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACpD,OAAO;oBACL,IAAI;oBACJ,MAAM,EACJ,8KAA8K;iBACjL,CAAC;YACJ,CAAC;YACD,IAAI,IAAI,EAAE,QAAQ,KAAK,UAAU,IAAI,aAAa,IAAI,CAAC,EAAE,CAAC;gBACxD,uEAAuE;gBACvE,kEAAkE;gBAClE,uEAAuE;gBACvE,qEAAqE;gBACrE,uEAAuE;gBACvE,8DAA8D;gBAC9D,OAAO;oBACL,IAAI;oBACJ,MAAM,EAAE,UAAU,IAAI,CAAC,IAAI,oFAAoF;iBAChH,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,mEAAmE;gBACnE,0CAA0C;gBAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,IAAI,CAAC,IAAI,uBAAuB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5H,CAAC;YACD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1C,mEAAmE;gBACnE,sEAAsE;gBACtE,kEAAkE;gBAClE,MAAM,YAAY,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC/C,OAAO;oBACL,IAAI;oBACJ,MAAM,EACJ,gBAAgB,IAAI,CAAC,IAAI,qBAAqB,YAAY,EAAE,IAAI,IAAI,QAAQ,qCAAqC;wBACjH,qDAAqD,YAAY,EAAE,IAAI,IAAI,EAAE,mDAAmD;iBACnI,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACrD,oEAAoE;gBACpE,kEAAkE;gBAClE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,IAAI,CAAC,IAAI,sFAAsF,EAAE,CAAC;YAC3I,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2EAA2E;QAC3E;kFAC0E;QAC1E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;QAChD,MAAM,MAAM,GAAG,KAAK,EAAE,IAAiB,EAAmB,EAAE;YAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;YACtB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC,MAAM,CAAC;YAClD,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACtC,sEAAsE;gBACtE,+DAA+D;gBAC/D,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YACvB,CAAC;YACD,qEAAqE;YACrE,oDAAoD;YACpD,+DAA+D;YAC/D,oEAAoE;YACpE,uEAAuE;YACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,sEAAsE;YACtE,4EAA4E;YAC5E,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC;gBAC3C,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC,CAAC;YACH,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC3C,wEAAwE;gBACxE,0EAA0E;gBAC1E,sBAAsB;gBACtB,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBACvB,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBACjD,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,KAAK;oBACT,OAAO,EACL,GAAG,WAAW,CAAC,EAAE,IAAI,aAAa,YAAY,IAAI,CAAC,IAAI,EAAE;wBACzD,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxD,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAC;gBAC7D,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;oBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,OAAO;oBACf,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC;YACjB,CAAC;YAED;;;;;;eAMG;YACH,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAIhC,EAAiB,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;oBACvC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,SAAS;oBACpB,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;oBAClC,GAAG,OAAO;iBACX,CAAC,CAAC;gBACH,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACtC,UAAU,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC,CAAC;YAEF,GAAG,CAAC,IAAI,EAAE,CAAC,cAAc,EAAE;gBACzB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,IAAI,EAAE,IAAI,CAAC,SAAS;aACrB,CAAC,CAAC;YACH,2EAA2E;YAC3E,2EAA2E;YAC3E,uDAAuD;YACvD,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,gBAAgB,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC;YAC5F,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACtE,uEAAuE;gBACvE,oEAAoE;gBACpE,sCAAsC;gBACtC,IAAI,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACzD,yEAAyE;oBACzE,qEAAqE;oBACrE,yEAAyE;oBACzE,uEAAuE;oBACvE,0EAA0E;oBAC1E,wEAAwE;oBACxE,0EAA0E;oBAC1E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,QAAQ;wBAAE,OAAO,UAAU,QAAQ,CAAC,OAAO,EAAE,CAAC;oBAClD,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBACH,kEAAkE;gBAClE,4CAA4C;gBAC5C,mEAAmE;gBACnE,UAAU,GAAG,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3D,sEAAsE;gBACtE,wEAAwE;gBACxE,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAChD,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;oBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,MAAM;oBACV,MAAM,EAAE,UAAU;oBAClB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBACH,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACpC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC9B,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;oBAAE,oBAAoB,GAAG,IAAI,CAAC;gBACnE,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,GAAG,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE;oBACxB,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,EAAE,EAAE,KAAK;oBACT,KAAK,EAAE,OAAO;oBACd,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;iBACnC,CAAC,CAAC;gBACH,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACtC,MAAM,iBAAiB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvD,OAAO,UAAU,OAAO,EAAE,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;gBACnD,sEAAsE;gBACtE,sEAAsE;gBACtE,+DAA+D;gBAC/D,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAQ,GAAa,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAI,CAAC;YACnC,mEAAmE;YACnE,wEAAwE;YACxE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,CAAC,IAAI,CAAC,CAAC;gBAC3G,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,GAAG,CAAC,MAAM,mCAAmC,CAAC,CAAC;oBACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;wBACtD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC;wBACjD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpE,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;4BAC/B,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;wBAC7B,CAAC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,CAAC,GAAG,CAAC,CAAC;YACR,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,CAAC,IAAI,CAAC,CAAC;YACT,CAAC;QACH,CAAC;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,+DAA+D;QAC/D,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,SAAS,GAAa,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,0CAA0C;YAC1C,2EAA2E;YAC3E,wEAAwE;YACxE,uEAAuE;YACvE,yEAAyE;YACzE,2EAA2E;YAC3E,yEAAyE;YACzE,0EAA0E;YAC1E,qEAAqE;YACrE,MAAM,OAAO,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAC/C,MAAM,KAAK,GACT,OAAO,KAAK,IAAI;gBAChB,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC/B,CAAC,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC9E,IAAI,KAAK;gBAAE,QAAQ,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvE,QAAQ,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACpC,CAAC;YACD,qEAAqE;YACrE,oEAAoE;YACpE,gEAAgE;YAChE,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,SAAgF,CAAC;oBAChG,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,SAAS,IAAI,CAAC,EAAE,IAAI,CAAC;oBAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC;wBAC/B,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC9B,sEAAsE;wBACtE,qEAAqE;wBACrE,6BAA6B;wBAC7B,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;qBAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACzC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnG,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9D,wEAAwE;gBACxE,yEAAyE;gBACzE,yEAAyE;gBACzE,wEAAwE;gBACxE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,SAAS,CAAC,CAAC;gBACvE,uEAAuE;gBACvE,oEAAoE;gBACpE,wEAAwE;gBACxE,qEAAqE;gBACrE,qEAAqE;gBACrE,sEAAsE;gBACtE,qEAAqE;gBACrE,mEAAmE;gBACnE,sDAAsD;gBACtD,EAAE;gBACF,2DAA2D;gBAC3D,IAAI,OAAO,KAAK,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC3D,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC9C,iEAAiE;wBACjE,oEAAoE;wBACpE,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;wBACvC,iBAAiB,CAAC;4BAChB,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE;4BAC/C,IAAI,EAAE,GAAG;4BACT,eAAe,EAAE,OAAO;gCACtB,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,OAAO,cAAc,OAAO,CAAC,IAAI,IAAI,MAAM,GAAG;gCAClE,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,cAAc,OAAO,CAAC,IAAI,IAAI,MAAM,GAAG;4BACvD,QAAQ,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;4BAC7D,KAAK,EAAE,MAAM;4BACb,IAAI,EAAE,SAAS;4BACf,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;yBACpE,CAAC,CAAC;oBACL,CAAC;oBAAC,MAAM,CAAC;wBACP,4DAA4D;oBAC9D,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,oEAAoE;YACpE,oEAAoE;YACpE,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACxD,IAAI,IAAI;gBAAE,UAAU,GAAG,GAAG,UAAU,UAAU,IAAI,EAAE,CAAC;YACrD,mEAAmE;YACnE,+DAA+D;YAC/D,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC/E,IAAI,WAAW;gBAAE,UAAU,GAAG,GAAG,UAAU,OAAO,WAAW,EAAE,CAAC;YAChE,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;YAC1B,2EAA2E;YAC3E,0EAA0E;YAC1E,2EAA2E;YAC3E,0EAA0E;YAC1E,oEAAoE;YACpE,yEAAyE;YACzE,qEAAqE;YACrE,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9C,UAAU,CAAC;gBACT,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChD,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,IAAI,GAAG,IAAI,CAAC,IAAI,oBAAoB;gBAC1F,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnC,MAAM,EAAE,iBAAiB,CAAC,SAAS,CAAC;gBACpC,EAAE,EAAE,KAAK;gBACT,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,mEAAmE;QACnE,sEAAsE;QACtE,mEAAmE;QACnE,gBAAgB,EAAE,CAAC;QAEnB,wEAAwE;QACxE,iEAAiE;QACjE,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACzB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAChJ,CAAC;QAED,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,wCAAwC;QACxC,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,WAAW,GAAG,SAAS,CAAC,SAAS,CACrC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAC/F,CAAC;QACF,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,uEAAuE;YACvE,yEAAyE;YACzE,8DAA8D;YAC9D,MAAM,qBAAqB,GACzB,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;gBAC1E,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;QAED,kEAAkE;QAClE,uEAAuE;QACvE,2EAA2E;QAC3E,wEAAwE;QACxE,uEAAuE;QACvE,sEAAsE;QACtE,8BAA8B;QAC9B,EAAE;QACF,sEAAsE;QACtE,wEAAwE;QACxE,sEAAsE;QACtE,0EAA0E;QAC1E,wEAAwE;QACxE,mCAAmC;QACnC,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,2EAA2E;QAC3E,gEAAgE;QAChE,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjG,IAAI,oBAAoB,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,EAAE,CAAC;YAC9D,0EAA0E;YAC1E,yEAAyE;YACzE,wEAAwE;YACxE,mCAAmC;YACnC,IACE,kBAAkB,GAAG,CAAC;gBACtB,IAAI,CAAC,mBAAmB,KAAK,KAAK;gBAClC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAClB,kBAAkB,CAAC,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,YAAY,CAAC;qBACnG,iBAAiB,EACpB,CAAC;gBACD,kBAAkB,IAAI,CAAC,CAAC;gBACxB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,uFAAuF,CAAC,CAAC;gBACxG,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,8FAA8F;iBACxG,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,wEAAwE;gBACxE,wEAAwE;gBACxE,iEAAiE;gBACjE,yEAAyE;gBACzE,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,YAAY,CAAC;iBAC/E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,yEAAyE;YACzE,0EAA0E;YAC1E,sEAAsE;YACtE,IAAI,iBAAiB,GAAG,CAAC,IAAI,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;gBACjL,iBAAiB,IAAI,CAAC,CAAC;gBACvB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC,2FAA2F,CAAC,CAAC;gBAC5G,UAAU,CAAC;oBACT,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,aAAa,CAAC,aAAa;wBAClC,CAAC,CAAC,4CAA4C,aAAa,CAAC,aAAa,4DAA4D;wBACrI,CAAC,CAAC,iGAAiG;iBACtG,CAAC,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBACtF,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;YAC/F,OAAO;gBACL,OAAO;gBACP,SAAS;gBACT,SAAS,EAAE,YAAY;gBACvB,KAAK;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK;gBACd,aAAa;aACd,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,+DAA+D;IAC/D,OAAO,GAAG,IAAI,CAAC;IACf,IAAI,CAAC,OAAO,EAAE,CAAC,+BAA+B,SAAS,6CAA6C,CAAC,CAAC;IACtG,UAAU,CAAC;QACT,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,oBAAoB,SAAS,0EAA0E;KACjH,CAAC,CAAC;IACH,OAAO;QACL,OAAO,EAAE,WAAW,IAAI,2CAA2C;QACnE,SAAS;QACT,SAAS,EAAE,YAAY;QACvB,KAAK;QACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,IAAI;QACb,aAAa;KACd,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,yEAAyE;AACzE,mEAAmE;AACnE,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AAEtD;;;;;;;;;GASG;AACH,SAAS,uBAAuB,CAAC,UAAkB;IACjD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,oEAAoE;AACpE,MAAM,iBAAiB,GAAG;IACxB,8GAA8G;IAC9G,6FAA6F;IAC7F,mKAAmK;IACnK,0EAA0E;IAC1E,8EAA8E;CAC/E,CAAC;AAEF,gFAAgF;AAChF,MAAM,oBAAoB,GACxB,kMAAkM,CAAC;AAErM;;;;;;;;;;GAUG;AACH,MAAM,UAAU,6BAA6B,CAAC,OAAe,EAAE,QAA2B;IACxF,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnE,yDAAyD;IACzD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACpE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACjD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;IAC9D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GACtB,2NAA2N,CAAC;AAE9N;;;;;;;;;GASG;AACH,MAAM,kBAAkB,GAAsB;IAC5C,IAAI,MAAM,CACR,uDAAuD;QACrD,qFAAqF,kBAAkB,OAAO,EAChH,GAAG,CACJ;IACD,IAAI,MAAM,CACR,6DAA6D;QAC3D,kDAAkD;QAClD,qFAAqF,kBAAkB,OAAO,EAChH,GAAG,CACJ;IACD,IAAI,MAAM,CACR,0FAA0F,kBAAkB,OAAO,EACnH,GAAG,CACJ;IACD,IAAI,MAAM,CACR,6DAA6D;QAC3D,iEAAiE,kBAAkB,OAAO,EAC5F,GAAG,CACJ;CACF,CAAC;AAEF,0EAA0E;AAC1E,MAAM,iBAAiB,GAAG,iCAAiC,CAAC;AAE5D;;;;GAIG;AACH,MAAM,oBAAoB,GACxB,iPAAiP,CAAC;AAEpP;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAe;IAC5D,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI;SACnB,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,yEAAyE;IACzE,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,SAAS;QAClE,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;;GAUG;AACH,SAAS,aAAa,CACpB,MAAqB,EACrB,IAA4C,EAC5C,QAA6B;IAE7B,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,KAAK,GAAuB,IAAI,CAAC;IACrC,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,EAAE,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,0EAA0E;QAC1E,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK;QAAE,OAAO;IAEnB,8EAA8E;IAC9E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,8CAA8C;IAC9C,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IACjG,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,IAAI,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAEnF,MAAM,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CACvG,CAAC;IAEF,IAAI,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE3F,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,KAAK,GAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChF,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,qBAAqB,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,WAAW;QAAE,OAAO;IAChE,MAAM,OAAO,GAAgB,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClF,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IACxB,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvC,qBAAqB,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,IAAI,OAAO,EAAuB,CAAC;AAEjE,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAqB;IACrD,MAAM,QAAQ,GAAqB;QACjC,mBAAmB,EAAE,EAAE;QACvB,iBAAiB,EAAE,KAAK;QACxB,YAAY,EAAE,EAAE;QAChB,oBAAoB,EAAE,EAAE;KACzB,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtD,yEAAyE;IACzE,8EAA8E;IAC9E,wEAAwE;IACxE,IAAI,QAAQ,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAClD,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC/D,MAAM,CAAC,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QACtD,6EAA6E;QAC7E,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAChD,wEAAwE;QACxE,2EAA2E;QAC3E,0BAA0B;QAC1B,IAAI,6BAA6B,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACtC,CAAC;QACD,qEAAqE;QACrE,0EAA0E;QAC1E,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,IAAI,8BAA8B,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9F,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;QACnC,CAAC;QACD,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,oEAAoE;QACpE,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,kBAAkB,CACjC,MAAM,CAAC,mBAAmB,EAC1B,QAAQ,CAAC,oBAAoB,EAC7B,QAAQ,CAAC,YAAY,CACtB,CAAC;QACF,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC/B,CAAC;QACD,IAAI,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1F,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACpC,CAAC;QACD,wEAAwE;QACxE,0EAA0E;QAC1E,mEAAmE;QACnE,iEAAiE;QACjE,IACE,CAAC,MAAM,CAAC,SAAS;YACjB,QAAQ,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAClC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAClD,CAAC;YACD,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAS,sBAAsB,CAC7B,IAAqB,EACrB,OAAe,EACf,QAA0B,EAC1B,WAAmB,EACnB,WAAmB;IAEnB,IAAI,IAAI,CAAC,kBAAkB,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IACpD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,kBAAkB,CAAC,OAAO,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9C,OAAO,qBAAqB,CAAC,WAAW,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,QAAgC;IACpD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM;YAAE,SAAS;QACtC,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAAC,MAAc,EAAE,GAAG,GAAG,GAAG;IAClD,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;IACrF,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc;IAChD,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;IAC1B,IACE,qFAAqF,CAAC,IAAI,CAAC,IAAI,CAAC;QAChG,gFAAgF;QAChF,iFAAiF;QACjF,4EAA4E;QAC5E,8EAA8E;QAC9E,iFAAiF;QACjF,gFAAgF;QAChF,6EAA6E;QAC7E,8EAA8E;QAC9E,wDAAwD;QACxD,wEAAwE,CAAC,IAAI,CAAC,IAAI,CAAC,EACnF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iEAAiE,EAAE,CAAC;IAC9G,CAAC;IACD,uEAAuE;IACvE,yEAAyE;IACzE,6EAA6E;IAC7E,0EAA0E;IAC1E,sEAAsE;IACtE,kCAAkC;IAClC,IAAI,oHAAoH,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpI,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;IAC5G,CAAC;IACD,IAAI,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,OAAO,EAAE,uEAAuE,EAAE,CAAC;IAC9F,CAAC;IACD,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,OAAO,EAAE,+DAA+D,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC;IACnF,CAAC;IACD,IAAI,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,oDAAoD,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mDAAmD;AACnD,SAAS,aAAa,CAAC,IAA6B;IAClD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC3B,MAAM,CAAC,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpE,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjE,CAAC;AAED,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,0EAA0E;AAC1E,iEAAiE;AACjE,8EAA8E;AAC9E,gEAAgE;AAEhE,0EAA0E;AAC1E,MAAM,CAAC,MAAM,2BAA2B,GAAG,OAAO,CAAC;AAEnD,iFAAiF;AACjF,MAAM,WAAW,GAAG,CAAC,CAAC;AAEtB,mDAAmD;AACnD,MAAM,SAAS,GAAG,yDAAyD,CAAC;AAE5E,yEAAyE;AACzE,SAAS,YAAY,CAAC,CAAc;IAClC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAqB,EACrB,WAAmB,2BAA2B;IAE9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,KAAK,IAAI,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAErD,MAAM,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACxB,wEAAwE;IACxE,qCAAqC;IACrC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ;YAAE,SAAS;QACvC,IAAI,CAAC,KAAK,YAAY;YAAE,SAAS;QACjC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC5B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,yEAAyE;IACzE,uDAAuD;IACvD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,IAAI,IAAI,CAAC;YAAE,MAAM;QACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG;YAAE,SAAS;QAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;QACxD,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;QAChE,IAAI,IAAI,KAAK,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,qEAAqE;IACrE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;YACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;gBAAE,SAAS;YAC3D,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,0EAA0E;IAC1E,yEAAyE;IACzE,uEAAuE;IACvE,mEAAmE;IACnE,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,IAAI,IAAI,CAAC;gBAAE,MAAM;YACrB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG;gBAAE,SAAS;YAC3D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC;YACxD,IAAI,KAAK,IAAI,CAAC;gBAAE,SAAS;YACzB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC;YAChE,IAAI,IAAI,KAAK,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * tool-refusal — the contract for a tool that cannot do its work.
3
+ *
4
+ * Live incident (2026-09-27): a PDF blood report was placed in the project and
5
+ * `read_extract` answered `{ text: '<%PDF-1.4 …raw bytes…>', format: 'pdf',
6
+ * success: true }`. Nothing downstream could tell extraction had failed, so the
7
+ * turn produced a generic Markdown template instead of an assessment, claimed to
8
+ * have "verified that the file was created correctly", and only on the third turn
9
+ * told the user the file had never been read.
10
+ *
11
+ * The failure was NOT the missing extractor. The same file already returns an
12
+ * honest `success: false, error: 'XLSX extraction requires xlsx library'` for the
13
+ * formats it never pretended to support. The failure was that an unsupported
14
+ * format reported success — and a `success: true` on a path that performs no work
15
+ * is the one defect the agent cannot recover from, because the signal it would
16
+ * need to fall back on was replaced with a plausible result.
17
+ *
18
+ * So: a tool that cannot perform its action returns a `ToolRefusal` — a typed,
19
+ * machine-readable "no" with a reason and, where one exists, the concrete thing
20
+ * the caller can do instead. Tools whose backend is optional or unconfigured
21
+ * additionally expose an `isXAvailable()` probe, mirrored into the tool
22
+ * description, so the model can see what is real before choosing a tool (the
23
+ * pattern `src/tools/modality/` already follows).
24
+ */
25
+ /** Why a tool refused. Deliberately small — every case maps to a different recovery. */
26
+ export type ToolRefusalCode =
27
+ /** The input is a format this tool cannot read (no parser/backend for it). */
28
+ 'unsupported_format'
29
+ /** The capability exists but its backend is missing or unconfigured (no key, no binary, no package). */
30
+ | 'not_configured'
31
+ /** The backend is present but the input is outside what it can do (e.g. a PDF page with no text layer). */
32
+ | 'no_data'
33
+ /** Temporarily unusable (backend up but broken, rate-limited, disabled by policy). */
34
+ | 'unavailable';
35
+ export interface ToolRefusal {
36
+ ok: false;
37
+ code: ToolRefusalCode;
38
+ /** One sentence, in the user's language, saying what is missing — never a stack trace. */
39
+ reason: string;
40
+ /** Concrete alternative actions, most useful first (another tool, a CLI command, a user action). */
41
+ alternatives?: string[];
42
+ }
43
+ /** A refusal plus optional recovery detail a specific tool wants to carry. */
44
+ export interface RefusalField {
45
+ code: ToolRefusalCode;
46
+ alternatives?: string[];
47
+ }
48
+ /**
49
+ * Build a `ToolRefusal`. `alternatives` is dropped when empty so a refusal never
50
+ * renders an empty "alternatives: []" that reads like a real (empty) answer.
51
+ */
52
+ export declare function refuse(code: ToolRefusalCode, reason: string, alternatives?: string[]): ToolRefusal;
53
+ /**
54
+ * The refusal fields to spread into a tool's own success-shaped result, so a
55
+ * legacy `{ success: boolean, error?: string }` payload becomes machine-readable
56
+ * without changing its shape for existing readers.
57
+ */
58
+ export declare function refusalFields(code: ToolRefusalCode, alternatives?: string[]): RefusalField;
59
+ /** True when `value` is a well-formed `ToolRefusal` (ok === false + a known code). */
60
+ export declare function isToolRefusal(value: unknown): value is ToolRefusal;
61
+ /**
62
+ * One-line, model-facing rendering of a refusal. Tools that already return JSON
63
+ * keep returning JSON; this is for the surfaces that print a single string.
64
+ */
65
+ export declare function formatRefusal(r: ToolRefusal): string;
66
+ /** Human-readable phrase per code, for UI surfaces that show a badge. */
67
+ export declare function refusalLabel(code: ToolRefusalCode): string;
68
+ //# sourceMappingURL=tool-refusal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-refusal.d.ts","sourceRoot":"","sources":["../../src/tools/tool-refusal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,wFAAwF;AACxF,MAAM,MAAM,eAAe;AACzB,8EAA8E;AAC5E,oBAAoB;AACtB,wGAAwG;GACtG,gBAAgB;AAClB,2GAA2G;GACzG,SAAS;AACX,sFAAsF;GACpF,aAAa,CAAC;AAElB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,KAAK,CAAC;IACV,IAAI,EAAE,eAAe,CAAC;IACtB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,oGAAoG;IACpG,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAID;;;GAGG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,eAAe,EACrB,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAM,EAAO,GAC1B,WAAW,CAIb;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,eAAe,EACrB,YAAY,GAAE,MAAM,EAAO,GAC1B,YAAY,CAId;AAID,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAIlE;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAGpD;AAED,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,CAO1D"}