@kamino-finance/klend-sdk 9.0.0 → 9.0.1

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.
@@ -1,4 +1,4 @@
1
- import { KaminoMarket, KaminoObligation } from '../classes';
1
+ import { KaminoMarket, KaminoObligation, KaminoReserve } from '../classes';
2
2
  import { SwapIxsProvider, SwapQuoteProvider } from '../leverage';
3
3
  import { Account, Address, Instruction, Option, Slot, TransactionSigner } from '@solana/kit';
4
4
  import Decimal from 'decimal.js';
@@ -140,4 +140,5 @@ export interface SwapCollIxsOutputs<QuoteResponse> {
140
140
  * - `debt` uses a debt-token flash loan (requires `inputs.debtReserveAddress`)
141
141
  */
142
142
  export declare function getSwapCollIxs<QuoteResponse>(inputs: SwapCollIxsInputs<QuoteResponse>): Promise<Array<SwapCollIxsOutputs<QuoteResponse>>>;
143
+ export declare function calculateViaDebtFlashBorrowLamports(outstandingDebtLamports: Decimal, minRemainingDebtValue: Decimal, debtReserve: KaminoReserve): Decimal;
143
144
  //# sourceMappingURL=swap_collateral_operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swap_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAA2C,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAU1G,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAgB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAI1E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,aAAa;IAC9C;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,EAAE,IAAI,CAAC;IAClB,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,aAAa;IAC/C;;OAEG;IACH,GAAG,EAAE,WAAW,EAAE,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,EAAE;QACjB;;WAEG;QACH,SAAS,EAAE;YACT;;eAEG;YACH,sBAAsB,EAAE,OAAO,CAAC;YAChC;;eAEG;YACH,mBAAmB,EAAE,OAAO,CAAC;YAC7B;;eAEG;YACH,iBAAiB,EAAE,OAAO,CAAC;SAC5B,CAAC;QAEF;;WAEG;QACH,YAAY,EAAE;YACZ;;eAEG;YACH,UAAU,EAAE,OAAO,CAAC;YACpB;;eAEG;YACH,WAAW,EAAE,OAAO,CAAC;YACrB;;;eAGG;YACH,YAAY,EAAE,OAAO,CAAC;YACtB;;eAEG;YACH,aAAa,EAAE,OAAO,CAAC;YACvB;;eAEG;YACH,aAAa,CAAC,EAAE,aAAa,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAChD,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACvC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CASnD"}
1
+ {"version":3,"file":"swap_collateral_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAA2C,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAU1G,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAgB,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC3G,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAI1E;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,aAAa;IAC9C;;;;OAIG;IACH,oBAAoB,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;OAEG;IACH,wBAAwB,EAAE,OAAO,CAAC;IAElC;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,wBAAwB,CAAC;IAE5C;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAI7B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1B,WAAW,EAAE,IAAI,CAAC;IAClB,uBAAuB,CAAC,EAAE,WAAW,EAAE,CAAC;IACxC,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IACzC,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,aAAa;IAC/C;;OAEG;IACH,GAAG,EAAE,WAAW,EAAE,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC;IAE5C;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,iBAAiB,EAAE;QACjB;;WAEG;QACH,SAAS,EAAE;YACT;;eAEG;YACH,sBAAsB,EAAE,OAAO,CAAC;YAChC;;eAEG;YACH,mBAAmB,EAAE,OAAO,CAAC;YAC7B;;eAEG;YACH,iBAAiB,EAAE,OAAO,CAAC;SAC5B,CAAC;QAEF;;WAEG;QACH,YAAY,EAAE;YACZ;;eAEG;YACH,UAAU,EAAE,OAAO,CAAC;YACpB;;eAEG;YACH,WAAW,EAAE,OAAO,CAAC;YACrB;;;eAGG;YACH,YAAY,EAAE,OAAO,CAAC;YACtB;;eAEG;YACH,aAAa,EAAE,OAAO,CAAC;YACvB;;eAEG;YACH,aAAa,CAAC,EAAE,aAAa,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,aAAa,EAChD,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,GACvC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC,CASnD;AAkTD,wBAAgB,mCAAmC,CACjD,uBAAuB,EAAE,OAAO,EAChC,qBAAqB,EAAE,OAAO,EAC9B,WAAW,EAAE,aAAa,GACzB,OAAO,CAWT"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getSwapCollIxs = getSwapCollIxs;
7
+ exports.calculateViaDebtFlashBorrowLamports = calculateViaDebtFlashBorrowLamports;
7
8
  const classes_1 = require("../classes");
8
9
  const leverage_1 = require("../leverage");
9
10
  const utils_1 = require("../utils");
@@ -138,12 +139,11 @@ async function getSwapCollViaDebt(inputs) {
138
139
  throw new Error(`Obligation ${context.obligation.obligationAddress} has no borrow in debt reserve ${debtReserve.address} - cannot flash-borrow via debt`);
139
140
  }
140
141
  // Flash-borrow amount: we want to repay most (not all) of the debt, so that the borrow reserve stays in the
141
- // obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. We subtract 1 lamport
142
- // from the current (token-unit) outstanding balance converted to lamports. The on-chain repay is capped at
143
- // `min(passed_amount, outstanding_with_interest)`, so passing slightly under the outstanding keeps dust alive.
142
+ // obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. Leaving only 1 lamport
143
+ // trips klend's min-value guard, so leave at least the market's configured minimum debt value.
144
144
  const outstandingDebtTokens = context.obligation.getBorrowAmountByReserve(debtReserve);
145
145
  const outstandingDebtLamports = outstandingDebtTokens.mul(debtReserve.getMintFactor()).ceil();
146
- const flashBorrowDebtLamports = decimal_js_1.default.max(outstandingDebtLamports.sub(1), new decimal_js_1.default(1));
146
+ const flashBorrowDebtLamports = calculateViaDebtFlashBorrowLamports(outstandingDebtLamports, context.market.getMinNetValueObligation(), debtReserve);
147
147
  const { flashRepayDebtLamports } = calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve, context);
148
148
  const debtIncreaseLamports = calculateDebtIncreaseWithBorrowFeesLamports(flashBorrowDebtLamports, flashRepayDebtLamports, debtReserve, context);
149
149
  // Build fake klend ixs to learn accounts for quoting.
@@ -203,6 +203,16 @@ function calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve,
203
203
  flashRepayDebtLamports: flashBorrowDebtLamports.add(flashLoanFeeLamports),
204
204
  };
205
205
  }
