@nookplot/runtime 0.5.145 → 0.5.147

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 (153) hide show
  1. package/dist/__tests__/apiMarketplace.test.js +2 -189
  2. package/dist/__tests__/apiMarketplace.test.js.map +1 -1
  3. package/dist/__tests__/autonomous.dedup.test.js +0 -11
  4. package/dist/__tests__/autonomous.dedup.test.js.map +1 -1
  5. package/dist/__tests__/autonomous.getAvailableActions.test.js +1 -13
  6. package/dist/__tests__/autonomous.getAvailableActions.test.js.map +1 -1
  7. package/dist/__tests__/autonomous.v11OpenSignals.test.js +10 -0
  8. package/dist/__tests__/autonomous.v11OpenSignals.test.js.map +1 -1
  9. package/dist/__tests__/bdAgentPack.test.js +1 -1
  10. package/dist/__tests__/bdAgentPack.test.js.map +1 -1
  11. package/dist/__tests__/bounties.test.js +0 -12
  12. package/dist/__tests__/bounties.test.js.map +1 -1
  13. package/dist/__tests__/codegen-drift.test.js +1 -3
  14. package/dist/__tests__/codegen-drift.test.js.map +1 -1
  15. package/dist/__tests__/conversation/modelThresholdsParity.test.js +14 -19
  16. package/dist/__tests__/conversation/modelThresholdsParity.test.js.map +1 -1
  17. package/dist/__tests__/economy.frontierInference.test.d.ts +2 -0
  18. package/dist/__tests__/economy.frontierInference.test.d.ts.map +1 -0
  19. package/dist/__tests__/economy.frontierInference.test.js +61 -0
  20. package/dist/__tests__/economy.frontierInference.test.js.map +1 -0
  21. package/dist/__tests__/economy.surplusBranch.test.js +2 -66
  22. package/dist/__tests__/economy.surplusBranch.test.js.map +1 -1
  23. package/dist/__tests__/helpers/mockRuntime.d.ts.map +1 -1
  24. package/dist/__tests__/helpers/mockRuntime.js +0 -7
  25. package/dist/__tests__/helpers/mockRuntime.js.map +1 -1
  26. package/dist/__tests__/pack.test.js +14 -14
  27. package/dist/__tests__/packLoader.test.js +4 -4
  28. package/dist/__tests__/presetLoader.test.js +42 -42
  29. package/dist/__tests__/sandbox.test.js +24 -24
  30. package/dist/__tests__/surplusInference.test.js +54 -8
  31. package/dist/__tests__/surplusInference.test.js.map +1 -1
  32. package/dist/actionCatalog.d.ts.map +1 -1
  33. package/dist/actionCatalog.generated.d.ts +1 -1
  34. package/dist/actionCatalog.generated.d.ts.map +1 -1
  35. package/dist/actionCatalog.generated.js +27 -152
  36. package/dist/actionCatalog.generated.js.map +1 -1
  37. package/dist/actionCatalog.js +10 -0
  38. package/dist/actionCatalog.js.map +1 -1
  39. package/dist/api-marketplace.d.ts +0 -146
  40. package/dist/api-marketplace.d.ts.map +1 -1
  41. package/dist/api-marketplace.js +0 -218
  42. package/dist/api-marketplace.js.map +1 -1
  43. package/dist/autonomous.d.ts +9 -16
  44. package/dist/autonomous.d.ts.map +1 -1
  45. package/dist/autonomous.js +59 -276
  46. package/dist/autonomous.js.map +1 -1
  47. package/dist/bounties.d.ts +0 -8
  48. package/dist/bounties.d.ts.map +1 -1
  49. package/dist/bounties.js +0 -2
  50. package/dist/bounties.js.map +1 -1
  51. package/dist/contentSafety.d.ts +1 -1
  52. package/dist/contentSafety.d.ts.map +1 -1
  53. package/dist/contentSafety.js +2 -6
  54. package/dist/contentSafety.js.map +1 -1
  55. package/dist/conversation/modelLimits.js +17 -17
  56. package/dist/discovery.js +1 -1
  57. package/dist/discovery.js.map +1 -1
  58. package/dist/economy.d.ts +15 -10
  59. package/dist/economy.d.ts.map +1 -1
  60. package/dist/economy.js +29 -16
  61. package/dist/economy.js.map +1 -1
  62. package/dist/frontierPass.d.ts +30 -0
  63. package/dist/frontierPass.d.ts.map +1 -0
  64. package/dist/frontierPass.js +42 -0
  65. package/dist/frontierPass.js.map +1 -0
  66. package/dist/identity.d.ts +0 -51
  67. package/dist/identity.d.ts.map +1 -1
  68. package/dist/identity.js +0 -50
  69. package/dist/identity.js.map +1 -1
  70. package/dist/index.d.ts +3 -18
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +2 -15
  73. package/dist/index.js.map +1 -1
  74. package/dist/inference/surplusInference.d.ts +29 -1
  75. package/dist/inference/surplusInference.d.ts.map +1 -1
  76. package/dist/inference/surplusInference.js +132 -15
  77. package/dist/inference/surplusInference.js.map +1 -1
  78. package/dist/signalActionMap.d.ts.map +1 -1
  79. package/dist/signalActionMap.js +13 -15
  80. package/dist/signalActionMap.js.map +1 -1
  81. package/dist/swarms.d.ts +0 -13
  82. package/dist/swarms.d.ts.map +1 -1
  83. package/dist/swarms.js +0 -4
  84. package/dist/swarms.js.map +1 -1
  85. package/dist/tools.js +1 -1
  86. package/dist/tools.js.map +1 -1
  87. package/dist/types.d.ts +1 -22
  88. package/dist/types.d.ts.map +1 -1
  89. package/package.json +1 -1
  90. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts +0 -2
  91. package/dist/__tests__/autonomous.goalBootstrap.test.d.ts.map +0 -1
  92. package/dist/__tests__/autonomous.goalBootstrap.test.js +0 -148
  93. package/dist/__tests__/autonomous.goalBootstrap.test.js.map +0 -1
  94. package/dist/__tests__/autonomous.miningTrack.test.d.ts +0 -2
  95. package/dist/__tests__/autonomous.miningTrack.test.d.ts.map +0 -1
  96. package/dist/__tests__/autonomous.miningTrack.test.js +0 -38
  97. package/dist/__tests__/autonomous.miningTrack.test.js.map +0 -1
  98. package/dist/__tests__/autonomous.payApi.test.d.ts +0 -2
  99. package/dist/__tests__/autonomous.payApi.test.d.ts.map +0 -1
  100. package/dist/__tests__/autonomous.payApi.test.js +0 -73
  101. package/dist/__tests__/autonomous.payApi.test.js.map +0 -1
  102. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts +0 -2
  103. package/dist/__tests__/autonomous.workspaceOpportunity.test.d.ts.map +0 -1
  104. package/dist/__tests__/autonomous.workspaceOpportunity.test.js +0 -212
  105. package/dist/__tests__/autonomous.workspaceOpportunity.test.js.map +0 -1
  106. package/dist/__tests__/goalLoop.test.d.ts +0 -2
  107. package/dist/__tests__/goalLoop.test.d.ts.map +0 -1
  108. package/dist/__tests__/goalLoop.test.js +0 -358
  109. package/dist/__tests__/goalLoop.test.js.map +0 -1
  110. package/dist/__tests__/loadProfile.test.d.ts +0 -8
  111. package/dist/__tests__/loadProfile.test.d.ts.map +0 -1
  112. package/dist/__tests__/loadProfile.test.js +0 -134
  113. package/dist/__tests__/loadProfile.test.js.map +0 -1
  114. package/dist/__tests__/mining.test.d.ts +0 -2
  115. package/dist/__tests__/mining.test.d.ts.map +0 -1
  116. package/dist/__tests__/mining.test.js +0 -306
  117. package/dist/__tests__/mining.test.js.map +0 -1
  118. package/dist/__tests__/signalActionMap.test.d.ts +0 -17
  119. package/dist/__tests__/signalActionMap.test.d.ts.map +0 -1
  120. package/dist/__tests__/signalActionMap.test.js +0 -165
  121. package/dist/__tests__/signalActionMap.test.js.map +0 -1
  122. package/dist/__tests__/usdcBudget.test.d.ts +0 -2
  123. package/dist/__tests__/usdcBudget.test.d.ts.map +0 -1
  124. package/dist/__tests__/usdcBudget.test.js +0 -128
  125. package/dist/__tests__/usdcBudget.test.js.map +0 -1
  126. package/dist/__tests__/x402.test.d.ts +0 -2
  127. package/dist/__tests__/x402.test.d.ts.map +0 -1
  128. package/dist/__tests__/x402.test.js +0 -117
  129. package/dist/__tests__/x402.test.js.map +0 -1
  130. package/dist/goal/goalLoop.d.ts +0 -78
  131. package/dist/goal/goalLoop.d.ts.map +0 -1
  132. package/dist/goal/goalLoop.js +0 -388
  133. package/dist/goal/goalLoop.js.map +0 -1
  134. package/dist/goal/goalPrompts.d.ts +0 -20
  135. package/dist/goal/goalPrompts.d.ts.map +0 -1
  136. package/dist/goal/goalPrompts.js +0 -54
  137. package/dist/goal/goalPrompts.js.map +0 -1
  138. package/dist/goal/types.d.ts +0 -102
  139. package/dist/goal/types.d.ts.map +0 -1
  140. package/dist/goal/types.js +0 -7
  141. package/dist/goal/types.js.map +0 -1
  142. package/dist/loadProfile.d.ts +0 -100
  143. package/dist/loadProfile.d.ts.map +0 -1
  144. package/dist/loadProfile.js +0 -221
  145. package/dist/loadProfile.js.map +0 -1
  146. package/dist/usdcBudget.d.ts +0 -90
  147. package/dist/usdcBudget.d.ts.map +0 -1
  148. package/dist/usdcBudget.js +0 -155
  149. package/dist/usdcBudget.js.map +0 -1
  150. package/dist/x402.d.ts +0 -69
  151. package/dist/x402.d.ts.map +0 -1
  152. package/dist/x402.js +0 -139
  153. package/dist/x402.js.map +0 -1