206
+ function calculateViaDebtFlashBorrowLamports(outstandingDebtLamports, minRemainingDebtValue, debtReserve) {
207
+ const minRemainingDebtLamports = minRemainingDebtValue.lte(0)
208
+ ? new decimal_js_1.default(1)
209
+ : minRemainingDebtValue.div(debtReserve.getOracleMarketPrice()).mul(debtReserve.getMintFactor()).ceil().add(1);
210
+ const flashBorrowDebtLamports = outstandingDebtLamports.sub(minRemainingDebtLamports);
211
+ if (flashBorrowDebtLamports.lt(1)) {
212
+ throw new Error(`Outstanding ${debtReserve.symbol} debt (${outstandingDebtLamports} lamports) is too small for the via-debt swap-collateral flow while leaving the market minimum debt value`);
213
+ }
214
+ return flashBorrowDebtLamports;
215
+ }
206
216
  function calculateDebtIncreaseWithBorrowFeesLamports(flashBorrowDebtLamports, flashRepayDebtLamports, debtReserve, context) {
207
217
  return classes_1.KaminoObligation.getDebtWithFeesForBorrowAmount(flashRepayDebtLamports, context.market, debtReserve, (0, kit_1.isSome)(context.referrer))
208
218
  .sub(flashBorrowDebtLamports)
@@ -1 +1 @@
1
- {"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":";;;;;AAiLA,wCAWC;AA5LD,wCAOoB;AACpB,0CAA0G;AAC1G,oCAQkB;AAClB,qCAA2G;AAC3G,4DAAiC;AACjC,iDAA8D;AAE9D,2DAAwE;AACxE,iDAA0G;AAkJ1G;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAClC,MAAwC;IAExC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,YAAY,CAAC;IACjE,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,8GAA8G;AAC9G,uEAAuE;AACvE,8GAA8G;AAE9G,KAAK,UAAU,wBAAwB,CACrC,MAAwC;IAExC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEtD,wDAAwD;IACxD,0CAA0C;IAC1C,qEAAqE;IACrE,8DAA8D;IAC9D,wEAAwE;IACxE,kFAAkF;IAClF,mDAAmD;IACnD,yCAAyC;IACzC,qHAAqH;IACrH,cAAc;IACd,iGAAiG;IAEjG,8FAA8F;IAC9F,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAClG,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAEpF,+FAA+F;IAC/F,0FAA0F;IAC1F,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,IAAA,mCAAoB,EAClB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,oBAAoB,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,oBAAoB,eAAe,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,aAAa,CACpL,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE3F,OAAO;YACL,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YACrD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACpE,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,6BAA6B;oBAC7E,iBAAiB,EAAE,eAAe,CAAC,aAAa;iBACjD;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,6CAA6C;AAC7C,8GAA8G;AAE9G,KAAK,UAAU,wBAAwB,CACrC,MAAwC;IAExC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtD,0FAA0F;IAC1F,+FAA+F;IAC/F,4FAA4F;IAC5F,+FAA+F;IAC/F,gGAAgG;IAChG,MAAM,6BAA6B,GAAG,IAAA,mCAAoB,EACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACF,MAAM,+BAA+B,GAAG,wCAAwC,CAC9E,6BAA6B,EAC7B,OAAO,CACR,CAAC;IACF,MAAM,6BAA6B,GAAG,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IACrH,MAAM,2BAA2B,GAAG,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjH,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC9C,IAAI,EACJ,gCAAgC,EAChC,+BAA+B,EAC/B,OAAO,CACR,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,4FAA4F;IAC5F,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,+BAA+B,CAChC,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,kCAAkC,6BAA6B,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAAS,eAAe,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,oBAAoB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CACnQ,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,IAAI,EACJ,eAAe,CAAC,aAAa,EAC7B,+BAA+B,EAC/B,OAAO,CACR,CAAC;QAEF,OAAO;YACL,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YACrD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACpE,mBAAmB,EAAE,6BAA6B;oBAClD,iBAAiB,EAAE,2BAA2B;iBAC/C;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,wCAAwC,CAC/C,6BAAsC,EACtC,OAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAC5E,6BAA6B,EAC7B,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAC3C,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,OAAO,6BAA6B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AACnF,CAAC;AAED,8GAA8G;AAC9G,sCAAsC;AACtC,8GAA8G;AAE9G,KAAK,UAAU,kBAAkB,CAC/B,MAAwC;IAExC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAEjG,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;IACtH,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,cAAc,OAAO,CAAC,UAAU,CAAC,iBAAiB,kCAAkC,WAAW,CAAC,OAAO,iCAAiC,CACzI,CAAC;IACJ,CAAC;IAED,4GAA4G;IAC5G,mHAAmH;IACnH,2GAA2G;IAC3G,+GAA+G;IAC/G,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvF,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,MAAM,uBAAuB,GAAG,oBAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,MAAM,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC,uBAAuB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnH,MAAM,oBAAoB,GAAG,2CAA2C,CACtE,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,IAAI,EACJ,gCAAgC,EAChC,uBAAuB,EACvB,OAAO,EACP,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjF,0FAA0F;IAC1F,sGAAsG;IACtG,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,IAAA,mCAAoB,EAClB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,+BAA+B,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAC1F,eAAe,CAAC,aAClB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,qBAAqB,uBAAuB,CAAC,GAAG,CAClF,WAAW,CAAC,aAAa,EAAE,CAC5B,IAAI,WAAW,CAAC,MAAM,EAAE,CAC1B,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE;YAC1E,WAAW;YACX,oBAAoB;SACrB,CAAC,CAAC;QACH,8BAA8B,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,IAAI,EACJ,eAAe,CAAC,aAAa,EAC7B,uBAAuB,EACvB,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,OAAO;YACL,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YAClD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,WAAW,CAAC,gBAAgB,EAAE;oBACtD,mBAAmB,EAAE,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC7E,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB;iBACpE;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,oBAA6B,EAAE,WAA0B;IAC/F,iHAAiH;IACjH,6GAA6G;IAC7G,gFAAgF;IAChF,MAAM,mBAAmB,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzF,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IACD,MAAM,uBAAuB,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;IAChE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC1E,IAAI,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,CAAC,OAAO,0CAA0C,gBAAgB,2DAA2D,oBAAoB,yDAAyD,CACtO,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CACvC,uBAAgC,EAChC,WAA0B,EAC1B,OAA6B;IAK7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,aAAa,CAC9D,uBAAuB,EACvB,WAAW,CAAC,eAAe,EAAE,EAC7B,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,MAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO;QACL,oBAAoB;QACpB,sBAAsB,EAAE,uBAAuB,CAAC,GAAG,CAAC,oBAAoB,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAS,2CAA2C,CAClD,uBAAgC,EAChC,sBAA+B,EAC/B,WAA0B,EAC1B,OAA6B;IAE7B,OAAO,0BAAgB,CAAC,8BAA8B,CACpD,sBAAsB,EACtB,OAAO,CAAC,MAAM,EACd,WAAW,EACX,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB;SACE,GAAG,CAAC,uBAAuB,CAAC;SAC5B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAoB,EAAE,OAAsB;IACpF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,oBAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AA4BD,SAAS,qBAAqB,CAC5B,MAAwC;IAExC,IAAI,MAAM,CAAC,wBAAwB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CACjE,MAAM,CAAC,wBAAwB,EAC/B,oBAAoB,CACrB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CACjE,MAAM,CAAC,wBAAwB,EAC/B,mBAAmB,CACpB,CAAC;IACF,OAAO;QACL;YACE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SACxG;QACD;YACE,uBAAuB,EACrB,MAAM,CAAC,uBAAuB,IAAI,IAAA,yCAAiC,EAAC,iCAAyB,CAAC;YAChG,iBAAiB;YACjB,iBAAiB;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,gCAAgC,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kDAAkD;AA6B3G,KAAK,UAAU,qBAAqB,CAClC,IAAkB,EAClB,uBAAgC,EAChC,OAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,6BAA6B,GAAG,sCAAsC,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC/G,MAAM,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,GAAG,MAAM,eAAe,CAC/E,OAAO,CAAC,iBAAiB,EACzB,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAC5E,QAAQ,CAAC,MAAM,EACf,aAAa,EACb,OAAO,CACR,CAAC;IAEF,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IACnG,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,CAC1D,IAAI,EACJ,oBAAoB,CAAC,qBAAqB,EAC1C,OAAO,CACR,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE5F,OAAO;QACL,QAAQ;QACR,aAAa,EAAE;YACb,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;YACrD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE;SAC1D;QACD,uBAAuB;QACvB,oBAAoB,EAAE,oBAAoB,CAAC,GAAG;QAC9C,qBAAqB;QACrB,sBAAsB;QACtB,UAAU;QACV,iBAAiB,EAAE;YACjB,6BAA6B;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,2BAAoC,EACpC,OAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAC5E,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAC1E,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAC3C,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7G,OAAO,2BAA2B,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA0B,EAAE,eAA+B;IACpF,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,uBAAuB;QAChC,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,qBAAqB;QACjC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,QAAQ,CAAC,sBAAsB;QAC/B,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAkB,EAClB,uBAAgC,EAChC,+BAAwC,EACxC,OAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,GACxG,MAAM,eAAe,CACnB,OAAO,CAAC,iBAAiB,EACzB,+BAA+B,EAC/B,QAAQ,CAAC,MAAM,EACf,aAAa,EACb,OAAO,CACR,CAAC;IAEJ,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC7F,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,CAC1D,IAAI,EACJ,oBAAoB,CAAC,qBAAqB,EAC1C,OAAO,CACR,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE5F,OAAO;QACL,QAAQ;QACR,uBAAuB;QACvB,oBAAoB,EAAE,oBAAoB,CAAC,GAAG;QAC9C,qBAAqB;QACrB,sBAAsB;QACtB,UAAU;QACV,aAAa,EAAE;YACb,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;YACrD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE;SAC1D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAmC,EAAE,eAA+B;IAC7F,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,uBAAuB;QAChC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,qBAAqB;QACjC,QAAQ,CAAC,sBAAsB;QAC/B,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAqBD,KAAK,UAAU,kBAAkB,CAC/B,IAAkB,EAClB,uBAAgC,EAChC,uBAAgC,EAChC,OAA6B,EAC7B,WAA0B;IAE1B,2DAA2D;IAC3D,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,2DAA2D;IAC3D,MAAM,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC,uBAAuB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnH,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAA,mCAAwB,EAAC;QACpG,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,qBAAqB,EAAE,OAAO,CAAC,KAAK;QACpC,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;QACxE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;QACjD,OAAO,EAAE,WAAW;QACpB,cAAc,EAAE,uBAAuB;QACvC,cAAc,EAAE,OAAQ;QACxB,eAAe,EAAE,IAAA,UAAI,GAAE;QACvB,kBAAkB,EAAE,IAAA,UAAI,GAAE;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;KACpC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC;QACpD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,KAAK;QAC5B,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5E,6GAA6G;IAC7G,mHAAmH;IACnH,sDAAsD;IACtD,MAAM,sBAAsB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,MAAM,sBAAY,CAAC,iBAAiB,CAAC;QAC1D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/C,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,KAAK;QAC5B,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,SAAS;KACzC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAExF,qFAAqF;IACrF,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC,CAAC;IAC1E,MAAM,yCAAyC,GAC7C,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC;QAC7C,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3G,MAAM,mCAAmC,GACvC,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,yCAAyC,CAAC;IAClH,MAAM,aAAa,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC;QACxD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,gCAAgC,CAAC,uBAAuB,EAAE,OAAO,CAAC,iBAAiB,CAAC;QAC5F,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,mCAAmC;QAC1D,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,mCAAmC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;QACtG,wBAAwB,EAAE,IAAI,CAAC,mBAAmB;YAChD,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YACjE,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAEtF,2GAA2G;IAC3G,qDAAqD;IACrD,MAAM,4BAA4B,GAChC,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,mCAAmC,CAAC;IAC5G,MAAM,YAAY,GAAG,MAAM,sBAAY,CAAC,eAAe,CAAC;QACtD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,4BAA4B;QACnD,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;QAC/F,wBAAwB,EAAE;YACxB,8GAA8G;YAC9G,kFAAkF;YAClF,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACvF,4GAA4G;YAC5G,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SAC5F;KACF,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEzG,OAAO;QACL,QAAQ;QACR,iBAAiB;QACjB,YAAY;QACZ,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,aAAa,EAAE;YACb,kBAAkB,EAAE,WAAW,CAAC,OAAO;YACvC,YAAY,EAAE,WAAW,CAAC,eAAe,EAAE;SAC5C;QACD,iBAAiB,EAAE;YACjB,qBAAqB,EAAE,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;SAC/E;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAiC,EAAE,eAA+B;IACxF,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,iBAAiB;QAC1B,GAAG,QAAQ,CAAC,YAAY;QACxB,GAAG,QAAQ,CAAC,qBAAqB;QACjC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,aAAa;QACzB,QAAQ,CAAC,gBAAgB;QACzB,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,uDAAuD;AACvD,8GAA8G;AAE9G,KAAK,UAAU,iBAAiB,CAAC,OAA6B,EAAE,WAA2B;IACzF,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,CAAC,KAAK,EAAE;QACtE;YACE,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAClD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;SACnE;QACD;YACE,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAClD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;SACnE;QACD,GAAG,CAAC,WAAW;YACb,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,WAAW,CAAC,gBAAgB,EAAE;oBACpC,YAAY,EAAE,WAAW,CAAC,wBAAwB,EAAE;iBACrD;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,OAAO;QACL,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;QACvE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;QAC3C,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;QAC3C,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG;KACvC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAA6B,EAAE,WAA2B;IACtF,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,MAAM,SAAS,GACb,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,wBAAgB;QACjE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,wBAAgB;QACjE,WAAW,EAAE,gBAAgB,EAAE,KAAK,wBAAgB,CAAC;IACvD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAyB,EAAC,wBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjF,WAAW,CAAC,IAAI,CACd,IAAA,uCAA0B,EACxB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,EACvD,EAAE,cAAc,EAAE,6BAAqB,EAAE,CAC1C,CACF,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAsB,EACtB,cAAuB,EACvB,kBAA0B,EAC1B,cAAuB,EACvB,OAA6B;IAE7B,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAA,mCAAwB,EAAC;QAC/D,aAAa,EAAE,kBAAkB;QACjC,qBAAqB,EAAE,OAAO,CAAC,KAAK;QACpC,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;QACxE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;QACjD,OAAO;QACP,cAAc;QACd,cAAc;QACd,eAAe,EAAE,IAAA,UAAI,GAAE;QACvB,kBAAkB,EAAE,IAAA,UAAI,GAAE;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;KACpC,CAAC,CAAC;IACH,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AAC1F,CAAC;AAOD,KAAK,UAAU,uBAAuB,CACpC,gBAAyB,EACzB,OAA6B;IAE7B,MAAM,qBAAqB,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC;QAC5D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,gCAAgC,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC;QACrF,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,qBAAqB;QAC5C,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC,CAAC;IACH,OAAO;QACL,GAAG,EAAE,sBAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAChD,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,OAA6B;IAC1E,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;IACxE,IAAI,uBAAuB,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACxF,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,qBAAqB,CAAC,uBAAuB,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,IAAkB,EAAE,OAA6B;IACjF,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrH,OAAO,IAAA,mCAAoB,EACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,EACxB,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAkB,EAClB,4BAAqC,EACrC,OAA6B;IAE7B,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,uBAAuB,GAAG,sCAAsC,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACpH,MAAM,kBAAkB,GAAG,MAAM,sBAAY,CAAC,iBAAiB,CAAC;QAC9D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,2BAA2B;QACnC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,uBAAuB,KAAK,SAAS;QAC5D,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,uBAAuB;QACtD,wBAAwB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC1F,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,oBAAoB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAC1D;KACN,CAAC,CAAC;IACH,OAAO,sBAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sCAAsC,CAC7C,IAAkB,EAClB,4BAAqC,EACrC,OAA6B;IAE7B,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;IAChF,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC,CAAC;IAC9E,IAAI,yBAAyB,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,+BAA+B,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,yBAAyB,CAAC;QACnC,CAAC;QACD,IAAI,+BAA+B,KAAK,yBAAyB,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC;AACH,CAAC;AAaD;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAkB,EAClB,aAAwB,EACxB,OAAuC,EACvC,cAAuB;IAEvB,MAAM,qBAAqB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,MAAM,kBAAkB,GAAG;QACzB,mBAAmB,EAAE,cAAc;QACnC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;QACvD,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;KACzD,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAClF,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE3G,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE;QAC3D,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxF,OAAO;YACL,aAAa;YACb,qBAAqB;YACrB,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC,YAAY,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC;YAChF,IAAI,EAAE,sBAAsB,CAAC,YAAY;YACzC,iBAAiB,EAAE;gBACjB,aAAa,EAAE,sBAAsB,CAAC,KAAK,CAAC,aAAa;aAC1D;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAkB,EAClB,gBAAyB,EACzB,OAA6B,EAC7B,OAGC;IAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,oBAAoB,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,uBAAuB,oBAAoB,CAAC,MAAM,mDAAmD,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,oCAAoC,kBAAkB,mCAAmC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CACjI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAU;YAC5C,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;YACrC,OAAO,CAAC,iBAAiB,CAAC,OAAO;SAClC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CACb,uBAAuB,oBAAoB,CAAC,IAAI,uDAAuD,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAC/I,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,kBAAkB,IAAI,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CACb,0CAA0C,kBAAkB,mCAAmC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CACvI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4GAA4G;IAC5G,wGAAwG;IACxG,mHAAmH;IACnH,kHAAkH;IAClH,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrH,MAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB;QACxD,CAAC,CAAC,OAAO,CAAC,UAAU;aACf,yBAAyB,CAAC,OAAO,CAAC,iBAAiB,CAAC;aACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACnD,CAAC,CAAC,IAAA,2CAA4B,EAC1B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,kBAAkB,CACnB,CAAC;IACN,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IACzG,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,8BAA8B,CAAC;QACvE,sBAAsB,EAAE,yBAAyB;QACjD,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACzD,qBAAqB,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACtF,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACxD,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;QACnD,oBAAoB,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;QAClD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC;QAC9D,IAAI,EAAE,OAAO,CAAC,WAAW;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACzF,IAAI,cAAc,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,uBAAuB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAAS,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,yCAAyC,cAAc,CAAC,WAAW,0BAA0B,MAAM,EAAE,CACrP,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"swap_collateral_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_collateral_operations.ts"],"names":[],"mappings":";;;;;AAiLA,wCAWC;AAkTD,kFAeC;AA7fD,wCAOoB;AACpB,0CAA0G;AAC1G,oCAQkB;AAClB,qCAA2G;AAC3G,4DAAiC;AACjC,iDAA8D;AAE9D,2DAAwE;AACxE,iDAA0G;AAkJ1G;;;;;;;GAOG;AACI,KAAK,UAAU,cAAc,CAClC,MAAwC;IAExC,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,YAAY,CAAC;IACjE,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;QACtC,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,8GAA8G;AAC9G,uEAAuE;AACvE,8GAA8G;AAE9G,KAAK,UAAU,wBAAwB,CACrC,MAAwC;IAExC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAEtD,wDAAwD;IACxD,0CAA0C;IAC1C,qEAAqE;IACrE,8DAA8D;IAC9D,wEAAwE;IACxE,kFAAkF;IAClF,mDAAmD;IACnD,yCAAyC;IACzC,qHAAqH;IACrH,cAAc;IACd,iGAAiG;IAEjG,8FAA8F;IAC9F,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAClG,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IAEpF,+FAA+F;IAC/F,0FAA0F;IAC1F,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,IAAA,mCAAoB,EAClB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,oBAAoB,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,oBAAoB,eAAe,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,aAAa,CACpL,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE3F,OAAO;YACL,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YACrD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACpE,mBAAmB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,6BAA6B;oBAC7E,iBAAiB,EAAE,eAAe,CAAC,aAAa;iBACjD;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,6CAA6C;AAC7C,8GAA8G;AAE9G,KAAK,UAAU,wBAAwB,CACrC,MAAwC;IAExC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtD,0FAA0F;IAC1F,+FAA+F;IAC/F,4FAA4F;IAC5F,+FAA+F;IAC/F,gGAAgG;IAChG,MAAM,6BAA6B,GAAG,IAAA,mCAAoB,EACxD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACF,MAAM,+BAA+B,GAAG,wCAAwC,CAC9E,6BAA6B,EAC7B,OAAO,CACR,CAAC;IACF,MAAM,6BAA6B,GAAG,+BAA+B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IACrH,MAAM,2BAA2B,GAAG,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAEjH,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAC9C,IAAI,EACJ,gCAAgC,EAChC,+BAA+B,EAC/B,OAAO,CACR,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF,4FAA4F;IAC5F,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,+BAA+B,CAChC,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,kCAAkC,6BAA6B,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAAS,eAAe,CAAC,aAAa,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,oBAAoB,2BAA2B,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,CACnQ,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAE5E,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAC1C,IAAI,EACJ,eAAe,CAAC,aAAa,EAC7B,+BAA+B,EAC/B,OAAO,CACR,CAAC;QAEF,OAAO;YACL,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YACrD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACpE,mBAAmB,EAAE,6BAA6B;oBAClD,iBAAiB,EAAE,2BAA2B;iBAC/C;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,wCAAwC,CAC/C,6BAAsC,EACtC,OAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAC5E,6BAA6B,EAC7B,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAC3C,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,OAAO,6BAA6B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;AACnF,CAAC;AAED,8GAA8G;AAC9G,sCAAsC;AACtC,8GAA8G;AAE9G,KAAK,UAAU,kBAAkB,CAC/B,MAAwC;IAExC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAEjG,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,WAAW,CAAC,OAAO,CAAC,CAAC;IACtH,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,cAAc,OAAO,CAAC,UAAU,CAAC,iBAAiB,kCAAkC,WAAW,CAAC,OAAO,iCAAiC,CACzI,CAAC;IACJ,CAAC;IAED,4GAA4G;IAC5G,oHAAoH;IACpH,+FAA+F;IAC/F,MAAM,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACvF,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,MAAM,uBAAuB,GAAG,mCAAmC,CACjE,uBAAuB,EACvB,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,EACzC,WAAW,CACZ,CAAC;IACF,MAAM,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC,uBAAuB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACnH,MAAM,oBAAoB,GAAG,2CAA2C,CACtE,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,OAAO,CACR,CAAC;IAEF,sDAAsD;IACtD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAC3C,IAAI,EACJ,gCAAgC,EAChC,uBAAuB,EACvB,OAAO,EACP,WAAW,CACZ,CAAC;IACF,MAAM,aAAa,GAAG,IAAA,oCAA4B,EAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAEjF,0FAA0F;IAC1F,sGAAsG;IACtG,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CACvD,IAAI,EACJ,aAAa,EACb,OAAO,EACP,IAAA,mCAAoB,EAClB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,CACzB,CACF,CAAC;IAEF,OAAO,OAAO,CAAC,GAAG,CAChB,oBAAoB,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;QACjD,OAAO,CAAC,MAAM,CACZ,+BAA+B,IAAI,CAAC,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAC1F,eAAe,CAAC,aAClB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,qBAAqB,uBAAuB,CAAC,GAAG,CAClF,WAAW,CAAC,aAAa,EAAE,CAC5B,IAAI,WAAW,CAAC,MAAM,EAAE,CAC1B,CAAC;QACF,6BAA6B,CAAC,IAAI,EAAE,eAAe,CAAC,aAAa,EAAE,OAAO,EAAE;YAC1E,WAAW;YACX,oBAAoB;SACrB,CAAC,CAAC;QACH,8BAA8B,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,IAAI,EACJ,eAAe,CAAC,aAAa,EAC7B,uBAAuB,EACvB,OAAO,EACP,WAAW,CACZ,CAAC;QAEF,OAAO;YACL,GAAG,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;YAClD,YAAY,EAAE,eAAe,CAAC,IAAI;YAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,iBAAiB,EAAE;gBACjB,SAAS,EAAE;oBACT,sBAAsB,EAAE,WAAW,CAAC,gBAAgB,EAAE;oBACtD,mBAAmB,EAAE,uBAAuB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;oBAC7E,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,qBAAqB;iBACpE;gBACD,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACxD,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;oBACzD,YAAY,EAAE,eAAe,CAAC,qBAAqB;oBACnD,aAAa,EAAE,eAAe,CAAC,aAAa;oBAC5C,aAAa,EAAE,eAAe,CAAC,iBAAiB,CAAC,aAAa;iBAC/D;aACF;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,8BAA8B,CAAC,oBAA6B,EAAE,WAA0B;IAC/F,iHAAiH;IACjH,6GAA6G;IAC7G,gFAAgF;IAChF,MAAM,mBAAmB,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;IACzF,IAAI,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IACD,MAAM,uBAAuB,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC;IAChE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAC1E,IAAI,oBAAoB,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,gBAAgB,WAAW,CAAC,OAAO,0CAA0C,gBAAgB,2DAA2D,oBAAoB,yDAAyD,CACtO,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gCAAgC,CACvC,uBAAgC,EAChC,WAA0B,EAC1B,OAA6B;IAK7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,aAAa,CAC9D,uBAAuB,EACvB,WAAW,CAAC,eAAe,EAAE,EAC7B,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,MAAM,oBAAoB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,OAAO;QACL,oBAAoB;QACpB,sBAAsB,EAAE,uBAAuB,CAAC,GAAG,CAAC,oBAAoB,CAAC;KAC1E,CAAC;AACJ,CAAC;AAED,SAAgB,mCAAmC,CACjD,uBAAgC,EAChC,qBAA8B,EAC9B,WAA0B;IAE1B,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC;QAChB,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtF,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,eAAe,WAAW,CAAC,MAAM,UAAU,uBAAuB,2GAA2G,CAC9K,CAAC;IACJ,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,SAAS,2CAA2C,CAClD,uBAAgC,EAChC,sBAA+B,EAC/B,WAA0B,EAC1B,OAA6B;IAE7B,OAAO,0BAAgB,CAAC,8BAA8B,CACpD,sBAAsB,EACtB,OAAO,CAAC,MAAM,EACd,WAAW,EACX,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB;SACE,GAAG,CAAC,uBAAuB,CAAC;SAC5B,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gCAAgC,CAAC,WAAoB,EAAE,OAAsB;IACpF,OAAO,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,oBAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACrG,CAAC;AA4BD,SAAS,qBAAqB,CAC5B,MAAwC;IAExC,IAAI,MAAM,CAAC,wBAAwB,KAAK,MAAM,CAAC,wBAAwB,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,MAAM,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CACjE,MAAM,CAAC,wBAAwB,EAC/B,oBAAoB,CACrB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,2BAA2B,CACjE,MAAM,CAAC,wBAAwB,EAC/B,mBAAmB,CACpB,CAAC;IACF,OAAO;QACL;YACE,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SACxG;QACD;YACE,uBAAuB,EACrB,MAAM,CAAC,uBAAuB,IAAI,IAAA,yCAAiC,EAAC,iCAAyB,CAAC;YAChG,iBAAiB;YACjB,iBAAiB;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,MAAM,gCAAgC,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,kDAAkD;AA6B3G,KAAK,UAAU,qBAAqB,CAClC,IAAkB,EAClB,uBAAgC,EAChC,OAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,6BAA6B,GAAG,sCAAsC,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC/G,MAAM,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,GAAG,MAAM,eAAe,CAC/E,OAAO,CAAC,iBAAiB,EACzB,6BAA6B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAC5E,QAAQ,CAAC,MAAM,EACf,aAAa,EACb,OAAO,CACR,CAAC;IAEF,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;IACnG,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,CAC1D,IAAI,EACJ,oBAAoB,CAAC,qBAAqB,EAC1C,OAAO,CACR,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE5F,OAAO;QACL,QAAQ;QACR,aAAa,EAAE;YACb,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;YACrD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE;SAC1D;QACD,uBAAuB;QACvB,oBAAoB,EAAE,oBAAoB,CAAC,GAAG;QAC9C,qBAAqB;QACrB,sBAAsB;QACtB,UAAU;QACV,iBAAiB,EAAE;YACjB,6BAA6B;SAC9B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,sCAAsC,CAC7C,2BAAoC,EACpC,OAA6B;IAE7B,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,aAAa,CAC5E,2BAA2B,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EAC1E,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAC3C,wBAAc,CAAC,SAAS,EACxB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACnC,IAAA,YAAM,EAAC,OAAO,CAAC,QAAQ,CAAC,CACzB,CAAC;IACF,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC7G,OAAO,2BAA2B,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA0B,EAAE,eAA+B;IACpF,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,uBAAuB;QAChC,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,qBAAqB;QACjC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,QAAQ,CAAC,sBAAsB;QAC/B,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,IAAkB,EAClB,uBAAgC,EAChC,+BAAwC,EACxC,OAA6B;IAE7B,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IAErC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,GACxG,MAAM,eAAe,CACnB,OAAO,CAAC,iBAAiB,EACzB,+BAA+B,EAC/B,QAAQ,CAAC,MAAM,EACf,aAAa,EACb,OAAO,CACR,CAAC;IAEJ,MAAM,oBAAoB,GAAG,MAAM,uBAAuB,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC7F,MAAM,qBAAqB,GAAG,MAAM,wBAAwB,CAC1D,IAAI,EACJ,oBAAoB,CAAC,qBAAqB,EAC1C,OAAO,CACR,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE5F,OAAO;QACL,QAAQ;QACR,uBAAuB;QACvB,oBAAoB,EAAE,oBAAoB,CAAC,GAAG;QAC9C,qBAAqB;QACrB,sBAAsB;QACtB,UAAU;QACV,aAAa,EAAE;YACb,kBAAkB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;YACrD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,eAAe,EAAE;SAC1D;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAmC,EAAE,eAA+B;IAC7F,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,uBAAuB;QAChC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,qBAAqB;QACjC,QAAQ,CAAC,sBAAsB;QAC/B,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAqBD,KAAK,UAAU,kBAAkB,CAC/B,IAAkB,EAClB,uBAAgC,EAChC,uBAAgC,EAChC,OAA6B,EAC7B,WAA0B;IAE1B,2DAA2D;IAC3D,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;QACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,2DAA2D;IAC3D,MAAM,EAAE,sBAAsB,EAAE,GAAG,gCAAgC,CAAC,uBAAuB,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAEnH,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,IAAA,mCAAwB,EAAC;QACpG,aAAa,EAAE,QAAQ,CAAC,MAAM;QAC9B,qBAAqB,EAAE,OAAO,CAAC,KAAK;QACpC,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;QACxE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;QACjD,OAAO,EAAE,WAAW;QACpB,cAAc,EAAE,uBAAuB;QACvC,cAAc,EAAE,OAAQ;QACxB,eAAe,EAAE,IAAA,UAAI,GAAE;QACvB,kBAAkB,EAAE,IAAA,UAAI,GAAE;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;KACpC,CAAC,CAAC;IAEH,sEAAsE;IACtE,MAAM,WAAW,GAAG,MAAM,sBAAY,CAAC,cAAc,CAAC;QACpD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1C,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,KAAK;QAC5B,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5E,6GAA6G;IAC7G,mHAAmH;IACnH,sDAAsD;IACtD,MAAM,sBAAsB,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnG,MAAM,cAAc,GAAG,MAAM,sBAAY,CAAC,iBAAiB,CAAC;QAC1D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/C,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,KAAK;QAC5B,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,SAAS;KACzC,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAExF,qFAAqF;IACrF,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC,CAAC;IAC1E,MAAM,yCAAyC,GAC7C,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC;QAC7C,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC3G,MAAM,mCAAmC,GACvC,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,yCAAyC,CAAC;IAClH,MAAM,aAAa,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC;QACxD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,gCAAgC,CAAC,uBAAuB,EAAE,OAAO,CAAC,iBAAiB,CAAC;QAC5F,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,mCAAmC;QAC1D,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,mCAAmC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;QACtG,wBAAwB,EAAE,IAAI,CAAC,mBAAmB;YAChD,CAAC,CAAC,EAAE,sBAAsB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;YACjE,CAAC,CAAC,SAAS;KACd,CAAC,CAAC;IACH,MAAM,oBAAoB,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;IAEtF,2GAA2G;IAC3G,qDAAqD;IACrD,MAAM,4BAA4B,GAChC,qBAAqB,KAAK,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,mCAAmC,CAAC;IAC5G,MAAM,YAAY,GAAG,MAAM,sBAAY,CAAC,eAAe,CAAC;QACtD,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,cAAc,EAAE,WAAW,CAAC,OAAO;QACnC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,4BAA4B;QACnD,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS;QAC/F,wBAAwB,EAAE;YACxB,8GAA8G;YAC9G,kFAAkF;YAClF,oBAAoB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACvF,4GAA4G;YAC5G,sBAAsB,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SAC5F;KACF,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAA,uBAAe,EAAC,sBAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAE9E,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAEzG,OAAO;QACL,QAAQ;QACR,iBAAiB;QACjB,YAAY;QACZ,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,aAAa,EAAE;YACb,kBAAkB,EAAE,WAAW,CAAC,OAAO;YACvC,YAAY,EAAE,WAAW,CAAC,eAAe,EAAE;SAC5C;QACD,iBAAiB,EAAE;YACjB,qBAAqB,EAAE,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;SAC/E;KACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAiC,EAAE,eAA+B;IACxF,OAAO;QACL,GAAG,QAAQ,CAAC,QAAQ;QACpB,QAAQ,CAAC,iBAAiB;QAC1B,GAAG,QAAQ,CAAC,YAAY;QACxB,GAAG,QAAQ,CAAC,qBAAqB;QACjC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC;QAC1B,GAAG,QAAQ,CAAC,oBAAoB;QAChC,GAAG,QAAQ,CAAC,aAAa;QACzB,QAAQ,CAAC,gBAAgB;QACzB,GAAG,QAAQ,CAAC,UAAU;KACvB,CAAC;AACJ,CAAC;AAED,8GAA8G;AAC9G,uDAAuD;AACvD,8GAA8G;AAE9G,KAAK,UAAU,iBAAiB,CAAC,OAA6B,EAAE,WAA2B;IACzF,MAAM,qBAAqB,GAAG,MAAM,IAAA,4BAAoB,EAAC,OAAO,CAAC,KAAK,EAAE;QACtE;YACE,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAClD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;SACnE;QACD;YACE,IAAI,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;YAClD,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,wBAAwB,EAAE;SACnE;QACD,GAAG,CAAC,WAAW;YACb,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,WAAW,CAAC,gBAAgB,EAAE;oBACpC,YAAY,EAAE,WAAW,CAAC,wBAAwB,EAAE;iBACrD;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,OAAO;QACL,cAAc,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;QACvE,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;QAC3C,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,GAAG;QAC3C,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG;KACvC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAA6B,EAAE,WAA2B;IACtF,MAAM,WAAW,GAAkB,EAAE,CAAC;IACtC,MAAM,SAAS,GACb,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,wBAAgB;QACjE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,wBAAgB;QACjE,WAAW,EAAE,gBAAgB,EAAE,KAAK,wBAAgB,CAAC;IACvD,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAyB,EAAC,wBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACjF,WAAW,CAAC,IAAI,CACd,IAAA,uCAA0B,EACxB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,EAAE,EACvD,EAAE,cAAc,EAAE,6BAAqB,EAAE,CAC1C,CACF,CAAC;IACJ,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAsB,EACtB,cAAuB,EACvB,kBAA0B,EAC1B,cAAuB,EACvB,OAA6B;IAE7B,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,IAAA,mCAAwB,EAAC;QAC/D,aAAa,EAAE,kBAAkB;QACjC,qBAAqB,EAAE,OAAO,CAAC,KAAK;QACpC,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,yBAAyB,EAAE;QACxE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE;QACjD,OAAO;QACP,cAAc;QACd,cAAc;QACd,eAAe,EAAE,IAAA,UAAI,GAAE;QACvB,kBAAkB,EAAE,IAAA,UAAI,GAAE;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;KACpC,CAAC,CAAC;IACH,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;AAC1F,CAAC;AAOD,KAAK,UAAU,uBAAuB,CACpC,gBAAyB,EACzB,OAA6B;IAE7B,MAAM,qBAAqB,GAAG,qCAAqC,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,MAAM,sBAAY,CAAC,gBAAgB,CAAC;QAC5D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,gCAAgC,CAAC,gBAAgB,EAAE,OAAO,CAAC,iBAAiB,CAAC;QACrF,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,qBAAqB;QAC5C,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KACrE,CAAC,CAAC;IACH,OAAO;QACL,GAAG,EAAE,sBAAY,CAAC,WAAW,CAAC,iBAAiB,CAAC;QAChD,qBAAqB;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAAC,OAA6B;IAC1E,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,uBAAuB,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;IACxE,IAAI,uBAAuB,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC;IACxF,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,qBAAqB,CAAC,uBAAuB,EAAE,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,IAAkB,EAAE,OAA6B;IACjF,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrH,OAAO,IAAA,mCAAoB,EACzB,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,IAAI,CAAC,mBAAmB,EACxB,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,IAAkB,EAClB,4BAAqC,EACrC,OAA6B;IAE7B,MAAM,2BAA2B,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,uBAAuB,GAAG,sCAAsC,CAAC,IAAI,EAAE,4BAA4B,EAAE,OAAO,CAAC,CAAC;IACpH,MAAM,kBAAkB,GAAG,MAAM,sBAAY,CAAC,iBAAiB,CAAC;QAC9D,YAAY,EAAE,OAAO,CAAC,MAAM;QAC5B,MAAM,EAAE,2BAA2B;QACnC,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,kBAAkB,EAAE,SAAS;QAC7B,kBAAkB,EAAE,CAAC;QACrB,aAAa,EAAE,KAAK;QACpB,qBAAqB,EAAE,uBAAuB,KAAK,SAAS;QAC5D,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE;QACrE,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,6BAA6B,EAAE,uBAAuB;QACtD,wBAAwB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC1F,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,oBAAoB,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC;aAC1D;KACN,CAAC,CAAC;IACH,OAAO,sBAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,sCAAsC,CAC7C,IAAkB,EAClB,4BAAqC,EACrC,OAA6B;IAE7B,MAAM,+BAA+B,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC;IAChF,MAAM,yBAAyB,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC,CAAC;IAC9E,IAAI,yBAAyB,KAAK,CAAC,EAAE,CAAC;QACpC,IAAI,+BAA+B,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;SAAM,CAAC;QACN,IAAI,4BAA4B,EAAE,CAAC;YACjC,OAAO,yBAAyB,CAAC;QACnC,CAAC;QACD,IAAI,+BAA+B,KAAK,yBAAyB,EAAE,CAAC;YAClE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,yBAAyB,CAAC;IACnC,CAAC;AACH,CAAC;AAaD;;;;GAIG;AACH,KAAK,UAAU,sBAAsB,CACnC,IAAkB,EAClB,aAAwB,EACxB,OAAuC,EACvC,cAAuB;IAEvB,MAAM,qBAAqB,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5F,MAAM,kBAAkB,GAAG;QACzB,mBAAmB,EAAE,cAAc;QACnC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;QACvD,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE;KACzD,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;IAClF,MAAM,sBAAsB,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE3G,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE;QAC3D,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxF,OAAO;YACL,aAAa;YACb,qBAAqB;YACrB,GAAG,EAAE,CAAC,GAAG,sBAAsB,CAAC,YAAY,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC;YAChF,IAAI,EAAE,sBAAsB,CAAC,YAAY;YACzC,iBAAiB,EAAE;gBACjB,aAAa,EAAE,sBAAsB,CAAC,KAAK,CAAC,aAAa;aAC1D;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B,CACpC,IAAkB,EAClB,gBAAyB,EACzB,OAA6B,EAC7B,OAGC;IAED,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,oBAAoB,GAAG,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,uBAAuB,oBAAoB,CAAC,MAAM,mDAAmD,CACtG,CAAC;QACJ,CAAC;QACD,IAAI,oBAAoB,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,KAAK,kBAAkB,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CACb,oCAAoC,kBAAkB,mCAAmC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CACjI,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAU;YAC5C,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE;YACrC,OAAO,CAAC,iBAAiB,CAAC,OAAO;SAClC,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,oBAAoB,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CACb,uBAAuB,oBAAoB,CAAC,IAAI,uDAAuD,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAC/I,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,kBAAkB,IAAI,CAAC,GAAG,oBAAoB,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACvE,MAAM,IAAI,KAAK,CACb,0CAA0C,kBAAkB,mCAAmC,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CACvI,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4GAA4G;IAC5G,wGAAwG;IACxG,mHAAmH;IACnH,kHAAkH;IAClH,6DAA6D;IAC7D,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;IACrH,MAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB;QACxD,CAAC,CAAC,OAAO,CAAC,UAAU;aACf,yBAAyB,CAAC,OAAO,CAAC,iBAAiB,CAAC;aACpD,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACnD,CAAC,CAAC,IAAA,2CAA4B,EAC1B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,EACxE,kBAAkB,CACnB,CAAC;IACN,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC,CAAC;IACzG,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,8BAA8B,CAAC;QACvE,sBAAsB,EAAE,yBAAyB;QACjD,sBAAsB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACzD,qBAAqB,EAAE,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,aAAa,EAAE,CAAC;QACtF,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,CAAC,OAAO;QACxD,oBAAoB,EAAE,OAAO,EAAE,oBAAoB;QACnD,oBAAoB,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO;QAClD,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,IAAI,CAAC;QAC9D,IAAI,EAAE,OAAO,CAAC,WAAW;KAC1B,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;IACzF,IAAI,cAAc,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,uBAAuB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,SAAS,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC,MAAM,yCAAyC,cAAc,CAAC,WAAW,0BAA0B,MAAM,EAAE,CACrP,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swap_debt_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap_debt_operations.d.ts","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ const classes_1 = require("../classes");
12
12
  const leverage_1 = require("../leverage");
13
13
  const accounts_1 = require("../@codegen/klend/accounts");
14
14
  const utils_1 = require("../utils");
15
+ // ObligationTypeTag is imported from the leaf module, not the '../utils' barrel: the
16
+ // DEBT_SEEDED_OBLIGATION_TAGS / FIXED_RATE_OBLIGATION_TAGS Sets below read it at module-eval
17
+ // time, and the barrel's live re-export is `undefined` during circular init
18
+ // (utils ⇄ lending_operations). ObligationType.ts only imports kit + pubkey, so it is always
19
+ // fully evaluated by the time this module's top level runs.
20
+ const ObligationType_1 = require("../utils/ObligationType");
15
21
  const kit_1 = require("@solana/kit");
16
22
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
23
  const token_1 = require("@solana-program/token");
@@ -43,7 +49,7 @@ async function getSwapDebtIxs(inputs) {
43
49
  // routing them through the variable-rate flow. (This gate is independent of `isClosingSourceDebt`.)
44
50
  if (FIXED_RATE_OBLIGATION_TAGS.has(tag)) {
45
51
  throw new Error(`fixed-rate obligations (tag ${tag}) are not supported by swap-debt yet; only variable-rate Multiply ` +
46
- `(${utils_1.ObligationTypeTag.Multiply}) and Leverage (${utils_1.ObligationTypeTag.Leverage}) can be migrated`);
52
+ `(${ObligationType_1.ObligationTypeTag.Multiply}) and Leverage (${ObligationType_1.ObligationTypeTag.Leverage}) can be migrated`);
47
53
  }
48
54
  // Variable-rate Multiply/Leverage. The position is migrated into an obligation of the SAME type re-seeded with
49
55
  // the new debt. A full swap (isClosingSourceDebt=true) repays the whole old debt, withdraws all collateral and
@@ -62,18 +68,18 @@ async function getSwapDebtIxs(inputs) {
62
68
  * excluded: their seeds do not encode the debt, so the in-place swap-debt flow applies to them.
63
69
  */
64
70
  const DEBT_SEEDED_OBLIGATION_TAGS = new Set([
65
- utils_1.ObligationTypeTag.Multiply, // 1: seeds [collMint, debtMint]
66
- utils_1.ObligationTypeTag.Leverage, // 3: seeds [collMint, debtMint]
67
- utils_1.ObligationTypeTag.MultiplyFixedRate, // 4: seeds [collReserve, debtReserve]
68
- utils_1.ObligationTypeTag.LeverageFixedRate, // 6: seeds [collReserve, debtReserve]
71
+ ObligationType_1.ObligationTypeTag.Multiply, // 1: seeds [collMint, debtMint]
72
+ ObligationType_1.ObligationTypeTag.Leverage, // 3: seeds [collMint, debtMint]
73
+ ObligationType_1.ObligationTypeTag.MultiplyFixedRate, // 4: seeds [collReserve, debtReserve]
74
+ ObligationType_1.ObligationTypeTag.LeverageFixedRate, // 6: seeds [collReserve, debtReserve]
69
75
  ]);
70
76
  /**
71
77
  * Debt-seeded tags whose debt is fixed-term. Migration is gated until the fixed-term repay/borrow + rollover
72
78
  * behavior is validator-tested.
73
79
  */
74
80
  const FIXED_RATE_OBLIGATION_TAGS = new Set([
75
- utils_1.ObligationTypeTag.MultiplyFixedRate, // 4
76
- utils_1.ObligationTypeTag.LeverageFixedRate, // 6
81
+ ObligationType_1.ObligationTypeTag.MultiplyFixedRate, // 4
82
+ ObligationType_1.ObligationTypeTag.LeverageFixedRate, // 6
77
83
  ]);
78
84
  function extractArgsAndContext(inputs) {
79
85
  if (inputs.sourceDebtReserveAddress === inputs.targetDebtReserveAddress) {
@@ -1225,8 +1231,8 @@ async function getSwapDebtObligationsPreview(inputs) {
1225
1231
  // builder's dispatch in `getSwapDebtIxs` so callers can't get a nonsensical projection for those tags.
1226
1232
  const tag = obligation.obligationTag;
1227
1233
  if (!DEBT_SEEDED_OBLIGATION_TAGS.has(tag) || FIXED_RATE_OBLIGATION_TAGS.has(tag)) {
1228
- throw new Error(`getSwapDebtObligationsPreview only models variable-rate Multiply (${utils_1.ObligationTypeTag.Multiply}) and Leverage ` +
1229
- `(${utils_1.ObligationTypeTag.Leverage}) migrations; obligation tag ${tag} is not supported (vanilla/lending swap-debt ` +
1234
+ throw new Error(`getSwapDebtObligationsPreview only models variable-rate Multiply (${ObligationType_1.ObligationTypeTag.Multiply}) and Leverage ` +
1235
+ `(${ObligationType_1.ObligationTypeTag.Leverage}) migrations; obligation tag ${tag} is not supported (vanilla/lending swap-debt ` +
1230
1236
  `is in-place, and fixed-rate variants are gated)`);
1231
1237
  }
1232
1238
  if (inputs.sourceDebtReserveAddress === inputs.targetDebtReserveAddress) {
@@ -1 +1 @@
1
- {"version":3,"file":"swap_debt_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"swap_debt_operations.js","sourceRoot":"","sources":["../../src/lending_operations/swap_debt_operations.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,15 @@
1
- import { Address, Option, Slot } from '@solana/kit';
1
+ import type { Address, Option, Slot } from '@solana/kit';
2
2
  import Decimal from 'decimal.js';
3
- import { KaminoMarket, KaminoObligation } from '../classes';
4
- import { FlashBorrowType } from './types';
3
+ import { type KaminoMarket, type KaminoObligation } from '../classes';
4
+ import type { FlashBorrowType } from './types';
5
5
  /**
6
6
  * Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
7
7
  *
8
8
  * Callers provide only the intent (amounts, target leverage, price); the SDK computes the
9
- * required-lamport size for each candidate flash side, then runs the existing
10
- * `determineFlashBorrowType` viability check (flash loans enabled + sufficient liquidity, prefer
11
- * coll when both are viable).
9
+ * required-lamport size for each candidate flash side AND the collateral redeemed in the same tx
10
+ * for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
11
+ * loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
12
+ * genuinely viable; otherwise it falls back to debt-flash.
12
13
  *
13
14
  * Each helper throws with a diagnostic message if neither side is viable.
14
15
  */
@@ -40,7 +41,8 @@ export declare function determineDepositLeverageFlashBorrowType(props: {
40
41
  * Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
41
42
  *
42
43
  * - debt-flash flash-borrows the repay amount in debt lamports.
43
- * - coll-flash flash-borrows the swap-in amount in coll lamports.
44
+ * - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
45
+ * same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
44
46
  * - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
45
47
  *
46
48
  * @throws if neither side is viable.
@@ -70,9 +72,11 @@ export declare function determineWithdrawLeverageFlashBorrowType(props: {
70
72
  * Auto-detects increase vs decrease from the sign of the position deltas returned by
71
73
  * `calcAdjustAmounts`:
72
74
  * - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
73
- * debt-flash borrows `flashBorrowInDebtToken` debt lamports;
75
+ * debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
74
76
  * - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
75
- * coll-flash borrows `flashBorrowInCollToken` coll lamports.
77
+ * coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
78
+ * `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
79
+ * the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
76
80
  *
77
81
  * @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
78
82
  * (nothing to adjust — caller should skip the op).
@@ -96,10 +100,12 @@ export declare function determineAdjustLeverageFlashBorrowType(props: {
96
100
  *
97
101
  * Semantics (matches the build flows):
98
102
  * - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
99
- * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount.
103
+ * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
104
+ * then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
100
105
  *
101
106
  * Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
102
- * available liquidity by `determineFlashBorrowType`. Preference is coll when both work.
107
+ * available liquidity by `determineFlashBorrowType` coll-flash must cover flash-borrow + that
108
+ * redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
103
109
  *
104
110
  * @throws if neither reserve supports flash borrowing the required amount.
105
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAA2C,MAAM,YAAY,CAAC;AAWrG,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAO1C;;;;;;;;;GASG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qFAAqF;IACrF,aAAa,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CA2ClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAwElB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAuElB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAC;IACrB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC3B,GAAG,eAAe,CA0ClB"}
1
+ {"version":3,"file":"flashBorrowType.d.ts","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAA2C,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAe/G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG/C;;;;;;;;;;GAUG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qFAAqF;IACrF,aAAa,EAAE,OAAO,CAAC;IACvB,wFAAwF;IACxF,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CA4ClB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,yFAAyF;IACzF,cAAc,EAAE,OAAO,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,kGAAkG;IAClG,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAuFlB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,wCAAwC;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,eAAe,CAiFlB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qCAAqC,CAAC,KAAK,EAAE;IAC3D,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oEAAoE;IACpE,WAAW,EAAE,OAAO,CAAC;IACrB,+FAA+F;IAC/F,eAAe,EAAE,OAAO,CAAC;IACzB,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,IAAI,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CAC3B,GAAG,eAAe,CAmDlB"}
@@ -9,17 +9,18 @@ exports.determineAdjustLeverageFlashBorrowType = determineAdjustLeverageFlashBor
9
9
  exports.determineRepayWithCollFlashBorrowType = determineRepayWithCollFlashBorrowType;
10
10
  const decimal_js_1 = __importDefault(require("decimal.js"));
11
11
  const classes_1 = require("../classes");
12
+ const repay_with_collateral_calcs_1 = require("../lending_operations/repay_with_collateral_calcs");
12
13
  const utils_1 = require("../utils");
13
14
  const calcs_1 = require("./calcs");
14
15
  const utils_2 = require("./utils");
15
- const repay_with_collateral_calcs_1 = require("../lending_operations/repay_with_collateral_calcs");
16
16
  /**
17
17
  * Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
18
18
  *
19
19
  * Callers provide only the intent (amounts, target leverage, price); the SDK computes the
20
- * required-lamport size for each candidate flash side, then runs the existing
21
- * `determineFlashBorrowType` viability check (flash loans enabled + sufficient liquidity, prefer
22
- * coll when both are viable).
20
+ * required-lamport size for each candidate flash side AND the collateral redeemed in the same tx
21
+ * for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
22
+ * loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
23
+ * genuinely viable; otherwise it falls back to debt-flash.
23
24
  *
24
25
  * Each helper throws with a diagnostic message if neither side is viable.
25
26
  */
@@ -63,13 +64,15 @@ function determineDepositLeverageFlashBorrowType(props) {
63
64
  flashLoanFee: debtReserve.getFlashLoanFee(),
64
65
  });
65
66
  const requiredDebtLamports = debtFlashCalcs.flashBorrowInDebtToken.mul(debtReserve.getMintFactor()).ceil();
66
- return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
67
+ // A leveraged deposit/open deposits collateral; it never redeems from the collateral reserve.
68
+ return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, new decimal_js_1.default(0));
67
69
  }
68
70
  /**
69
71
  * Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
70
72
  *
71
73
  * - debt-flash flash-borrows the repay amount in debt lamports.
72
- * - coll-flash flash-borrows the swap-in amount in coll lamports.
74
+ * - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
75
+ * same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
73
76
  * - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
74
77
  *
75
78
  * @throws if neither side is viable.
@@ -91,7 +94,15 @@ function determineWithdrawLeverageFlashBorrowType(props) {
91
94
  // Coll-flash: flash borrow = flashBorrowInCollToken.
92
95
  const collFlashCalcs = (0, calcs_1.withdrawLeverageCalcsCollFlash)(kaminoMarket, collReserve, debtReserve, priceCollToDebt, withdrawAmount, deposited, borrowed, currentSlot, isClosingPosition, selectedTokenIsCollToken, selectedTokenMint, obligation, collReserve.getFlashLoanFee(), slippagePct);
93
96
  const requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
94
- return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
97
+ // Coll-flash also redeems collateral from the SAME reserve in the same tx
98
+ // (WithdrawObligationCollateralAndRedeemReserveCollateral), before the flash loan is repaid. On a
99
+ // close that's the entire deposit; on a partial it's `depositTokenWithdrawAmount` (matches the
100
+ // amount the build flow passes to the redeem ix). Pass it so a thin collateral reserve that can't
101
+ // cover flash-borrow + redeem falls back to debt-flash instead of self-colliding (klend 6008).
102
+ const redeemCollLamports = (isClosingPosition ? deposited : collFlashCalcs.depositTokenWithdrawAmount)
103
+ .mul(collReserve.getMintFactor())
104
+ .ceil();
105
+ return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollLamports);
95
106
  }
96
107
  /**
97
108
  * Picks a viable `FlashBorrowType` for a leveraged ADJUST (increase or decrease).
@@ -99,9 +110,11 @@ function determineWithdrawLeverageFlashBorrowType(props) {
99
110
  * Auto-detects increase vs decrease from the sign of the position deltas returned by
100
111
  * `calcAdjustAmounts`:
101
112
  * - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
102
- * debt-flash borrows `flashBorrowInDebtToken` debt lamports;
113
+ * debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
103
114
  * - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
104
- * coll-flash borrows `flashBorrowInCollToken` coll lamports.
115
+ * coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
116
+ * `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
117
+ * the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
105
118
  *
106
119
  * @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
107
120
  * (nothing to adjust — caller should skip the op).
@@ -131,6 +144,9 @@ function determineAdjustLeverageFlashBorrowType(props) {
131
144
  }
132
145
  let requiredCollLamports;
133
146
  let requiredDebtLamports;
147
+ // Increase (leverage-up) deposits collateral — no redeem. Decrease (deleverage) coll-flash
148
+ // withdraws collateral from the same reserve to repay the flash loan, so it has a redeem leg.
149
+ let redeemCollLamports = new decimal_js_1.default(0);
134
150
  if (isIncrease) {
135
151
  // Coll-flash borrows enough coll to deposit; debt-flash borrows the debt-side calc.
136
152
  requiredCollLamports = adjustDepositPosition.mul(collReserve.getMintFactor()).ceil();
@@ -142,8 +158,9 @@ function determineAdjustLeverageFlashBorrowType(props) {
142
158
  requiredDebtLamports = decimal_js_1.default.abs(adjustBorrowPosition).mul(debtReserve.getMintFactor()).ceil();
143
159
  const collFlashCalcs = (0, calcs_1.adjustWithdrawLeverageCalcsCollFlash)(adjustDepositPosition, adjustBorrowPosition, priceCollToDebt, collReserve.getFlashLoanFee(), slippagePct);
144
160
  requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
161
+ redeemCollLamports = collFlashCalcs.depositTokenWithdrawAmount.mul(collReserve.getMintFactor()).ceil();
145
162
  }
146
- return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
163
+ return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollLamports);
147
164
  }
148
165
  /**
149
166
  * Picks a viable `FlashBorrowType` for a repay-with-collateral op given only the client-level intent
@@ -152,10 +169,12 @@ function determineAdjustLeverageFlashBorrowType(props) {
152
169
  *
153
170
  * Semantics (matches the build flows):
154
171
  * - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
155
- * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount.
172
+ * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
173
+ * then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
156
174
  *
157
175
  * Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
158
- * available liquidity by `determineFlashBorrowType`. Preference is coll when both work.
176
+ * available liquidity by `determineFlashBorrowType` coll-flash must cover flash-borrow + that
177
+ * redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
159
178
  *
160
179
  * @throws if neither reserve supports flash borrowing the required amount.
161
180
  */
@@ -169,7 +188,9 @@ function determineRepayWithCollFlashBorrowType(props) {
169
188
  const { repayAmountLamports } = (0, repay_with_collateral_calcs_1.calcRepayAmountWithSlippage)(kaminoMarket, debtReserve, currentSlot, obligation, repayAmount, referrer);
170
189
  // Debt-flash borrows the same IR-adjusted repay amount used by the transaction builder.
171
190
  const requiredDebtLamports = repayAmountLamports;
172
- const { flashBorrowInCollLamports: requiredCollLamports } = (0, repay_with_collateral_calcs_1.calcRepayWithCollCollFlashSwap)({
191
+ // Coll-flash repays the debt by swapping flash-borrowed coll, then withdraws collateral from the
192
+ // same reserve to repay the flash loan — `collWithdrawForFlashRepayLamports` is that redeem leg.
193
+ const { flashBorrowInCollLamports: requiredCollLamports, collWithdrawForFlashRepayLamports } = (0, repay_with_collateral_calcs_1.calcRepayWithCollCollFlashSwap)({
173
194
  repayAmountLamports,
174
195
  swapPriceCollToDebt: priceCollToDebt,
175
196
  slippagePct,
@@ -177,6 +198,6 @@ function determineRepayWithCollFlashBorrowType(props) {
177
198
  collMintFactor: collReserve.getMintFactor(),
178
199
  debtMintFactor: debtReserve.getMintFactor(),
179
200
  });
180
- return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
201
+ return (0, utils_2.determineFlashBorrowType)(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, collWithdrawForFlashRepayLamports);
181
202
  }
182
203
  //# sourceMappingURL=flashBorrowType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flashBorrowType.js","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flashBorrowType.js","sourceRoot":"","sources":["../../src/leverage/flashBorrowType.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { KaminoReserve } from '../classes';
2
- import { Address, GetAccountInfoApi, Rpc, GetTokenAccountBalanceApi } from '@solana/kit';
3
- import Decimal from 'decimal.js';
4
- import { FlashBorrowType } from './types';
1
+ import type { Address, GetAccountInfoApi, GetTokenAccountBalanceApi, Rpc } from '@solana/kit';
2
+ import type Decimal from 'decimal.js';
3
+ import { type KaminoReserve } from '../classes';
4
+ import type { FlashBorrowType } from './types';
5
5
  export declare const getExpectedTokenBalanceAfterBorrow: (rpc: Rpc<GetAccountInfoApi & GetTokenAccountBalanceApi>, mint: Address, owner: Address, amountToBorrowLamports: Decimal, amountToBorrowMintDecimals: number) => Promise<Decimal>;
6
6
  export declare const isBorrowingEnabled: (reserve: KaminoReserve) => boolean;
7
7
  /**
@@ -15,16 +15,28 @@ export declare function isFlashLoanEnabled(reserve: KaminoReserve): boolean;
15
15
  *
16
16
  * Checks:
17
17
  * 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
18
- * 2. Whether the reserve has sufficient available liquidity
18
+ * 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
19
+ * on a withdraw/close, the collateral redeem that happens in the same transaction.
19
20
  *
20
- * When both reserves are viable, prefers collateral (typically has more liquidity).
21
+ * Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
22
+ * both draw from the collateral reserve within a single transaction, and the flash loan is not
23
+ * repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
24
+ * yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
25
+ *
26
+ * `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
27
+ * its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
28
+ * accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
29
+ * deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
21
30
  *
22
31
  * @param collReserve - The collateral reserve
23
32
  * @param debtReserve - The debt reserve
24
33
  * @param requiredCollLamports - Amount needed if flash borrowing collateral
25
34
  * @param requiredDebtLamports - Amount needed if flash borrowing debt
35
+ * @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
36
+ * same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
37
+ * requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
26
38
  * @returns 'coll' or 'debt'
27
39
  * @throws if neither reserve supports flash borrowing the required amount
28
40
  */
29
- export declare function determineFlashBorrowType(collReserve: KaminoReserve, debtReserve: KaminoReserve, requiredCollLamports: Decimal, requiredDebtLamports: Decimal): FlashBorrowType;
41
+ export declare function determineFlashBorrowType(collReserve: KaminoReserve, debtReserve: KaminoReserve, requiredCollLamports: Decimal, requiredDebtLamports: Decimal, redeemCollateralLamports: Decimal): FlashBorrowType;
30
42
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,eAAO,MAAM,kCAAkC,GAC7C,KAAK,GAAG,CAAC,iBAAiB,GAAG,yBAAyB,CAAC,EACvD,MAAM,OAAO,EACb,OAAO,OAAO,EACd,wBAAwB,OAAO,EAC/B,4BAA4B,MAAM,KACjC,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,aAAa,YAExD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,aAAa,EAC1B,oBAAoB,EAAE,OAAO,EAC7B,oBAAoB,EAAE,OAAO,GAC5B,eAAe,CAsBjB"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE9F,OAAO,KAAK,OAAO,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,YAAY,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,kCAAkC,GAC7C,KAAK,GAAG,CAAC,iBAAiB,GAAG,yBAAyB,CAAC,EACvD,MAAM,OAAO,EACb,OAAO,OAAO,EACd,wBAAwB,OAAO,EAC/B,4BAA4B,MAAM,KACjC,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,SAAS,aAAa,YAExD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAElE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,aAAa,EAC1B,WAAW,EAAE,aAAa,EAC1B,oBAAoB,EAAE,OAAO,EAC7B,oBAAoB,EAAE,OAAO,EAC7B,wBAAwB,EAAE,OAAO,GAChC,eAAe,CAyBjB"}
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.isBorrowingEnabled = exports.getExpectedTokenBalanceAfterBorrow = void 0;
7
7
  exports.isFlashLoanEnabled = isFlashLoanEnabled;
8
8
  exports.determineFlashBorrowType = determineFlashBorrowType;
9
+ const bn_js_1 = __importDefault(require("bn.js"));
9
10
  const classes_1 = require("../classes");
10
11
  const utils_1 = require("../utils");
11
- const bn_js_1 = __importDefault(require("bn.js"));
12
12
  const getExpectedTokenBalanceAfterBorrow = async (rpc, mint, owner, amountToBorrowLamports, amountToBorrowMintDecimals) => {
13
13
  const initialUserTokenABalance = await (0, utils_1.getTokenAccountBalanceDecimal)(rpc, mint, owner);
14
14
  return initialUserTokenABalance
@@ -33,34 +33,49 @@ function isFlashLoanEnabled(reserve) {
33
33
  *
34
34
  * Checks:
35
35
  * 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
36
- * 2. Whether the reserve has sufficient available liquidity
36
+ * 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
37
+ * on a withdraw/close, the collateral redeem that happens in the same transaction.
37
38
  *
38
- * When both reserves are viable, prefers collateral (typically has more liquidity).
39
+ * Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
40
+ * both draw from the collateral reserve within a single transaction, and the flash loan is not
41
+ * repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
42
+ * yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
43
+ *
44
+ * `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
45
+ * its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
46
+ * accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
47
+ * deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
39
48
  *
40
49
  * @param collReserve - The collateral reserve
41
50
  * @param debtReserve - The debt reserve
42
51
  * @param requiredCollLamports - Amount needed if flash borrowing collateral
43
52
  * @param requiredDebtLamports - Amount needed if flash borrowing debt
53
+ * @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
54
+ * same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
55
+ * requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
44
56
  * @returns 'coll' or 'debt'
45
57
  * @throws if neither reserve supports flash borrowing the required amount
46
58
  */
47
- function determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports) {
59
+ function determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, redeemCollateralLamports) {
48
60
  const collEnabled = isFlashLoanEnabled(collReserve);
49
61
  const debtEnabled = isFlashLoanEnabled(debtReserve);
50
62
  const collLiquidity = collReserve.getLiquidityAvailableAmount();
51
63
  const debtLiquidity = debtReserve.getLiquidityAvailableAmount();
52
- const collViable = collEnabled && collLiquidity.gte(requiredCollLamports);
64
+ // Coll-flash must leave enough liquidity for the in-tx collateral redeem too, not just the
65
+ // flash borrow — otherwise the two collide and the redeem reverts (klend 6008).
66
+ const requiredCollTotal = requiredCollLamports.add(redeemCollateralLamports);
67
+ const collViable = collEnabled && collLiquidity.gte(requiredCollTotal);
53
68
  const debtViable = debtEnabled && debtLiquidity.gte(requiredDebtLamports);
54
- if (collViable && debtViable) {
55
- // Prefer collateral collateral reserves typically have much more liquidity
56
- return 'coll';
57
- }
69
+ // Prefer the flash type the relevant reserve(s) can actually service. The old "always prefer
70
+ // collateral" heuristic is wrong for thin/nascent LST reserves on withdraw/close: there the
71
+ // collateral reserve is the constraint, so debt-flash (deep debt reserve) is the safe choice.
58
72
  if (collViable)
59
73
  return 'coll';
60
74
  if (debtViable)
61
75
  return 'debt';
62
76
  throw new Error(`Neither collateral nor debt reserve supports flash borrowing the required amount. ` +
63
- `Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}. ` +
77
+ `Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}` +
78
+ `${redeemCollateralLamports.gt(0) ? ` (+${redeemCollateralLamports} redeem = ${requiredCollTotal})` : ''}. ` +
64
79
  `Debt: enabled=${debtEnabled}, available=${debtLiquidity}, required=${requiredDebtLamports}.`);
65
80
  }
66
81
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":";;;;;;AA8BA,gDAEC;AAkBD,4DA2BC;AA7ED,wCAAoE;AAGpE,oCAAkE;AAClE,kDAAuB;AAGhB,MAAM,kCAAkC,GAAG,KAAK,EACrD,GAAuD,EACvD,IAAa,EACb,KAAc,EACd,sBAA+B,EAC/B,0BAAkC,EAChB,EAAE;IACpB,MAAM,wBAAwB,GAAG,MAAM,IAAA,qCAA6B,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvF,OAAO,wBAAwB;SAC5B,GAAG,CAAC,IAAA,iCAAuB,EAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;SAChF,eAAe,CAAC,0BAA0B,CAAC,CAAC;AACjD,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,kBAAkB,GAAG,CAAC,OAAsB,EAAE,EAAE;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,eAAO,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,wBAAwB,CACtC,WAA0B,EAC1B,WAA0B,EAC1B,oBAA6B,EAC7B,oBAA6B;IAE7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAEhE,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE1E,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,6EAA6E;QAC7E,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,IAAI,KAAK,CACb,oFAAoF;QAClF,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,IAAI;QAC9F,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,GAAG,CAChG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/leverage/utils.ts"],"names":[],"mappings":";;;;;;AA+BA,gDAEC;AA8BD,4DA+BC;AA7FD,kDAAuB;AAGvB,wCAAyE;AACzE,oCAAkE;AAG3D,MAAM,kCAAkC,GAAG,KAAK,EACrD,GAAuD,EACvD,IAAa,EACb,KAAc,EACd,sBAA+B,EAC/B,0BAAkC,EAChB,EAAE;IACpB,MAAM,wBAAwB,GAAG,MAAM,IAAA,qCAA6B,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAEvF,OAAO,wBAAwB;SAC5B,GAAG,CAAC,IAAA,iCAAuB,EAAC,sBAAsB,EAAE,0BAA0B,CAAC,CAAC;SAChF,eAAe,CAAC,0BAA0B,CAAC,CAAC;AACjD,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,kBAAkB,GAAG,CAAC,OAAsB,EAAE,EAAE;IAC3D,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,OAAsB;IACvD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,eAAO,CAAC;AACzE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,SAAgB,wBAAwB,CACtC,WAA0B,EAC1B,WAA0B,EAC1B,oBAA6B,EAC7B,oBAA6B,EAC7B,wBAAiC;IAEjC,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAChE,MAAM,aAAa,GAAG,WAAW,CAAC,2BAA2B,EAAE,CAAC;IAEhE,2FAA2F;IAC3F,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC7E,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE1E,6FAA6F;IAC7F,4FAA4F;IAC5F,8FAA8F;IAC9F,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,UAAU;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,IAAI,KAAK,CACb,oFAAoF;QAClF,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,EAAE;QAC5F,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,wBAAwB,aAAa,iBAAiB,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;QAC5G,iBAAiB,WAAW,eAAe,aAAa,cAAc,oBAAoB,GAAG,CAChG,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamino-finance/klend-sdk",
3
- "version": "9.0.0",
3
+ "version": "9.0.1",
4
4
  "description": "Typescript SDK for interacting with the Kamino Lending (klend) protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -368,12 +368,15 @@ async function getSwapCollViaDebt<QuoteResponse>(
368
368
  }
369
369
 
370
370
  // Flash-borrow amount: we want to repay most (not all) of the debt, so that the borrow reserve stays in the
371
- // obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. We subtract 1 lamport
372
- // from the current (token-unit) outstanding balance converted to lamports. The on-chain repay is capped at
373
- // `min(passed_amount, outstanding_with_interest)`, so passing slightly under the outstanding keeps dust alive.
371
+ // obligation's borrow list and subsequent refresh ixs don't have a mismatched account count. Leaving only 1 lamport
372
+ // trips klend's min-value guard, so leave at least the market's configured minimum debt value.
374
373
  const outstandingDebtTokens = context.obligation.getBorrowAmountByReserve(debtReserve);
375
374
  const outstandingDebtLamports = outstandingDebtTokens.mul(debtReserve.getMintFactor()).ceil();
376
- const flashBorrowDebtLamports = Decimal.max(outstandingDebtLamports.sub(1), new Decimal(1));
375
+ const flashBorrowDebtLamports = calculateViaDebtFlashBorrowLamports(
376
+ outstandingDebtLamports,
377
+ context.market.getMinNetValueObligation(),
378
+ debtReserve
379
+ );
377
380
  const { flashRepayDebtLamports } = calculateViaDebtFlashLoanAmounts(flashBorrowDebtLamports, debtReserve, context);
378
381
  const debtIncreaseLamports = calculateDebtIncreaseWithBorrowFeesLamports(
379
382
  flashBorrowDebtLamports,
@@ -489,6 +492,23 @@ function calculateViaDebtFlashLoanAmounts(
489
492
  };
490
493
  }
491
494
 
495
+ export function calculateViaDebtFlashBorrowLamports(
496
+ outstandingDebtLamports: Decimal,
497
+ minRemainingDebtValue: Decimal,
498
+ debtReserve: KaminoReserve
499
+ ): Decimal {
500
+ const minRemainingDebtLamports = minRemainingDebtValue.lte(0)
501
+ ? new Decimal(1)
502
+ : minRemainingDebtValue.div(debtReserve.getOracleMarketPrice()).mul(debtReserve.getMintFactor()).ceil().add(1);
503
+ const flashBorrowDebtLamports = outstandingDebtLamports.sub(minRemainingDebtLamports);
504
+ if (flashBorrowDebtLamports.lt(1)) {
505
+ throw new Error(
506
+ `Outstanding ${debtReserve.symbol} debt (${outstandingDebtLamports} lamports) is too small for the via-debt swap-collateral flow while leaving the market minimum debt value`
507
+ );
508
+ }
509
+ return flashBorrowDebtLamports;
510
+ }
511
+
492
512
  function calculateDebtIncreaseWithBorrowFeesLamports(
493
513
  flashBorrowDebtLamports: Decimal,
494
514
  flashRepayDebtLamports: Decimal,
@@ -17,12 +17,17 @@ import {
17
17
  getComputeBudgetAndPriorityFeeIxs,
18
18
  getObligationType,
19
19
  ObligationType,
20
- ObligationTypeTag,
21
20
  removeBudgetIxs,
22
21
  U64_MAX,
23
22
  uniqueAccountsWithProgramIds,
24
23
  WRAPPED_SOL_MINT,
25
24
  } from '../utils';
25
+ // ObligationTypeTag is imported from the leaf module, not the '../utils' barrel: the
26
+ // DEBT_SEEDED_OBLIGATION_TAGS / FIXED_RATE_OBLIGATION_TAGS Sets below read it at module-eval
27
+ // time, and the barrel's live re-export is `undefined` during circular init
28
+ // (utils ⇄ lending_operations). ObligationType.ts only imports kit + pubkey, so it is always
29
+ // fully evaluated by the time this module's top level runs.
30
+ import { ObligationTypeTag } from '../utils/ObligationType';
26
31
  import { Account, Address, Instruction, isSome, none, Option, Slot, some, TransactionSigner } from '@solana/kit';
27
32
  import Decimal from 'decimal.js';
28
33
  import { TOKEN_PROGRAM_ADDRESS } from '@solana-program/token';
@@ -1,7 +1,11 @@
1
- import { Address, Option, Slot } from '@solana/kit';
1
+ import type { Address, Option, Slot } from '@solana/kit';
2
2
  import Decimal from 'decimal.js';
3
3
 
4
- import { KaminoMarket, KaminoObligation, lamportsToNumberDecimal as fromLamports } from '../classes';
4
+ import { lamportsToNumberDecimal as fromLamports, type KaminoMarket, type KaminoObligation } from '../classes';
5
+ import {
6
+ calcRepayAmountWithSlippage,
7
+ calcRepayWithCollCollFlashSwap,
8
+ } from '../lending_operations/repay_with_collateral_calcs';
5
9
  import { WRAPPED_SOL_MINT } from '../utils';
6
10
  import {
7
11
  adjustDepositLeverageCalcsDebtFlash,
@@ -12,20 +16,17 @@ import {
12
16
  withdrawLeverageCalcs,
13
17
  withdrawLeverageCalcsCollFlash,
14
18
  } from './calcs';
15
- import { FlashBorrowType } from './types';
19
+ import type { FlashBorrowType } from './types';
16
20
  import { determineFlashBorrowType } from './utils';
17
- import {
18
- calcRepayAmountWithSlippage,
19
- calcRepayWithCollCollFlashSwap,
20
- } from '../lending_operations/repay_with_collateral_calcs';
21
21
 
22
22
  /**
23
23
  * Intent-level helpers that pick a viable `FlashBorrowType` for each leverage operation.
24
24
  *
25
25
  * Callers provide only the intent (amounts, target leverage, price); the SDK computes the
26
- * required-lamport size for each candidate flash side, then runs the existing
27
- * `determineFlashBorrowType` viability check (flash loans enabled + sufficient liquidity, prefer
28
- * coll when both are viable).
26
+ * required-lamport size for each candidate flash side AND the collateral redeemed in the same tx
27
+ * for ops that have a redeem leg — then runs the `determineFlashBorrowType` viability check (flash
28
+ * loans enabled + the reserve covers flash-borrow + redeem). Coll-flash is preferred when it is
29
+ * genuinely viable; otherwise it falls back to debt-flash.
29
30
  *
30
31
  * Each helper throws with a diagnostic message if neither side is viable.
31
32
  */
@@ -95,14 +96,16 @@ export function determineDepositLeverageFlashBorrowType(props: {
95
96
  });
96
97
  const requiredDebtLamports = debtFlashCalcs.flashBorrowInDebtToken.mul(debtReserve.getMintFactor()).ceil();
97
98
 
98
- return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
99
+ // A leveraged deposit/open deposits collateral; it never redeems from the collateral reserve.
100
+ return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports, new Decimal(0));
99
101
  }
100
102
 
101
103
  /**
102
104
  * Picks a viable `FlashBorrowType` for a leveraged WITHDRAW (partial unwind or close-position).
103
105
  *
104
106
  * - debt-flash flash-borrows the repay amount in debt lamports.
105
- * - coll-flash flash-borrows the swap-in amount in coll lamports.
107
+ * - coll-flash flash-borrows the swap-in amount in coll lamports AND redeems collateral from the
108
+ * same reserve in the same tx, so coll-flash viability accounts for both legs (flash + redeem).
106
109
  * - Sizes come from `withdrawLeverageCalcs` and `withdrawLeverageCalcsCollFlash`.
107
110
  *
108
111
  * @throws if neither side is viable.
@@ -196,7 +199,22 @@ export function determineWithdrawLeverageFlashBorrowType(props: {
196
199
  );
197
200
  const requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
198
201
 
199
- return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
202
+ // Coll-flash also redeems collateral from the SAME reserve in the same tx
203
+ // (WithdrawObligationCollateralAndRedeemReserveCollateral), before the flash loan is repaid. On a
204
+ // close that's the entire deposit; on a partial it's `depositTokenWithdrawAmount` (matches the
205
+ // amount the build flow passes to the redeem ix). Pass it so a thin collateral reserve that can't
206
+ // cover flash-borrow + redeem falls back to debt-flash instead of self-colliding (klend 6008).
207
+ const redeemCollLamports = (isClosingPosition ? deposited : collFlashCalcs.depositTokenWithdrawAmount)
208
+ .mul(collReserve.getMintFactor())
209
+ .ceil();
210
+
211
+ return determineFlashBorrowType(
212
+ collReserve,
213
+ debtReserve,
214
+ requiredCollLamports,
215
+ requiredDebtLamports,
216
+ redeemCollLamports
217
+ );
200
218
  }
201
219
 
202
220
  /**
@@ -205,9 +223,11 @@ export function determineWithdrawLeverageFlashBorrowType(props: {
205
223
  * Auto-detects increase vs decrease from the sign of the position deltas returned by
206
224
  * `calcAdjustAmounts`:
207
225
  * - increase (current < target): coll-flash borrows `adjustDepositPosition` coll lamports,
208
- * debt-flash borrows `flashBorrowInDebtToken` debt lamports;
226
+ * debt-flash borrows `flashBorrowInDebtToken` debt lamports; deposits collateral, so no redeem;
209
227
  * - decrease (current > target): debt-flash borrows |`adjustBorrowPosition`| debt lamports,
210
- * coll-flash borrows `flashBorrowInCollToken` coll lamports.
228
+ * coll-flash borrows `flashBorrowInCollToken` coll lamports AND withdraws
229
+ * `depositTokenWithdrawAmount` coll from the same reserve to repay the flash loan — a redeem leg
230
+ * the coll-flash viability check accounts for (thin reserve: flash + redeem can self-collide).
211
231
  *
212
232
  * @throws if neither side is viable, or if `targetLeverage` equals the current leverage exactly
213
233
  * (nothing to adjust — caller should skip the op).
@@ -267,6 +287,9 @@ export function determineAdjustLeverageFlashBorrowType(props: {
267
287
 
268
288
  let requiredCollLamports: Decimal;
269
289
  let requiredDebtLamports: Decimal;
290
+ // Increase (leverage-up) deposits collateral — no redeem. Decrease (deleverage) coll-flash
291
+ // withdraws collateral from the same reserve to repay the flash loan, so it has a redeem leg.
292
+ let redeemCollLamports = new Decimal(0);
270
293
 
271
294
  if (isIncrease) {
272
295
  // Coll-flash borrows enough coll to deposit; debt-flash borrows the debt-side calc.
@@ -291,9 +314,16 @@ export function determineAdjustLeverageFlashBorrowType(props: {
291
314
  slippagePct
292
315
  );
293
316
  requiredCollLamports = collFlashCalcs.flashBorrowInCollToken.mul(collReserve.getMintFactor()).ceil();
317
+ redeemCollLamports = collFlashCalcs.depositTokenWithdrawAmount.mul(collReserve.getMintFactor()).ceil();
294
318
  }
295
319
 
296
- return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
320
+ return determineFlashBorrowType(
321
+ collReserve,
322
+ debtReserve,
323
+ requiredCollLamports,
324
+ requiredDebtLamports,
325
+ redeemCollLamports
326
+ );
297
327
  }
298
328
 
299
329
  /**
@@ -303,10 +333,12 @@ export function determineAdjustLeverageFlashBorrowType(props: {
303
333
  *
304
334
  * Semantics (matches the build flows):
305
335
  * - debt-flash needs to flash borrow the IR-adjusted debt repay amount in debt lamports;
306
- * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount.
336
+ * - coll-flash needs to flash borrow enough coll to swap into that same IR-adjusted repay amount,
337
+ * then withdraws `collWithdrawForFlashRepayLamports` coll from the reserve to repay the flash loan.
307
338
  *
308
339
  * Both sides are then validated against `isFlashLoanEnabled(reserve)` and against the reserve's
309
- * available liquidity by `determineFlashBorrowType`. Preference is coll when both work.
340
+ * available liquidity by `determineFlashBorrowType` coll-flash must cover flash-borrow + that
341
+ * redeem leg. Coll-flash is preferred when genuinely viable; otherwise it falls back to debt-flash.
310
342
  *
311
343
  * @throws if neither reserve supports flash borrowing the required amount.
312
344
  */
@@ -355,14 +387,23 @@ export function determineRepayWithCollFlashBorrowType(props: {
355
387
  // Debt-flash borrows the same IR-adjusted repay amount used by the transaction builder.
356
388
  const requiredDebtLamports = repayAmountLamports;
357
389
 
358
- const { flashBorrowInCollLamports: requiredCollLamports } = calcRepayWithCollCollFlashSwap({
359
- repayAmountLamports,
360
- swapPriceCollToDebt: priceCollToDebt,
361
- slippagePct,
362
- collFlashLoanFee: collReserve.getFlashLoanFee(),
363
- collMintFactor: collReserve.getMintFactor(),
364
- debtMintFactor: debtReserve.getMintFactor(),
365
- });
390
+ // Coll-flash repays the debt by swapping flash-borrowed coll, then withdraws collateral from the
391
+ // same reserve to repay the flash loan — `collWithdrawForFlashRepayLamports` is that redeem leg.
392
+ const { flashBorrowInCollLamports: requiredCollLamports, collWithdrawForFlashRepayLamports } =
393
+ calcRepayWithCollCollFlashSwap({
394
+ repayAmountLamports,
395
+ swapPriceCollToDebt: priceCollToDebt,
396
+ slippagePct,
397
+ collFlashLoanFee: collReserve.getFlashLoanFee(),
398
+ collMintFactor: collReserve.getMintFactor(),
399
+ debtMintFactor: debtReserve.getMintFactor(),
400
+ });
366
401
 
367
- return determineFlashBorrowType(collReserve, debtReserve, requiredCollLamports, requiredDebtLamports);
402
+ return determineFlashBorrowType(
403
+ collReserve,
404
+ debtReserve,
405
+ requiredCollLamports,
406
+ requiredDebtLamports,
407
+ collWithdrawForFlashRepayLamports
408
+ );
368
409
  }
@@ -1,9 +1,10 @@
1
- import { KaminoReserve, lamportsToNumberDecimal } from '../classes';
2
- import { Address, GetAccountInfoApi, Rpc, GetTokenAccountBalanceApi } from '@solana/kit';
3
- import Decimal from 'decimal.js';
4
- import { getTokenAccountBalanceDecimal, U64_MAX } from '../utils';
1
+ import type { Address, GetAccountInfoApi, GetTokenAccountBalanceApi, Rpc } from '@solana/kit';
5
2
  import BN from 'bn.js';
6
- import { FlashBorrowType } from './types';
3
+ import type Decimal from 'decimal.js';
4
+
5
+ import { type KaminoReserve, lamportsToNumberDecimal } from '../classes';
6
+ import { getTokenAccountBalanceDecimal, U64_MAX } from '../utils';
7
+ import type { FlashBorrowType } from './types';
7
8
 
8
9
  export const getExpectedTokenBalanceAfterBorrow = async (
9
10
  rpc: Rpc<GetAccountInfoApi & GetTokenAccountBalanceApi>,
@@ -37,14 +38,26 @@ export function isFlashLoanEnabled(reserve: KaminoReserve): boolean {
37
38
  *
38
39
  * Checks:
39
40
  * 1. Whether flash loans are enabled on the reserve (flashLoanFeeSf !== U64_MAX)
40
- * 2. Whether the reserve has sufficient available liquidity
41
+ * 2. Whether the reserve has sufficient available liquidity to service the flash borrow AND,
42
+ * on a withdraw/close, the collateral redeem that happens in the same transaction.
43
+ *
44
+ * Coll-flash and the collateral redeem (WithdrawObligationCollateralAndRedeemReserveCollateral)
45
+ * both draw from the collateral reserve within a single transaction, and the flash loan is not
46
+ * repaid until after the redeem. So a thin collateral reserve can satisfy the flash borrow alone
47
+ * yet still revert with InsufficientLiquidity (klend 6008) once the redeem is added on top.
41
48
  *
42
- * When both reserves are viable, prefers collateral (typically has more liquidity).
49
+ * `redeemCollateralLamports` is required (not optional): every caller must pass the collateral that
50
+ * its transaction redeems from the collateral reserve in the same tx, so coll-flash viability always
51
+ * accounts for both legs. Pass 0 only when the op genuinely has no redeem (opens / leverage-up
52
+ * deposits). Withdraw/close, deleverage (adjust-decrease) and repay-with-collateral all redeem.
43
53
  *
44
54
  * @param collReserve - The collateral reserve
45
55
  * @param debtReserve - The debt reserve
46
56
  * @param requiredCollLamports - Amount needed if flash borrowing collateral
47
57
  * @param requiredDebtLamports - Amount needed if flash borrowing debt
58
+ * @param redeemCollateralLamports - Collateral liquidity redeemed from the collateral reserve in the
59
+ * same tx (the coll withdraw/redeem amount). 0 only when the op has no redeem leg. Coll-flash
60
+ * requires the reserve to cover `requiredCollLamports + redeemCollateralLamports`.
48
61
  * @returns 'coll' or 'debt'
49
62
  * @throws if neither reserve supports flash borrowing the required amount
50
63
  */
@@ -52,7 +65,8 @@ export function determineFlashBorrowType(
52
65
  collReserve: KaminoReserve,
53
66
  debtReserve: KaminoReserve,
54
67
  requiredCollLamports: Decimal,
55
- requiredDebtLamports: Decimal
68
+ requiredDebtLamports: Decimal,
69
+ redeemCollateralLamports: Decimal
56
70
  ): FlashBorrowType {
57
71
  const collEnabled = isFlashLoanEnabled(collReserve);
58
72
  const debtEnabled = isFlashLoanEnabled(debtReserve);
@@ -60,19 +74,22 @@ export function determineFlashBorrowType(
60
74
  const collLiquidity = collReserve.getLiquidityAvailableAmount();
61
75
  const debtLiquidity = debtReserve.getLiquidityAvailableAmount();
62
76
 
63
- const collViable = collEnabled && collLiquidity.gte(requiredCollLamports);
77
+ // Coll-flash must leave enough liquidity for the in-tx collateral redeem too, not just the
78
+ // flash borrow — otherwise the two collide and the redeem reverts (klend 6008).
79
+ const requiredCollTotal = requiredCollLamports.add(redeemCollateralLamports);
80
+ const collViable = collEnabled && collLiquidity.gte(requiredCollTotal);
64
81
  const debtViable = debtEnabled && debtLiquidity.gte(requiredDebtLamports);
65
82
 
66
- if (collViable && debtViable) {
67
- // Prefer collateral collateral reserves typically have much more liquidity
68
- return 'coll';
69
- }
83
+ // Prefer the flash type the relevant reserve(s) can actually service. The old "always prefer
84
+ // collateral" heuristic is wrong for thin/nascent LST reserves on withdraw/close: there the
85
+ // collateral reserve is the constraint, so debt-flash (deep debt reserve) is the safe choice.
70
86
  if (collViable) return 'coll';
71
87
  if (debtViable) return 'debt';
72
88
 
73
89
  throw new Error(
74
90
  `Neither collateral nor debt reserve supports flash borrowing the required amount. ` +
75
- `Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}. ` +
91
+ `Coll: enabled=${collEnabled}, available=${collLiquidity}, required=${requiredCollLamports}` +
92
+ `${redeemCollateralLamports.gt(0) ? ` (+${redeemCollateralLamports} redeem = ${requiredCollTotal})` : ''}. ` +
76
93
  `Debt: enabled=${debtEnabled}, available=${debtLiquidity}, required=${requiredDebtLamports}.`
77
94
  );
78
95
  }