package/dist/x402.js DELETED
@@ -1,139 +0,0 @@
1
- /**
2
- * Optional convenience wrapper for paying marketplace API listings per-call via
3
- * x402 (ROADMAP_x402-marketplace-fees.md v2). This is NOT required — any standard
4
- * x402 client (Base MCP, x402-axios, x402-py) can pay a Nookplot listing because
5
- * the gateway speaks the standard `"exact"` scheme. This wrapper just removes the
6
- * boilerplate for agents already holding an ethers signer.
7
- *
8
- * Unlike the agreement-based {@link ApiMarketplaceManager.proxyRequest}, the x402
9
- * path is **accountless**: there is no gateway API key and no on-chain agreement.
10
- * The buyer's per-call EIP-3009 USDC authorization IS the payment + the auth.
11
- *
12
- * Flow:
13
- * 1. Probe `GET/POST /v1/api-x402/:listingId/*` with no payment → HTTP 402 +
14
- * the `accepts[]` challenge (splitter `payTo`, USDC `asset`, price).
15
- * 2. Sign an EIP-3009 `ReceiveWithAuthorization` over the advertised amount.
16
- * 3. Re-send the request with the encoded payment header → upstream response.
17
- *
18
- * v2.0 accepts USDC only, so the token's EIP-712 domain is the USDC default
19
- * ("USD Coin" / "2"). NOOK (a different domain) is deferred to v2.1.
20
- *
21
- * @module x402
22
- */
23
- import { ethers } from "ethers";
24
- /** EIP-3009 ReceiveWithAuthorization typed-data fields (USDC FiatTokenV2). */
25
- const RECEIVE_WITH_AUTHORIZATION_TYPES = {
26
- ReceiveWithAuthorization: [
27
- { name: "from", type: "address" },
28
- { name: "to", type: "address" },
29
- { name: "value", type: "uint256" },
30
- { name: "validAfter", type: "uint256" },
31
- { name: "validBefore", type: "uint256" },
32
- { name: "nonce", type: "bytes32" },
33
- ],
34
- };
35
- const DEFAULT_TIMEOUT_SECONDS = 600;
36
- export class X402Manager {
37
- gatewayUrl;
38
- chainIdOverride;
39
- constructor(gatewayUrl, opts = {}) {
40
- this.gatewayUrl = gatewayUrl.replace(/\/+$/, "");
41
- this.chainIdOverride = opts.chainId;
42
- }
43
- /**
44
- * Pay for and make a single metered call to a marketplace API listing.
45
- *
46
- * @param input The listing + upstream request.
47
- * @param signer An ethers signer holding the buyer's USDC (e.g. `new ethers.Wallet(pk)`).
48
- */
49
- async payAndCall(input, signer) {
50
- const method = (input.method ?? "GET").toUpperCase();
51
- const path = String(input.path).replace(/^\/+/, "");
52
- const url = `${this.gatewayUrl}/v1/api-x402/${input.listingId}/${path}`;
53
- const bodyStr = input.body !== undefined ? JSON.stringify(input.body) : "";
54
- const makeInit = (extraHeaders) => {
55
- const headers = {
56
- "Content-Type": "application/json",
57
- ...input.headers,
58
- ...extraHeaders,
59
- };
60
- const init = { method, headers };
61
- if (bodyStr && !["GET", "HEAD"].includes(method))
62
- init.body = bodyStr;
63
- return init;
64
- };
65
- // 1. Probe — the gateway answers 402 with the payment challenge.
66
- const probe = await fetch(url, makeInit());
67
- if (probe.status !== 402) {
68
- return toResult(probe, false);
69
- }
70
- const challenge = (await probe.json());
71
- const accept = challenge.accepts?.[0];
72
- if (!accept || accept.scheme !== "exact") {
73
- throw new Error("x402: gateway did not offer a supported 'exact' payment option");
74
- }
75
- // Hard spend guard — refuse BEFORE signing if the quoted price exceeds the
76
- // caller's per-call ceiling (the budgetUsdc cap). No funds move.
77
- if (input.maxAmountBaseUnits !== undefined) {
78
- const quote = BigInt(accept.maxAmountRequired);
79
- if (quote > input.maxAmountBaseUnits) {
80
- throw new Error(`x402 spend blocked: quoted ${quote} base units exceeds the allowed ${input.maxAmountBaseUnits} for this call (USDC spend cap)`);
81
- }
82
- }
83
- // 2. Sign the EIP-3009 authorization over the advertised amount.
84
- const from = await signer.getAddress();
85
- const chainId = this.chainIdOverride ?? parseChainId(accept.network);
86
- const nowSec = Math.floor(Date.now() / 1000);
87
- const authorization = {
88
- from,
89
- to: accept.payTo,
90
- value: accept.maxAmountRequired,
91
- validAfter: 0,
92
- validBefore: nowSec + (accept.maxTimeoutSeconds ?? DEFAULT_TIMEOUT_SECONDS),
93
- nonce: ethers.hexlify(ethers.randomBytes(32)),
94
- };
95
- const domain = {
96
- name: accept.extra?.eip712?.name ?? "USD Coin",
97
- version: accept.extra?.eip712?.version ?? "2",
98
- chainId,
99
- verifyingContract: accept.asset,
100
- };
101
- const signature = await signer.signTypedData(domain, RECEIVE_WITH_AUTHORIZATION_TYPES, authorization);
102
- // 3. Re-send with the encoded payment header.
103
- const header = encodePaymentHeader({ payload: { authorization, signature } });
104
- const paid = await fetch(url, makeInit({ "PAYMENT-SIGNATURE": header }));
105
- return toResult(paid, true, accept.maxAmountRequired);
106
- }
107
- }
108
- function parseChainId(network) {
109
- const m = /^eip155:(\d+)$/.exec(network);
110
- if (m)
111
- return Number(m[1]);
112
- if (network === "base")
113
- return 8453;
114
- if (network === "base-sepolia")
115
- return 84532;
116
- throw new Error(`x402: unsupported network "${network}"`);
117
- }
118
- function encodePaymentHeader(payload) {
119
- const json = JSON.stringify(payload);
120
- return typeof Buffer !== "undefined"
121
- ? Buffer.from(json, "utf8").toString("base64")
122
- : btoa(json);
123
- }
124
- async function toResult(res, paid, amountPaidBaseUnits) {
125
- const text = await res.text();
126
- let body;
127
- try {
128
- body = JSON.parse(text);
129
- }
130
- catch {
131
- body = text;
132
- }
133
- const headers = {};
134
- res.headers.forEach((val, key) => {
135
- headers[key] = val;
136
- });
137
- return { status: res.status, headers, body, paid, ...(paid ? { amountPaidBaseUnits } : {}) };
138
- }
139
- //# sourceMappingURL=x402.js.map
package/dist/x402.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"x402.js","sourceRoot":"","sources":["../src/x402.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,8EAA8E;AAC9E,MAAM,gCAAgC,GAAG;IACvC,wBAAwB,EAAE;QACxB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACF,CAAC;AAEF,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAgDpC,MAAM,OAAO,WAAW;IACL,UAAU,CAAS;IACnB,eAAe,CAAU;IAE1C,YAAY,UAAkB,EAAE,OAA2B,EAAE;QAC3D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,KAA0B,EAAE,MAAqB;QAChE,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,gBAAgB,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE3E,MAAM,QAAQ,GAAG,CAAC,YAAqC,EAAe,EAAE;YACtE,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,GAAG,KAAK,CAAC,OAAO;gBAChB,GAAG,YAAY;aAChB,CAAC;YACF,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC9C,IAAI,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,iEAAiE;QACjE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACzB,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAA+B,CAAC;QACrE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;QACpF,CAAC;QAED,2EAA2E;QAC3E,iEAAiE;QACjE,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC/C,IAAI,KAAK,GAAG,KAAK,CAAC,kBAAkB,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,mCAAmC,KAAK,CAAC,kBAAkB,iCAAiC,CAChI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iEAAiE;QACjE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG;YACpB,IAAI;YACJ,EAAE,EAAE,MAAM,CAAC,KAAK;YAChB,KAAK,EAAE,MAAM,CAAC,iBAAiB;YAC/B,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,iBAAiB,IAAI,uBAAuB,CAAC;YAC3E,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;SAC9C,CAAC;QACF,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,UAAU;YAC9C,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,IAAI,GAAG;YAC7C,OAAO;YACP,iBAAiB,EAAE,MAAM,CAAC,KAAK;SAChC,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,gCAAgC,EAAE,aAAa,CAAC,CAAC;QAEtG,8CAA8C;QAC9C,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC9E,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;CACF;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3B,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,OAAO,KAAK,cAAc;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,OAAO,MAAM,KAAK,WAAW;QAClC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC9C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,QAAQ,CACrB,GAAa,EACb,IAAa,EACb,mBAA4B;IAE5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,GAAG,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/F,CAAC"}