# Test Report

Below is an report of all smart contract level tests that are run against the protocol, in all repos.

Current number of tests in this report is: **3634 tests**.

## `maple-core-v2`

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewDepositTests \[PASS] test\_previewDeposit\_multipleUsers() (gas: 448912) \[PASS] test\_previewDeposit\_multipleUsers\_changeTotalAssets() (gas: 471596) \[PASS] test\_previewDeposit\_nonZeroTotalSupply() (gas: 273218) \[PASS] test\_previewDeposit\_zeroTotalSupply() (gas: 10411) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 74.89ms (4.06ms CPU time)

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewMintTests \[PASS] test\_previewMint\_multipleUsers() (gas: 449301) \[PASS] test\_previewMint\_multipleUsers\_changeTotalAssets() (gas: 471980) \[PASS] test\_previewMint\_nonZeroTotalSupply() (gas: 273748) \[PASS] test\_previewMint\_zeroTotalSupply() (gas: 10296) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 55.02ms (2.87ms CPU time)

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewRedeemTests \[PASS] test\_previewRedeem\_invalidShares() (gas: 401591) \[PASS] test\_previewRedeem\_lockedShares\_inExitWindow() (gas: 424755) \[PASS] test\_previewRedeem\_lockedShares\_notInExitWindow() (gas: 404857) \[PASS] test\_previewRedeem\_noLockedShares\_notInExitWindow() (gas: 33887) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 30.39ms (1.81ms CPU time)

Ran 7 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewRedeemWithQueueWMTests \[PASS] test\_previewRedeem\_emptyRedemption\_fullLiquidity() (gas: 118660) \[PASS] test\_previewRedeem\_emptyRedemption\_partialLiquidity() (gas: 118705) \[PASS] test\_previewRedeem\_fullRedemption\_fullLiquidity() (gas: 118938) \[PASS] test\_previewRedeem\_fullRedemption\_partialLiquidity() (gas: 118953) \[PASS] test\_previewRedeem\_insufficientShares() (gas: 36106) \[PASS] test\_previewRedeem\_partialRedemption\_fullLiquidity() (gas: 119195) \[PASS] test\_previewRedeem\_partialRedemption\_partialLiquidity() (gas: 119243) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 32.22ms (1.80ms CPU time)

Ran 3 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveClaimRewardsTests \[PASS] testFork\_aaveStrategy\_claimRewards\_paused() (gas: 59583) \[PASS] testFork\_aaveStrategy\_claimRewards\_success() (gas: 701229) \[PASS] testFork\_aaveStrategy\_claimRewards\_unauthorized() (gas: 67726) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 254.62ms (3.58ms CPU time)

Ran 6 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewWithdrawTests \[PASS] testDeepFuzz\_previewWithdraw(uint256) (runs: 100, μ: 31794, \~: 31794) \[PASS] testDeepFuzz\_previewWithdraw\_lockedShares\_inExitWindow(uint256) (runs: 100, μ: 406672, \~: 406836) \[PASS] testDeepFuzz\_previewWithdraw\_lockedShares\_notInExitWindow(uint256) (runs: 100, μ: 406724, \~: 406904) \[PASS] test\_previewWithdraw() (gas: 260152) \[PASS] test\_previewWithdraw\_zeroAssetsWithDeposit() (gas: 260130) \[PASS] test\_previewWithdraw\_zeroAssetsWithoutDeposit() (gas: 31767) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 192.09ms (150.99ms CPU time)

Ran 19 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveReactivateTests \[PASS] testFork\_aaveStrategy\_reactivate\_failIfAlreadyActive() (gas: 121708) \[PASS] testFork\_aaveStrategy\_reactivate\_failIfNotProtocolAdmin() (gas: 114414) \[PASS] testFork\_aaveStrategy\_reactivate\_failIfPaused() (gas: 78135) \[PASS] testFork\_aaveStrategy\_reactivate\_stagnant\_fromImpaired\_withAccountingUpdate() (gas: 590450) \[PASS] testFork\_aaveStrategy\_reactivate\_stagnant\_fromImpaired\_withoutAccountingUpdate() (gas: 586666) \[PASS] testFork\_aaveStrategy\_reactivate\_stagnant\_fromInactive\_withAccountingUpdate() (gas: 577898) \[PASS] testFork\_aaveStrategy\_reactivate\_stagnant\_fromInactive\_withoutAccountingUpdate() (gas: 578193) \[PASS] testFork\_aaveStrategy\_reactivate\_unfunded\_fromImpaired\_withAccountingUpdate() (gas: 309846) \[PASS] testFork\_aaveStrategy\_reactivate\_unfunded\_fromImpaired\_withoutAccountingUpdate() (gas: 305581) \[PASS] testFork\_aaveStrategy\_reactivate\_unfunded\_fromInactive\_withAccountingUpdate() (gas: 296054) \[PASS] testFork\_aaveStrategy\_reactivate\_unfunded\_fromInactive\_withoutAccountingUpdate() (gas: 291745) \[PASS] testFork\_aaveStrategy\_reactivate\_withGain\_fromImpaired\_withAccountingUpdate() (gas: 611156) \[PASS] testFork\_aaveStrategy\_reactivate\_withGain\_fromImpaired\_withoutAccountingUpdate() (gas: 607435) \[PASS] testFork\_aaveStrategy\_reactivate\_withGain\_fromInactive\_withAccountingUpdate() (gas: 593891) \[PASS] testFork\_aaveStrategy\_reactivate\_withGain\_fromInactive\_withoutAccountingUpdate() (gas: 592442) \[PASS] testFork\_aaveStrategy\_reactivate\_withLoss\_fromImpaired\_withAccountingUpdate() (gas: 683820) \[PASS] testFork\_aaveStrategy\_reactivate\_withLoss\_fromImpaired\_withoutAccountingUpdate() (gas: 678853) \[PASS] testFork\_aaveStrategy\_reactivate\_withLoss\_fromInactive\_withAccountingUpdate() (gas: 668271) \[PASS] testFork\_aaveStrategy\_reactivate\_withLoss\_fromInactive\_withoutAccountingUpdate() (gas: 663206) Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 164.21ms (40.57ms CPU time)

Ran 9 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveSetStrategyFeeTests \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_failIfBiggerThanHundredPercent() (gas: 60879) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_failIfDeactivated() (gas: 92597) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_failIfImpaired() (gas: 92641) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_failIfNotProtocolAdmin() (gas: 62900) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_failIfPaused() (gas: 56670) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_withGovernor\_fromNonZeroToZeroFeeRate() (gas: 748288) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_withGovernor\_unfundedStrategy() (gas: 286559) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_withOperationalAdmin\_withWithdrawal() (gas: 862034) \[PASS] testFork\_aaveStrategy\_setStrategyFeeRate\_withPoolDelegate\_fundedStrategy() (gas: 663929) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 138.37ms (12.22ms CPU time)

Ran 1 test for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewWithdrawWithQueueWMTests \[PASS] testFuzz\_previewWithdraw(address,bool,uint256,uint256,uint256) (runs: 100, μ: 618283, \~: 649364) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 194.44ms (142.51ms CPU time)

Ran 5 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:TotalAssetsTests \[PASS] test\_totalAssets\_singleDeposit() (gas: 256342) \[PASS] test\_totalAssets\_singleLoanFunded() (gas: 1470595) \[PASS] test\_totalAssets\_singleLoanFundedWithInterest() (gas: 1501270) \[PASS] test\_totalAssets\_singleLoanFundedWithPayment() (gas: 1672159) \[PASS] test\_totalAssets\_zeroTotalSupply() (gas: 61877) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 37.78ms (5.72ms CPU time)

Ran 9 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveStrategyDeactivateTests \[PASS] testFork\_aaveStrategy\_deactivate\_failIfAlreadyInactive() (gas: 94894) \[PASS] testFork\_aaveStrategy\_deactivate\_failIfNotProtocolAdmin() (gas: 60662) \[PASS] testFork\_aaveStrategy\_deactivate\_failIfPaused() (gas: 54408) \[PASS] testFork\_aaveStrategy\_deactivate\_stagnant\_noFees() (gas: 583833) \[PASS] testFork\_aaveStrategy\_deactivate\_unfundedStrategy() (gas: 301517) \[PASS] testFork\_aaveStrategy\_deactivate\_withFullLoss\_strategyFees() (gas: 672061) \[PASS] testFork\_aaveStrategy\_deactivate\_withGain\_impaired\_strategyFees() (gas: 678273) \[PASS] testFork\_aaveStrategy\_deactivate\_withGain\_strategyFees() (gas: 614869) \[PASS] testFork\_aaveStrategy\_deactivate\_withLoss\_strategyFees() (gas: 686558) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 139.57ms (15.30ms CPU time)

Ran 12 tests for tests/integration/permission-manager/PoolEntryPermission.t.sol:FunctionLevelPermissionTests \[PASS] test\_poolEntry\_functionLevel\_deposit() (gas: 375834) \[PASS] test\_poolEntry\_functionLevel\_depositWithPermit() (gas: 416669) \[PASS] test\_poolEntry\_functionLevel\_depositWithPermit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 375356) \[PASS] test\_poolEntry\_functionLevel\_depositWithPermit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 341383) \[PASS] test\_poolEntry\_functionLevel\_deposit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 335234) \[PASS] test\_poolEntry\_functionLevel\_deposit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 301435) \[PASS] test\_poolEntry\_functionLevel\_mint() (gas: 379086) \[PASS] test\_poolEntry\_functionLevel\_mintWithPermit() (gas: 420307) \[PASS] test\_poolEntry\_functionLevel\_mintWithPermit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 377750) \[PASS] test\_poolEntry\_functionLevel\_mintWithPermit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 343799) \[PASS] test\_poolEntry\_functionLevel\_mint\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 337463) \[PASS] test\_poolEntry\_functionLevel\_mint\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 303512) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 41.76ms (8.31ms CPU time)

Ran 12 tests for tests/integration/permission-manager/PoolEntryPermission.t.sol:PoolLevelPermissionTests \[PASS] test\_poolEntry\_poolLevel\_deposit() (gas: 375919) \[PASS] test\_poolEntry\_poolLevel\_depositWithPermit() (gas: 416643) \[PASS] test\_poolEntry\_poolLevel\_depositWithPermit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 375317) \[PASS] test\_poolEntry\_poolLevel\_depositWithPermit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 341430) \[PASS] test\_poolEntry\_poolLevel\_deposit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 335237) \[PASS] test\_poolEntry\_poolLevel\_deposit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 301352) \[PASS] test\_poolEntry\_poolLevel\_mint() (gas: 379124) \[PASS] test\_poolEntry\_poolLevel\_mintWithPermit() (gas: 420238) \[PASS] test\_poolEntry\_poolLevel\_mintWithPermit\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 377731) \[PASS] test\_poolEntry\_poolLevel\_mintWithPermit\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 343868) \[PASS] test\_poolEntry\_poolLevel\_mint\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 337402) \[PASS] test\_poolEntry\_poolLevel\_mint\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 303561) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 56.98ms (19.33ms CPU time)

Ran 14 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveStrategyFundTests \[PASS] testFork\_aaveStrategy\_fund\_failIfInvalidAaveToken() (gas: 85263) \[PASS] testFork\_aaveStrategy\_fund\_failIfInvalidStrategyFactory() (gas: 144110) \[PASS] testFork\_aaveStrategy\_fund\_failIfNotEnoughPoolLiquidity() (gas: 186100) \[PASS] testFork\_aaveStrategy\_fund\_failIfNotStrategyManager() (gas: 58518) \[PASS] testFork\_aaveStrategy\_fund\_failIfZeroAmount() (gas: 127118) \[PASS] testFork\_aaveStrategy\_fund\_failWhenDeactivated() (gas: 97451) \[PASS] testFork\_aaveStrategy\_fund\_failWhenImpaired() (gas: 97560) \[PASS] testFork\_aaveStrategy\_fund\_failWhenPaused() (gas: 54160) \[PASS] testFork\_aaveStrategy\_fund\_secondTimeWithFeesAndYield() (gas: 728141) \[PASS] testFork\_aaveStrategy\_fund\_secondTimeWithFeesRoundedToZeroAndYield() (gas: 647838) \[PASS] testFork\_aaveStrategy\_fund\_secondTimeWithLoss() (gas: 725837) \[PASS] testFork\_aaveStrategy\_fund\_secondTimeWithNoFeesAndYield() (gas: 673559) \[PASS] testFork\_aaveStrategy\_fund\_withPoolDelegate() (gas: 543091) \[PASS] testFork\_aaveStrategy\_fund\_withStrategyManager() (gas: 546179) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 161.87ms (19.86ms CPU time)

Ran 4 tests for tests/integration/permission-manager/PoolEntryPermission.t.sol:PrivatePermissionTests \[PASS] test\_poolEntry\_private\_deposit() (gas: 322053) \[PASS] test\_poolEntry\_private\_depositWithPermit() (gas: 361984) \[PASS] test\_poolEntry\_private\_mint() (gas: 324196) \[PASS] test\_poolEntry\_private\_mintWithPermit() (gas: 364526) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 68.42ms (3.10ms CPU time)

Ran 4 tests for tests/integration/permission-manager/PoolEntryPermission.t.sol:PublicPermissionTests \[PASS] test\_poolEntry\_public\_deposit() (gas: 222373) \[PASS] test\_poolEntry\_public\_depositWithPermit() (gas: 261585) \[PASS] test\_poolEntry\_public\_mint() (gas: 223454) \[PASS] test\_poolEntry\_public\_mintWithPermit() (gas: 262824) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 38.28ms (2.35ms CPU time)

Ran 15 tests for tests/integration/permission-manager/PoolExitPermission.t.sol:FunctionLevelPermissionTests \[PASS] test\_poolExit\_functionLevel\_redeem() (gas: 550656) \[PASS] test\_poolExit\_functionLevel\_redeem\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 555599) \[PASS] test\_poolExit\_functionLevel\_redeem\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 528457) \[PASS] test\_poolExit\_functionLevel\_removeShares() (gas: 445920) \[PASS] test\_poolExit\_functionLevel\_removeShares\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 450946) \[PASS] test\_poolExit\_functionLevel\_removeShares\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 423857) \[PASS] test\_poolExit\_functionLevel\_requestRedeem() (gas: 389044) \[PASS] test\_poolExit\_functionLevel\_requestRedeem\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 348469) \[PASS] test\_poolExit\_functionLevel\_requestRedeem\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 314564) \[PASS] test\_poolExit\_functionLevel\_requestWithdraw() (gas: 316437) \[PASS] test\_poolExit\_functionLevel\_requestWithdraw\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 275712) \[PASS] test\_poolExit\_functionLevel\_requestWithdraw\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 241915) \[PASS] test\_poolExit\_functionLevel\_withdraw() (gas: 230166) \[PASS] test\_poolExit\_functionLevel\_withdraw\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 189348) \[PASS] test\_poolExit\_functionLevel\_withdraw\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 155398) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 74.74ms (23.43ms CPU time)

Ran 9 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveStrategyImpairTests \[PASS] testFork\_aaveStrategy\_impair\_failIfAlreadyImpaired() (gas: 98119) \[PASS] testFork\_aaveStrategy\_impair\_failIfNotProtocolAdmin() (gas: 60727) \[PASS] testFork\_aaveStrategy\_impair\_failIfPaused() (gas: 54476) \[PASS] testFork\_aaveStrategy\_impair\_stagnant\_noFees() (gas: 596364) \[PASS] testFork\_aaveStrategy\_impair\_unfundedStrategy() (gas: 315308) \[PASS] testFork\_aaveStrategy\_impair\_withFullLoss\_strategyFees() (gas: 685809) \[PASS] testFork\_aaveStrategy\_impair\_withGain\_inactive\_strategyFees() (gas: 678250) \[PASS] testFork\_aaveStrategy\_impair\_withGain\_strategyFees() (gas: 629874) \[PASS] testFork\_aaveStrategy\_impair\_withLoss\_strategyFees() (gas: 700833) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 157.30ms (15.75ms CPU time)

Ran 15 tests for tests/integration/permission-manager/PoolExitPermission.t.sol:PoolLevelPermissionTests \[PASS] test\_poolExit\_poolLevel\_redeem() (gas: 519140) \[PASS] test\_poolExit\_poolLevel\_redeem\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 510285) \[PASS] test\_poolExit\_poolLevel\_redeem\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 483193) \[PASS] test\_poolExit\_poolLevel\_removeShares() (gas: 414315) \[PASS] test\_poolExit\_poolLevel\_removeShares\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 405683) \[PASS] test\_poolExit\_poolLevel\_removeShares\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 378592) \[PASS] test\_poolExit\_poolLevel\_requestRedeem() (gas: 389041) \[PASS] test\_poolExit\_poolLevel\_requestRedeem\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 348387) \[PASS] test\_poolExit\_poolLevel\_requestRedeem\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 314503) \[PASS] test\_poolExit\_poolLevel\_requestWithdraw() (gas: 316501) \[PASS] test\_poolExit\_poolLevel\_requestWithdraw\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 275716) \[PASS] test\_poolExit\_poolLevel\_requestWithdraw\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 241896) \[PASS] test\_poolExit\_poolLevel\_withdraw() (gas: 230164) \[PASS] test\_poolExit\_poolLevel\_withdraw\_zeroPoolBitmap\_nonZeroLenderBitmap() (gas: 189309) \[PASS] test\_poolExit\_poolLevel\_withdraw\_zeroPoolBitmap\_zeroLenderBitmap() (gas: 155469) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 77.94ms (22.14ms CPU time)

Ran 5 tests for tests/integration/permission-manager/PoolExitPermission.t.sol:PrivatePermissionTests \[PASS] test\_poolExit\_private\_redeem() (gas: 463761) \[PASS] test\_poolExit\_private\_removeShares() (gas: 359104) \[PASS] test\_poolExit\_private\_requestRedeem() (gas: 342134) \[PASS] test\_poolExit\_private\_requestWithdraw() (gas: 269432) \[PASS] test\_poolExit\_private\_withdraw() (gas: 183105) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 51.99ms (10.46ms CPU time)

Ran 5 tests for tests/integration/permission-manager/PoolExitPermission.t.sol:PublicPermissionTests \[PASS] test\_poolExit\_public\_redeem() (gas: 362452) \[PASS] test\_poolExit\_public\_removeShares() (gas: 256339) \[PASS] test\_poolExit\_public\_requestRedeem() (gas: 228923) \[PASS] test\_poolExit\_public\_requestWithdraw() (gas: 160685) \[PASS] test\_poolExit\_public\_withdraw() (gas: 74179) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 39.46ms (3.20ms CPU time)

Ran 12 tests for tests/integration/strategies/AaveStrategy.t.sol:AaveStrategyWithdrawTests \[PASS] testFork\_aaveStrategy\_withdraw\_failIfLowAssets() (gas: 99935) \[PASS] testFork\_aaveStrategy\_withdraw\_failIfNotStrategyManager() (gas: 58628) \[PASS] testFork\_aaveStrategy\_withdraw\_failIfZeroAmount() (gas: 58990) \[PASS] testFork\_aaveStrategy\_withdraw\_failWhenPaused() (gas: 54147) \[PASS] testFork\_aaveStrategy\_withdraw\_failWithFullLoss() (gas: 328442) \[PASS] testFork\_aaveStrategy\_withdraw\_noFeesWithYield() (gas: 460189) \[PASS] testFork\_aaveStrategy\_withdraw\_whileDeactivated() (gas: 443542) \[PASS] testFork\_aaveStrategy\_withdraw\_whileImpaired() (gas: 477137) \[PASS] testFork\_aaveStrategy\_withdraw\_withFeesAndYield() (gas: 507630) \[PASS] testFork\_aaveStrategy\_withdraw\_withFeesRoundedToZeroAndYield() (gas: 437996) \[PASS] testFork\_aaveStrategy\_withdraw\_withLoss() (gas: 501164) \[PASS] testFork\_aaveStrategy\_withdraw\_withPoolDelegate\_noFeesSameBlock() (gas: 433941) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 213.20ms (26.47ms CPU time)

Ran 6 tests for tests/integration/permission-manager/PoolTransferPermission.t.sol:FunctionLevelPermissionTests \[PASS] test\_poolTransfer\_functionLevel\_transfer() (gas: 311141) \[PASS] test\_poolTransfer\_functionLevel\_transferFrom() (gas: 317196) \[PASS] test\_poolTransfer\_functionLevel\_transferFrom\_zeroPoolBitmap\_nonZeroLenderBitmaps() (gas: 244061) \[PASS] test\_poolTransfer\_functionLevel\_transferFrom\_zeroPoolBitmap\_zeroLenderBitmaps() (gas: 180246) \[PASS] test\_poolTransfer\_functionLevel\_transfer\_zeroPoolBitmap\_nonZeroLenderBitmaps() (gas: 238769) \[PASS] test\_poolTransfer\_functionLevel\_transfer\_zeroPoolBitmap\_zeroLenderBitmaps() (gas: 174953) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 48.17ms (6.62ms CPU time)

Ran 4 tests for tests/integration/loan/AcceptLoanTerms.t.sol:AcceptLoanTermsFTLTests \[PASS] test\_acceptLoanTerms\_FTL\_failIfAlreadyAccepted() (gas: 67093) \[PASS] test\_acceptLoanTerms\_FTL\_failIfNotBorrower() (gas: 41542) \[PASS] test\_acceptLoanTerms\_FTL\_failIfPaused() (gas: 49625) \[PASS] test\_acceptLoanTerms\_FTL\_success() (gas: 64451) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 68.92ms (754.38µs CPU time)

Ran 6 tests for tests/integration/permission-manager/PoolTransferPermission.t.sol:PoolLevelPermissionTests \[PASS] test\_poolTransfer\_poolLevel\_transfer() (gas: 311205) \[PASS] test\_poolTransfer\_poolLevel\_transferFrom() (gas: 317173) \[PASS] test\_poolTransfer\_poolLevel\_transferFrom\_zeroPoolBitmap\_nonZeroLenderBitmaps() (gas: 244073) \[PASS] test\_poolTransfer\_poolLevel\_transferFrom\_zeroPoolBitmap\_zeroLenderBitmaps() (gas: 180281) \[PASS] test\_poolTransfer\_poolLevel\_transfer\_zeroPoolBitmap\_nonZeroLenderBitmaps() (gas: 238803) \[PASS] test\_poolTransfer\_poolLevel\_transfer\_zeroPoolBitmap\_zeroLenderBitmaps() (gas: 174988) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 42.75ms (5.44ms CPU time)

Ran 2 tests for tests/integration/permission-manager/PoolTransferPermission.t.sol:PrivatePermissionTests \[PASS] test\_poolTransfer\_private\_transfer() (gas: 260200) \[PASS] test\_poolTransfer\_private\_transferFrom() (gas: 265688) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 40.74ms (1.53ms CPU time)

Ran 4 tests for tests/integration/loan/AcceptLoanTerms.t.sol:AcceptLoanTermsOTLTests \[PASS] test\_acceptLoanTerms\_OTL\_failIfAlreadyAccepted() (gas: 67199) \[PASS] test\_acceptLoanTerms\_OTL\_failIfNotBorrower() (gas: 41519) \[PASS] test\_acceptLoanTerms\_OTL\_failIfPaused() (gas: 49648) \[PASS] test\_acceptLoanTerms\_OTL\_success() (gas: 64429) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 68.73ms (782.55µs CPU time)

Ran 2 tests for tests/integration/permission-manager/PoolTransferPermission.t.sol:PublicPermissionTests \[PASS] test\_poolTransfer\_public\_transfer() (gas: 92934) \[PASS] test\_poolTransfer\_public\_transferFrom() (gas: 97850) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 40.02ms (634.13µs CPU time)

Ran 3 tests for tests/integration/governor-timelock/AcceptTokenWithdrawer.t.sol:AcceptTokenWithdrawerTests \[PASS] test\_acceptTokenWithdrawer\_revert\_notAuthorized() (gas: 10661) \[PASS] test\_acceptTokenWithdrawer\_success() (gas: 37183) \[PASS] test\_setUp() (gas: 55582) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 71.09ms (722.19µs CPU time)

Ran 8 tests for tests/integration/withdrawal-manager/queue/ProcessEmptyRedemptions.t.sol:ProcessEmptyRedemptionsQueueTests \[PASS] test\_partialProcess\_then\_cancel\_head\_then\_processEmptyRedemptions() (gas: 680287) \[PASS] test\_processEmptyRedemptions\_emptyQueue\_noChange() (gas: 92195) \[PASS] test\_processEmptyRedemptions\_fullyProcessedQueue\_noChange() (gas: 350204) \[PASS] test\_processEmptyRedemptions\_multipleEmptyRequests() (gas: 1047428) \[PASS] test\_processEmptyRedemptions\_noEmptyRequests\_noChange() (gas: 666664) \[PASS] test\_processEmptyRedemptions\_stopsAtNonEmpty() (gas: 997404) \[PASS] test\_processEmptyRedemptions\_zeroRequests\_reverts() (gas: 54592) \[PASS] test\_processRedemptions\_then\_processEmptyRedemptions\_skipsCancelledFront() (gas: 839272) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 93.45ms (19.42ms CPU time)

Ran 3 tests for tests/integration/globals/ActivatePoolManager.t.sol:ActivatePoolManagerFailureTests \[PASS] test\_activatePoolManager\_failIfNotGlobals() (gas: 35070) \[PASS] test\_activatePoolManager\_failIfNotGovernor() (gas: 20336) \[PASS] test\_activatePoolManager\_failIfProtocolIsPaused() (gas: 65909) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 40.51ms (513.17µs CPU time)

Ran 9 tests for tests/integration/withdrawal-manager/queue/ProcessRedemptions.t.sol:ProcessRedemptionsTests \[PASS] test\_processRedemptions\_differentExchangeRate() (gas: 1632570) \[PASS] test\_processRedemptions\_lowLiquidity() (gas: 1073194) \[PASS] test\_processRedemptions\_manualWithDifferentExchangeRates() (gas: 1440724) \[PASS] test\_processRedemptions\_multipleLps() (gas: 1373084) \[PASS] test\_processRedemptions\_multipleManualBatched() (gas: 1907312) \[PASS] test\_processRedemptions\_overkill() (gas: 1483334) \[PASS] test\_processRedemptions\_withCancelledRequest() (gas: 1316334) \[PASS] test\_processRedemptions\_withImpairment() (gas: 1658197) \[PASS] test\_processRedemptions\_zeroShares() (gas: 59645) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 102.74ms (41.20ms CPU time)

Ran 2 tests for tests/integration/globals/ActivatePoolManager.t.sol:ActivatePoolManagerTests \[PASS] test\_activatePoolManager() (gas: 75498) \[PASS] test\_activatePoolManager\_asOperationalAdmin() (gas: 88756) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 52.63ms (564.14µs CPU time)

Ran 6 tests for tests/integration/withdrawal-manager/queue/AddShares.t.sol:AddSharesQueueFailureTests \[PASS] test\_addShares\_failIfEmptyRequest() (gas: 95932) \[PASS] test\_addShares\_failIfInsufficientApproval() (gas: 92459) \[PASS] test\_addShares\_failIfNotPool() (gas: 43562) \[PASS] test\_addShares\_failIfNotPoolManager() (gas: 18023) \[PASS] test\_addShares\_failIfProtocolIsPaused() (gas: 61222) \[PASS] test\_addShares\_failIfTransferFail() (gas: 102673) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 68.97ms (1.54ms CPU time)

Ran 6 tests for tests/integration/governor-timelock/ProposeRoleUpdates.t.sol:ProposeRoleUpdatesTests \[PASS] test\_proposeRoleUpdates\_revert\_emptyArray() (gas: 14694) \[PASS] test\_proposeRoleUpdates\_revert\_invalidAccountsLength() (gas: 15106) \[PASS] test\_proposeRoleUpdates\_revert\_invalidShouldGrantLength() (gas: 15257) \[PASS] test\_proposeRoleUpdates\_revert\_notRoleAdmin() (gas: 12256) \[PASS] test\_proposeRoleUpdates\_success() (gas: 154091) \[PASS] test\_setUp() (gas: 55582) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 40.67ms (1.33ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/queue/AddShares.t.sol:AddSharesQueueTests \[PASS] test\_addShares\_manual() (gas: 385154) \[PASS] test\_addShares\_partialRequest() (gas: 345805) \[PASS] test\_addShares\_sameAddressCallingTwice() (gas: 523342) \[PASS] test\_addShares\_success() (gas: 559529) \[PASS] test\_addShares\_withApproval() (gas: 353997) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 77.50ms (8.85ms CPU time)

Ran 9 tests for tests/integration/pool/AddStrategy.t.sol:AddStrategyTests \[PASS] test\_addStrategy\_invalidAsset() (gas: 230970) \[PASS] test\_addStrategy\_invalidFactory() (gas: 46622) \[PASS] test\_addStrategy\_invalidStrategy() (gas: 237974) \[PASS] test\_addStrategy\_multipleStrategies() (gas: 1748905) \[PASS] test\_addStrategy\_noExtraArguments\_withPoolDelegate() (gas: 387940) \[PASS] test\_addStrategy\_notAuthorized() (gas: 50400) \[PASS] test\_addStrategy\_paused() (gas: 49926) \[PASS] test\_addStrategy\_withExtraArguments\_withGovernor() (gas: 637172) \[PASS] test\_addStrategy\_withExtraArguments\_withOperationalAdmin() (gas: 544127) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 169.26ms (13.49ms CPU time)

Ran 3 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:MultiUserRedeemTests \[PASS] test\_redeem\_partialLiquidity\_sameCash\_differentExchangeRate() (gas: 2305986) \[PASS] test\_redeem\_partialLiquidity\_sameCash\_sameExchangeRate() (gas: 2215976) \[PASS] test\_redeem\_partialLiquidity\_sameCash\_sameExchangeRate\_exposeRounding() (gas: 4367096) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 110.86ms (64.70ms CPU time)

Ran 9 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:RedeemFailureTests \[PASS] test\_redeem\_failIfNoApprove() (gas: 246147) \[PASS] test\_redeem\_failIfNoBalanceOnWM() (gas: 341276) \[PASS] test\_redeem\_failIfNoRequest() (gas: 91053) \[PASS] test\_redeem\_failIfNotInWindow() (gas: 271571) \[PASS] test\_redeem\_failIfNotPool() (gas: 43708) \[PASS] test\_redeem\_failIfNotPoolManager() (gas: 18039) \[PASS] test\_redeem\_failWithInsufficientApproval() (gas: 323044) \[PASS] test\_redeem\_failWithInvalidAmountOfShares() (gas: 268488) \[PASS] test\_redeem\_failWithZeroReceiver() (gas: 301075) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 83.14ms (9.62ms CPU time)

Ran 3 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:RedeemIntegrationTests \[PASS] test\_redeem\_oneLPWithImpairedLoan() (gas: 1681933) \[PASS] test\_redeem\_twoLPSWithImpairedLoanAndTriggerDefault() (gas: 1780463) \[PASS] test\_redeem\_twoLPsWithImpairedLoan() (gas: 1924169) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 75.68ms (14.60ms CPU time)

Ran 7 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:RedeemTests \[PASS] testDeepFuzz\_redeem\_singleUser\_fullLiquidity\_oneToOne(uint256,uint256) (runs: 100, μ: 504905, \~: 504581) \[PASS] test\_redeem\_singleUser\_fullLiquidity\_fullRedeem() (gas: 519100) \[PASS] test\_redeem\_singleUser\_fullLiquidity\_fullRedeem\_prematureRequest() (gas: 519972) \[PASS] test\_redeem\_singleUser\_fullLiquidity\_oneToOne() (gas: 516242) \[PASS] test\_redeem\_singleUser\_noLiquidity() (gas: 1707723) \[PASS] test\_redeem\_singleUser\_noLiquidity\_notOwner() (gas: 1760711) \[PASS] test\_redeem\_singleUser\_withApprovals() (gas: 570689) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 246.32ms (196.02ms CPU time)

Ran 4 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:RequestRedeemFailureTests \[PASS] test\_requestRedeem\_failIfAlreadyLockedShares() (gas: 300234) \[PASS] test\_requestRedeem\_failIfInsufficientApproval() (gas: 148400) \[PASS] test\_requestRedeem\_failIfNotPM() (gas: 17852) \[PASS] test\_requestRedeem\_failIfNotPool() (gas: 43563) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 68.65ms (1.77ms CPU time)

Ran 1 test for tests/integration/loan-manager/fixed-term/BasicInterestAccrual.t.sol:BasicInterestAccrualTest \[PASS] test\_basicInterestAccrual() (gas: 2164958) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 46.97ms (9.17ms CPU time)

Ran 7 tests for tests/integration/loan-manager/fixed-term/Redeem.t.sol:RequestRedeemTests \[PASS] testDeepFuzz\_requestRedeem(uint256,uint256) (runs: 100, μ: 441642, \~: 442422) \[PASS] test\_requestRedeem() (gas: 415237) \[PASS] test\_requestRedeem\_premature() (gas: 417762) \[PASS] test\_requestRedeem\_refresh() (gas: 486252) \[PASS] test\_requestRedeem\_refresh\_notOwnerAndNoApproval() (gas: 450581) \[PASS] test\_requestRedeem\_refresh\_notOwnerWithApproval() (gas: 511053) \[PASS] test\_requestRedeem\_withApproval() (gas: 440868) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 111.27ms (68.21ms CPU time)

Ran 19 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicReactivateTests \[PASS] testFork\_basicStrategy\_reactivate\_failIfAlreadyActive() (gas: 121698) \[PASS] testFork\_basicStrategy\_reactivate\_failIfNotProtocolAdmin() (gas: 114412) \[PASS] testFork\_basicStrategy\_reactivate\_failIfPaused() (gas: 78091) \[PASS] testFork\_basicStrategy\_reactivate\_stagnant\_fromImpaired\_withAccountingUpdate() (gas: 441481) \[PASS] testFork\_basicStrategy\_reactivate\_stagnant\_fromImpaired\_withoutAccountingUpdate() (gas: 447523) \[PASS] testFork\_basicStrategy\_reactivate\_stagnant\_fromInactive\_withAccountingUpdate() (gas: 438621) \[PASS] testFork\_basicStrategy\_reactivate\_stagnant\_fromInactive\_withoutAccountingUpdate() (gas: 439371) \[PASS] testFork\_basicStrategy\_reactivate\_unfunded\_fromImpaired\_withAccountingUpdate() (gas: 240269) \[PASS] testFork\_basicStrategy\_reactivate\_unfunded\_fromImpaired\_withoutAccountingUpdate() (gas: 234348) \[PASS] testFork\_basicStrategy\_reactivate\_unfunded\_fromInactive\_withAccountingUpdate() (gas: 221599) \[PASS] testFork\_basicStrategy\_reactivate\_unfunded\_fromInactive\_withoutAccountingUpdate() (gas: 215715) \[PASS] testFork\_basicStrategy\_reactivate\_withGain\_fromImpaired\_withAccountingUpdate() (gas: 509282) \[PASS] testFork\_basicStrategy\_reactivate\_withGain\_fromImpaired\_withoutAccountingUpdate() (gas: 501463) \[PASS] testFork\_basicStrategy\_reactivate\_withGain\_fromInactive\_withAccountingUpdate() (gas: 478737) \[PASS] testFork\_basicStrategy\_reactivate\_withGain\_fromInactive\_withoutAccountingUpdate() (gas: 473190) \[PASS] testFork\_basicStrategy\_reactivate\_withLoss\_fromImpaired\_withAccountingUpdate() (gas: 547453) \[PASS] testFork\_basicStrategy\_reactivate\_withLoss\_fromImpaired\_withoutAccountingUpdate() (gas: 538552) \[PASS] testFork\_basicStrategy\_reactivate\_withLoss\_fromInactive\_withAccountingUpdate() (gas: 519761) \[PASS] testFork\_basicStrategy\_reactivate\_withLoss\_fromInactive\_withoutAccountingUpdate() (gas: 511285) Suite result: ok. 19 passed; 0 failed; 0 skipped; finished in 144.60ms (29.79ms CPU time)

Ran 6 tests for tests/integration/withdrawal-manager/queue/RedeemQueue.t.sol:ManualRedeemTests \[PASS] test\_manualRedeem\_fullLiquidity() (gas: 840857) \[PASS] test\_manualRedeem\_insufficientLiquidity() (gas: 1051586) \[PASS] test\_manualRedeem\_multipleRequests() (gas: 1047752) \[PASS] test\_manualRedeem\_noShares() (gas: 88010) \[PASS] test\_manualRedeem\_partialLiquidity() (gas: 905615) \[PASS] test\_manualRedeem\_tooManyShares() (gas: 508603) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 89.39ms (21.81ms CPU time)

Ran 13 tests for tests/integration/loan/Refinance.t.sol:AcceptNewTermsFailureTests \[PASS] test\_acceptNewTerms\_failIfDeadlineExpired() (gas: 196543) \[PASS] test\_acceptNewTerms\_failIfInsufficientCover() (gas: 247128) \[PASS] test\_acceptNewTerms\_failIfLockedLiquidity() (gas: 458876) \[PASS] test\_acceptNewTerms\_failIfNotLender() (gas: 39386) \[PASS] test\_acceptNewTerms\_failIfNotPoolDelegate() (gas: 57111) \[PASS] test\_acceptNewTerms\_failIfNotValidLoanManager() (gas: 74118) \[PASS] test\_acceptNewTerms\_failIfProtocolIsPaused() (gas: 59680) \[PASS] test\_acceptNewTerms\_failIfRefinanceCallFails() (gas: 315819) \[PASS] test\_acceptNewTerms\_failIfRefinanceMismatch() (gas: 145670) \[PASS] test\_acceptNewTerms\_failWithFailedTransfer() (gas: 254374) \[PASS] test\_acceptNewTerms\_failWithInsufficientCollateral() (gas: 557835) \[PASS] test\_acceptNewTerms\_failWithInvalidRefinancer() (gas: 222081) \[PASS] test\_acceptNewTerms\_failWithUnexpectedFunds() (gas: 547959) Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 46.22ms (8.24ms CPU time)

Ran 9 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicSetStrategyFeeTests \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_failIfBiggerThanHundredPercent() (gas: 63043) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_failIfDeactivated() (gas: 92683) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_failIfImpaired() (gas: 92662) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_failIfNotProtocolAdmin() (gas: 62911) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_failIfPaused() (gas: 56679) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_withGovernor\_fromNonZeroToZeroFeeRate() (gas: 600398) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_withGovernor\_unfundedStrategy() (gas: 220448) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_withOperationalAdmin\_withWithdrawal() (gas: 707531) \[PASS] testFork\_basicStrategy\_setStrategyFeeRate\_withPoolDelegate\_fundedStrategy() (gas: 547710) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 162.63ms (14.02ms CPU time)

Ran 6 tests for tests/integration/loan/Refinance.t.sol:RefinanceOpenTermLoan \[PASS] test\_refinance\_calledLoan\_withoutPrincipalChange() (gas: 649882) \[PASS] test\_refinance\_early\_increasePrincipal() (gas: 653931) \[PASS] test\_refinance\_early\_increasePrincipalWithCalledLoan() (gas: 670203) \[PASS] test\_refinance\_increasePrincipalMatchingPayment() (gas: 664564) \[PASS] test\_refinance\_increasePrincipalToDesiredAmount() (gas: 685546) \[PASS] test\_refinance\_late\_decreasePrincipal() (gas: 584275) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 100.85ms (28.28ms CPU time)

Ran 5 tests for tests/integration/loan/Refinance.t.sol:RefinanceTestsSingleLoan \[PASS] test\_refinance\_onLateLoan\_changePaymentInterval() (gas: 952404) \[PASS] test\_refinance\_onLoanPaymentDueDate\_changeInterestRate() (gas: 946444) \[PASS] test\_refinance\_onLoanPaymentDueDate\_changePaymentInterval() (gas: 946388) \[PASS] test\_refinance\_onLoanPaymentDueDate\_changeToAmortized() (gas: 952335) \[PASS] test\_refinance\_onLoanPaymentDueDate\_increasePrincipal() (gas: 985003) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 60.77ms (14.00ms CPU time)

Ran 4 tests for tests/integration/loan-manager/open-term/RemoveCall.t.sol:RemoveCallFailureTests \[PASS] test\_callPrincipal\_notCalled() (gas: 77863) \[PASS] test\_callPrincipal\_notLender() (gas: 36586) \[PASS] test\_callPrincipal\_notPoolDelegate() (gas: 49062) \[PASS] test\_callPrincipal\_paused() (gas: 49338) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 31.81ms (561.42µs CPU time)

Ran 3 tests for tests/integration/loan-manager/open-term/RemoveCall.t.sol:RemoveCallTests \[PASS] test\_removeCall\_impaired() (gas: 347011) \[PASS] test\_removeCall\_latePayment() (gas: 132033) \[PASS] test\_removeCall\_paymentOnTime() (gas: 133912) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 38.92ms (2.70ms CPU time)

Ran 5 tests for tests/integration/loan-manager/fixed-term/RemoveLoanImpairment.t.sol:RemoveLoanImpairmentFailureTests \[PASS] test\_removeLoanImpairment\_notAuthorized() (gas: 65746) \[PASS] test\_removeLoanImpairment\_notGovernor() (gas: 240479) \[PASS] test\_removeLoanImpairment\_notImpaired() (gas: 78563) \[PASS] test\_removeLoanImpairment\_notLender() (gas: 36358) \[PASS] test\_removeLoanImpairment\_pastDate() (gas: 313794) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 37.49ms (2.02ms CPU time)

Ran 9 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicStrategyDeactivateTests \[PASS] testFork\_basicStrategy\_deactivate\_failIfAlreadyInactive() (gas: 94939) \[PASS] testFork\_basicStrategy\_deactivate\_failIfNotProtocolAdmin() (gas: 60674) \[PASS] testFork\_basicStrategy\_deactivate\_failIfPaused() (gas: 54464) \[PASS] testFork\_basicStrategy\_deactivate\_stagnant\_noFees() (gas: 445869) \[PASS] testFork\_basicStrategy\_deactivate\_unfundedStrategy() (gas: 225461) \[PASS] testFork\_basicStrategy\_deactivate\_withFullLoss\_strategyFees() (gas: 490688) \[PASS] testFork\_basicStrategy\_deactivate\_withGain\_impaired\_strategyFees() (gas: 566230) \[PASS] testFork\_basicStrategy\_deactivate\_withGain\_strategyFees() (gas: 498706) \[PASS] testFork\_basicStrategy\_deactivate\_withLoss\_strategyFees() (gas: 530595) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 185.44ms (16.98ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/queue/RemoveRequest.t.sol:RemoveRequestFailureTests \[PASS] test\_removeRequest\_failIfNotInQueue() (gas: 144198) \[PASS] test\_removeRequest\_failIfNotOperationalAdmin() (gas: 180818) \[PASS] test\_removeRequest\_failIfNotPoolDelegate() (gas: 177169) \[PASS] test\_removeRequest\_failIfProtocolIsPaused() (gas: 52361) \[PASS] test\_removeRequest\_failIfTransferFail() (gas: 175044) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 38.22ms (2.19ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/queue/RemoveRequest.t.sol:RemoveRequestTests \[PASS] test\_removeRequest\_forManual() (gas: 377830) \[PASS] test\_removeRequest\_manualPartialRedemption() (gas: 484423) \[PASS] test\_removeRequest\_partialRedemption() (gas: 506090) \[PASS] test\_removeRequest\_sameAddressWithMultipleRequests() (gas: 756025) \[PASS] test\_removeRequest\_success() (gas: 565757) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 42.88ms (8.15ms CPU time)

Ran 9 tests for tests/integration/withdrawal-manager/RemoveShares.t.sol:RemoveSharesCyclicalFailureTests \[PASS] test\_removeShares\_failIfInsufficientApproval() (gas: 201384) \[PASS] test\_removeShares\_failIfInvalidShares() (gas: 98394) \[PASS] test\_removeShares\_failIfInvalidSharesWithZero() (gas: 98358) \[PASS] test\_removeShares\_failIfNotPool() (gas: 43559) \[PASS] test\_removeShares\_failIfNotPoolManager() (gas: 17994) \[PASS] test\_removeShares\_failIfProtocolIsPaused() (gas: 61256) \[PASS] test\_removeShares\_failIfRemovedTwice() (gas: 166820) \[PASS] test\_removeShares\_failIfTransferFail() (gas: 159970) \[PASS] test\_removeShares\_failIfWithdrawalIsPending() (gas: 220560) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 38.36ms (3.65ms CPU time)

Ran 16 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicStrategyFundTests \[PASS] testFork\_basicStrategy\_fund\_failIfInvalidStrategyFactory() (gas: 132422) \[PASS] testFork\_basicStrategy\_fund\_failIfInvalidStrategyVault() (gas: 81063) \[PASS] testFork\_basicStrategy\_fund\_failIfNotEnoughPoolLiquidity() (gas: 162734) \[PASS] testFork\_basicStrategy\_fund\_failIfNotEnoughSharesOut() (gas: 320117) \[PASS] testFork\_basicStrategy\_fund\_failIfNotStrategyManager() (gas: 58592) \[PASS] testFork\_basicStrategy\_fund\_failIfZeroAmount() (gas: 115520) \[PASS] testFork\_basicStrategy\_fund\_failWhenDeactivated() (gas: 97588) \[PASS] testFork\_basicStrategy\_fund\_failWhenImpaired() (gas: 97567) \[PASS] testFork\_basicStrategy\_fund\_failWhenPaused() (gas: 54133) \[PASS] testFork\_basicStrategy\_fund\_firstFundWithPoolDelegate() (gas: 408805) \[PASS] testFork\_basicStrategy\_fund\_firstFundWithStrategyManager() (gas: 416682) \[PASS] testFork\_basicStrategy\_fund\_secondFundAfterTotalLoss\_withStrategyFees() (gas: 537759) \[PASS] testFork\_basicStrategy\_fund\_secondFundWithGain\_noStrategyFees() (gas: 545467) \[PASS] testFork\_basicStrategy\_fund\_secondFundWithGain\_withFeesRoundedToZero() (gas: 511093) \[PASS] testFork\_basicStrategy\_fund\_secondFundWithGain\_withStrategyFees() (gas: 561897) \[PASS] testFork\_basicStrategy\_fund\_secondFundWithLoss\_withStrategyFees() (gas: 564751) Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 190.47ms (37.52ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/RemoveShares.t.sol:RemoveSharesCyclicalTests \[PASS] test\_removeShares\_pastTheRedemptionWindow() (gas: 152491) \[PASS] test\_removeShares\_prematurelyAddedShares() (gas: 408832) \[PASS] test\_removeShares\_sameAddressCallingTwice() (gas: 510096) \[PASS] test\_removeShares\_success() (gas: 152540) \[PASS] test\_removeShares\_withApproval() (gas: 165963) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 47.12ms (5.34ms CPU time)

Ran 8 tests for tests/integration/withdrawal-manager/RemoveShares.t.sol:RemoveSharesQueueFailureTests \[PASS] test\_removeShares\_failIfInsufficientApproval() (gas: 206414) \[PASS] test\_removeShares\_failIfInvalidShares() (gas: 88639) \[PASS] test\_removeShares\_failIfInvalidSharesWithZero() (gas: 86407) \[PASS] test\_removeShares\_failIfNotPool() (gas: 43559) \[PASS] test\_removeShares\_failIfNotPoolManager() (gas: 18048) \[PASS] test\_removeShares\_failIfProtocolIsPaused() (gas: 61278) \[PASS] test\_removeShares\_failIfRemovedTwice() (gas: 177772) \[PASS] test\_removeShares\_failIfTransferFail() (gas: 178217) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 39.05ms (2.94ms CPU time)

Ran 7 tests for tests/integration/withdrawal-manager/RemoveShares.t.sol:RemoveSharesQueueTests \[PASS] test\_removeShare\_complete\_multipleRequests() (gas: 853095) \[PASS] test\_removeShares\_manual\_partiallyProcessed() (gas: 706415) \[PASS] test\_removeShares\_partial\_multipleRequests() (gas: 897932) \[PASS] test\_removeShares\_partiallyProcessed() (gas: 383266) \[PASS] test\_removeShares\_sameAddressCallingTwice() (gas: 616187) \[PASS] test\_removeShares\_success() (gas: 165505) \[PASS] test\_removeShares\_withApproval() (gas: 190073) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 71.20ms (24.82ms CPU time)

Ran 9 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicStrategyImpairTests \[PASS] testFork\_basicStrategy\_impair\_failIfAlreadyImpaired() (gas: 98087) \[PASS] testFork\_basicStrategy\_impair\_failIfNotProtocolAdmin() (gas: 60727) \[PASS] testFork\_basicStrategy\_impair\_failIfPaused() (gas: 54441) \[PASS] testFork\_basicStrategy\_impair\_stagnant\_noFees() (gas: 457188) \[PASS] testFork\_basicStrategy\_impair\_unfundedStrategy() (gas: 244152) \[PASS] testFork\_basicStrategy\_impair\_withFullLoss\_strategyFees() (gas: 516632) \[PASS] testFork\_basicStrategy\_impair\_withGain\_inactive\_strategyFees() (gas: 565816) \[PASS] testFork\_basicStrategy\_impair\_withGain\_strategyFees() (gas: 526978) \[PASS] testFork\_basicStrategy\_impair\_withLoss\_strategyFees() (gas: 558091) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 196.35ms (33.57ms CPU time)

Ran 10 tests for tests/integration/withdrawal-manager/queue/RemoveSharesById.t.sol:RemoveSharesByIdQueueFailureTests \[PASS] test\_removeSharesById\_failIfInsufficientShares\_requestNotProcessed() (gas: 46595) \[PASS] test\_removeSharesById\_failIfInsufficientShares\_requestPartiallyProcessed() (gas: 302538) \[PASS] test\_removeSharesById\_failIfInvalidRequest() (gas: 44016) \[PASS] test\_removeSharesById\_failIfInvalidRequest\_requestAlreadyRemoved() (gas: 135343) \[PASS] test\_removeSharesById\_failIfInvalidRequest\_requestFullyProcessed() (gas: 278732) \[PASS] test\_removeSharesById\_failIfMaxUint128Exceeded() (gas: 42073) \[PASS] test\_removeSharesById\_failIfNoChange() (gas: 46604) \[PASS] test\_removeSharesById\_failIfNotOwner() (gas: 44055) \[PASS] test\_removeSharesById\_failIfProtocolIsPaused() (gas: 47514) \[PASS] test\_removeSharesById\_failIfTransferFail() (gas: 170941) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 64.34ms (5.65ms CPU time)

Ran 8 tests for tests/integration/withdrawal-manager/queue/RemoveSharesById.t.sol:RemoveSharesByIdQueueSuccessTests \[PASS] test\_removeSharesById\_sharesCompletelyRemoved\_requestNotProcessed() (gas: 302732) \[PASS] test\_removeSharesById\_sharesCompletelyRemoved\_requestNotProcessed\_manualWithdrawal() (gas: 344293) \[PASS] test\_removeSharesById\_sharesCompletelyRemoved\_requestPartiallyProcessed() (gas: 505068) \[PASS] test\_removeSharesById\_sharesCompletelyRemoved\_requestPartiallyProcessed\_manualWithdrawal() (gas: 479159) \[PASS] test\_removeSharesById\_sharesPartiallyRemoved\_requestNotProcessed() (gas: 380578) \[PASS] test\_removeSharesById\_sharesPartiallyRemoved\_requestNotProcessed\_manualWithdrawal() (gas: 422139) \[PASS] test\_removeSharesById\_sharesPartiallyRemoved\_requestPartiallyProcessed() (gas: 504789) \[PASS] test\_removeSharesById\_sharesPartiallyRemoved\_requestPartiallyProcessed\_manualWithdrawal() (gas: 478956) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 50.29ms (12.86ms CPU time)

Ran 15 tests for tests/integration/strategies/BasicStrategy.t.sol:BasicStrategyWithdrawTests \[PASS] testFork\_basicStrategy\_withdraw\_failIfLowAssets() (gas: 322341) \[PASS] testFork\_basicStrategy\_withdraw\_failIfNotStrategyManager() (gas: 321699) \[PASS] testFork\_basicStrategy\_withdraw\_failIfSlippage() (gas: 339949) \[PASS] testFork\_basicStrategy\_withdraw\_failIfZeroAmount() (gas: 318066) \[PASS] testFork\_basicStrategy\_withdraw\_failWhenPaused() (gas: 330263) \[PASS] testFork\_basicStrategy\_withdraw\_failWithFullLoss() (gas: 406193) \[PASS] testFork\_basicStrategy\_withdraw\_noFeesWithYield() (gas: 528324) \[PASS] testFork\_basicStrategy\_withdraw\_noFeesWithYieldFullWithdrawal() (gas: 496753) \[PASS] testFork\_basicStrategy\_withdraw\_whileDeactivated() (gas: 496824) \[PASS] testFork\_basicStrategy\_withdraw\_whileImpaired() (gas: 540565) \[PASS] testFork\_basicStrategy\_withdraw\_withFeesAndYield() (gas: 545037) \[PASS] testFork\_basicStrategy\_withdraw\_withFeesAndYieldFullWithdrawal() (gas: 513512) \[PASS] testFork\_basicStrategy\_withdraw\_withFeesRoundedToZeroAndYield() (gas: 491997) \[PASS] testFork\_basicStrategy\_withdraw\_withLoss() (gas: 544495) \[PASS] testFork\_basicStrategy\_withdraw\_withPoolDelegate\_noFeesSameBlock() (gas: 470905) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 146.32ms (29.92ms CPU time)

Ran 6 tests for tests/integration/governor-timelock/Scenarios.t.sol:GovernorTimelockScenariosTests \[PASS] test\_setUp() (gas: 55666) \[PASS] test\_unscheduleProposals\_cancellerCanNotUnscheduleRoleUpdate() (gas: 82221) \[PASS] test\_unscheduleProposals\_cancellerUnschedulesMaliciousProposal() (gas: 118406) \[PASS] test\_updateRoles\_backupRoleAdmin\_removesPrimaryRoleAdmin() (gas: 154788) \[PASS] test\_upgradeWithdrawalManager() (gas: 303687) \[PASS] test\_withdrawERC20Token\_revert\_afterChangingTokenWithdrawer() (gas: 148371) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 37.79ms (2.88ms CPU time)

Ran 7 tests for tests/integration/governor-timelock/ScheduleProposals.t.sol:ScheduleProposalsTests \[PASS] test\_scheduleProposals\_revert\_arrayLengthMismatch() (gas: 15125) \[PASS] test\_scheduleProposals\_revert\_emptyArray() (gas: 14254) \[PASS] test\_scheduleProposals\_revert\_emptyTarget() (gas: 19615) \[PASS] test\_scheduleProposals\_revert\_notProposer() (gas: 11805) \[PASS] test\_scheduleProposals\_revert\_updateRoleNotAllowed() (gas: 85403) \[PASS] test\_scheduleProposals\_success\_respectsDefaultTimelockAndFunctionSpecific() (gas: 212979) \[PASS] test\_setUp() (gas: 55515) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 42.22ms (1.57ms CPU time)

Ran 7 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapDepositTests \[PASS] testFuzz\_deposit\_gtBootstrapMintAmount(uint256) (runs: 100, μ: 321539, \~: 321601) \[PASS] testFuzz\_deposit\_ltBootstrapMintAmount(uint256) (runs: 100, μ: 244823, \~: 244642) \[PASS] testFuzz\_deposit\_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 425943, \~: 426141) \[PASS] test\_deposit\_exactBootstrapMintAmount() (gas: 297319) \[PASS] test\_deposit\_gtBootstrapMintAmount() (gas: 317551) \[PASS] test\_deposit\_ltBootstrapMintAmount() (gas: 241130) \[PASS] test\_deposit\_secondDepositorGetsCorrectShares() (gas: 422046) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 390.83ms (353.48ms CPU time)

Ran 7 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapDepositWithPermitTests \[PASS] testFuzz\_depositWithPermit\_gtBootstrapMintAmount(uint256) (runs: 100, μ: 354078, \~: 354171) \[PASS] testFuzz\_depositWithPermit\_ltBootstrapMintAmount(uint256) (runs: 100, μ: 234773, \~: 235028) \[PASS] testFuzz\_depositWithPermit\_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 487217, \~: 487501) \[PASS] test\_depositWithPermit\_exactBootstrapMintAmount() (gas: 330001) \[PASS] test\_depositWithPermit\_gtBootstrapMintAmount() (gas: 350135) \[PASS] test\_depositWithPermit\_ltBootstrapMintAmount() (gas: 278344) \[PASS] test\_depositWithPermit\_secondDepositorGetsCorrectShares() (gas: 483295) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 527.15ms (494.07ms CPU time)

Ran 5 tests for tests/integration/governor-timelock/SetDefaultTimelockParameters.t.sol:SetDefaultTimelockParametersTests \[PASS] test\_setDefaultTimelockParameters\_revert\_invalidDelay() (gas: 70753) \[PASS] test\_setDefaultTimelockParameters\_revert\_invalidExecutionWindow() (gas: 70800) \[PASS] test\_setDefaultTimelockParameters\_revert\_notSelf() (gas: 8737) \[PASS] test\_setDefaultTimelockParameters\_success() (gas: 123529) \[PASS] test\_setUp() (gas: 55515) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 39.03ms (2.93ms CPU time)

Ran 8 tests for tests/integration/governor-timelock/SetFunctionTimelockParameters.t.sol:SetFunctionTimelockParametersTests \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDefaultForDelay() (gas: 72093) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDefaultForExecutionWindow() (gas: 72101) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDelay() (gas: 73651) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidExecutionWindow() (gas: 73615) \[PASS] test\_setFunctionTimelockParameters\_revert\_notSelf() (gas: 11231) \[PASS] test\_setFunctionTimelockParameters\_success\_resetFunctionTimelockBackToDefaults() (gas: 209405) \[PASS] test\_setFunctionTimelockParameters\_success\_timelockOfUnderlyingFunctionIsRespected() (gas: 150192) \[PASS] test\_setUp() (gas: 55560) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 36.95ms (2.83ms CPU time)

Ran 7 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapMintTests \[PASS] testFuzz\_mint\_gtBootstrapMintAmount(uint256) (runs: 100, μ: 323541, \~: 323617) \[PASS] testFuzz\_mint\_ltBootstrapMintAmount(uint256) (runs: 100, μ: 246015, \~: 246256) \[PASS] testFuzz\_mint\_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 444618, \~: 444909) \[PASS] test\_mint\_exactBootstrapMintAmount() (gas: 299419) \[PASS] test\_mint\_gtBootstrapMintAmount() (gas: 319543) \[PASS] test\_mint\_ltBootstrapMintAmount() (gas: 242187) \[PASS] test\_mint\_secondDepositorGetsCorrectShares() (gas: 440698) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 416.75ms (346.88ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/queue/SetManualWithdrawal.t.sol:SetManualWithdrawalTests \[PASS] test\_setManualWithdrawal\_failIfNotProtocolAdmin() (gas: 54006) \[PASS] test\_setManualWithdrawal\_failIfProtocolIsPaused() (gas: 52093) \[PASS] test\_setManualWithdrawal\_success() (gas: 77845) \[PASS] test\_setManualWithdrawal\_successAsOperationalAdmin() (gas: 81572) \[PASS] test\_setManualWithdrawal\_unsetSuccess() (gas: 69671) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 68.41ms (979.47µs CPU time)

Ran 4 tests for tests/integration/loan-manager/fixed-term/SetMinRatioAndSlippage.t.sol:SetMinRatioTests \[PASS] test\_setMinRatio\_notAuthorized() (gas: 54070) \[PASS] test\_setMinRatio\_notPoolManager() (gas: 54025) \[PASS] test\_setMinRatio\_withGovernor() (gas: 81332) \[PASS] test\_setMinRatio\_withPoolDelegate() (gas: 76424) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 54.18ms (711.86µs CPU time)

Ran 5 tests for tests/integration/loan-manager/fixed-term/SetMinRatioAndSlippage.t.sol:SetSlippageTests \[PASS] test\_setAllowedSlippage\_invalidSlippage() (gas: 124277) \[PASS] test\_setAllowedSlippage\_notAuthorized() (gas: 53995) \[PASS] test\_setAllowedSlippage\_notPoolManager() (gas: 54016) \[PASS] test\_setAllowedSlippage\_withGovernor() (gas: 81293) \[PASS] test\_setAllowedSlippage\_withPoolDelegate() (gas: 76342) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 35.58ms (962.83µs CPU time)

Ran 3 tests for tests/integration/governor-timelock/SetPendingTokenWithdrawer.t.sol:SetPendingTokenWithdrawerTests \[PASS] test\_setPendingTokenWithdrawer\_revert\_notTokenWithdrawer() (gas: 12776) \[PASS] test\_setPendingTokenWithdrawer\_success() (gas: 48186) \[PASS] test\_setUp() (gas: 55560) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 37.06ms (796.88µs CPU time)

Ran 8 tests for tests/integration/permission-manager/SetPoolPermissionLevel.t.sol:SetPoolPermissionLevelTests \[PASS] testFuzz\_setPoolPermissionLevel(uint256,uint256) (runs: 100, μ: 100055, \~: 104268) \[PASS] testFuzz\_setPoolPermissionLevel\_invalidLevel(uint256) (runs: 100, μ: 43828, \~: 43821) \[PASS] testFuzz\_setPoolPermissionLevel\_publicPool(uint256) (runs: 100, μ: 86857, \~: 86927) \[PASS] test\_setPoolPermissionLevel\_anotherPoolDelegate() (gas: 73951) \[PASS] test\_setPoolPermissionLevel\_governor() (gas: 65395) \[PASS] test\_setPoolPermissionLevel\_notAuthorized() (gas: 41471) \[PASS] test\_setPoolPermissionLevel\_operationalAdmin() (gas: 69202) \[PASS] test\_setPoolPermissionLevel\_poolDelegate() (gas: 63161) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 112.02ms (77.73ms CPU time)

Ran 7 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapMintWithPermitTests \[PASS] testFuzz\_mintWithPermit\_gtBootstrapMintAmount(uint256) (runs: 100, μ: 356312, \~: 356378) \[PASS] testFuzz\_mintWithPermit\_ltBootstrapMintAmount(uint256) (runs: 100, μ: 235899, \~: 236150) \[PASS] testFuzz\_mintWithPermit\_secondDepositorGetsCorrectShares(uint256) (runs: 100, μ: 506078, \~: 506316) \[PASS] test\_mintWithPermit\_exactBootstrapMintAmount() (gas: 332139) \[PASS] test\_mintWithPermit\_gtBootstrapMintAmount() (gas: 352295) \[PASS] test\_mintWithPermit\_ltBootstrapMintAmount() (gas: 279536) \[PASS] test\_mintWithPermit\_secondDepositorGetsCorrectShares() (gas: 502108) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 576.28ms (527.45ms CPU time)

Ran 5 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategyDeactivateStrategyTests \[PASS] testFork\_deactivateStrategy\_active() (gas: 828755) \[PASS] testFork\_deactivateStrategy\_impaired() (gas: 845848) \[PASS] testFork\_deactivateStrategy\_inactive() (gas: 90390) \[PASS] testFork\_deactivateStrategy\_notAdmin() (gas: 131919) \[PASS] testFork\_deactivateStrategy\_protocolPaused() (gas: 54464) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 125.64ms (8.14ms CPU time)

Ran 2 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:SetBootstrapMintTests \[PASS] test\_setBootstrapMint\_failIfNotOperationalAdmin() (gas: 20286) \[PASS] test\_setBootstrapMint\_success\_asOperationalAdmin() (gas: 36121) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 56.16ms (348.47µs CPU time)

Ran 5 tests for tests/integration/loan/open-term/CallPrincipal.t.sol:CallPrincipalFailureTests \[PASS] test\_callPrincipal\_invalidAmount\_boundary() (gas: 466284) \[PASS] test\_callPrincipal\_loanActive() (gas: 53945) \[PASS] test\_callPrincipal\_notLender() (gas: 36687) \[PASS] test\_callPrincipal\_notPoolDelegate() (gas: 49189) \[PASS] test\_callPrincipal\_paused() (gas: 49487) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 31.71ms (1.28ms CPU time)

Ran 4 tests for tests/integration/loan/open-term/CallPrincipal.t.sol:CallPrincipalTests \[PASS] test\_callPrincipal\_impaired() (gas: 371653) \[PASS] test\_callPrincipal\_latePayment() (gas: 158979) \[PASS] test\_callPrincipal\_notFullPrincipal() (gas: 158782) \[PASS] test\_callPrincipal\_paymentOnTime() (gas: 158690) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 40.19ms (3.35ms CPU time)

Ran 35 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategyFundStrategyTests \[PASS] testFork\_fundStrategy\_fundAfterCompleteLoss\_allFees() (gas: 1167779) \[PASS] testFork\_fundStrategy\_fundAfterCompleteLoss\_noFees() (gas: 1073024) \[PASS] testFork\_fundStrategy\_fundAfterCompleteLoss\_psmFees() (gas: 1150196) \[PASS] testFork\_fundStrategy\_fundAfterCompleteLoss\_strategyFees() (gas: 1125610) \[PASS] testFork\_fundStrategy\_fundAfterGain\_allFees() (gas: 1281917) \[PASS] testFork\_fundStrategy\_fundAfterGain\_allFees\_withStrategyFeesRoundedToZero() (gas: 1130029) \[PASS] testFork\_fundStrategy\_fundAfterGain\_noFees() (gas: 1034422) \[PASS] testFork\_fundStrategy\_fundAfterGain\_psmFees() (gas: 1111918) \[PASS] testFork\_fundStrategy\_fundAfterGain\_strategyFees() (gas: 1239254) \[PASS] testFork\_fundStrategy\_fundAfterGain\_strategyFeesRoundedToZero() (gas: 1087485) \[PASS] testFork\_fundStrategy\_fundAfterLoss\_allFees() (gas: 1152228) \[PASS] testFork\_fundStrategy\_fundAfterLoss\_noFees() (gas: 1057107) \[PASS] testFork\_fundStrategy\_fundAfterLoss\_psmFees() (gas: 1134662) \[PASS] testFork\_fundStrategy\_fundAfterLoss\_strategyFees() (gas: 1109711) \[PASS] testFork\_fundStrategy\_fundWhenStagnant\_allFees() (gas: 1078901) \[PASS] testFork\_fundStrategy\_fundWhenStagnant\_noFees() (gas: 983923) \[PASS] testFork\_fundStrategy\_fundWhenStagnant\_psmFees() (gas: 1061320) \[PASS] testFork\_fundStrategy\_fundWhenStagnant\_strategyFees() (gas: 1036492) \[PASS] testFork\_fundStrategy\_initialFund\_allFees() (gas: 910351) \[PASS] testFork\_fundStrategy\_initialFund\_noFees() (gas: 851074) \[PASS] testFork\_fundStrategy\_initialFund\_psmFees() (gas: 888397) \[PASS] testFork\_fundStrategy\_initialFund\_strategyFees() (gas: 861921) \[PASS] testFork\_fundStrategy\_insufficientCover() (gas: 508458) \[PASS] testFork\_fundStrategy\_insufficientLiquidity() (gas: 492210) \[PASS] testFork\_fundStrategy\_invalidPsm() (gas: 87128) \[PASS] testFork\_fundStrategy\_invalidStrategyFactory() (gas: 147925) \[PASS] testFork\_fundStrategy\_invalidVault() (gas: 83136) \[PASS] testFork\_fundStrategy\_notPoolDelegate() (gas: 787827) \[PASS] testFork\_fundStrategy\_notStrategyManager() (gas: 792701) \[PASS] testFork\_fundStrategy\_protocolPaused() (gas: 56637) \[PASS] testFork\_fundStrategy\_psmHalted() (gas: 210) \[PASS] testFork\_fundStrategy\_strategyImpaired() (gas: 97571) \[PASS] testFork\_fundStrategy\_strategyInactive() (gas: 97461) \[PASS] testFork\_fundStrategy\_zeroPrincipal() (gas: 130975) \[PASS] testFork\_fundStrategy\_zeroSupply() (gas: 147475) Suite result: ok. 35 passed; 0 failed; 0 skipped; finished in 292.57ms (150.45ms CPU time)

Ran 5 tests for tests/integration/loan/fixed-term/CloseLoan.t.sol:CloseLoanTests \[PASS] test\_closeLoan\_failIfLoanIsLate() (gas: 105411) \[PASS] test\_closeLoan\_failIfNotEnoughFundsSent() (gas: 195137) \[PASS] test\_closeLoan\_failIfNotLoan() (gas: 62529) \[PASS] test\_closeLoan\_failWithInsufficientApproval() (gas: 114607) \[PASS] test\_closeLoan\_success() (gas: 438314) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 59.46ms (3.16ms CPU time)

Ran 5 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategyImpairStrategyTests \[PASS] testFork\_impairStrategy\_active() (gas: 847976) \[PASS] testFork\_impairStrategy\_impaired() (gas: 92799) \[PASS] testFork\_impairStrategy\_inactive() (gas: 845850) \[PASS] testFork\_impairStrategy\_notAdmin() (gas: 132061) \[PASS] testFork\_impairStrategy\_protocolPaused() (gas: 54507) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 180.88ms (9.92ms CPU time)

Ran 23 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategyReactivateStrategyTests \[PASS] testFork\_reactivateStrategy\_active() (gas: 62635) \[PASS] testFork\_reactivateStrategy\_impaired\_flat\_keepAccounting() (gas: 625763) \[PASS] testFork\_reactivateStrategy\_impaired\_flat\_updateAccounting() (gas: 631527) \[PASS] testFork\_reactivateStrategy\_impaired\_gain\_keepAccounting() (gas: 670745) \[PASS] testFork\_reactivateStrategy\_impaired\_gain\_updateAccounting() (gas: 680783) \[PASS] testFork\_reactivateStrategy\_impaired\_loss\_keepAccounting() (gas: 695267) \[PASS] testFork\_reactivateStrategy\_impaired\_loss\_updateAccounting() (gas: 705884) \[PASS] testFork\_reactivateStrategy\_impaired\_new\_keepAccounting() (gas: 282747) \[PASS] testFork\_reactivateStrategy\_impaired\_new\_updateAccounting() (gas: 291114) \[PASS] testFork\_reactivateStrategy\_impaired\_totalLoss\_keepAccounting() (gas: 661822) \[PASS] testFork\_reactivateStrategy\_impaired\_totalLoss\_updateAccounting() (gas: 669805) \[PASS] testFork\_reactivateStrategy\_inactive\_flat\_keepAccounting() (gas: 606776) \[PASS] testFork\_reactivateStrategy\_inactive\_flat\_updateAccounting() (gas: 612496) \[PASS] testFork\_reactivateStrategy\_inactive\_gain\_keepAccounting() (gas: 636241) \[PASS] testFork\_reactivateStrategy\_inactive\_gain\_updateAccounting() (gas: 646253) \[PASS] testFork\_reactivateStrategy\_inactive\_loss\_keepAccounting() (gas: 661689) \[PASS] testFork\_reactivateStrategy\_inactive\_loss\_updateAccounting() (gas: 672305) \[PASS] testFork\_reactivateStrategy\_inactive\_new\_keepAccounting() (gas: 256612) \[PASS] testFork\_reactivateStrategy\_inactive\_new\_updateAccounting() (gas: 264844) \[PASS] testFork\_reactivateStrategy\_inactive\_totalLoss\_keepAccounting() (gas: 635303) \[PASS] testFork\_reactivateStrategy\_inactive\_totalLoss\_updateAccounting() (gas: 643543) \[PASS] testFork\_reactivateStrategy\_notAdmin() (gas: 85955) \[PASS] testFork\_reactivateStrategy\_protocolPaused() (gas: 54578) Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 166.68ms (49.12ms CPU time)

Ran 9 tests for tests/integration/pool/ConfigurePool.t.sol:ConfigurePoolTests \[PASS] testFuzz\_configurePool(uint256,uint256,uint256\[]) (runs: 100, μ: 2121334, \~: 1423729) \[PASS] test\_configurePool\_anotherPoolDelegate() (gas: 87756) \[PASS] test\_configurePool\_governor() (gas: 133922) \[PASS] test\_configurePool\_invalidLevel() (gas: 54064) \[PASS] test\_configurePool\_lengthMismatch() (gas: 79399) \[PASS] test\_configurePool\_notAuthorized() (gas: 55270) \[PASS] test\_configurePool\_operationalAdmin() (gas: 137739) \[PASS] test\_configurePool\_poolDelegate() (gas: 131742) \[PASS] test\_configurePool\_publicPool() (gas: 109280) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 321.64ms (260.83ms CPU time)

Ran 8 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategySetPSMTests \[PASS] testFork\_setPsm\_failIfNotValidInstance() (gas: 80308) \[PASS] testFork\_setPsm\_fundedStrategy() (gas: 853366) \[PASS] testFork\_setPsm\_invalidGem() (gas: 301705) \[PASS] testFork\_setPsm\_invalidUsds() (gas: 327501) \[PASS] testFork\_setPsm\_notAdmin() (gas: 319434) \[PASS] testFork\_setPsm\_protocolPaused() (gas: 56706) \[PASS] testFork\_setPsm\_unfundedStrategy() (gas: 174844) \[PASS] testFork\_setPsm\_zeroAddress() (gas: 54229) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 156.37ms (7.77ms CPU time)

Ran 8 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyDeactivateStrategyTests \[PASS] testFork\_deactivateStrategy\_correctAumAfterDeactivation() (gas: 351799) \[PASS] testFork\_deactivateStrategy\_failWhenAlreadyDeactivated() (gas: 68208) \[PASS] testFork\_deactivateStrategy\_failWhenNotGovernor() (gas: 118018) \[PASS] testFork\_deactivateStrategy\_failWhenNotOperationalAdmin() (gas: 115087) \[PASS] testFork\_deactivateStrategy\_failWhenNotPoolDelegate() (gas: 113306) \[PASS] testFork\_deactivateStrategy\_failWhenProtocolPaused() (gas: 109670) \[PASS] testFork\_deactivateStrategy\_success() (gas: 322609) \[PASS] testFork\_deactivateStrategy\_successWhenAlreadyImpaired() (gas: 386596) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 126.29ms (5.33ms CPU time)

Ran 11 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategySetStrategyFeeTests \[PASS] testFork\_setStrategyFeeRate\_deactivated() (gas: 92586) \[PASS] testFork\_setStrategyFeeRate\_impaired() (gas: 92675) \[PASS] testFork\_setStrategyFeeRate\_initialFeeRate\_flat() (gas: 321440) \[PASS] testFork\_setStrategyFeeRate\_initialFeeRate\_gain() (gas: 420320) \[PASS] testFork\_setStrategyFeeRate\_initialFeeRate\_loss() (gas: 394013) \[PASS] testFork\_setStrategyFeeRate\_invalidFeeRate() (gas: 60944) \[PASS] testFork\_setStrategyFeeRate\_notAdmin() (gas: 222613) \[PASS] testFork\_setStrategyFeeRate\_protocolPaused() (gas: 56681) \[PASS] testFork\_setStrategyFeeRate\_updatedFeeRate\_flat() (gas: 323682) \[PASS] testFork\_setStrategyFeeRate\_updatedFeeRate\_gain() (gas: 641198) \[PASS] testFork\_setStrategyFeeRate\_updatedFeeRate\_loss() (gas: 396212) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 113.31ms (21.53ms CPU time)

Ran 13 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyFundTests \[PASS] testFork\_coreStrategy\_fund\_failIfInvalidStrategyFactory() (gas: 107382) \[PASS] testFork\_coreStrategy\_fund\_failIfInvalidStrategyVault() (gas: 79021) \[PASS] testFork\_coreStrategy\_fund\_failIfNotEnoughPoolLiquidity() (gas: 149349) \[PASS] testFork\_coreStrategy\_fund\_failIfNotStrategyManager() (gas: 58613) \[PASS] testFork\_coreStrategy\_fund\_failIfZeroAmount() (gas: 90467) \[PASS] testFork\_coreStrategy\_fund\_failWhenDeactivated() (gas: 80354) \[PASS] testFork\_coreStrategy\_fund\_failWhenImpaired() (gas: 80421) \[PASS] testFork\_coreStrategy\_fund\_failWhenPaused() (gas: 54132) \[PASS] testFork\_coreStrategy\_fund\_firstFundWithPoolDelegate() (gas: 581212) \[PASS] testFork\_coreStrategy\_fund\_firstFundWithStrategyManager() (gas: 589056) \[PASS] testFork\_coreStrategy\_fund\_secondFundAfterTotalLoss() (gas: 745624) \[PASS] testFork\_coreStrategy\_fund\_secondFundWithGain() (gas: 501108) \[PASS] testFork\_coreStrategy\_fund\_secondFundWithLoss() (gas: 755256) Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 135.66ms (15.53ms CPU time)

Ran 6 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyImpairedStrategyTests \[PASS] testFork\_impairedStrategy\_correctAumAfterImpairment() (gas: 441066) \[PASS] testFork\_impairedStrategy\_failWhenAlreadyImpaired() (gas: 66711) \[PASS] testFork\_impairedStrategy\_failWhenNotAdmin() (gas: 110244) \[PASS] testFork\_impairedStrategy\_failWhenProtocolPaused() (gas: 54479) \[PASS] testFork\_impairedStrategy\_success() (gas: 429528) \[PASS] testFork\_impairedStrategy\_successWhenAlreadyDeactivated() (gas: 408776) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 120.58ms (6.05ms CPU time)

Ran 11 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyPushAssetsTests \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_failIfNotPoolDelegate() (gas: 129158) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_failIfNotStrategyManager() (gas: 134011) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_failTransfer() (gas: 670701) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_failWhenPaused() (gas: 54491) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successAfterAdditionalFunding() (gas: 828868) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenDeactivated() (gas: 708105) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenImpaired() (gas: 714232) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenPartialWithdrawalProcessed() (gas: 776091) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenPartialWithdrawalRequested() (gas: 719236) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenPositiveBalance() (gas: 696476) \[PASS] testFork\_coreStrategy\_pushAssetsToPool\_successWhenZeroBalance() (gas: 97279) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 133.97ms (19.90ms CPU time)

Ran 4 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyReactivateStrategyTests \[PASS] testFork\_reactivateStrategy\_aumCorrectAfterReactivation() (gas: 387110) \[PASS] testFork\_reactivateStrategy\_failWhenAlreadyActive() (gas: 57678) \[PASS] testFork\_reactivateStrategy\_failWhenNotAdmin() (gas: 86698) \[PASS] testFork\_reactivateStrategy\_failWhenProtocolPaused() (gas: 54456) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 116.05ms (2.56ms CPU time)

Ran 77 tests for tests/integration/strategies/SkyStrategy.t.sol:SkyStrategyWithdrawFromStrategyTests \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_afterGain\_fullWithdrawal() (gas: 1254627) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_afterGain\_partialWithdrawal() (gas: 1248888) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_afterLoss\_fullWithdrawal() (gas: 1141216) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_afterLoss\_partialWithdrawal() (gas: 1152051) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_whenStagnant\_fullWithdrawal() (gas: 1060260) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_allFees\_whenStagnant\_partialWithdrawal() (gas: 1075573) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_afterGain\_fullWithdrawal() (gas: 1028216) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_afterGain\_partialWithdrawal() (gas: 1021633) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_afterLoss\_fullWithdrawal() (gas: 1050866) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_afterLoss\_partialWithdrawal() (gas: 1044348) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_whenStagnant\_fullWithdrawal() (gas: 970008) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_noFees\_whenStagnant\_partialWithdrawal() (gas: 967220) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_afterGain\_fullWithdrawal() (gas: 1100858) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_afterGain\_partialWithdrawal() (gas: 1101626) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_afterLoss\_fullWithdrawal() (gas: 1123573) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_afterLoss\_partialWithdrawal() (gas: 1129952) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_whenStagnant\_fullWithdrawal() (gas: 1042562) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_psmFees\_whenStagnant\_partialWithdrawal() (gas: 1053387) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_afterGain\_fullWithdrawal() (gas: 1216664) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_afterGain\_partialWithdrawal() (gas: 1210084) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_afterLoss\_fullWithdrawal() (gas: 1103527) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_afterLoss\_partialWithdrawal() (gas: 1103777) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_whenStagnant\_fullWithdrawal() (gas: 1022717) \[PASS] testFork\_withdrawFromStrategy\_activeStrategy\_strategyFees\_whenStagnant\_partialWithdrawal() (gas: 1027312) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_afterGain\_fullWithdrawal() (gas: 1149019) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_afterGain\_partialWithdrawal() (gas: 1145734) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_afterLoss\_fullWithdrawal() (gas: 1177150) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_afterLoss\_partialWithdrawal() (gas: 1173770) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_whenStagnant\_fullWithdrawal() (gas: 1105473) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_allFees\_whenStagnant\_partialWithdrawal() (gas: 1106813) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_afterGain\_fullWithdrawal() (gas: 1047692) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_afterGain\_partialWithdrawal() (gas: 1044093) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_afterLoss\_fullWithdrawal() (gas: 1070462) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_afterLoss\_partialWithdrawal() (gas: 1066821) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_whenStagnant\_fullWithdrawal() (gas: 998984) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_noFees\_whenStagnant\_partialWithdrawal() (gas: 999276) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_afterGain\_fullWithdrawal() (gas: 1126658) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_afterGain\_partialWithdrawal() (gas: 1123241) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_afterLoss\_fullWithdrawal() (gas: 1155027) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_afterLoss\_partialWithdrawal() (gas: 1151693) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_whenStagnant\_fullWithdrawal() (gas: 1083441) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_psmFees\_whenStagnant\_partialWithdrawal() (gas: 1084669) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_afterGain\_fullWithdrawal() (gas: 1101552) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_afterGain\_partialWithdrawal() (gas: 1097098) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_afterLoss\_fullWithdrawal() (gas: 1129507) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_afterLoss\_partialWithdrawal() (gas: 1125179) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_whenStagnant\_fullWithdrawal() (gas: 1058028) \[PASS] testFork\_withdrawFromStrategy\_impairedStrategy\_strategyFees\_whenStagnant\_partialWithdrawal() (gas: 1058300) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_afterGain\_fullWithdrawal() (gas: 1110928) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_afterGain\_partialWithdrawal() (gas: 1105863) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_afterLoss\_fullWithdrawal() (gas: 1138927) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_afterLoss\_partialWithdrawal() (gas: 1133879) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_whenStagnant\_fullWithdrawal() (gas: 1067315) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_allFees\_whenStagnant\_partialWithdrawal() (gas: 1067164) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_afterGain\_fullWithdrawal() (gas: 1017564) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_afterGain\_partialWithdrawal() (gas: 1013049) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_afterLoss\_fullWithdrawal() (gas: 1040252) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_afterLoss\_partialWithdrawal() (gas: 1035748) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_whenStagnant\_fullWithdrawal() (gas: 967130) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_noFees\_whenStagnant\_partialWithdrawal() (gas: 966563) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_afterGain\_fullWithdrawal() (gas: 1088456) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_afterGain\_partialWithdrawal() (gas: 1083479) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_afterLoss\_fullWithdrawal() (gas: 1116916) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_afterLoss\_partialWithdrawal() (gas: 1111843) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_whenStagnant\_fullWithdrawal() (gas: 1045171) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_psmFees\_whenStagnant\_partialWithdrawal() (gas: 1045084) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_afterGain\_fullWithdrawal() (gas: 1067221) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_afterGain\_partialWithdrawal() (gas: 1062752) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_afterLoss\_fullWithdrawal() (gas: 1091858) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_afterLoss\_partialWithdrawal() (gas: 1086360) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_whenStagnant\_fullWithdrawal() (gas: 1020402) \[PASS] testFork\_withdrawFromStrategy\_inactiveStrategy\_strategyFees\_whenStagnant\_partialWithdrawal() (gas: 1019602) \[PASS] testFork\_withdrawFromStrategy\_lowAssets() (gas: 770460) \[PASS] testFork\_withdrawFromStrategy\_notPoolDelegate() (gas: 904168) \[PASS] testFork\_withdrawFromStrategy\_notStrategyManager() (gas: 909648) \[PASS] testFork\_withdrawFromStrategy\_protocolPaused() (gas: 56746) \[PASS] testFork\_withdrawFromStrategy\_zeroAssets() (gas: 59028) Suite result: ok. 77 passed; 0 failed; 0 skipped; finished in 501.97ms (400.89ms CPU time)

Ran 2 tests for tests/integration/smart-accounts/SmartAccount.t.sol:SmartAccountETHTests \[PASS] testFork\_deposit\_predeterminedAddressApproval() (gas: 1192065) \[PASS] testFork\_withdraw() (gas: 1412574) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 166.01ms (12.35ms CPU time)

Ran 17 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyRemoveSharesByIdIntegrationTests \[PASS] test\_removeSharesById\_alreadyProcessedRequest() (gas: 309326) \[PASS] test\_removeSharesById\_cancelledRequest() (gas: 210092) \[PASS] test\_removeSharesById\_insufficientShares() (gas: 108042) \[PASS] test\_removeSharesById\_invalidOwner() (gas: 492439) \[PASS] test\_removeSharesById\_nonExistingRequest() (gas: 107888) \[PASS] test\_removeSharesById\_notAuthorized() (gas: 231250) \[PASS] test\_removeSharesById\_notPoolDelegate() (gas: 226396) \[PASS] test\_removeSharesById\_partiallyProcesedRequest\_decreaseRequest() (gas: 398331) \[PASS] test\_removeSharesById\_partiallyProcesedRequest\_removeRequest() (gas: 375764) \[PASS] test\_removeSharesById\_requestIdOverflow() (gas: 101395) \[PASS] test\_removeSharesById\_strategyPaused() (gas: 58738) \[PASS] test\_removeSharesById\_transferFailed() (gas: 220857) \[PASS] test\_removeSharesById\_unprocessedRequest\_decreaseRequest() (gas: 212525) \[PASS] test\_removeSharesById\_unprocessedRequest\_removeRequest() (gas: 190294) \[PASS] test\_removeSharesById\_withdrawalManagerPaused() (gas: 133245) \[PASS] test\_removeSharesById\_zeroRequestId() (gas: 105783) \[PASS] test\_removeSharesById\_zeroShares() (gas: 105800) Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 183.50ms (23.82ms CPU time)

Ran 9 tests for tests/integration/syrup-usdc-router/SyrupRouter.t.sol:SyrupRouterAuthorizeAndDepositTests \[PASS] test\_authorizeAndDepositWithPermit\_expiredDeadline() (gas: 21173) \[PASS] test\_authorizeAndDepositWithPermit\_malleable() (gas: 18164) \[PASS] test\_authorizeAndDepositWithPermit\_repeatedNonce() (gas: 346869) \[PASS] test\_authorizeAndDepositWithPermit\_success() (gas: 347715) \[PASS] test\_authorizeAndDeposit\_expiredDeadline() (gas: 20950) \[PASS] test\_authorizeAndDeposit\_malleable() (gas: 17983) \[PASS] test\_authorizeAndDeposit\_notPermissionAdmin() (gas: 91345) \[PASS] test\_authorizeAndDeposit\_repeatedNonce() (gas: 325586) \[PASS] test\_authorizeAndDeposit\_success() (gas: 328677) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 58.64ms (11.11ms CPU time)

Ran 10 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyRemoveSharesIntegrationTests \[PASS] testFork\_coreStrategy\_removeShares\_completeRemovalWithMultipleRequests() (gas: 560959) \[PASS] testFork\_coreStrategy\_removeShares\_failIfNotStrategyManager() (gas: 288514) \[PASS] testFork\_coreStrategy\_removeShares\_failIfZeroShares() (gas: 58993) \[PASS] testFork\_coreStrategy\_removeShares\_failInsufficientShares() (gas: 529796) \[PASS] testFork\_coreStrategy\_removeShares\_failWhenPaused() (gas: 56685) \[PASS] testFork\_coreStrategy\_removeShares\_removeAllSharesSuccess() (gas: 183934) \[PASS] testFork\_coreStrategy\_removeShares\_removePartialSharesSuccess() (gas: 206375) \[PASS] testFork\_coreStrategy\_removeShares\_removePartialWithMultipleRequests() (gas: 550824) \[PASS] testFork\_coreStrategy\_removeShares\_successWhenDeactivated() (gas: 201090) \[PASS] testFork\_coreStrategy\_removeShares\_successWhenImpaired() (gas: 201113) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 175.15ms (13.66ms CPU time)

Ran 50 tests for tests/integration/syrup-usdc-router/SyrupRouter.t.sol:SyrupRouterDepositsIntegrationTests \[PASS] test\_depositWithPermit\_functionLevel\_allowListed() (gas: 460468) \[PASS] test\_depositWithPermit\_functionLevel\_expiredDeadline() (gas: 202683) \[PASS] test\_depositWithPermit\_functionLevel\_insufficientPermission() (gas: 254327) \[PASS] test\_depositWithPermit\_functionLevel\_invalidSignature() (gas: 227451) \[PASS] test\_depositWithPermit\_functionLevel\_sufficientPermission() (gas: 463482) \[PASS] test\_depositWithPermit\_functionLevel\_zeroBitmap() (gas: 234471) \[PASS] test\_depositWithPermit\_functionLevel\_zeroShares() (gas: 290955) \[PASS] test\_depositWithPermit\_poolLevel\_allowListed() (gas: 458377) \[PASS] test\_depositWithPermit\_poolLevel\_expiredDeadline() (gas: 200638) \[PASS] test\_depositWithPermit\_poolLevel\_insufficientPermission() (gas: 252268) \[PASS] test\_depositWithPermit\_poolLevel\_invalidSignature() (gas: 225428) \[PASS] test\_depositWithPermit\_poolLevel\_sufficientPermission() (gas: 459517) \[PASS] test\_depositWithPermit\_poolLevel\_zeroBitmap() (gas: 232412) \[PASS] test\_depositWithPermit\_poolLevel\_zeroShares() (gas: 288915) \[PASS] test\_depositWithPermit\_private\_allowListed() (gas: 377040) \[PASS] test\_depositWithPermit\_private\_expiredDeadline() (gas: 112628) \[PASS] test\_depositWithPermit\_private\_invalidSignature() (gas: 137441) \[PASS] test\_depositWithPermit\_private\_unauthorized() (gas: 100355) \[PASS] test\_depositWithPermit\_private\_zeroShares() (gas: 206926) \[PASS] test\_depositWithPermit\_public\_expiredDeadline() (gas: 171272) \[PASS] test\_depositWithPermit\_public\_invalidSignature() (gas: 196128) \[PASS] test\_depositWithPermit\_public\_success() (gas: 367990) \[PASS] test\_depositWithPermit\_public\_zeroShares() (gas: 261030) \[PASS] test\_deposit\_functionLevel\_allowlisted() (gas: 440259) \[PASS] test\_deposit\_functionLevel\_approval() (gas: 425748) \[PASS] test\_deposit\_functionLevel\_infiniteApproval() (gas: 443380) \[PASS] test\_deposit\_functionLevel\_insufficientAmount() (gas: 286076) \[PASS] test\_deposit\_functionLevel\_insufficientApproval() (gas: 283645) \[PASS] test\_deposit\_functionLevel\_insufficientPermission() (gas: 180691) \[PASS] test\_deposit\_functionLevel\_zeroBitmap() (gas: 160833) \[PASS] test\_deposit\_functionLevel\_zeroShares() (gas: 269958) \[PASS] test\_deposit\_poolLevel\_allowlisted() (gas: 438276) \[PASS] test\_deposit\_poolLevel\_approval() (gas: 421738) \[PASS] test\_deposit\_poolLevel\_infiniteApproval() (gas: 439351) \[PASS] test\_deposit\_poolLevel\_insufficientAmount() (gas: 283972) \[PASS] test\_deposit\_poolLevel\_insufficientApproval() (gas: 281562) \[PASS] test\_deposit\_poolLevel\_insufficientPermission() (gas: 178605) \[PASS] test\_deposit\_poolLevel\_zeroBitmap() (gas: 158708) \[PASS] test\_deposit\_poolLevel\_zeroShares() (gas: 267916) \[PASS] test\_deposit\_private\_approval() (gas: 339306) \[PASS] test\_deposit\_private\_infiniteApproval() (gas: 356965) \[PASS] test\_deposit\_private\_insufficientAmount() (gas: 195548) \[PASS] test\_deposit\_private\_insufficientApproval() (gas: 193138) \[PASS] test\_deposit\_private\_unauthorized() (gas: 26707) \[PASS] test\_deposit\_private\_zeroShares() (gas: 185973) \[PASS] test\_deposit\_public\_approval() (gas: 330234) \[PASS] test\_deposit\_public\_infiniteApproval() (gas: 347848) \[PASS] test\_deposit\_public\_insufficientAmount() (gas: 189369) \[PASS] test\_deposit\_public\_insufficientApproval() (gas: 186893) \[PASS] test\_deposit\_public\_zeroShares() (gas: 177535) Suite result: ok. 50 passed; 0 failed; 0 skipped; finished in 110.07ms (37.93ms CPU time)

Ran 2 tests for tests/integration/syrup-usdc-router/SyrupRouterFork.t.sol:SyrupRouterForkTests \[PASS] testFork\_router\_deposit() (gas: 251237) \[PASS] testFork\_router\_depositWithPermit() (gas: 294468) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 82.19ms (6.23ms CPU time)

Ran 11 tests for tests/integration/strategies/CoreStrategy.t.sol:CoreStrategyRequestWithdrawFromStrategyTests \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failIfLowAssets() (gas: 348633) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failIfNotPoolDelegate() (gas: 599522) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failIfNotStrategyManager() (gas: 600362) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failIfZeroAmount() (gas: 319595) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failWhenPaused() (gas: 331843) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failWithFullLoss() (gas: 561353) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_failWithNoAssets() (gas: 629646) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_success() (gas: 781558) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_successAfterPartialLoss() (gas: 820201) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_successWithMultipleWithdrawals() (gas: 997270) \[PASS] testFork\_coreStrategy\_requestWithdrawFromStrategy\_successWithPartialWithdrawal() (gas: 807880) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 177.04ms (39.86ms CPU time)

Ran 10 tests for tests/integration/pool/Transfer.t.sol:TransferTests \[PASS] test\_transferFrom\_privatePoolInvalidLender() (gas: 394733) \[PASS] test\_transferFrom\_privatePoolInvalidLender\_openPoolToPublic() (gas: 388312) \[PASS] test\_transferFrom\_protocolPaused() (gas: 341059) \[PASS] test\_transferFrom\_publicPool() (gas: 322491) \[PASS] test\_transferFrom\_publicPool\_insufficientApproval() (gas: 331502) \[PASS] test\_transferFrom\_publicPool\_noApproval() (gas: 307603) \[PASS] test\_transfer\_privatePoolInvalidLender() (gas: 382636) \[PASS] test\_transfer\_privatePoolInvalidLender\_openPoolToPublic() (gas: 376256) \[PASS] test\_transfer\_protocolPaused() (gas: 314573) \[PASS] test\_transfer\_publicPool() (gas: 313745) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 58.95ms (9.29ms CPU time)

Ran 9 tests for tests/integration/globals/TransferPoolOwnership.t.sol:TransferPoolOwnershipTests \[PASS] test\_acceptPoolDelegate() (gas: 102768) \[PASS] test\_acceptPoolDelegate\_notPendingPoolDelegate() (gas: 107662) \[PASS] test\_setPendingPoolDelegate\_asGovernor() (gas: 70543) \[PASS] test\_setPendingPoolDelegate\_asOperationalAdmin() (gas: 75016) \[PASS] test\_setPendingPoolDelegate\_asPoolDelegate() (gas: 65912) \[PASS] test\_setPendingPoolDelegate\_notPD() (gas: 104200) \[PASS] test\_transferOwnedPoolManager\_alreadyPoolDelegate() (gas: 138355) \[PASS] test\_transferOwnedPoolManager\_notPoolManager() (gas: 107966) \[PASS] test\_transferOwnedPoolManager\_notValidPoolDelegate() (gas: 115268) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 77.46ms (5.07ms CPU time)

Ran 1 test for tests/integration/loan/fixed-term/DeployLoan.t.sol:DeployFixedTermLoanTests \[PASS] test\_deployFixedTermLoan\_feeManagerCheck() (gas: 848518) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 34.16ms (981.29µs CPU time)

Ran 9 tests for tests/integration/loan/DeployLoanByBorrower.t.sol:DeployLoanByBorrowerTests \[PASS] test\_deployLoan\_FTL\_invalidBorrower() (gas: 641441) \[PASS] test\_deployLoan\_FTL\_invalidInstance() (gas: 641189) \[PASS] test\_deployLoan\_FTL\_setCanDeployFromByOA() (gas: 65080) \[PASS] test\_deployLoan\_FTL\_success() (gas: 625435) \[PASS] test\_deployLoan\_FTL\_validBorrowerSetByOA() (gas: 645493) \[PASS] test\_deployLoan\_FTL\_validInstanceSetByOA() (gas: 643478) \[PASS] test\_deployLoan\_OTL\_invalidBorrower() (gas: 492160) \[PASS] test\_deployLoan\_OTL\_invalidInstance() (gas: 491985) \[PASS] test\_deployLoan\_OTL\_success() (gas: 478061) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 38.24ms (5.43ms CPU time)

Ran 10 tests for tests/integration/loan/fixed-term/TriggerDefault.t.sol:OpenTermLoanTriggerDefaultFailureTests \[PASS] test\_triggerDefault\_invalidLoanManager() (gas: 2846670) \[PASS] test\_triggerDefault\_notAuthorized() (gas: 54880) \[PASS] test\_triggerDefault\_notFactory() (gas: 50944) \[PASS] test\_triggerDefault\_notInDefault\_boundary() (gas: 561567) \[PASS] test\_triggerDefault\_notLoan() (gas: 87796) \[PASS] test\_triggerDefault\_notPM() (gas: 396719) \[PASS] test\_triggerDefault\_protocolPaused\_loanManager() (gas: 51897) \[PASS] test\_triggerDefault\_protocolPaused\_poolManager() (gas: 51491) \[PASS] test\_triggerDefault\_repossess\_notLender() (gas: 38749) \[PASS] test\_triggerDefault\_treasuryZeroAddress() (gas: 489125) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 69.47ms (6.70ms CPU time)

Ran 20 tests for tests/integration/pool/DeployPool.t.sol:DeployPoolTests \[PASS] test\_deployPool\_failIfCalledPMFactoryDirectly() (gas: 31223) \[PASS] test\_deployPool\_failIfCalledWMFactoryDirectly() (gas: 33435) \[PASS] test\_deployPool\_failWithAssetNotAllowed() (gas: 300814) \[PASS] test\_deployPool\_failWithInsufficientPDApproval() (gas: 3889348) \[PASS] test\_deployPool\_failWithInvalidAsset() (gas: 391928) \[PASS] test\_deployPool\_failWithInvalidLMFactory() (gas: 3254123) \[PASS] test\_deployPool\_failWithInvalidManagementFee() (gas: 3888449) \[PASS] test\_deployPool\_failWithInvalidPD() (gas: 51286) \[PASS] test\_deployPool\_failWithInvalidPMFactory() (gas: 66611) \[PASS] test\_deployPool\_failWithInvalidStart() (gas: 3133594) \[PASS] test\_deployPool\_failWithInvalidWMCyclicalFactory() (gas: 70353) \[PASS] test\_deployPool\_failWithNonZeroSupplyAndZeroMigrationAdmin() (gas: 382893) \[PASS] test\_deployPool\_failWithOwnedPoolManager() (gas: 4226494) \[PASS] test\_deployPool\_failWithWindowDurationGtCycleDuration() (gas: 3133416) \[PASS] test\_deployPool\_failWithZeroAsset() (gas: 263415) \[PASS] test\_deployPool\_failWithZeroWindowDuration() (gas: 3133393) \[PASS] test\_deployPool\_success() (gas: 4164801) \[PASS] test\_deployPool\_successWithInitialSupply() (gas: 4118264) \[PASS] test\_deployPool\_successWithZeroMigrationAdmin() (gas: 4077408) \[PASS] test\_deployPool\_success\_validPDSetByOA() (gas: 4100933) Suite result: ok. 20 passed; 0 failed; 0 skipped; finished in 66.60ms (22.14ms CPU time)

Ran 9 tests for tests/integration/loan/fixed-term/TriggerDefault.t.sol:OpenTermLoanTriggerDefaultTests \[PASS] test\_triggerDefault\_called() (gas: 511810) \[PASS] test\_triggerDefault\_feesAndFullRecovery() (gas: 284942) \[PASS] test\_triggerDefault\_feesAndPartialRecovery() (gas: 276132) \[PASS] test\_triggerDefault\_impaired() (gas: 530095) \[PASS] test\_triggerDefault\_impaired\_feesAndFullRecovery() (gas: 314498) \[PASS] test\_triggerDefault\_impaired\_onlyFeesRecovered() (gas: 303193) \[PASS] test\_triggerDefault\_latePayment() (gas: 438353) \[PASS] test\_triggerDefault\_onlyFeesRecovered() (gas: 263007) \[PASS] test\_triggerDefault\_setByOperationalAdmin() (gas: 272145) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 91.71ms (22.04ms CPU time)

Ran 12 tests for tests/integration/pool/DeployPool.t.sol:DeployPoolWMQueueFailureTests \[PASS] test\_deployPoolWMQueue\_failIfAlreadyOwned() (gas: 4315654) \[PASS] test\_deployPoolWMQueue\_failIfInsufficientAmount() (gas: 4026425) \[PASS] test\_deployPoolWMQueue\_failIfInsufficientApproval() (gas: 4026434) \[PASS] test\_deployPoolWMQueue\_failIfInvalidManagementFeeRate() (gas: 3953577) \[PASS] test\_deployPoolWMQueue\_failIfInvalidPD() (gas: 48646) \[PASS] test\_deployPoolWMQueue\_failIfInvalidPMFactory() (gas: 4105922) \[PASS] test\_deployPoolWMQueue\_failIfInvalidPPM() (gas: 4113707) \[PASS] test\_deployPoolWMQueue\_failIfInvalidPoolAsset() (gas: 649187) \[PASS] test\_deployPoolWMQueue\_failIfInvalidWMFactory() (gas: 4109764) \[PASS] test\_deployPoolWMQueue\_failIfInvalidWMQFactory() (gas: 65095) \[PASS] test\_deployPoolWMQueue\_failIfPoolAssetNotAllowed() (gas: 298164) \[PASS] test\_deployPoolWMQueue\_failIfSaltCollision() (gas: 17595493375392519607) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 59.28ms (21.94ms CPU time)

Ran 3 tests for tests/integration/loan/fixed-term/TriggerDefault.t.sol:TriggerDefaultFailureTests \[PASS] test\_triggerDefault\_notAuthorized() (gas: 54788) \[PASS] test\_triggerDefault\_notFactory() (gas: 50887) \[PASS] test\_triggerDefault\_notPoolManager() (gas: 53810) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 65.64ms (651.98µs CPU time)

Ran 2 tests for tests/integration/pool/DeployPool.t.sol:DeployPoolWMQueueTests \[PASS] test\_deployPoolWMQueue\_success() (gas: 4174383) \[PASS] test\_deployPoolWMQueue\_withoutCoverAmount() (gas: 4076957) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 78.12ms (8.25ms CPU time)

Ran 3 tests for tests/integration/loan-manager/fixed-term/UnrealizedLosses.t.sol:UnrealizedLossesTests \[PASS] test\_unrealizedLosses\_depositWithUnrealizedLosses() (gas: 439023) \[PASS] test\_unrealizedLosses\_redeemWithUnrealizedLosses\_fullLiquidity() (gas: 540058) \[PASS] test\_unrealizedLosses\_redeemWithUnrealizedLosses\_partialLiquidity() (gas: 1762099) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 45.52ms (7.10ms CPU time)

Ran 5 tests for tests/integration/governor-timelock/UnscheduleProposals.t.sol:UnscheduleProposalsTests \[PASS] test\_setUp() (gas: 55515) \[PASS] test\_unscheduleProposals\_revert\_notCanceller() (gas: 11331) \[PASS] test\_unscheduleProposals\_revert\_notUnschedulable() (gas: 87421) \[PASS] test\_unscheduleProposals\_revert\_proposalNotFound() (gas: 16176) \[PASS] test\_unscheduleProposals\_success() (gas: 125804) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 38.07ms (1.16ms CPU time)

Ran 4 tests for tests/integration/governor-timelock/UpdateRole.t.sol:UpdateRoleTests \[PASS] test\_setUp() (gas: 55630) \[PASS] test\_updateRole\_revert\_notSelf() (gas: 10720) \[PASS] test\_updateRole\_success\_grantRole() (gas: 93221) \[PASS] test\_updateRole\_success\_revokeRole() (gas: 79559) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 66.02ms (1.16ms CPU time)

Ran 5 tests for tests/integration/pool/DepositAndMint.t.sol:DepositFailureTests \[PASS] test\_deposit\_insufficientApproval() (gas: 322888) \[PASS] test\_deposit\_liquidityCapExceeded() (gas: 407385) \[PASS] test\_deposit\_privatePoolInvalidRecipient() (gas: 374377) \[PASS] test\_deposit\_privatePoolInvalidRecipient\_openPoolToPublic() (gas: 352803) \[PASS] test\_deposit\_protocolPaused() (gas: 96578) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 35.44ms (3.34ms CPU time)

Ran 2 tests for tests/integration/globals/Upgrade.t.sol:GlobalsUpgradeTests \[PASS] test\_upgradeGlobals() (gas: 25623) \[PASS] test\_upgradeGlobals\_notAdmin() (gas: 29194) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 44.94ms (1.11ms CPU time)

Ran 6 tests for tests/integration/globals/Upgrade.t.sol:LiquidationUpgradeTests \[PASS] test\_upgradeLiquidator\_delayNotPassed() (gas: 155656) \[PASS] test\_upgradeLiquidator\_durationPassed() (gas: 155965) \[PASS] test\_upgradeLiquidator\_governor\_noTimelockNeeded() (gas: 196878) \[PASS] test\_upgradeLiquidator\_noTimelock() (gas: 164162) \[PASS] test\_upgradeLiquidator\_timelockExtended() (gas: 273212) \[PASS] test\_upgradeLiquidator\_timelockShortened() (gas: 273644) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 46.48ms (4.06ms CPU time)

Ran 6 tests for tests/integration/globals/Upgrade.t.sol:LoanManagerUpgradeTests \[PASS] test\_upgradeLoanManager\_delayNotPassed() (gas: 152201) \[PASS] test\_upgradeLoanManager\_durationPassed() (gas: 152530) \[PASS] test\_upgradeLoanManager\_noTimelock() (gas: 160731) \[PASS] test\_upgradeLoanManager\_securityAdmin\_noTimelockNeeded() (gas: 182236) \[PASS] test\_upgradeLoanManager\_timelockExtended() (gas: 263091) \[PASS] test\_upgradeLoanManager\_timelockShortened() (gas: 263500) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 72.10ms (5.36ms CPU time)

Ran 6 tests for tests/integration/globals/Upgrade.t.sol:PoolManagerUpgradeTests \[PASS] test\_upgradePoolManager\_delayNotPassed() (gas: 131600) \[PASS] test\_upgradePoolManager\_durationPassed() (gas: 131898) \[PASS] test\_upgradePoolManager\_noTimelock() (gas: 138514) \[PASS] test\_upgradePoolManager\_securityAdmin\_noTimelockNeeded() (gas: 160012) \[PASS] test\_upgradePoolManager\_timelockExtended() (gas: 219099) \[PASS] test\_upgradePoolManager\_timelockShortened() (gas: 219464) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 58.03ms (3.30ms CPU time)

Ran 1 test for tests/integration/globals/Upgrade.t.sol:UnscheduleCallTests \[PASS] test\_unscheduleCall\_governor() (gas: 82178) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 37.03ms (309.68µs CPU time)

Ran 6 tests for tests/integration/globals/Upgrade.t.sol:WithdrawalManagerUpgradeTests \[PASS] test\_upgradeWithdrawalManager\_delayNotPassed() (gas: 135456) \[PASS] test\_upgradeWithdrawalManager\_durationPassed() (gas: 135736) \[PASS] test\_upgradeWithdrawalManager\_noTimelock() (gas: 143360) \[PASS] test\_upgradeWithdrawalManager\_securityAdmin\_noTimelockNeeded() (gas: 164864) \[PASS] test\_upgradeWithdrawalManager\_timelockExtended() (gas: 231429) \[PASS] test\_upgradeWithdrawalManager\_timelockShortened() (gas: 231882) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 63.64ms (7.36ms CPU time)

Ran 1 test for tests/integration/globals/ValidCollateral.t.sol:ValidCollateralTests \[PASS] test\_setIsCollateral\_invalidCollateral() (gas: 785878) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 40.17ms (1.09ms CPU time)

Ran 17 tests for tests/integration/withdrawal-manager/queue/ViewFunctions.t.sol:WithdrawalManagerQueueViewFunctionsAdditionalTests \[PASS] test\_asset\_constantAddress() (gas: 458950) \[PASS] test\_factory() (gas: 15041) \[PASS] test\_globals\_updatesAfterFactorySetGlobals() (gas: 2800885) \[PASS] test\_governor\_updatesWhenGlobalsChanges() (gas: 2806103) \[PASS] test\_implementation\_updatesAfterUpgrade() (gas: 3261162) \[PASS] test\_isInExitWindow() (gas: 12926) \[PASS] test\_lockedLiquidity\_constantZero() (gas: 455196) \[PASS] test\_lockedShares\_updatesAfterProcessing() (gas: 435214) \[PASS] test\_poolDelegate\_updatesAfterTransfer() (gas: 113044) \[PASS] test\_poolManager\_address\_constant() (gas: 14947) \[PASS] test\_pool\_address\_constant() (gas: 15016) \[PASS] test\_previewRedeem\_reflectsUpdatedManualShares() (gas: 452514) \[PASS] test\_previewWithdraw\_alwaysZero() (gas: 319013) \[PASS] test\_queue\_updatesAfterRequestAndProcess() (gas: 457603) \[PASS] test\_requestIds\_updatesAfterRequestRedeem() (gas: 319120) \[PASS] test\_requests\_updatesAfterAddAndRemove() (gas: 326132) \[PASS] test\_securityAdmin\_updatesAfterChange() (gas: 52802) Suite result: ok. 17 passed; 0 failed; 0 skipped; finished in 51.96ms (13.86ms CPU time)

Ran 3 tests for tests/integration/withdrawal-manager/cyclical/Withdraw\.t.sol:RequestWithdrawFailureTests \[PASS] test\_requestWithdraw\_failIfInsufficientApproval() (gas: 269088) \[PASS] test\_requestWithdraw\_failIfNotPM() (gas: 17863) \[PASS] test\_requestWithdraw\_failIfNotPool() (gas: 43540) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 53.23ms (4.92ms CPU time)

Ran 4 tests for tests/integration/pool/DepositAndMint.t.sol:DepositTest \[PASS] testDeepFuzz\_deposit\_singleUser(uint256) (runs: 100, μ: 284945, \~: 284945) \[PASS] testDeepFuzz\_deposit\_variableExchangeRate(uint256,uint256) (runs: 100, μ: 1471328, \~: 1474082) \[PASS] test\_deposit\_singleUser\_oneToOne() (gas: 281372) \[PASS] test\_deposit\_twoUsers\_oneToOne() (gas: 383362) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 589.13ms (534.18ms CPU time)

Ran 5 tests for tests/integration/pool/DepositAndMint.t.sol:DepositWithPermitFailureTests \[PASS] test\_depositWithPermit\_invalidSignature() (gas: 478175) \[PASS] test\_depositWithPermit\_liquidityCapExceeded() (gas: 445369) \[PASS] test\_depositWithPermit\_privatePoolInvalidRecipient() (gas: 407626) \[PASS] test\_depositWithPermit\_privatePoolInvalidRecipient\_openPoolToPublic() (gas: 386011) \[PASS] test\_depositWithPermit\_protocolPaused() (gas: 149545) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 78.22ms (12.29ms CPU time)

Ran 4 tests for tests/integration/withdrawal-manager/cyclical/Withdraw\.t.sol:RequestWithdrawTests \[PASS] testDeepFuzz\_requestWithdraw(uint256,uint256) (runs: 100, μ: 348847, \~: 349267) \[PASS] test\_requestWithdraw() (gas: 323055) \[PASS] test\_requestWithdraw\_premature() (gas: 325643) \[PASS] test\_requestWithdraw\_withApproval() (gas: 334852) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 233.05ms (160.65ms CPU time)

Ran 5 tests for tests/integration/withdrawal-manager/cyclical/Withdraw\.t.sol:WithdrawFailureTests \[PASS] testDeepFuzz\_withdraw(uint256,address,address) (runs: 100, μ: 69763, \~: 69763) \[PASS] test\_withdraw\_failIfNotPool() (gas: 43731) \[PASS] test\_withdraw\_failIfNotPoolManager() (gas: 18071) \[PASS] test\_withdraw\_premature() (gas: 74169) \[PASS] test\_withdraw\_zeroAssetInput() (gas: 71610) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 118.31ms (50.67ms CPU time)

Ran 1 test for tests/integration/withdrawal-manager/cyclical/Withdraw\.t.sol:WithdrawOnPermissionedPool \[PASS] test\_withdraw\_withUnwhitelistedUser() (gas: 457088) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 62.73ms (1.24ms CPU time)

Ran 2 tests for tests/integration/pool/DepositAndMint.t.sol:DepositWithPermitTests \[PASS] testDeepFuzz\_depositWithPermit\_singleUser(uint256) (runs: 100, μ: 317487, \~: 317485) \[PASS] test\_depositWithPermit\_singleUser() (gas: 313729) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 247.58ms (179.99ms CPU time)

Ran 5 tests for tests/integration/pool/DepositAndMint.t.sol:MintFailureTests \[PASS] test\_mint\_insufficientApproval() (gas: 325202) \[PASS] test\_mint\_liquidityCapExceeded() (gas: 435979) \[PASS] test\_mint\_privatePoolInvalidRecipient() (gas: 380774) \[PASS] test\_mint\_privatePoolInvalidRecipient\_openPoolToPublic() (gas: 359264) \[PASS] test\_mint\_protocolPaused() (gas: 150303) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 41.38ms (3.70ms CPU time)

Ran 3 tests for tests/integration/withdrawal-manager/cyclical/Withdraw\.t.sol:WithdrawScenarios \[PASS] test\_withdrawals\_cashInjection() (gas: 4472091) \[PASS] test\_withdrawals\_poorExchangeRates() (gas: 4195309) \[PASS] test\_withdrawals\_withUpdateAccounting() (gas: 4164279) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 108.97ms (45.32ms CPU time)

Ran 3 tests for tests/integration/governor-timelock/WithdrawERC20Token.t.sol:WithdrawERC20TokenTests \[PASS] test\_setUp() (gas: 55560) \[PASS] test\_withdrawERC20Token\_revert\_notTokenWithdrawer() (gas: 12794) \[PASS] test\_withdrawERC20Token\_success() (gas: 97288) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 37.00ms (1.24ms CPU time)

Ran 4 tests for tests/integration/pool/DepositAndMint.t.sol:MintTest \[PASS] testDeepFuzz\_mint\_singleUser(uint256) (runs: 100, μ: 287092, \~: 287092) \[PASS] testDeepFuzz\_mint\_variableExchangeRate(uint256,uint256) (runs: 100, μ: 1497606, \~: 1497366) \[PASS] test\_mint\_singleUser\_oneToOne() (gas: 283397) \[PASS] test\_mint\_twoUsers\_oneToOne() (gas: 402194) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 555.34ms (489.55ms CPU time)

Ran 5 tests for tests/integration/pool/DepositAndMint.t.sol:MintWithPermitFailureTests \[PASS] test\_mintWithPermit\_insufficientPermit() (gas: 479273) \[PASS] test\_mintWithPermit\_liquidityCapExceeded() (gas: 474033) \[PASS] test\_mintWithPermit\_privatePoolInvalidRecipient() (gas: 414036) \[PASS] test\_mintWithPermit\_privatePoolInvalidRecipient\_openPoolToPublic() (gas: 392448) \[PASS] test\_mintWithPermit\_protocolPaused() (gas: 152799) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 72.59ms (8.22ms CPU time)

Ran 3 tests for tests/integration/loan/fixed-term/Liquidation.t.sol:FinishLiquidationFailureTests \[PASS] test\_finishLiquidation\_failIfLiquidationNotActive() (gas: 98052) \[PASS] test\_finishLiquidation\_failIfNotPD() (gas: 52502) \[PASS] test\_finishLiquidation\_failIfNotPoolManager() (gas: 52309) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 42.89ms (2.77ms CPU time)

Ran 14 tests for tests/integration/loan/fixed-term/Liquidation.t.sol:LoanLiquidationTests \[PASS] test\_finishCollateralLiquidation\_asOperationalAdmin() (gas: 2135508) \[PASS] test\_loanDefault\_fullCover\_noCollateral\_noImpairment() (gas: 1399241) \[PASS] test\_loanDefault\_fullCover\_noCollateral\_withImpairment() (gas: 1478715) \[PASS] test\_loanDefault\_fullCover\_withCollateral\_noImpairment() (gas: 2244965) \[PASS] test\_loanDefault\_fullCover\_withCollateral\_withImpairment() (gas: 2270077) \[PASS] test\_loanDefault\_noCover\_noCollateral\_noImpairment() (gas: 1302284) \[PASS] test\_loanDefault\_noCover\_noCollateral\_withImpairment() (gas: 1383822) \[PASS] test\_loanDefault\_noCover\_withCollateral\_noImpairment() (gas: 2158238) \[PASS] test\_loanDefault\_noCover\_withCollateral\_withImpairment() (gas: 2184674) \[PASS] test\_loanDefault\_partialCover\_noCollateral\_noImpairment() (gas: 1399174) \[PASS] test\_loanDefault\_partialCover\_noCollateral\_withImpairment() (gas: 1478680) \[PASS] test\_loanDefault\_partialCover\_withCollateral\_noImpairment() (gas: 2244824) \[PASS] test\_loanDefault\_partialCover\_withCollateral\_withImpairment() (gas: 2270097) \[PASS] test\_setMaxCoverLiquidationPercent\_asOperationalAdmin() (gas: 36283) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 105.72ms (54.54ms CPU time)

Ran 2 tests for tests/integration/pool/DepositAndMint.t.sol:MintWithPermitTests \[PASS] testDeepFuzz\_mintWithPermit\_singleUser(uint256) (runs: 100, μ: 316863, \~: 316871) \[PASS] test\_mintWithPermit\_singleUser() (gas: 315991) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 144.67ms (107.06ms CPU time)

Ran 5 tests for tests/integration/loan-manager/fixed-term/LoanManagerGetters.t.sol:LoanManagerGetterTests \[PASS] test\_loanManagerGetters\_addresses() (gas: 20638) \[PASS] test\_loanManagerGetters\_liquidationInformation() (gas: 961343) \[PASS] test\_loanManagerGetters\_paymentInformation() (gas: 26663) \[PASS] test\_loanManagerGetters\_sortedPayments() (gas: 1251080) \[PASS] test\_loanManagerGetters\_uints() (gas: 30251) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 80.56ms (10.54ms CPU time)

Ran 12 tests for tests/integration/governor-timelock/ExecuteProposal.t.sol:ExecuteProposalsTests \[PASS] test\_executeProposals\_executionFailed\_notPendingAdmin() (gas: 128228) \[PASS] test\_executeProposals\_revert\_emptyArray() (gas: 14687) \[PASS] test\_executeProposals\_revert\_executionFailed() (gas: 111833) \[PASS] test\_executeProposals\_revert\_invalidData() (gas: 155496) \[PASS] test\_executeProposals\_revert\_invalidDataLength() (gas: 15673) \[PASS] test\_executeProposals\_revert\_invalidTargetsLength() (gas: 15099) \[PASS] test\_executeProposals\_revert\_notExecutable() (gas: 232176) \[PASS] test\_executeProposals\_revert\_notExecutable\_failedToExecuteTheSameProposalTwice() (gas: 118828) \[PASS] test\_executeProposals\_revert\_notExecutor() (gas: 12197) \[PASS] test\_executeProposals\_success() (gas: 205050) \[PASS] test\_executeProposals\_success\_emptyData() (gas: 150877) \[PASS] test\_setUp() (gas: 55652) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 43.88ms (5.93ms CPU time)

Ran 3 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentFailureTests \[PASS] test\_makePayment\_failIfNotLoan() (gas: 65297) \[PASS] test\_makePayment\_failWithTransferFailed() (gas: 209606) \[PASS] test\_makePayment\_failWithTransferFromFailed() (gas: 131616) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 39.35ms (1.03ms CPU time)

Ran 9 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentOpenTermFailureTests \[PASS] test\_makePayment\_inactiveLoan() (gas: 444074) \[PASS] test\_makePayment\_invalidPrincipalIncrease() (gas: 52101) \[PASS] test\_makePayment\_notLoan() (gas: 485533) \[PASS] test\_makePayment\_tooLittlePrincipal() (gas: 126383) \[PASS] test\_makePayment\_tooMuchPrincipal() (gas: 41257) \[PASS] test\_makePayment\_transferFailed() (gas: 74027) \[PASS] test\_makePayment\_transferToPoolBoundary() (gas: 239002) \[PASS] test\_makePayment\_transferToPoolDelegateBoundary() (gas: 283464) \[PASS] test\_makePayment\_transferToTreasuryBoundary() (gas: 354885) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 46.38ms (4.23ms CPU time)

Ran 1 test for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsDomainStartGtDomainEnd \[PASS] test\_makePayment\_domainStart\_gt\_domainEnd() (gas: 3268288) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 47.03ms (10.85ms CPU time)

Ran 1 test for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsPastDomainEnd \[PASS] test\_makePayment\_lateLoan3\_loan1NotPaid\_loan2NotPaid() (gas: 850919) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 55.60ms (2.92ms CPU time)

Ran 3 tests for tests/integration/loan-manager/fixed-term/FetchValuesFromLM.t.sol:LoanManagerIsLiquidationActiveGetterTests \[PASS] test\_isLiquidationActive\_afterLiquidation() (gas: 886984) \[PASS] test\_isLiquidationActive\_beforeLiquidation() (gas: 15248) \[PASS] test\_isLiquidationActive\_duringLiquidation() (gas: 576664) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 45.46ms (2.50ms CPU time)

Ran 3 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsSingleLoanAmortized \[PASS] test\_makePayment\_earlyPayment\_amortized() (gas: 669928) \[PASS] test\_makePayment\_latePayment\_amortized() (gas: 676287) \[PASS] test\_makePayment\_onTimePayment\_amortized() (gas: 669971) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 52.30ms (6.35ms CPU time)

Ran 3 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsSingleLoanInterestOnly \[PASS] test\_makePayment\_earlyPayment\_interestOnly() (gas: 648406) \[PASS] test\_makePayment\_latePayment\_interestOnly() (gas: 651972) \[PASS] test\_makePayment\_onTimePayment\_interestOnly() (gas: 645782) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 49.13ms (5.62ms CPU time)

Ran 4 tests for tests/integration/pool/FetchValuesFromPM.t.sol:PoolManagerGetterTests \[PASS] testDeepFuzz\_getEscrowParams\_shouldReturnValues(uint256) (runs: 100, μ: 19471, \~: 19173) \[PASS] test\_addressGetters() (gas: 35571) \[PASS] test\_hasSufficientCover\_insufficientCover(uint256) (runs: 100, μ: 131861, \~: 132415) \[PASS] test\_hasSufficientCover\_sufficientCover(uint256) (runs: 100, μ: 140902, \~: 141040) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 127.87ms (89.64ms CPU time)

Ran 4 tests for tests/integration/loan-manager/fixed-term/FinishCollateralLiquidation.t.sol:FinishCollateralLiquidationFailureTests \[PASS] test\_finishCollateralLiquidation\_notAuthorized() (gas: 52525) \[PASS] test\_finishCollateralLiquidation\_notFinished() (gas: 598581) \[PASS] test\_finishCollateralLiquidation\_notPoolManager() (gas: 52243) \[PASS] test\_finishCollateralLiquidation\_whenImpaired() (gas: 261449) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 38.97ms (1.93ms CPU time)

Ran 4 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsSingleLoanOpenTerm \[PASS] test\_makePayment\_OT\_latePayment() (gas: 594694) \[PASS] test\_makePayment\_OT\_onTimePayment() (gas: 590271) \[PASS] test\_makePayment\_OT\_withCall() (gas: 573155) \[PASS] test\_makePayment\_OT\_withImpairment() (gas: 629232) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 72.06ms (13.38ms CPU time)

Ran 10 tests for tests/integration/loan-manager/Fund.t.sol:FixedTermLoanManagerFundTests \[PASS] test\_fund\_failIfAmountGreaterThanLockedLiquidity() (gas: 1634973) \[PASS] test\_fund\_failIfInsufficientCover() (gas: 244126) \[PASS] test\_fund\_failIfLoanActive() (gas: 909352) \[PASS] test\_fund\_failIfNotPoolDelegate() (gas: 54070) \[PASS] test\_fund\_failIfPoolDoesNotApprovePM() (gas: 255969) \[PASS] test\_fund\_failIfProtocolIsPaused() (gas: 56674) \[PASS] test\_fund\_failIfTermsNotAccepted() (gas: 289351) \[PASS] test\_fund\_failIfTotalSupplyIsZero() (gas: 430423) \[PASS] test\_fund\_oneLoan() (gas: 799924) \[PASS] test\_fund\_twoLoans() (gas: 1299910) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 52.63ms (13.64ms CPU time)

Ran 18 tests for tests/integration/loan-manager/Fund.t.sol:OpenTermLoanManagerFundTests \[PASS] test\_fund\_failIfTermsNotAccepted() (gas: 457512) \[PASS] test\_fund\_insufficientCover() (gas: 378141) \[PASS] test\_fund\_invalidBorrower() (gas: 95441) \[PASS] test\_fund\_invalidLoanFactory() (gas: 82976) \[PASS] test\_fund\_invalidLoanInstance() (gas: 172811) \[PASS] test\_fund\_invalidLoanManagerFactory() (gas: 127592) \[PASS] test\_fund\_loanActive() (gas: 694836) \[PASS] test\_fund\_loanManagerApproveFailure() (gas: 439413) \[PASS] test\_fund\_loanNotActive() (gas: 642208) \[PASS] test\_fund\_loanTransferFailure() (gas: 505932) \[PASS] test\_fund\_lockedLiquidity() (gas: 544244) \[PASS] test\_fund\_notLender() (gas: 36746) \[PASS] test\_fund\_notLoanManager() (gas: 352035) \[PASS] test\_fund\_notPoolDelegate() (gas: 54115) \[PASS] test\_fund\_poolManagerTransferFailure() (gas: 387100) \[PASS] test\_fund\_protocolPause() (gas: 49418) \[PASS] test\_fund\_success() (gas: 616096) \[PASS] test\_fund\_zeroSupply() (gas: 565146) Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 56.64ms (15.91ms CPU time)

Ran 3 tests for tests/integration/loan/MakePayment.t.sol:MakePaymentTestsTwoLoans \[PASS] test\_makePayment\_earlyPayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 1287277) \[PASS] test\_makePayment\_latePayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 1292917) \[PASS] test\_makePayment\_onTimePayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 1285143) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 105.16ms (28.37ms CPU time)

Ran 4 tests for tests/integration/loan/MapleBorrowerActions.t.sol:MapleBorrowerActionsTests \[PASS] test\_acceptLoanTerms\_FTL() (gas: 78162) \[PASS] test\_acceptLoanTerms\_FTL\_failIfNotBorrower() (gas: 26113) \[PASS] test\_acceptLoanTerms\_OTL() (gas: 78265) \[PASS] test\_acceptLoanTerms\_OTL\_failIfNotBorrower() (gas: 26171) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 39.18ms (683.35µs CPU time)

Ran 28 tests for tests/integration/governor-timelock/MapleGlobalsFunctions.t.sol:MapleGlobalsFunctionsTests \[PASS] test\_activatePoolManager() (gas: 4169639) \[PASS] test\_setBootstrapMint() (gas: 102420) \[PASS] test\_setCanDeployFrom() (gas: 168484) \[PASS] test\_setContractPause() (gas: 161648) \[PASS] test\_setDefaultTimelockParameters() (gas: 88103) \[PASS] test\_setFunctionUnpause() (gas: 163792) \[PASS] test\_setManualOverridePrice() (gas: 102496) \[PASS] test\_setMapleTreasury() (gas: 90253) \[PASS] test\_setMaxCoverLiquidationPercent() (gas: 102407) \[PASS] test\_setMigrationAdmin() (gas: 90248) \[PASS] test\_setMinCoverAmount() (gas: 102351) \[PASS] test\_setOperationalAdmin() (gas: 90217) \[PASS] test\_setPendingGovernor() (gas: 110450) \[PASS] test\_setPlatformManagementFeeRate() (gas: 104001) \[PASS] test\_setPlatformOriginationFeeRate() (gas: 104027) \[PASS] test\_setPlatformServiceFeeRate() (gas: 104034) \[PASS] test\_setPriceOracle() (gas: 105423) \[PASS] test\_setProtocolPause() (gas: 144687) \[PASS] test\_setSecurityAdmin() (gas: 90221) \[PASS] test\_setTimelockWindow() (gas: 104725) \[PASS] test\_setTimelockWindows() (gas: 134404) \[PASS] test\_setUp() (gas: 55692) \[PASS] test\_setValidBorrower() (gas: 161060) \[PASS] test\_setValidCollateralAsset() (gas: 160951) \[PASS] test\_setValidInstanceOf() (gas: 162677) \[PASS] test\_setValidPoolAsset() (gas: 160934) \[PASS] test\_setValidPoolDelegate() (gas: 161298) \[PASS] test\_unscheduleCall() (gas: 131572) Suite result: ok. 28 passed; 0 failed; 0 skipped; finished in 60.57ms (19.85ms CPU time)

Ran 6 tests for tests/integration/governor-timelock/MapleProxyFactoryFunctions.t.sol:MapleProxyFactoryFunctionsTests \[PASS] test\_disableUpgradePath() (gas: 1776464) \[PASS] test\_enabledUpgradePath() (gas: 1064050) \[PASS] test\_registerImplementation() (gas: 1301690) \[PASS] test\_setDefaultVersion() (gas: 2030071) \[PASS] test\_setGlobals() (gas: 941324) \[PASS] test\_setUp() (gas: 55563) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 60.06ms (23.16ms CPU time)

Ran 8 tests for tests/integration/loan-manager/fixed-term/GetExpectedAmount.t.sol:GetExpectedAmountTests \[PASS] testFork\_getExpectedAmount\_currentPrice() (gas: 109172) \[PASS] testFork\_getExpectedAmount\_manualOverride() (gas: 85091) \[PASS] testFork\_getExpectedAmount\_oracleNotSet() (gas: 54247) \[PASS] testFork\_getExpectedAmount\_withMinRatio() (gas: 155454) \[PASS] testFork\_getExpectedAmount\_withSlippage() (gas: 155427) \[PASS] testFork\_getExpectedAmount\_withSlippageAndMinRatio\_minRatioHigher() (gas: 186306) \[PASS] testFork\_getExpectedAmount\_withSlippageAndMinRatio\_slippageHigher() (gas: 186319) \[PASS] testFork\_getExpectedAmount\_zeroAmount() (gas: 109096) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 181.53ms (13.85ms CPU time)

Ran 6 tests for tests/integration/globals/OperationalAdmin.t.sol:OperationalAdminTests \[PASS] test\_operationalAdminAcl\_setMinCoverAmount() (gas: 47511) \[PASS] test\_operationalAdminAcl\_setPermissionAdmin() (gas: 64676) \[PASS] test\_operationalAdminAcl\_setPlatformManagementFeeRate() (gas: 49906) \[PASS] test\_operationalAdminAcl\_setPlatformOriginationFeeRate() (gas: 49947) \[PASS] test\_operationalAdminAcl\_setPlatformServiceFeeRate() (gas: 49970) \[PASS] test\_operationalAdminAcl\_setValidInstanceOf() (gas: 48755) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 43.38ms (917.73µs CPU time)

Ran 4 tests for tests/integration/globals/GetLatestPrice.t.sol:GetLatestPriceTests \[PASS] test\_getLatestPrice\_currentPrice() (gas: 74222) \[PASS] test\_getLatestPrice\_manualOverride() (gas: 46136) \[PASS] test\_getLatestPrice\_stalePrice() (gas: 100591) \[PASS] test\_getLatestPrice\_unknownAsset() (gas: 20443) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 166.40ms (1.16ms CPU time)

Ran 1 test for tests/integration/governor-timelock/GovernorTimelockTestBase.t.sol:GovernorTimelockTestBase \[PASS] test\_setUp() (gas: 55582) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 36.52ms (255.86µs CPU time)

Ran 2 tests for tests/integration/loan-manager/ImpairLoan.t.sol:FixedTermLoanManagerImpairAndRefinanceTests \[PASS] test\_impairLoan\_earlyThenRefinance() (gas: 1018409) \[PASS] test\_impairLoan\_lateThenRefinance() (gas: 813860) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 54.99ms (12.37ms CPU time)

Ran 4 tests for tests/integration/loan-manager/ImpairLoan.t.sol:FixedTermLoanManagerImpairFailureTests \[PASS] test\_impairLoan\_alreadyImpaired() (gas: 229807) \[PASS] test\_impairLoan\_notAuthorized() (gas: 53922) \[PASS] test\_impairLoan\_notLender() (gas: 36377) \[PASS] test\_impairLoan\_protocolPaused() (gas: 49295) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 43.35ms (1.02ms CPU time)

Ran 2 tests for tests/integration/loan-manager/ImpairLoan.t.sol:FixedTermLoanManagerImpairSuccessTests \[PASS] test\_impairLoan\_thenCancel() (gas: 746474) \[PASS] test\_impairLoan\_thenRepay() (gas: 783151) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 56.59ms (5.40ms CPU time)

Ran 9 tests for tests/integration/loan-manager/ImpairLoan.t.sol:OpenTermLoanManagerImpairTests \[PASS] test\_impairLoan\_early() (gas: 201755) \[PASS] test\_impairLoan\_governorAcl() (gas: 117487) \[PASS] test\_impairLoan\_late() (gas: 202410) \[PASS] test\_impairLoan\_loanInactive() (gas: 198946) \[PASS] test\_impairLoan\_notAuthorized() (gas: 56233) \[PASS] test\_impairLoan\_notLender() (gas: 36565) \[PASS] test\_impairLoan\_notLoanContract() (gas: 39028) \[PASS] test\_impairLoan\_notLoanInLoanManager() (gas: 447652) \[PASS] test\_impairLoan\_protocolPaused() (gas: 49340) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 44.12ms (3.94ms CPU time)

Ran 9 tests for tests/integration/loan-manager/ImpairLoan.t.sol:OpenTermLoanManagerRemoveImpairmentTests \[PASS] test\_removeLoanImpairment\_early() (gas: 207789) \[PASS] test\_removeLoanImpairment\_late() (gas: 208238) \[PASS] test\_removeLoanImpairment\_late\_withLateImpairment() (gas: 208284) \[PASS] test\_removeLoanImpairment\_notAuthorized() (gas: 68886) \[PASS] test\_removeLoanImpairment\_notImpaired() (gas: 88505) \[PASS] test\_removeLoanImpairment\_notLender() (gas: 36696) \[PASS] test\_removeLoanImpairment\_notLoan() (gas: 39045) \[PASS] test\_removeLoanImpairment\_poolDelegateAfterGovernor() (gas: 137159) \[PASS] test\_removeLoanImpairment\_protocolPaused() (gas: 49340) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 69.80ms (4.28ms CPU time)

Ran 7 tests for tests/integration/globals/Pause.t.sol:PauseTests \[PASS] test\_contractPause() (gas: 10531971) \[PASS] test\_functionUnpauseAfterContractPause() (gas: 44355542) \[PASS] test\_functionUnpauseAfterProtocolPause() (gas: 63244352) \[PASS] test\_globalPause() (gas: 14055042) \[PASS] test\_poolManager\_canCall\_contractPause() (gas: 78225) \[PASS] test\_poolManager\_canCall\_functionUnpauseAfterProtocolPause() (gas: 84123) \[PASS] test\_poolManager\_canCall\_protocolPause() (gas: 76584) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 583.19ms (531.46ms CPU time)

Ran 2 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:BalanceOfAssetsTests \[PASS] testDeepFuzz\_balanceOfAssets(uint256,uint256,uint256) (runs: 100, μ: 395188, \~: 395025) \[PASS] test\_balanceOfAssets() (gas: 388214) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 183.58ms (145.43ms CPU time)

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:ConvertToAssetsTests \[PASS] test\_convertToAssets\_multipleUsers() (gas: 448716) \[PASS] test\_convertToAssets\_multipleUsers\_changeTotalAssets() (gas: 471404) \[PASS] test\_convertToAssets\_singleUser() (gas: 272996) \[PASS] test\_convertToAssets\_zeroTotalSupply() (gas: 10148) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 49.62ms (3.14ms CPU time)

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:ConvertToSharesTests \[PASS] test\_convertToShares\_multipleUsers() (gas: 448786) \[PASS] test\_convertToShares\_multipleUsers\_changeTotalAssets() (gas: 471417) \[PASS] test\_convertToShares\_singleUser() (gas: 273037) \[PASS] test\_convertToShares\_zeroTotalSupply() (gas: 10253) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 51.37ms (3.20ms CPU time)

Ran 3 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:MaxDepositTests \[PASS] testDeepFuzz\_maxDeposit\_totalAssetsIncrease(uint256,uint256) (runs: 100, μ: 240704, \~: 240698) \[PASS] test\_maxDeposit\_closedPool() (gas: 250013) \[PASS] test\_maxDeposit\_totalAssetsIncrease() (gas: 235529) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 103.96ms (58.51ms CPU time)

Ran 2 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:AutomatedPreviewRedeemWithQueueWMTests \[PASS] testFuzz\_previewRedeem\_notProcessed(uint256) (runs: 100, μ: 33939, \~: 33939) \[PASS] testFuzz\_previewRedeem\_processed(uint256) (runs: 100, μ: 274467, \~: 274467) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 143.19ms (106.51ms CPU time)

Ran 6 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:MaxRedeemWMQueueTests \[PASS] test\_maxRedeem\_afterFullManualRedeem() (gas: 316767) \[PASS] test\_maxRedeem\_afterFullRedeem() (gas: 224297) \[PASS] test\_maxRedeem\_afterPartialManualRedeem() (gas: 356591) \[PASS] test\_maxRedeem\_afterPartialRedeem() (gas: 228683) \[PASS] test\_maxRedeem\_beforeRedeem() (gas: 34469) \[PASS] test\_maxRedeem\_notManual() (gas: 351421) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 43.04ms (4.60ms CPU time)

Ran 4 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:MaxWithdrawTests \[PASS] testDeepFuzz\_maxWithdraw\_lockedShares\_inExitWindow(uint256) (runs: 100, μ: 413338, \~: 413592) \[PASS] test\_maxWithdraw\_lockedShares\_inExitWindow() (gas: 409620) \[PASS] test\_maxWithdraw\_lockedShares\_notInExitWindow() (gas: 407604) \[PASS] test\_maxWithdraw\_noLockedShares\_notInExitWindow() (gas: 265417) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 120.84ms (84.59ms CPU time)

Ran 3 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:MaxRedeemTests \[PASS] test\_maxRedeem\_lockedShares\_inExitWindow() (gas: 418030) \[PASS] test\_maxRedeem\_lockedShares\_notInExitWindow() (gas: 411157) \[PASS] test\_maxRedeem\_noLockedShares\_notInExitWindow() (gas: 270560) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 37.33ms (2.28ms CPU time)

Ran 5 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:MaxMintTests \[PASS] testDeepFuzz\_maxMint\_exchangeRateGtOne(uint256,uint256,uint256) (runs: 100, μ: 390283, \~: 390153) \[PASS] testDeepFuzz\_maxMint\_totalAssetsIncrease(uint256,uint256) (runs: 100, μ: 246940, \~: 246945) \[PASS] test\_maxMint\_closedPool() (gas: 258343) \[PASS] test\_maxMint\_exchangeRateGtOne() (gas: 383310) \[PASS] test\_maxMint\_totalAssetsIncrease() (gas: 241820) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 244.42ms (200.51ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8228672) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 57.27ms (7.62ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8319540) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 46.82ms (8.18ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8320410) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 46.30ms (8.02ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8703114) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 48.38ms (9.61ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8030139) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 45.34ms (7.09ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8260940) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 45.64ms (7.07ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 8621930) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 46.97ms (8.63ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 9005267) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 48.84ms (10.46ms CPU time)

Ran 1 test for scenarios/v2/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 9489212) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 49.29ms (10.94ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 22742826) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 139.08ms (75.01ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 10850618) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 89.00ms (42.35ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 19954478) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 115.02ms (68.83ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 15043640) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 95.48ms (49.17ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 17996265) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 105.49ms (58.85ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 9384088) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 73.38ms (27.29ms CPU time)

Ran 1 test for scenarios/v3/Scenarios.t.sol:Scenario \[PASS] test\_sim() (gas: 6876986) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 64.43ms (18.18ms CPU time)

Ran 1 test for tests/protocol-upgrade/core-strategy/MapleCoreStrategyUpgradeBase.t.sol:MapleCoreStrategyUpgradeBaseTest \[PASS] test\_setUp() (gas: 178687) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 261.72ms (881.88µs CPU time)

Ran 1 test for tests/protocol-upgrade/governor-timelock/GovernorTimelockUpgradeTestsBase.t.sol:GovernorTimelockUpgradeTestsBase \[PASS] testFork\_setUp\_governorTimelockUpgradeTests() (gas: 48663) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 284.49ms (8.25ms CPU time)

Ran 7 tests for tests/protocol-upgrade/governor-timelock/GovernorTimelockScenariosUpgrade.t.sol:GovernorTimelockScenariosUpgradeTests \[PASS] testFork\_reclaimERC20\_withoutChangingGovernorOnOldGlobals() (gas: 50685) \[PASS] testFork\_setUp\_governorTimelockUpgradeTests() (gas: 48901) \[PASS] testFork\_unscheduleProposals\_cancellerCanNotUnscheduleRoleUpdate() (gas: 83364) \[PASS] testFork\_unscheduleProposals\_cancellerUnschedulesMaliciousProposal() (gas: 88918) \[PASS] testFork\_updateRoles\_backupRoleAdmin\_removesPrimaryRoleAdmin() (gas: 155599) \[PASS] testFork\_upgradeWithdrawalManager() (gas: 303929) \[PASS] testFork\_withdrawERC20Token\_afterChangingTokenWithdrawer\_withNewGovernorOnOldGlobals() (gas: 279129) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 294.28ms (17.91ms CPU time)

Ran 5 tests for tests/protocol-upgrade/withdrawal-manager/Spark.t.sol:SparkFork\_MainnetController\_SyrupUSDC \[PASS] testFork\_deposit\_USDC() (gas: 359393) \[PASS] testFork\_deposit\_requestAndCancelRedemption\_USDC() (gas: 626516) \[PASS] testFork\_deposit\_requestAndProcessRedemption\_full\_USDC() (gas: 843613) \[PASS] testFork\_deposit\_requestAndProcessRedemption\_partial\_USDC() (gas: 843612) \[PASS] testFork\_deposit\_requestRedemption\_USDC() (gas: 658083) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 299.12ms (50.61ms CPU time)

Ran 6 tests for tests/protocol-upgrade/governor-timelock/ProxyFactoryFunctionsUpgrade.t.sol:MapleProxyFactoryFunctionsUpgradeTests \[PASS] testFork\_disableUpgradePath() (gas: 1630557) \[PASS] testFork\_enabledUpgradePath() (gas: 977128) \[PASS] testFork\_registerImplementation() (gas: 1195063) \[PASS] testFork\_setDefaultVersion() (gas: 1854744) \[PASS] testFork\_setGlobals() (gas: 867977) \[PASS] testFork\_setUp\_governorTimelockUpgradeTests() (gas: 48733) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 314.36ms (38.23ms CPU time)

Ran 4 tests for tests/protocol-upgrade/withdrawal-manager/RemoveShares.t.sol:RemoveSharesTests \[PASS] testFork\_removeShares\_completeRemoval\_multipleRequests() (gas: 752188) \[PASS] testFork\_removeShares\_partialRemoval\_multipleRequests() (gas: 748903) \[PASS] testFork\_removeShares\_partialRemoval\_oneRequest() (gas: 158577) \[PASS] testFork\_removeShares\_revert\_zeroShares() (gas: 86643) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 347.91ms (9.23ms CPU time)

Ran 6 tests for tests/protocol-upgrade/withdrawal-manager/RemoveSharesById.t.sol:RemoveSharesByIdTests \[PASS] testFork\_removeSharesById\_revert\_insufficientShares() (gas: 48566) \[PASS] testFork\_removeSharesById\_revert\_invalidRequest\_requestAlreadyRemoved() (gas: 48113) \[PASS] testFork\_removeSharesById\_revert\_noChange() (gas: 48441) \[PASS] testFork\_removeSharesById\_revert\_notOwner() (gas: 48070) \[PASS] testFork\_removeSharesById\_success\_completeRemoval() (gas: 133973) \[PASS] testFork\_removeSharesById\_success\_partialRemoval() (gas: 210357) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 352.06ms (9.59ms CPU time)

Ran 4 tests for tests/protocol-upgrade/withdrawal-manager/ProcessRedemptions.t.sol:ProcessRedemptionsTests \[PASS] testFork\_processRedemptions\_revert\_lowLiquidity() (gas: 251833) \[PASS] testFork\_processRedemptions\_revert\_zeroShares() (gas: 59081) \[PASS] testFork\_processRedemptions\_success\_multipleRequests() (gas: 677472) \[PASS] testFork\_processRedemptions\_success\_processAllRequests() (gas: 658828) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 352.71ms (10.37ms CPU time)

Ran 2 tests for tests/protocol-upgrade/withdrawal-manager/RequestRedeem.t.sol:RequestRedeemTests \[PASS] testFork\_requestRedeem\_revert\_zeroShares() (gas: 92652) \[PASS] testFork\_requestRedeem\_success() (gas: 572314) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 353.15ms (4.58ms CPU time)

Ran 2 tests for tests/protocol-upgrade/withdrawal-manager/ManualRedemption.t.sol:ManualRedemptionTests \[PASS] testFork\_manualRedemption\_revert\_notPoolManager() (gas: 13918) \[PASS] testFork\_manualRedemption\_success() (gas: 592532) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 353.41ms (4.97ms CPU time)

Ran 5 tests for tests/protocol-upgrade/withdrawal-manager/RemoveRequest.t.sol:RemoveRequestTests \[PASS] testFork\_removeRequest\_revert\_notInQueue() (gas: 65003) \[PASS] testFork\_removeRequest\_revert\_notOwner() (gas: 65057) \[PASS] testFork\_removeRequest\_revert\_zeroOwner() (gas: 54646) \[PASS] testFork\_removeRequest\_revert\_zeroRequests() (gas: 56462) \[PASS] testFork\_removeRequest\_success\_oneRequest() (gas: 144778) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 353.05ms (8.50ms CPU time)

Ran 2 tests for tests/protocol-upgrade/governor-timelock/GovernorTimelockUpgradeProcedure.t.sol:GovernorTimelockUpgradeProcedureTests \[PASS] testFork\_governorTimelock\_fullUpgradeProcedure() (gas: 2285248) \[PASS] testFork\_setUp\_governorTimelockUpgradeTests() (gas: 48685) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 426.37ms (150.20ms CPU time)

Ran 8 tests for tests/protocol-upgrade/core-strategy/RemoveShares.t.sol:RemoveSharesTests \[PASS] test\_removeShares\_revert\_notStrategyManager() (gas: 56481) \[PASS] test\_removeShares\_revert\_protocolIsPaused() (gas: 62228) \[PASS] test\_removeShares\_revert\_wmInsufficientShares\_notEnoughSharesRequested() (gas: 128733) \[PASS] test\_removeShares\_revert\_zeroShares() (gas: 55010) \[PASS] test\_removeShares\_success\_multipleRequests\_allRequestsCompletelyRemoved() (gas: 1274937) \[PASS] test\_removeShares\_success\_multipleRequests\_firstRequestPartiallyRemoved\_SecondRequestCompletelyRemoved() (gas: 1364343) \[PASS] test\_removeShares\_success\_partialRemoval\_onlyOneRequest() (gas: 1132573) \[PASS] test\_setUp() (gas: 178788) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 160.59ms (27.63ms CPU time)

Ran 9 tests for tests/protocol-upgrade/core-strategy/RemoveSharesById.t.sol:RemoveSharesByIdTests \[PASS] test\_removeSharesById\_revert\_invalidRequest() (gas: 99729) \[PASS] test\_removeSharesById\_revert\_noChange() (gas: 625184) \[PASS] test\_removeSharesById\_revert\_notOwner() (gas: 643919) \[PASS] test\_removeSharesById\_revert\_notStrategyManager() (gas: 56460) \[PASS] test\_removeSharesById\_revert\_protocolIsPaused() (gas: 62226) \[PASS] test\_removeSharesById\_revert\_wmInsufficientShares() (gas: 646549) \[PASS] test\_removeSharesById\_success\_multipleRequests\_completelyRemoveMidRequest() (gas: 1647632) \[PASS] test\_removeSharesById\_success\_singleRequest\_partialRemoval\_followedByCompleteRemoval() (gas: 1097906) \[PASS] test\_setUp() (gas: 178788) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 161.23ms (33.50ms CPU time)

Ran 5 tests for tests/protocol-upgrade/withdrawal-manager/ProcessEmptyRedemptions.t.sol:ProcessEmptyRedemptionsTests \[PASS] testFork\_processEmptyRedemptions\_revert\_notRedeemer() (gas: 53673) \[PASS] testFork\_processEmptyRedemptions\_success\_multipleRequests() (gas: 162828) \[PASS] testFork\_processEmptyRedemptions\_success\_multipleRequests\_stopsAtNonEmpty() (gas: 165208) \[PASS] testFork\_processEmptyRedemptions\_success\_removesEntireQueue() (gas: 222642) \[PASS] testFork\_processEmptyRedemptions\_zeroRequests\_reverts() (gas: 54083) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 213.74ms (8.47ms CPU time)

Ran 28 tests for tests/protocol-upgrade/governor-timelock/GlobalsFunctionsUpgrade.t.sol:MapleGlobalsFunctionsUpgradeTests \[PASS] testFork\_activatePoolManager() (gas: 408376) \[PASS] testFork\_setBootstrapMint() (gas: 100650) \[PASS] testFork\_setCanDeployFrom() (gas: 166533) \[PASS] testFork\_setContractPause() (gas: 159736) \[PASS] testFork\_setDefaultTimelockParameters() (gas: 86338) \[PASS] testFork\_setFunctionUnpause() (gas: 161794) \[PASS] testFork\_setManualOverridePrice() (gas: 100722) \[PASS] testFork\_setMapleTreasury() (gas: 86770) \[PASS] testFork\_setMaxCoverLiquidationPercent() (gas: 100632) \[PASS] testFork\_setMigrationAdmin() (gas: 100440) \[PASS] testFork\_setMinCoverAmount() (gas: 100594) \[PASS] testFork\_setOperationalAdmin() (gas: 86733) \[PASS] testFork\_setPendingGovernor() (gas: 108427) \[PASS] testFork\_setPlatformManagementFeeRate() (gas: 102169) \[PASS] testFork\_setPlatformOriginationFeeRate() (gas: 102185) \[PASS] testFork\_setPlatformServiceFeeRate() (gas: 102212) \[PASS] testFork\_setPriceOracle() (gas: 103653) \[PASS] testFork\_setProtocolPause() (gas: 142720) \[PASS] testFork\_setSecurityAdmin() (gas: 86704) \[PASS] testFork\_setTimelockWindow() (gas: 102932) \[PASS] testFork\_setTimelockWindows() (gas: 132344) \[PASS] testFork\_setUp\_governorTimelockUpgradeTests() (gas: 48962) \[PASS] testFork\_setValidBorrower() (gas: 159096) \[PASS] testFork\_setValidCollateralAsset() (gas: 159076) \[PASS] testFork\_setValidInstanceOf() (gas: 160768) \[PASS] testFork\_setValidPoolAsset() (gas: 159032) \[PASS] testFork\_setValidPoolDelegate() (gas: 159387) \[PASS] testFork\_unscheduleCall() (gas: 127788) Suite result: ok. 28 passed; 0 failed; 0 skipped; finished in 512.97ms (26.87ms CPU time)

Ran 1 test for tests/protocol-upgrade/withdrawal-manager/Migration.t.sol:MigrateTest \[PASS] testFork\_withdrawalManagers\_migrate\_success() (gas: 707408) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 252.31ms (4.27ms CPU time)

Ran 1 test for tests/protocol-upgrade/governor-timelock/plasma/GovernorTimelockUpgradeTestsBasePlasma.t.sol:GovernorTimelockUpgradeTestsBasePlasma \[PASS] testFork\_setUp\_governorTimelockUpgradeTestsPlasma() (gas: 57594) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 232.08ms (185.67µs CPU time)

Ran 1 test for tests/protocol-upgrade/withdrawal-manager/HealthCheckers.t.sol:WithdrawalManagersUpgradeHealthCheckersTests \[PASS] testFork\_withdrawalManagerUpgrade\_protocolHealthChecker(uint256) (runs: 10, μ: 1541540198, \~: 1543012921) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1124.41s (1123.99s CPU time)

Ran 1 test for tests/invariants/Regression.t.sol:WithdrawalManagerQueueInvariants \[PASS] test\_regression\_invariants() (gas: 50709292) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 232.04ms (190.18ms CPU time)

Ran 1 test for tests/invariants/PermissionInvariants.t.sol:PermissionInvariants \[PASS] statefulFuzz\_permissionManager\_A\_B\_C() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 303.98s (303.93s CPU time)

Ran 3 tests for tests/invariants/OpenTermInvariants.t.sol:OpenTermInvariants \[PASS] statefulFuzz\_openTermLoanManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_openTermLoanManager\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_openTermLoan\_A\_B\_C\_D\_E\_F\_G\_H\_I\_openTermLoanManager\_A\_B\_C\_D\_F\_H\_I\_J\_K() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 307.99s (307.94s CPU time)

Ran 1 test for tests/invariants/StrategyInvariants.t.sol:StrategyInvariants \[PASS] statefulFuzz\_strategy\_A\_B\_C\_D\_E\_F\_G() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1082.01s (1080.54s CPU time)

Ran 30 tests for tests/invariants/BasicInvariants.t.sol:BasicInvariants \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_F() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoanManager\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_fixedTermLoan\_A\_B\_C\_fixedTermLoanManager\_L\_M\_N() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_poolManager\_A\_totalAssetsEqCashPlusAUM() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_poolManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_B\_F\_G\_2() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_pool\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_A\_F\_G\_H\_I\_J\_K\_L() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_M() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_basicInvariants\_withdrawalManager\_N() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 30 passed; 0 failed; 0 skipped; finished in 1747.44s (6036.80s CPU time)

Ran 27 tests for tests/invariants/ImpairInvariants.t.sol:ImpairInvariants \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_F() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoanManager\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_fixedTermLoan\_A\_B\_fixedTermLoanManager\_L\_M\_N() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_poolManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_poolManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_B\_F\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_pool\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_A\_F\_G\_H\_I\_J\_K\_L() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_M() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_impairInvariants\_withdrawalManager\_N() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 27 passed; 0 failed; 0 skipped; finished in 1747.44s (4931.19s CPU time)

Ran 25 tests for tests/invariants/WithdrawalManagerQueueInvariants.t.sol:WithdrawalManagerQueueInvariants \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_F() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoanManager\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_fixedTermLoan\_A\_B\_C\_fixedTermLoanManager\_L\_M\_N() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_poolManager\_A\_totalAssetsEqCashPlusAUM() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_poolManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_B\_F\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_pool\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_wmq\_invariant\_A\_C\_G\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_withdrawalManagerQueueInvariants\_wmq\_invariant\_B\_D\_E\_F() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 25 passed; 0 failed; 0 skipped; finished in 3849.24s (4581.26s CPU time)

Ran 27 tests for tests/invariants/DefaultsInvariants.t.sol:DefaultsInvariants \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_F() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_H() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoanManager\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_fixedTermLoan\_A\_B\_fixedTermLoanManager\_M\_N\_Default() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_poolManager\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_poolManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_A() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_B\_F\_G() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_I() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_J() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_pool\_K() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_A\_F\_G\_H\_I\_J\_K\_L() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_B() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_C() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_D() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_E() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_M() (runs: 200, calls: 50000, reverts: 0) \[PASS] statefulFuzz\_defaultsInvariants\_withdrawalManager\_N() (runs: 200, calls: 50000, reverts: 0) Suite result: ok. 27 passed; 0 failed; 0 skipped; finished in 3849.24s (6318.06s CPU time)

Ran 3 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapMintTests \[PASS] testFuzz\_mint\_gtBootstrapMintAmount(uint256) (runs: 10000, μ: 356386, \~: 356535) \[PASS] testFuzz\_mint\_ltBootstrapMintAmount(uint256) (runs: 10000, μ: 257981, \~: 258624) \[PASS] testFuzz\_mint\_secondDepositorGetsCorrectShares(uint256) (runs: 10000, μ: 516736, \~: 517209) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 34.31s (34.25s CPU time)

Ran 1 test for tests/integration/pool/ConfigurePool.t.sol:ConfigurePoolTests \[PASS] testFuzz\_configurePool(uint256,uint256,uint256\[]) (runs: 10000, μ: 2282645, \~: 1317634) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 41.93s (41.88s CPU time)

Ran 3 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapDepositTests \[PASS] testFuzz\_deposit\_gtBootstrapMintAmount(uint256) (runs: 10000, μ: 353090, \~: 353242) \[PASS] testFuzz\_deposit\_ltBootstrapMintAmount(uint256) (runs: 10000, μ: 256254, \~: 256861) \[PASS] testFuzz\_deposit\_secondDepositorGetsCorrectShares(uint256) (runs: 10000, μ: 489421, \~: 489880) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 47.26s (31.62s CPU time)

Ran 3 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapDepositWithPermitTests \[PASS] testFuzz\_depositWithPermit\_gtBootstrapMintAmount(uint256) (runs: 10000, μ: 391979, \~: 392115) \[PASS] testFuzz\_depositWithPermit\_ltBootstrapMintAmount(uint256) (runs: 10000, μ: 252710, \~: 253322) \[PASS] testFuzz\_depositWithPermit\_secondDepositorGetsCorrectShares(uint256) (runs: 10000, μ: 563261, \~: 563734) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 49.68s (49.62s CPU time)

Ran 2 tests for tests/integration/pool/PoolAccountingViewFunctions.t.sol:AutomatedPreviewRedeemWithQueueWMTests \[PASS] testFuzz\_previewRedeem\_notProcessed(uint256) (runs: 10000, μ: 36957, \~: 36957) \[PASS] testFuzz\_previewRedeem\_processed(uint256) (runs: 10000, μ: 316836, \~: 316836) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 12.87s (12.82s CPU time)

Ran 4 tests for tests/fuzz/PoolEntryPermissionsFuzz.t.sol:PoolEntryPermissionsFuzzTests \[PASS] testFuzz\_poolEntryTests\_deposit(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 345947, \~: 325568) \[PASS] testFuzz\_poolEntryTests\_depositWithPermit(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 443871, \~: 410417) \[PASS] testFuzz\_poolEntryTests\_mint(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 349940, \~: 331284) \[PASS] testFuzz\_poolEntryTests\_mintWithPermit(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 448864, \~: 416409) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 40.46s (40.41s CPU time)

Ran 1 test for tests/integration/pool/PoolAccountingViewFunctions.t.sol:PreviewWithdrawWithQueueWMTests \[PASS] testFuzz\_previewWithdraw(address,bool,uint256,uint256,uint256) (runs: 10000, μ: 696326, \~: 688009) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 20.04s (19.99s CPU time)

Ran 3 tests for tests/integration/permission-manager/SetPoolPermissionLevel.t.sol:SetPoolPermissionLevelTests \[PASS] testFuzz\_setPoolPermissionLevel(uint256,uint256) (runs: 10000, μ: 110099, \~: 111725) \[PASS] testFuzz\_setPoolPermissionLevel\_invalidLevel(uint256) (runs: 10000, μ: 47425, \~: 47401) \[PASS] testFuzz\_setPoolPermissionLevel\_publicPool(uint256) (runs: 10000, μ: 94761, \~: 94916) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 6.81s (6.76s CPU time)

Ran 5 tests for tests/fuzz/PoolExitPermissionsFuzz.t.sol:PoolExitPermissionsFuzzTests \[PASS] testFuzz\_poolExit\_redeem(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 728681, \~: 578010) \[PASS] testFuzz\_poolExit\_removeShares(uint256,uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 663393, \~: 518966) \[PASS] testFuzz\_poolExit\_requestRedeem(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 531396, \~: 378327) \[PASS] testFuzz\_poolExit\_requestWithdraw(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 449084, \~: 378481) \[PASS] testFuzz\_poolExit\_withdraw(uint256,uint256,uint256,uint256,bool) (runs: 10000, μ: 439608, \~: 381174) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 57.19s (57.14s CPU time)

Ran 2 tests for tests/fuzz/PoolTransferPermissionsFuzz.t.sol:PoolTransferPermissionsFuzzTests \[PASS] testFuzz\_poolTransfer(uint256,uint256,uint256,uint256,uint256,bool,bool) (runs: 10000, μ: 459364, \~: 419610) \[PASS] testFuzz\_poolTransferFrom(uint256,uint256,uint256,uint256,uint256,bool,bool) (runs: 10000, μ: 466800, \~: 422450) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 20.19s (20.14s CPU time)

Ran 1 test for tests/fuzz/ProcessExit.t.sol:ProcessExitFuzzTests \[PASS] testFuzz\_processExit(address\[10],bool\[10],uint256\[10],uint256) (runs: 10000, μ: 4434007, \~: 4334137) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 145.37s (145.32s CPU time)

Ran 15 tests for tests/fuzz/PoolViewFunctionsFuzzTest.t.sol:PoolViewFunctionsFuzzTests \[PASS] testFuzz\_convertToAssets\_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 10000, μ: 388772, \~: 389130) \[PASS] testFuzz\_convertToAssets\_whenTotalSupplyIsZero(uint256) (runs: 10000, μ: 14521, \~: 13922) \[PASS] testFuzz\_convertToExitShares(uint256,uint256,uint256,uint256,uint256) (runs: 10000, μ: 420797, \~: 420540) \[PASS] testFuzz\_convertToShares\_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 10000, μ: 388765, \~: 389171) \[PASS] testFuzz\_convertToShares\_whenTotalSupplyIsZero(uint256) (runs: 10000, μ: 14465, \~: 13875) \[PASS] testFuzz\_getTotalAssetsFromPM(uint256,uint256) (runs: 10000, μ: 122056, \~: 122352) \[PASS] testFuzz\_getUnrealizedLossesFromPM(uint256) (runs: 10000, μ: 106919, \~: 106309) \[PASS] testFuzz\_maxDeposit(uint256,uint256) (runs: 10000, μ: 345753, \~: 345873) \[PASS] testFuzz\_maxMint(uint256,uint256) (runs: 10000, μ: 354373, \~: 354518) \[PASS] testFuzz\_maxRedeem(uint256) (runs: 10000, μ: 796028, \~: 795580) \[PASS] testFuzz\_maxWithdraw(uint256) (runs: 10000, μ: 573604, \~: 572997) \[PASS] testFuzz\_previewDeposit\_whenTotalSupplyExists(uint256,uint256) (runs: 10000, μ: 340074, \~: 340384) \[PASS] testFuzz\_previewDeposit\_whenTotalSupplyIsZero(uint256) (runs: 10000, μ: 14529, \~: 13936) \[PASS] testFuzz\_previewMint\_whenTotalSupplyExists(uint256,uint256,uint256,uint256) (runs: 10000, μ: 389727, \~: 390107) \[PASS] testFuzz\_previewMint\_whenTotalSupplyIsZero(uint256) (runs: 10000, μ: 14531, \~: 13940) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 51.50s (113.48s CPU time)

Ran 2 tests for tests/fuzz/Impair.t.sol:OpenTermLoanFuzz \[PASS] testFuzz\_impair\_otl(uint256) (runs: 10000, μ: 11736576, \~: 11750198) \[PASS] testFuzz\_removeImpairment\_otl(uint256) (runs: 10000, μ: 11140868, \~: 11120730) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 388.39s (698.84s CPU time)

Ran 2 tests for tests/fuzz/Call.t.sol:OpenTermLoanFuzz \[PASS] testFuzz\_call\_otl(uint256) (runs: 10000, μ: 11643120, \~: 11655327) \[PASS] testFuzz\_removeCall\_otl(uint256) (runs: 10000, μ: 11140281, \~: 11123466) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 425.64s (725.96s CPU time)

Ran 2 tests for tests/fuzz/OpenTermFuzz.t.sol:OpenTermLoanFuzz \[PASS] testFuzz\_otlFuzzedSetup\_makePayment(uint256) (runs: 10000, μ: 10369417, \~: 10362728) \[PASS] testFuzz\_otlFuzzedSetup\_triggerDefault(uint256) (runs: 10000, μ: 10284094, \~: 10278618) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 449.40s (631.13s CPU time)

Ran 3 tests for tests/integration/pool/BootstrapMintAndDeposit.t.sol:BootstrapMintWithPermitTests \[PASS] testFuzz\_mintWithPermit\_gtBootstrapMintAmount(uint256) (runs: 10000, μ: 395662, \~: 395799) \[PASS] testFuzz\_mintWithPermit\_ltBootstrapMintAmount(uint256) (runs: 10000, μ: 254710, \~: 255320) \[PASS] testFuzz\_mintWithPermit\_secondDepositorGetsCorrectShares(uint256) (runs: 10000, μ: 591118, \~: 591604) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 598.61s (52.26s CPU time)

Ran 11 tests for tests/fuzz/HasPermission.t.sol:HasPermissionFuzzTests \[PASS] testFuzz\_hasPermission\_deposit(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 393323, \~: 422047) \[PASS] testFuzz\_hasPermission\_depositWithPermit(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 417749, \~: 464755) \[PASS] testFuzz\_hasPermission\_mint(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 396224, \~: 423809) \[PASS] testFuzz\_hasPermission\_mintWithPermit(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 419275, \~: 466752) \[PASS] testFuzz\_hasPermission\_redeem(uint256,uint256,uint256,bool,uint256,address) (runs: 10000, μ: 784395, \~: 801158) \[PASS] testFuzz\_hasPermission\_removeShares(uint256,uint256,uint256,bool,uint256,uint256) (runs: 10000, μ: 782964, \~: 797601) \[PASS] testFuzz\_hasPermission\_requestRedeem(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 585829, \~: 636849) \[PASS] testFuzz\_hasPermission\_requestWithdraw(uint256,uint256,uint256,bool,uint256) (runs: 10000, μ: 344769, \~: 367293) \[PASS] testFuzz\_hasPermission\_transfer(uint256,uint256,address,uint256,bool,address,uint256,bool,uint256) (runs: 10000, μ: 557645, \~: 560828) \[PASS] testFuzz\_hasPermission\_transferFrom(uint256,uint256,address,uint256,bool,address,uint256,bool,address,uint256) (runs: 10000, μ: 577914, \~: 577530) \[PASS] testFuzz\_hasPermission\_withdraw(uint256,uint256,uint256,bool,uint256,address) (runs: 10000, μ: 303590, \~: 302612) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 598.61s (182.57s CPU time)

Ran 1 test for tests/fuzz/ClosePoolFuzz.t.sol:ClosePoolFuzzWithWMQueue \[PASS] testFuzz\_fuzzedSetup\_closePool\_withQueueWM(uint256) (runs: 10000, μ: 23132541, \~: 22941700) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 867.05s (866.98s CPU time)

Ran 1 test for tests/fuzz/ClosePoolFuzz.t.sol:ClosePoolFuzz \[PASS] testFuzz\_fuzzedSetup\_closePool(uint256) (runs: 10000, μ: 21782887, \~: 21567148) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 875.86s (875.80s CPU time)

Ran 3 tests for tests/e2e/PoolScenarios.t.sol:PoolScenarioTests \[PASS] testFuzz\_poolScenarios\_OTLWithBigPaymentInterval(uint256) (runs: 10000, μ: 1055410, \~: 1055975) \[PASS] testFuzz\_poolScenarios\_exposeAccountedInterestDust(uint24,uint24) (runs: 10000, μ: 1789682, \~: 1793862) \[PASS] testFuzz\_poolScenarios\_multipleOTLWithBigPaymentInterval(uint256,uint256,uint256) (runs: 10000, μ: 38843496, \~: 38843638) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 991.59s (1005.52s CPU time)

Ran 16 tests for tests/e2e/DelayedWithdrawal.t.sol:DelayedWithdrawalStartTests \[PASS] testFuzz\_removeShares\_afterStart(uint256) (runs: 10000, μ: 6864483, \~: 6864535) \[PASS] testFuzz\_removeShares\_beforeStart(uint256) (runs: 10000, μ: 6921347, \~: 6921396) \[PASS] testFuzz\_removeShares\_nextCycle(uint256) (runs: 10000, μ: 6864504, \~: 6864559) \[PASS] testFuzz\_removeShares\_onStart(uint256) (runs: 10000, μ: 6892372, \~: 6892423) \[PASS] testFuzz\_requestRedeem\_afterStart(uint256) (runs: 10000, μ: 6869180, \~: 6869230) \[PASS] testFuzz\_requestRedeem\_beforeStart(uint256) (runs: 10000, μ: 6928972, \~: 6929022) \[PASS] testFuzz\_requestRedeem\_nextCycle(uint256) (runs: 10000, μ: 6869264, \~: 6869317) \[PASS] testFuzz\_requestRedeem\_onStart(uint256) (runs: 10000, μ: 6898553, \~: 6898606) \[PASS] testFuzz\_requestWithdraw\_afterStart(uint256) (runs: 10000, μ: 6747423, \~: 6747475) \[PASS] testFuzz\_requestWithdraw\_beforeStart(uint256) (runs: 10000, μ: 6747509, \~: 6747558) \[PASS] testFuzz\_requestWithdraw\_nextCycle(uint256) (runs: 10000, μ: 6747465, \~: 6747520) \[PASS] testFuzz\_requestWithdraw\_onStart(uint256) (runs: 10000, μ: 6747319, \~: 6747370) \[PASS] testFuzz\_setExitConfig\_afterStart(uint256) (runs: 10000, μ: 6741488, \~: 6741541) \[PASS] testFuzz\_setExitConfig\_beforeStart(uint256) (runs: 10000, μ: 6740882, \~: 6740934) \[PASS] testFuzz\_setExitConfig\_nextCycle(uint256) (runs: 10000, μ: 6741509, \~: 6741561) \[PASS] testFuzz\_setExitConfig\_onStart(uint256) (runs: 10000, μ: 6740763, \~: 6740813) Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 1132.57s (738.81s CPU time)

Ran 3 tests for tests/e2e/RefinanceScenario.t.sol:RefinanceScenariosTests \[PASS] test\_impairOTL\_refinanceToHigherPrincipal\_oneLoanImpaired\_underflow() (gas: 1094708) \[PASS] test\_impairOTL\_refinanceToHigherPrincipal\_twoLoansImpaired() (gas: 1238709) \[PASS] test\_impairOTL\_refinanceToLowerPrincipal\_singleLoanImpaired() (gas: 1144930) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 32.23ms (11.97ms CPU time)

Ran 1 test for tests/e2e/GlobalPermission.t.sol:GlobalPermissionTests \[PASS] test\_e2e\_globalPermission() (gas: 1853739) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 45.02ms (6.17ms CPU time)

Ran 1 test for tests/e2e/PoolLifecycle.t.sol:PoolLifecycleTest \[PASS] test\_poolLifecycle() (gas: 8558288) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 51.90ms (17.81ms CPU time)

Ran 1 test for tests/e2e/MultiLoanManager.t.sol:MultiLoanManagerTests \[PASS] test\_4loans\_3lps() (gas: 6303154) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 60.79ms (23.37ms CPU time)

Ran 4 tests for tests/e2e/StrategyScenarios.t.sol:StrategyScenarios \[PASS] testFork\_strategy\_scenario1() (gas: 2231688) \[PASS] testFork\_strategy\_scenario2() (gas: 2143745) \[PASS] testFork\_strategy\_scenario3() (gas: 1983648) \[PASS] testFork\_strategy\_scenario4() (gas: 2099231) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 210.45ms (47.74ms CPU time)

Ran 7 tests for tests/e2e/WithdrawManagerScenario.t.sol:WithdrawalManagerScenarioTests \[PASS] test\_scenario\_fundPayAndRefinanceLoanWithPartialRedemptions\_removeSharesAndCloseLoan() (gas: 3279489) \[PASS] test\_scenario\_impairLoanAndRedeem\_defaultLoanAndWithdraw() (gas: 2315488) \[PASS] test\_scenario\_impairLoanAndRedeem\_removeImpairAndRedeem() (gas: 2461182) \[PASS] test\_scenario\_impairLoanAndRedeem\_removeSharesRepayLoanAndRedeem() (gas: 2318170) \[PASS] test\_scenario\_impairLoanAndRedeem\_repayLoanAndWithdraw() (gas: 2406289) \[PASS] test\_scenario\_impairLoanAndRedeem\_startLiquidationAndRedeem\_finishLiquidationAndRedeem() (gas: 3480817) \[PASS] test\_scenario\_multipleUsers\_impairLoanAndRedeem\_repayLoanAndRedeem() (gas: 18922233) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 449.32ms (142.97ms CPU time)

Ran 3 tests for tests/e2e/CoreStrategyLoop.t.sol:CoreStrategyLoopTests \[PASS] test\_coreStrategyLoop\_v1() (gas: 7286411) \[PASS] test\_coreStrategyLoop\_v2() (gas: 8407155) \[PASS] test\_coreStrategyLoop\_v3() (gas: 8481559) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 471.32ms (361.46ms CPU time)

Ran 16 tests for tests/e2e/DelayedWithdrawal.t.sol:DelayedWithdrawalStartTests \[PASS] testFuzz\_removeShares\_afterStart(uint256) (runs: 100, μ: 4723262, \~: 4723281) \[PASS] testFuzz\_removeShares\_beforeStart(uint256) (runs: 100, μ: 4762927, \~: 4762935) \[PASS] testFuzz\_removeShares\_nextCycle(uint256) (runs: 100, μ: 4723258, \~: 4723294) \[PASS] testFuzz\_removeShares\_onStart(uint256) (runs: 100, μ: 4742744, \~: 4742779) \[PASS] testFuzz\_requestRedeem\_afterStart(uint256) (runs: 100, μ: 4716233, \~: 4716269) \[PASS] testFuzz\_requestRedeem\_beforeStart(uint256) (runs: 100, μ: 4756995, \~: 4757020) \[PASS] testFuzz\_requestRedeem\_nextCycle(uint256) (runs: 100, μ: 4716327, \~: 4716356) \[PASS] testFuzz\_requestRedeem\_onStart(uint256) (runs: 100, μ: 4736268, \~: 4736305) \[PASS] testFuzz\_requestWithdraw\_afterStart(uint256) (runs: 100, μ: 4634808, \~: 4634847) \[PASS] testFuzz\_requestWithdraw\_beforeStart(uint256) (runs: 100, μ: 4634930, \~: 4634948) \[PASS] testFuzz\_requestWithdraw\_nextCycle(uint256) (runs: 100, μ: 4634873, \~: 4634892) \[PASS] testFuzz\_requestWithdraw\_onStart(uint256) (runs: 100, μ: 4634820, \~: 4634852) \[PASS] testFuzz\_setExitConfig\_afterStart(uint256) (runs: 100, μ: 4642081, \~: 4642103) \[PASS] testFuzz\_setExitConfig\_beforeStart(uint256) (runs: 100, μ: 4641818, \~: 4641850) \[PASS] testFuzz\_setExitConfig\_nextCycle(uint256) (runs: 100, μ: 4642101, \~: 4642123) \[PASS] testFuzz\_setExitConfig\_onStart(uint256) (runs: 100, μ: 4641802, \~: 4641832) Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 660.15ms (4.92s CPU time)

Ran 11 tests for tests/e2e/PoolScenarios.t.sol:PoolScenarioTests \[PASS] testFuzz\_poolScenarios\_OTLWithBigPaymentInterval(uint256) (runs: 100, μ: 956962, \~: 957169) \[PASS] testFuzz\_poolScenarios\_exposeAccountedInterestDust(uint24,uint24) (runs: 100, μ: 1586096, \~: 1589503) \[PASS] testFuzz\_poolScenarios\_multipleOTLWithBigPaymentInterval(uint256,uint256,uint256) (runs: 100, μ: 33687284, \~: 33687351) \[PASS] test\_poolScenario\_fundLoanAndNeverTouchIt() (gas: 5284738) \[PASS] test\_poolScenario\_impairLoanWithLatePaymentAndRefinance() (gas: 2316760) \[PASS] test\_poolScenario\_loanWithVeryHighInterestRate() (gas: 1491396) \[PASS] test\_poolScenario\_loanWithZeroInterestRate() (gas: 1925084) \[PASS] test\_poolScenario\_loanWithZeroInterestRateAndDefaultWithCover() (gas: 1478768) \[PASS] test\_poolScenarios\_refinanceATwoPeriodsLateLoan() (gas: 2013405) \[PASS] test\_poolScenarios\_refinanceLateLoanAndDefault() (gas: 1834749) \[PASS] test\_poolScenarios\_stressTestAdvanceGlobalPaymentAccounting() (gas: 157641795) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 6.85s (7.47s CPU time)

## erc20

Ran 14 tests for contracts/test/ERC20.t.sol:ERC20PermitTest \[PASS] testFuzz\_permit(uint256) (runs: 256, μ: 86129, \~: 86370) \[PASS] testFuzz\_permit\_multiple(bytes32) (runs: 256, μ: 257337, \~: 257338) \[PASS] test\_domainSeparator() (gas: 8326) \[PASS] test\_initialState() (gas: 15788) \[PASS] test\_permit\_badS() (gas: 31538) \[PASS] test\_permit\_badV() (gas: 1041107) \[PASS] test\_permit\_differentSpender() (gas: 58233) \[PASS] test\_permit\_differentVerifier() (gas: 701463) \[PASS] test\_permit\_earlyNonce() (gas: 58301) \[PASS] test\_permit\_ownerSignerMismatch() (gas: 58300) \[PASS] test\_permit\_replay() (gas: 90422) \[PASS] test\_permit\_withExpiry() (gas: 94098) \[PASS] test\_permit\_zeroAddress() (gas: 58231) \[PASS] test\_typehash() (gas: 5566) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 861.14ms (1.01s CPU time)

\[PASS] invariant\_balanceSum() (runs: 256, calls: 128000, reverts: 78071) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.45s (5.45s CPU time)

Ran 14 tests for contracts/test/ERC20.t.sol:ERC20BaseTest \[PASS] invariant\_metadata() (runs: 256, calls: 128000, reverts: 80096) \[PASS] testFuzz\_approve(address,uint256) (runs: 256, μ: 31480, \~: 31714) \[PASS] testFuzz\_burn(address,uint256,uint256) (runs: 256, μ: 28293, \~: 419) \[PASS] testFuzz\_decreaseAllowance\_infiniteApproval(address,uint256) (runs: 256, μ: 35445, \~: 35448) \[PASS] testFuzz\_decreaseAllowance\_nonInfiniteApproval(address,uint256,uint256) (runs: 256, μ: 37721, \~: 38339) \[PASS] testFuzz\_increaseAllowance(address,uint256,uint256) (runs: 256, μ: 38358, \~: 38358) \[PASS] testFuzz\_metadata(string,string,uint8) (runs: 256, μ: 761536, \~: 758616) \[PASS] testFuzz\_mint(address,uint256) (runs: 256, μ: 53684, \~: 54306) \[PASS] testFuzz\_transfer(address,uint256) (runs: 256, μ: 60785, \~: 61407) \[PASS] testFuzz\_transferFrom(address,uint256,uint256) (runs: 256, μ: 352036, \~: 354380) \[PASS] testFuzz\_transferFrom\_infiniteApproval(address,uint256) (runs: 256, μ: 354580, \~: 355204) \[PASS] testFuzz\_transferFrom\_insufficientAllowance(address,uint256) (runs: 256, μ: 341538, \~: 341400) \[PASS] testFuzz\_transferFrom\_insufficientBalance(address,uint256) (runs: 256, μ: 323324, \~: 323048) \[PASS] testFuzz\_transfer\_insufficientBalance(address,uint256) (runs: 256, μ: 333330, \~: 333331) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 6.86s (7.37s CPU time)

Ran 3 test suites in 6.86s (13.17s CPU time): 29 tests passed, 0 failed, 0 skipped (29 total tests)

## fixed-term-loan

Ran 3 tests for tests/MapleLoan.t.sol:MapleLoanRoleTests \[PASS] test\_transferBorrowerRole() (gas: 206772) \[PASS] test\_transferBorrowerRole\_failIfInvalidBorrower() (gas: 80439) \[PASS] test\_transferLenderRole() (gas: 315711) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.37ms (2.14ms CPU time)

Ran 2 tests for tests/InitializerAndMigrator.t.sol:MapleLoanInitializerAndMigratorTests \[PASS] test\_initializer\_setters() (gas: 97720) \[PASS] test\_migration\_ratesChange() (gas: 116214) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 5.69ms (1.10ms CPU time)

Ran 4 tests for tests/MapleLoanFeeManager.t.sol:PayOriginationFeesTests \[PASS] test\_payOriginationFees() (gas: 328032) \[PASS] test\_payOriginationFees\_insufficientFunds\_poolDelegate() (gas: 182426) \[PASS] test\_payOriginationFees\_insufficientFunds\_treasury() (gas: 214342) \[PASS] test\_payOriginationFees\_zeroTreasury() (gas: 214892) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 6.57ms (2.68ms CPU time)

\[PASS] test\_updatePlatformServiceFee() (gas: 1848617) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.84ms (6.13ms CPU time)

Ran 5 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_AcceptLoanTerms \[PASS] test\_acceptLoanTerms\_failIfAlreadyAccepted() (gas: 53492) \[PASS] test\_acceptLoanTerms\_failIfNotBorrowerOrBorrowerActions() (gas: 33868) \[PASS] test\_acceptLoanTerms\_failIfPaused() (gas: 34044) \[PASS] test\_acceptLoanTerms\_successWithBorrower() (gas: 56671) \[PASS] test\_acceptLoanTerms\_successWithBorrowerActions() (gas: 59202) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.76ms (691.01µs CPU time)

Ran 9 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_AcceptNewTermsTests \[PASS] test\_acceptNewTerms() (gas: 173170) \[PASS] test\_acceptNewTerms\_afterDeadline() (gas: 85344) \[PASS] test\_acceptNewTerms\_callFailed() (gas: 126248) \[PASS] test\_acceptNewTerms\_commitmentMismatch\_emptyCallsArray() (gas: 80650) \[PASS] test\_acceptNewTerms\_commitmentMismatch\_mismatchedCalls() (gas: 82191) \[PASS] test\_acceptNewTerms\_commitmentMismatch\_mismatchedDeadline() (gas: 81994) \[PASS] test\_acceptNewTerms\_commitmentMismatch\_mismatchedRefinancer() (gas: 81709) \[PASS] test\_acceptNewTerms\_insufficientCollateral() (gas: 349771) \[PASS] test\_acceptNewTerms\_invalidRefinancer() (gas: 82183) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 7.87ms (4.36ms CPU time)

\[PASS] test\_updateDelegateFeeTerms() (gas: 109727) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.81ms (438.83µs CPU time)

Ran 2 tests for tests/MapleLoanFeeManager.t.sol:PayServiceFeesTests \[PASS] test\_payServiceFees() (gas: 275511) \[PASS] test\_payServiceFees\_zeroTreasury() (gas: 233683) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 20.36ms (5.23ms CPU time)

Ran 2 tests for tests/MapleLoanFeeManager.t.sol:GetterTests \[PASS] test\_getDelegateServiceFeesForPeriod() (gas: 717302) \[PASS] test\_getPlatformServiceFeeForPeriod() (gas: 1059368) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 7.45ms (4.28ms CPU time)

\[PASS] test\_payClosingServiceFees() (gas: 276208) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.01ms (3.94ms CPU time)

Ran 77 tests for tests/MapleLoan.t.sol:MapleLoanTests \[PASS] test\_acceptBorrower\_acl() (gas: 54102) \[PASS] test\_acceptBorrower\_failWhenPaused() (gas: 31214) \[PASS] test\_acceptLender\_acl() (gas: 52406) \[PASS] test\_acceptLender\_failWhenPaused() (gas: 31279) \[PASS] test\_acceptNewTerms() (gas: 1615477) \[PASS] test\_acceptNewTerms\_acl() (gas: 1565477) \[PASS] test\_acceptNewTerms\_failWhenPaused() (gas: 33139) \[PASS] test\_closeLoan\_failWhenPaused() (gas: 32336) \[PASS] test\_closeLoan\_pullPatternAsBorrower() (gas: 1536630) \[PASS] test\_closeLoan\_pullPatternAsNonBorrower() (gas: 1539264) \[PASS] test\_closeLoan\_pullPatternUsingDrawable() (gas: 1552379) \[PASS] test\_closeLoan\_pushPatternAsBorrower() (gas: 1554175) \[PASS] test\_closeLoan\_pushPatternAsNonBorrower() (gas: 1554831) \[PASS] test\_closeLoan\_pushPatternUsingDrawable() (gas: 1519633) \[PASS] test\_drawdownFunds\_acl\_asBorrower() (gas: 1482857) \[PASS] test\_drawdownFunds\_acl\_asBorrowerActions() (gas: 1488669) \[PASS] test\_drawdownFunds\_failWhenPaused() (gas: 32506) \[PASS] test\_drawdownFunds\_pullPatternForCollateral() (gas: 2937756) \[PASS] test\_drawdownFunds\_pushPatternForCollateral() (gas: 2916501) \[PASS] test\_drawdownFunds\_withoutAdditionalCollateralRequired() (gas: 2748657) \[PASS] test\_excessCollateral\_varyCollateral() (gas: 147809) \[PASS] test\_excessCollateral\_varyDrawableFunds() (gas: 131676) \[PASS] test\_excessCollateral\_varyPrincipal() (gas: 94632) \[PASS] test\_fundLoan\_failWhenPaused() (gas: 31530) \[PASS] test\_fundLoan\_pushPattern() (gas: 1660577) \[PASS] test\_getAdditionalCollateralRequiredFor\_varyAmount() (gas: 134521) \[PASS] test\_getAdditionalCollateralRequiredFor\_varyCollateralRequired() (gas: 118958) \[PASS] test\_getAdditionalCollateralRequiredFor\_varyDrawableFunds() (gas: 121514) \[PASS] test\_getAdditionalCollateralRequiredFor\_varyPrincipal() (gas: 142693) \[PASS] test\_impairLoan() (gas: 82040) \[PASS] test\_impairLoan\_acl() (gas: 94676) \[PASS] test\_impairLoan\_failWhenPaused() (gas: 31275) \[PASS] test\_impairLoan\_lateLoan() (gas: 82227) \[PASS] test\_makePayment\_failWhenPaused() (gas: 32402) \[PASS] test\_makePayment\_pullPatternAsBorrower() (gas: 1599267) \[PASS] test\_makePayment\_pullPatternAsNonBorrower() (gas: 1601609) \[PASS] test\_makePayment\_pullPatternUsingDrawable() (gas: 1643775) \[PASS] test\_makePayment\_pushPatternAsBorrower() (gas: 1605283) \[PASS] test\_makePayment\_pushPatternAsNonBorrower() (gas: 1605645) \[PASS] test\_makePayment\_pushPatternUsingDrawable() (gas: 1611135) \[PASS] test\_migrate\_acl() (gas: 90384) \[PASS] test\_migrate\_failWhenPaused() (gas: 32432) \[PASS] test\_postCollateral\_failWhenPaused() (gas: 31964) \[PASS] test\_postCollateral\_pullPattern() (gas: 1450394) \[PASS] test\_postCollateral\_pushPattern() (gas: 1399988) \[PASS] test\_proposeNewTerms() (gas: 121002) \[PASS] test\_proposeNewTerms\_acl\_asBorrower() (gas: 138122) \[PASS] test\_proposeNewTerms\_acl\_asBorrowerActions() (gas: 138648) \[PASS] test\_proposeNewTerms\_failWhenPaused() (gas: 33053) \[PASS] test\_proposeNewTerms\_invalidDeadline() (gas: 132551) \[PASS] test\_rejectNewTerms\_acl() (gas: 197404) \[PASS] test\_rejectNewTerms\_failWhenPaused() (gas: 33162) \[PASS] test\_removeCollateral\_acl\_asBorrower() (gas: 1441281) \[PASS] test\_removeCollateral\_acl\_asBorrowerActions() (gas: 1447226) \[PASS] test\_removeCollateral\_failWhenPaused() (gas: 32167) \[PASS] test\_removeLoanImpairment\_acl() (gas: 75813) \[PASS] test\_removeLoanImpairment\_failWhenPaused() (gas: 31365) \[PASS] test\_removeLoanImpairment\_notImpaired() (gas: 32232) \[PASS] test\_removeLoanImpairment\_pastDate() (gas: 54479) \[PASS] test\_removeLoanImpairment\_success() (gas: 61130) \[PASS] test\_repossess\_acl() (gas: 1418198) \[PASS] test\_repossess\_failWhenPaused() (gas: 32369) \[PASS] test\_returnFunds\_failWhenPaused() (gas: 32052) \[PASS] test\_returnFunds\_pullPattern() (gas: 1450503) \[PASS] test\_returnFunds\_pushPattern() (gas: 1400010) \[PASS] test\_setImplementation\_acl() (gas: 110497) \[PASS] test\_setImplementation\_failWhenPaused() (gas: 31853) \[PASS] test\_setPendingBorrower\_acl\_asBorrower() (gas: 102548) \[PASS] test\_setPendingBorrower\_acl\_asBorrowerActions() (gas: 106470) \[PASS] test\_setPendingBorrower\_failWhenPaused() (gas: 31744) \[PASS] test\_setPendingLender\_acl() (gas: 73701) \[PASS] test\_setPendingLender\_failWhenPaused() (gas: 31789) \[PASS] test\_skim\_failWhenPaused() (gas: 32387) \[PASS] test\_upgrade\_acl\_noAuth() (gas: 6588831) \[PASS] test\_upgrade\_acl\_noAuth\_asBorrower() (gas: 6591643) \[PASS] test\_upgrade\_acl\_securityAdmin() (gas: 6623456) \[PASS] test\_upgrade\_failWhenPaused() (gas: 32122) Suite result: ok. 77 passed; 0 failed; 0 skipped; finished in 42.06ms (43.23ms CPU time)

Ran 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_CollateralMaintainedTests \[PASS] test\_isCollateralMaintained(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 125134, \~: 125743) \[PASS] test\_isCollateralMaintained\_edgeCases() (gas: 194733) \[PASS] test\_isCollateralMaintained\_roundUp() (gas: 85461) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 88.45ms (87.47ms CPU time)

Ran 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_ProposeNewTermsTests \[PASS] test\_proposeNewTerms(address,uint256,uint256,uint256,uint256) (runs: 256, μ: 81660, \~: 82002) \[PASS] test\_proposeNewTerms\_emptyArray(address,uint256) (runs: 256, μ: 38534, \~: 38876) \[PASS] test\_proposeNewTerms\_invalidRefinancer() (gas: 83520) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 220.98ms (219.65ms CPU time)

Ran 5 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_RejectNewTermsTests \[PASS] test\_rejectNewTerms() (gas: 65210) \[PASS] test\_rejectNewTerms\_commitmentMismatch\_emptyCallsArray() (gas: 75642) \[PASS] test\_rejectNewTerms\_commitmentMismatch\_mismatchedCalls() (gas: 77254) \[PASS] test\_rejectNewTerms\_commitmentMismatch\_mismatchedDeadline() (gas: 77168) \[PASS] test\_rejectNewTerms\_commitmentMismatch\_mismatchedRefinancer() (gas: 729562) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.31ms (1.90ms CPU time)

\[PASS] test\_getNextPaymentBreakdown(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 720082, \~: 721434) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 266.73ms (265.58ms CPU time)

Ran 6 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_GetPaymentBreakdownTests \[PASS] test\_getPaymentBreakdown\_onePaymentFourPeriodsLate() (gas: 38327) \[PASS] test\_getPaymentBreakdown\_onePaymentOnePeriodBeforeDue() (gas: 35252) \[PASS] test\_getPaymentBreakdown\_onePaymentOnePeriodLate() (gas: 38349) \[PASS] test\_getPaymentBreakdown\_onePaymentOneSecondBeforeDue() (gas: 35317) \[PASS] test\_getPaymentBreakdown\_onePaymentThreePeriodsLate() (gas: 38282) \[PASS] test\_getPaymentBreakdown\_onePaymentTwoPeriodsLate() (gas: 38304) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 2.36ms (1.41ms CPU time)

\[PASS] test\_getPeriodicInterestRate() (gas: 10439) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.04ms (109.04µs CPU time)

Ran 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_GetInstallmentTests \[PASS] test\_getInstallment\_edgeCases() (gas: 28426) \[PASS] test\_getInstallment\_genericFuzzing(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 18854, \~: 19125) \[PASS] test\_getInstallment\_withFixtures() (gas: 14280) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 72.54ms (71.53ms CPU time)

\[PASS] test\_getInterest() (gas: 11818) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 964.85µs (109.24µs CPU time)

Ran 9 tests for tests/MapleLoanFactory.t.sol:MapleLoanFactoryTest \[PASS] test\_createInstance(bytes32) (runs: 256, μ: 553111, \~: 553111) \[PASS] test\_createInstance\_differentFundsAsset() (gas: 774574) \[PASS] test\_createInstance\_invalidCaller() (gas: 553933) \[PASS] test\_createInstance\_invalidCollateralAsset() (gas: 746602) \[PASS] test\_createInstance\_invalidFactory() (gas: 778525) \[PASS] test\_createInstance\_invalidInstance() (gas: 784465) \[PASS] test\_createInstance\_invalidPoolAsset() (gas: 742867) \[PASS] test\_createInstance\_zeroLender() (gas: 770287) \[PASS] test\_isLoan\_withOldFactory() (gas: 1087316) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 533.07ms (526.54ms CPU time)

\[PASS] test\_getClosingPaymentBreakdown(uint256,uint256,uint256) (runs: 256, μ: 9020008, \~: 9020028) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 598.50ms (591.31ms CPU time)

\[PASS] test\_getCollateralRequiredFor() (gas: 21550) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.13ms (223.02µs CPU time)

Ran 3 tests for tests/MapleLoanScenarios.t.sol:MapleLoanScenariosTests \[PASS] test\_scenario\_fullyAmortized() (gas: 9545692) \[PASS] test\_scenario\_interestOnly() (gas: 9530408) \[PASS] test\_scenario\_lateLoanRefinanceInterest() (gas: 9218314) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 38.67ms (28.55ms CPU time)

Ran 3 tests for tests/MapleLoanV502Migrator.t.sol:MapleLoanV502MigratorTests \[PASS] test\_migration\_factoryChange() (gas: 2982041) \[PASS] test\_migration\_invalidFactory() (gas: 2957110) \[PASS] test\_migration\_sameFactory\_noOp() (gas: 2947582) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 10.37ms (2.74ms CPU time)

Ran 2 tests for tests/Payments.t.sol:ClosingTests \[PASS] test\_payments\_closing\_flatRate\_case1() (gas: 1422472) \[PASS] test\_payments\_closing\_flatRate\_case2() (gas: 1277212) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 17.19ms (14.04ms CPU time)

Ran 2 tests for tests/Payments.t.sol:FullyAmortizedPaymentsTests \[PASS] test\_payments\_fullyAmortized\_case1() (gas: 1690175) \[PASS] test\_payments\_fullyAmortized\_case2() (gas: 1690124) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 27.42ms (24.06ms CPU time)

Ran 6 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_DrawdownFundsTests \[PASS] test\_drawdownFunds\_collateralNotMaintained(uint256,uint256,uint256) (runs: 256, μ: 272370, \~: 273976) \[PASS] test\_drawdownFunds\_insufficientDrawableFunds(uint256,uint256) (runs: 256, μ: 157630, \~: 157795) \[PASS] test\_drawdownFunds\_multipleDrawdowns(uint256,uint256,uint256) (runs: 256, μ: 278647, \~: 278241) \[PASS] test\_drawdownFunds\_postedCollateral(uint256,uint256,uint256) (runs: 256, μ: 293779, \~: 294765) \[PASS] test\_drawdownFunds\_transferFailed() (gas: 55653) \[PASS] test\_drawdownFunds\_withoutPostedCollateral(uint256,uint256) (runs: 256, μ: 198354, \~: 199201) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 822.37ms (820.45ms CPU time)

Ran 2 tests for tests/Payments.t.sol:InterestOnlyPaymentsTests \[PASS] test\_payments\_interestOnly\_case1() (gas: 1705799) \[PASS] test\_payments\_interestOnly\_case2() (gas: 1706053) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 28.65ms (25.20ms CPU time)

Ran 3 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_SkimTests \[PASS] test\_skimCollateralAsset() (gas: 84661) \[PASS] test\_skimFundsAsset() (gas: 84683) \[PASS] test\_skim\_otherAsset() (gas: 1367889) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 7.42ms (1.21ms CPU time)

\[PASS] test\_refinance\_invalidRefinancer() (gas: 9183149) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.65ms (3.01ms CPU time)

Ran 5 tests for tests/Payments.t.sol:LateRepaymentsTests \[PASS] test\_payments\_dailyInterestAccrual() (gas: 1067402) \[PASS] test\_payments\_lateRepayment\_flatRateAndDefaultRate\_case1() (gas: 1695211) \[PASS] test\_payments\_lateRepayment\_flatRateAndDefaultRate\_case2() (gas: 1704178) \[PASS] test\_payments\_lateRepayment\_flatRate\_case1() (gas: 1696594) \[PASS] test\_payments\_lateRepayment\_flatRate\_case2() (gas: 1692266) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 69.54ms (65.88ms CPU time)

Ran 2 tests for tests/Payments.t.sol:PartiallyAmortizedPaymentsTests \[PASS] test\_payments\_partiallyAmortized\_case1() (gas: 1706028) \[PASS] test\_payments\_partiallyAmortized\_case2() (gas: 1706061) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 39.64ms (24.54ms CPU time)

Ran 12 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_GetUnaccountedAmountTests \[PASS] test\_getUnaccountedAmount\_collateral(uint256,uint256) (runs: 256, μ: 90995, \~: 91305) \[PASS] test\_getUnaccountedAmount\_collateralAsset() (gas: 81295) \[PASS] test\_getUnaccountedAmount\_complex(uint256,uint256,uint256) (runs: 256, μ: 1391776, \~: 1392099) \[PASS] test\_getUnaccountedAmount\_drawableFunds(uint256,uint256) (runs: 256, μ: 90849, \~: 91174) \[PASS] test\_getUnaccountedAmount\_drawableFundsAndAndCollateral(uint256,uint256,uint256,uint256) (runs: 256, μ: 172930, \~: 172822) \[PASS] test\_getUnaccountedAmount\_drawableFundsAndAndCollateral\_fundsAssetEqCollateralAsset(uint256,uint256,uint256) (runs: 256, μ: 119968, \~: 120134) \[PASS] test\_getUnaccountedAmount\_fundsAsset() (gas: 81296) \[PASS] test\_getUnaccountedAmount\_newFundsLtCollateral(uint256) (runs: 256, μ: 108943, \~: 108937) \[PASS] test\_getUnaccountedAmount\_newFundsLtDrawableFunds(uint256) (runs: 256, μ: 108973, \~: 108967) \[PASS] test\_getUnaccountedAmount\_randomToken() (gas: 121430) \[PASS] test\_getUnaccountedAmount\_withCollateral(uint256,uint256) (runs: 256, μ: 88816, \~: 89934) \[PASS] test\_getUnaccountedAmount\_withDrawableFunds(uint256,uint256) (runs: 256, μ: 89170, \~: 89805) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 913.34ms (911.56ms CPU time)

Ran 9 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_InitializeTests \[PASS] test\_initialize() (gas: 8994403) \[PASS] test\_initialize\_invalidBorrower() (gas: 2103947) \[PASS] test\_initialize\_invalidEndingPrincipal() (gas: 2067093) \[PASS] test\_initialize\_invalidGracePeriodBoundary() (gas: 10976912) \[PASS] test\_initialize\_invalidOriginationFeeBoundary() (gas: 10977872) \[PASS] test\_initialize\_invalidPaymentInterval() (gas: 2073638) \[PASS] test\_initialize\_invalidPaymentsRemaining() (gas: 2073628) \[PASS] test\_initialize\_invalidPrincipal() (gas: 2066887) \[PASS] test\_initialize\_zeroBorrower() (gas: 2077679) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 23.72ms (21.76ms CPU time)

Ran 11 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_RemoveCollateralTests \[PASS] test\_removeCollateral\_cannotRemoveAnyAmountWithEncumbrances() (gas: 200434) \[PASS] test\_removeCollateral\_cannotRemoveFullAmountWithEncumbrances(uint256) (runs: 256, μ: 160980, \~: 160974) \[PASS] test\_removeCollateral\_cannotRemovePartialAmountWithEncumbrances(uint256,uint256) (runs: 256, μ: 201904, \~: 202261) \[PASS] test\_removeCollateral\_fullAmountWithNoEncumbrances(uint256) (runs: 256, μ: 125157, \~: 125161) \[PASS] test\_removeCollateral\_fullAmount\_drawableFundsGtPrincipal(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 191352, \~: 191925) \[PASS] test\_removeCollateral\_fullAmount\_noPrincipal(uint256) (runs: 256, μ: 144432, \~: 144420) \[PASS] test\_removeCollateral\_insufficientCollateralWithNoEncumbrances(uint256) (runs: 256, μ: 120690, \~: 121623) \[PASS] test\_removeCollateral\_partialAmountWithEncumbrances(uint256,uint256) (runs: 256, μ: 250697, \~: 250326) \[PASS] test\_removeCollateral\_partialAmountWithNoEncumbrances(uint256,uint256) (runs: 256, μ: 161657, \~: 163261) \[PASS] test\_removeCollateral\_sameAssetAsFundingAsset(uint256) (runs: 256, μ: 149054, \~: 149042) \[PASS] test\_removeCollateral\_transferFailed() (gas: 295978) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 1.34s (1.33s CPU time)

Ran 7 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_RepossessTests \[PASS] test\_repossess() (gas: 151946) \[PASS] test\_repossess\_beforePaymentDue() (gas: 57119) \[PASS] test\_repossess\_collateralTransferFailed() (gas: 310751) \[PASS] test\_repossess\_fundsTransferFailed() (gas: 343461) \[PASS] test\_repossess\_onGracePeriod() (gas: 57135) \[PASS] test\_repossess\_onPaymentDue() (gas: 56881) \[PASS] test\_repossess\_withinGracePeriod() (gas: 57090) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 5.91ms (2.05ms CPU time)

Ran 2 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_ReturnFundsTests \[PASS] test\_returnFunds(uint256) (runs: 256, μ: 129406, \~: 130551) \[PASS] test\_returnFundsCollateralAsset() (gas: 1389958) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 141.74ms (140.18ms CPU time)

Ran 2 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_ScaledExponentTests \[PASS] test\_scaledExponent\_setOne() (gas: 40312) \[PASS] test\_scaledExponent\_setTwo() (gas: 71120) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.43ms (1.31ms CPU time)

\[PASS] test\_refinance\_gracePeriod(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9383458, \~: 9386113) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.25s (1.24s CPU time)

Ran 2 tests for tests/MapleLoanRefinancer.t.sol:RefinancePaymentIntervalTests \[PASS] test\_refinance\_paymentInterval(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9386937, \~: 9388376) \[PASS] test\_refinance\_paymentInterval\_zeroAmount() (gas: 9335233) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.19s (1.19s CPU time)

\[PASS] test\_refinance\_multipleParameters(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9452332, \~: 9449058) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.69s (1.69s CPU time)

\[PASS] test\_refinance\_interestRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9385115, \~: 9386617) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.15s (1.15s CPU time)

\[PASS] test\_acceptNewTerms\_makePayment\_withRefinanceInterest() (gas: 9444394) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 28.99ms (15.16ms CPU time)

Ran 4 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_PostCollateralTests \[PASS] test\_postCollateral\_invalidCollateralAsset() (gas: 1363482) \[PASS] test\_postCollateral\_multiple(uint256,uint256) (runs: 256, μ: 178416, \~: 182453) \[PASS] test\_postCollateral\_once(uint256) (runs: 256, μ: 104534, \~: 105228) \[PASS] test\_postCollateral\_withUnaccountedFundsAsset() (gas: 1452457) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 446.17ms (445.01ms CPU time)

Ran 8 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_MakePaymentTests \[PASS] test\_makePayment(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 390057, \~: 391499) \[PASS] test\_makePayment\_amountSmallerThanFees() (gas: 490322) \[PASS] test\_makePayment\_collateralNotMaintained() (gas: 874527) \[PASS] test\_makePayment\_insufficientAmount(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 417453, \~: 418668) \[PASS] test\_makePayment\_lastPaymentClearsLoan(uint256,uint256,uint256,uint256) (runs: 256, μ: 368044, \~: 368756) \[PASS] test\_makePayment\_noAmount() (gas: 480843) \[PASS] test\_makePayment\_withDrawableFunds(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 394133, \~: 396134) \[PASS] test\_makePayment\_withRefinanceInterest(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 375270, \~: 375481) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 2.31s (2.31s CPU time)

Ran 12 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_FundLoanTests \[PASS] test\_fundLoan\_approveFail() (gas: 330471) \[PASS] test\_fundLoan\_doubleFund(uint256) (runs: 256, μ: 282110, \~: 281816) \[PASS] test\_fundLoan\_fullFunding(uint256) (runs: 256, μ: 304534, \~: 304213) \[PASS] test\_fundLoan\_fullFundingWithExistingDrawableFunds(uint256) (runs: 256, μ: 306267, \~: 305955) \[PASS] test\_fundLoan\_invalidFundsAsset() (gas: 1502785) \[PASS] test\_fundLoan\_nextPaymentDueDateAlreadySet() (gas: 178880) \[PASS] test\_fundLoan\_noPaymentsRemaining() (gas: 87229) \[PASS] test\_fundLoan\_notLender() (gas: 27441) \[PASS] test\_fundLoan\_partialFunding(uint256) (runs: 256, μ: 227801, \~: 227999) \[PASS] test\_fundLoan\_termsNotAccepted() (gas: 31918) \[PASS] test\_fundLoan\_withUnaccountedCollateralAsset() (gas: 1619778) \[PASS] test\_fundLoan\_withoutSendingAsset() (gas: 181311) Suite result: ok. 12 passed; 0 failed; 0 skipped; finished in 2.81s (942.84ms CPU time)

Ran 2 tests for tests/MapleLoanRefinancer.t.sol:RefinancePaymentsRemainingTests \[PASS] test\_refinance\_paymentRemaining(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9387061, \~: 9388048) \[PASS] test\_refinance\_paymentRemaining\_zeroAmount() (gas: 9335235) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.25s (1.25s CPU time)

Ran 2 tests for tests/MapleLoanRefinancer.t.sol:RefinancePrincipalRequestedTests \[PASS] test\_refinance\_increasePrincipalRequested(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9464135, \~: 9465595) \[PASS] test\_refinance\_increasePrincipalRequestedWithInsufficientFunds(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9399032, \~: 9399874) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.16s (3.16s CPU time)

\[PASS] test\_refinance\_collateralRequired(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9427999, \~: 9429874) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.63s (1.63s CPU time)

Ran 2 tests for tests/MapleLoanRefinancer.t.sol:RefinanceDeadlineTests \[PASS] test\_refinance\_afterDeadline(uint256,uint256,uint256) (runs: 256, μ: 9335945, \~: 9334969) \[PASS] test\_refinance\_differentDeadline(uint256,uint256,uint256) (runs: 256, μ: 9308716, \~: 9308747) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.45s (2.65s CPU time)

Ran 3 tests for tests/MapleLoanRefinancer.t.sol:RefinanceEndingPrincipalTests \[PASS] test\_refinance\_endingPrincipal\_amortizedToInterestOnly(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9417602, \~: 9419137) \[PASS] test\_refinance\_endingPrincipal\_failLargerThanPrincipal(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9368668, \~: 9371329) \[PASS] test\_refinance\_endingPrincipal\_interestOnlyToAmortized(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9411262, \~: 9416378) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.01s (3.30s CPU time)

Ran 3 tests for tests/MapleLoanRefinancer.t.sol:RefinanceFeeTests \[PASS] test\_refinance\_closingRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9385727, \~: 9387257) \[PASS] test\_refinance\_lateFeeRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9385788, \~: 9387683) \[PASS] test\_refinance\_lateInterestPremiumRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 9406168, \~: 9407297) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.91s (2.67s CPU time)

Ran 7 tests for tests/MapleLoanRefinancer.t.sol:RefinancingFeesTerms \[PASS] testFuzz\_refinance\_payOriginationFees(uint256,uint256) (runs: 256, μ: 10941438, \~: 10941451) \[PASS] testFuzz\_refinance\_pdOriginationFeeTransferFail(uint256) (runs: 256, μ: 10853709, \~: 10853823) \[PASS] testFuzz\_refinance\_treasuryOriginationFeeTransferFail(uint256,uint256) (runs: 256, μ: 10867772, \~: 10867770) \[PASS] testFuzz\_refinance\_updateFeeTerms(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 10892621, \~: 10894292) \[PASS] testFuzz\_refinance\_updatesPlatformServiceFees(uint256) (runs: 256, μ: 10851734, \~: 10852044) \[PASS] test\_refinance\_updateRefinanceServiceFees() (gas: 10933885) \[PASS] test\_refinance\_updateRefinanceServiceFeesOnDoubleRefinance() (gas: 11036939) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 4.22s (8.34s CPU time)

Ran 7 tests for tests/MapleLoanLogic.t.sol:MapleLoanLogic\_CloseLoanTests \[PASS] test\_closeLoan(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 296434, \~: 297091) \[PASS] test\_closeLoan\_amountSmallerThanFees() (gas: 465232) \[PASS] test\_closeLoan\_insufficientAmount(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 361903, \~: 362154) \[PASS] test\_closeLoan\_latePayment(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 303106, \~: 303516) \[PASS] test\_closeLoan\_noAmount() (gas: 457685) \[PASS] test\_closeLoan\_withDrawableFunds(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 304408, \~: 304472) \[PASS] test\_closeLoan\_withRefinanceInterest(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 297908, \~: 298225) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 5.20s (1.73s CPU time)

Ran 54 test suites in 5.22s (37.12s CPU time): 270 tests passed, 0 failed, 0 skipped (270 total tests)

## fixed-term-loan-manager

Ran 3 tests for tests/MapleLoanManager.t.sol:RejectNewTermsTests \[PASS] test\_rejectNewTerms\_notPoolDelegate() (gas: 40032) \[PASS] test\_rejectNewTerms\_paused() (gas: 38296) \[PASS] test\_rejectNewTerms\_success() (gas: 1112994) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.31ms (772.09µs CPU time)

\[PASS] test\_acceptNewTerms\_invalidBorrower() (gas: 218426) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.03ms (486.13µs CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:ClaimTests \[PASS] test\_claim\_notLoan() (gas: 379687) \[PASS] test\_claim\_paused() (gas: 42940) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.84ms (998.07µs CPU time)

Ran 7 tests for tests/MapleLoanManager.t.sol:FundLoanTests \[PASS] test\_fund() (gas: 447263) \[PASS] test\_fund\_failIfNotPoolDelegate() (gas: 91335) \[PASS] test\_fund\_inactiveLoan() (gas: 71600) \[PASS] test\_fund\_invalidBorrower() (gas: 75141) \[PASS] test\_fund\_invalidFactory() (gas: 64138) \[PASS] test\_fund\_invalidLoan() (gas: 65294) \[PASS] test\_fund\_paused() (gas: 46859) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 5.90ms (2.97ms CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:DistributeClaimedFunds \[PASS] test\_distributeClaimedFunds\_mapleTreasuryNotSet() (gas: 1406031) \[PASS] test\_distributeLiquidationFunds\_poolNotSet() (gas: 1342601) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.70ms (1.10ms CPU time)

Ran 13 tests for tests/MapleLoanManager.t.sol:LoanManagerSortingTests \[PASS] test\_addPaymentToList\_ascendingPair() (gas: 106994) \[PASS] test\_addPaymentToList\_descendingPair() (gas: 106914) \[PASS] test\_addPaymentToList\_single() (gas: 67234) \[PASS] test\_addPaymentToList\_synchronizedPair() (gas: 106993) \[PASS] test\_addPaymentToList\_toHead() (gas: 150427) \[PASS] test\_addPaymentToList\_toMiddle() (gas: 151121) \[PASS] test\_addPaymentToList\_toTail() (gas: 151165) \[PASS] test\_removePaymentFromList\_earliestDueDate() (gas: 131755) \[PASS] test\_removePaymentFromList\_invalidPaymentId() (gas: 86775) \[PASS] test\_removePaymentFromList\_latestDueDate() (gas: 131489) \[PASS] test\_removePaymentFromList\_medianDueDate() (gas: 131823) \[PASS] test\_removePaymentFromList\_pair() (gas: 94915) \[PASS] test\_removePaymentFromList\_single() (gas: 58324) Suite result: ok. 13 passed; 0 failed; 0 skipped; finished in 9.25ms (6.31ms CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:GetterTests \[PASS] test\_accruedInterest() (gas: 43560) \[PASS] test\_getAssetsUnderManagement() (gas: 50797) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.64ms (744.46µs CPU time)

Ran 4 tests for tests/MapleLoanManager.t.sol:MigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 36928) \[PASS] test\_migrate\_notFactory() (gas: 33474) \[PASS] test\_migrate\_paused() (gas: 39426) \[PASS] test\_migrate\_success() (gas: 43097) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.99ms (697.76µs CPU time)

Ran 3 tests for tests/MapleLoanManager.t.sol:DistributeLiquidationFundsTests \[PASS] test\_distributeLiquidationFunds\_borrowerNotSet() (gas: 1188764) \[PASS] test\_distributeLiquidationFunds\_mapleTreasuryNotSet() (gas: 1234114) \[PASS] test\_distributeLiquidationFunds\_poolNotSet() (gas: 1220189) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 6.96ms (4.33ms CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:UpdateAccountingFailureTests \[PASS] test\_updateAccounting\_notGovernor() (gas: 103379) \[PASS] test\_updateAccounting\_notPoolDelegate() (gas: 100586) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.80ms (599.46µs CPU time)

Ran 7 tests for tests/MapleLoanManager.t.sol:TriggerDefaultTests \[PASS] test\_triggerDefault\_notManager() (gas: 144235) \[PASS] test\_triggerDefault\_paused() (gas: 42169) \[PASS] test\_triggerDefault\_success\_noCollateral\_impaired() (gas: 251299) \[PASS] test\_triggerDefault\_success\_noCollateral\_notImpaired() (gas: 177719) \[PASS] test\_triggerDefault\_success\_withCollateralAssetEqualToFundsAsset() (gas: 325299) \[PASS] test\_triggerDefault\_success\_withCollateral\_impaired() (gas: 436395) \[PASS] test\_triggerDefault\_success\_withCollateral\_notImpaired() (gas: 401902) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 15.21ms (7.04ms CPU time)

Ran 5 tests for tests/MapleLoanManager.t.sol:FinishCollateralLiquidationTests \[PASS] test\_finishCollateralLiquidation\_callAfterTriggerDefaultOnUncollateralizedLoan() (gas: 141630) \[PASS] test\_finishCollateralLiquidation\_callBeforeTriggerDefault() (gas: 67166) \[PASS] test\_finishCollateralLiquidation\_notManager() (gas: 320152) \[PASS] test\_finishCollateralLiquidation\_paused() (gas: 44519) \[PASS] test\_finishCollateralLiquidation\_success\_withCollateral() (gas: 396596) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 7.38ms (3.45ms CPU time)

Ran 7 tests for tests/MapleLoanManager.t.sol:RemoveLoanImpairmentTests \[PASS] test\_removeLoanImpairment\_delegateNotAuthorizedToRemoveGovernors() (gas: 280563) \[PASS] test\_removeLoanImpairment\_failIfPaused() (gas: 46902) \[PASS] test\_removeLoanImpairment\_notByGovernor() (gas: 207550) \[PASS] test\_removeLoanImpairment\_notPoolDelegate() (gas: 203478) \[PASS] test\_removeLoanImpairment\_pastDueDate() (gas: 295387) \[PASS] test\_removeLoanImpairment\_successWithGovernor() (gas: 324999) \[PASS] test\_removeLoanImpairment\_successWithPD() (gas: 324023) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 17.56ms (6.23ms CPU time)

Ran 5 tests for tests/MapleLoanManager.t.sol:ImpairLoanTests \[PASS] test\_impairLoan\_alreadyImpaired() (gas: 195535) \[PASS] test\_impairLoan\_failIfPaused() (gas: 41799) \[PASS] test\_impairLoan\_notAuthorized() (gas: 43512) \[PASS] test\_impairLoan\_success() (gas: 273187) \[PASS] test\_impairLoan\_success\_byGovernor() (gas: 251131) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 10.62ms (7.09ms CPU time)

Ran 4 tests for tests/MapleLoanManager.t.sol:UpdateAccountingTests \[PASS] test\_updateAccounting\_afterDomainEnd() (gas: 130773) \[PASS] test\_updateAccounting\_afterTwoDomainEnds() (gas: 124597) \[PASS] test\_updateAccounting\_beforeDomainEnd() (gas: 111167) \[PASS] test\_updateAccounting\_failIfPaused() (gas: 39148) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 6.66ms (2.20ms CPU time)

Ran 5 tests for tests/MapleLoanManager.t.sol:SetAllowedSlippage\_SetterTests \[PASS] test\_setAllowedSlippage\_invalidSlippage() (gas: 44038) \[PASS] test\_setAllowedSlippage\_noAuth() (gas: 43830) \[PASS] test\_setAllowedSlippage\_paused() (gas: 39261) \[PASS] test\_setAllowedSlippage\_success\_asGovernor() (gas: 72085) \[PASS] test\_setAllowedSlippage\_success\_asPoolDelegate() (gas: 72084) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.34ms (791.64µs CPU time)

Ran 6 tests for tests/MapleLoanManager.t.sol:UpgradeTests \[PASS] test\_upgrade\_noAuth() (gas: 43689) \[PASS] test\_upgrade\_notScheduled() (gas: 47551) \[PASS] test\_upgrade\_paused() (gas: 37258) \[PASS] test\_upgrade\_success\_asPoolDelegate() (gas: 93407) \[PASS] test\_upgrade\_success\_asSecurityAdmin() (gas: 82459) \[PASS] test\_upgrade\_upgradeFailed() (gas: 88416) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 8.38ms (1.87ms CPU time)

\[PASS] test\_claim\_domainStart\_gt\_domainEnd() (gas: 715050) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 30.19ms (26.34ms CPU time)

Ran 3 tests for tests/MapleLoanManager.t.sol:SetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 32944) \[PASS] test\_setImplementation\_paused() (gas: 38941) \[PASS] test\_setImplementation\_success() (gas: 43909) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 9.16ms (464.47µs CPU time)

Ran 4 tests for tests/MapleLoanManager.t.sol:SetMinRatio\_SetterTests \[PASS] test\_setMinRatio\_noAuth() (gas: 43894) \[PASS] test\_setMinRatio\_paused() (gas: 39304) \[PASS] test\_setMinRatio\_success\_asGovernor() (gas: 72034) \[PASS] test\_setMinRatio\_success\_asPoolDelegate() (gas: 69263) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.50ms (686.79µs CPU time)

Ran 4 tests for tests/MapleLoanManager.t.sol:RefinanceAccountingSingleLoanTests \[PASS] test\_refinance\_beforeLoanDueDate\_interestOnly() (gas: 628420) \[PASS] test\_refinance\_onLatePayment\_interestOnly() (gas: 631008) \[PASS] test\_refinance\_onLoanPaymentDueDate\_interestOnly() (gas: 629143) \[PASS] test\_refinance\_onPaymentDueDate\_amortized() (gas: 629932) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 23.16ms (15.99ms CPU time)

Ran 6 tests for tests/MapleLoanManager.t.sol:UintCastingTests \[PASS] test\_castUint112() (gas: 24508) \[PASS] test\_castUint120() (gas: 24427) \[PASS] test\_castUint128() (gas: 24487) \[PASS] test\_castUint24() (gas: 24402) \[PASS] test\_castUint48() (gas: 24445) \[PASS] test\_castUint96() (gas: 24448) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 17.70ms (775.46µs CPU time)

Ran 3 tests for tests/MapleLoanManager.t.sol:TwoLoanAtomicClaimTests \[PASS] test\_claim\_earlyPayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 710747) \[PASS] test\_claim\_latePayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 734866) \[PASS] test\_claim\_onTimePayment\_interestOnly\_onTimePayment\_interestOnly() (gas: 707930) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 26.91ms (12.26ms CPU time)

Ran 6 tests for tests/MapleLoanManager.t.sol:SingleLoanAtomicClaimTests \[PASS] test\_claim\_earlyPayment\_amortized() (gas: 447371) \[PASS] test\_claim\_earlyPayment\_interestOnly() (gas: 439922) \[PASS] test\_claim\_latePayment\_amortized() (gas: 470153) \[PASS] test\_claim\_latePayment\_interestOnly() (gas: 462702) \[PASS] test\_claim\_onTimePayment\_amortized() (gas: 444599) \[PASS] test\_claim\_onTimePayment\_interestOnly() (gas: 437216) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 15.73ms (12.63ms CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:ThreeLoanPastDomainEndClaimTests \[PASS] test\_claim\_loan1NotPaid\_loan2NotPaid\_loan3PaidLate() (gas: 411235) \[PASS] test\_claim\_loan3\_loan1NotPaid\_loan2NotPaid() (gas: 408747) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 15.25ms (5.42ms CPU time)

Ran 2 tests for tests/MapleLoanManager.t.sol:QueueNextPaymentTests \[PASS] testFuzz\_queueNextPayment\_fees(uint256,uint256) (runs: 256, μ: 214795, \~: 223454) \[PASS] test\_queueNextPayment\_fees() (gas: 182906) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 114.89ms (112.69ms CPU time)

\[PASS] testFuzz\_claim\_latePayment\_interestOnly(uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 1854099, \~: 1858350) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 416.77ms (410.22ms CPU time)

Ran 28 test suites in 440.91ms (795.37ms CPU time): 110 tests passed, 1 failed, 0 skipped (111 total tests)

## globals

Ran 3 tests for tests/GovernorTimelock/AcceptTokenWithdrawer.t.sol:AcceptTokenWithdrawerTests \[PASS] test\_acceptTokenWithdrawer\_revert\_notPendingTokenWithdrawer() (gas: 40612) \[PASS] test\_acceptTokenWithdrawer\_success() (gas: 35529) \[PASS] test\_deployment() (gas: 45168) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.38ms (430.40µs CPU time)

\[PASS] test\_deployment() (gas: 45145) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 1.66ms (300.18µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:TransferGovernorTests \[PASS] test\_acceptGovernor() (gas: 51092) \[PASS] test\_acceptGovernor\_notPendingGovernor() (gas: 16293) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.78ms (456.96µs CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetPlatformOriginationFeeRateTests \[PASS] test\_setPlatformOriginationFeeRate\_notAuthorized() (gas: 57711) \[PASS] test\_setPlatformOriginationFeeRate\_outOfBounds() (gas: 55567) \[PASS] test\_setPlatformOriginationFeeRate\_success\_governor() (gas: 50507) \[PASS] test\_setPlatformOriginationFeeRate\_success\_operational\_admin() (gas: 79708) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.22ms (704.02µs CPU time)

Ran 5 tests for tests/GovernorTimelock/SetDefaultTimelockParameters.t.sol:SetDefaultTimelockParametersTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_setDefaultTimelockParameters\_revert\_invalidDelay() (gas: 12452) \[PASS] test\_setDefaultTimelockParameters\_revert\_invalidExecutionWindow() (gas: 12468) \[PASS] test\_setDefaultTimelockParameters\_revert\_notSelf() (gas: 9787) \[PASS] test\_setDefaultTimelockParameters\_success() (gas: 21926) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 2.22ms (796.29µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetValidBorrowerTests \[PASS] test\_setValidBorrower\_notAuthorized() (gas: 57407) \[PASS] test\_setValidBorrower\_success\_governor() (gas: 42256) \[PASS] test\_setValidBorrower\_success\_operationalAdmin() (gas: 79758) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.47ms (305.47µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetValidCollateralTests \[PASS] test\_setValidCollateral() (gas: 42197) \[PASS] test\_setValidCollateral\_notGovernor() (gas: 55240) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.46ms (322.45µs CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetPlatformServiceFeeRateTests \[PASS] test\_setPlatformServiceFeeRate\_notAuthorized() (gas: 57577) \[PASS] test\_setPlatformServiceFeeRate\_outOfBounds() (gas: 55432) \[PASS] test\_setPlatformServiceFeeRate\_success\_governor() (gas: 50529) \[PASS] test\_setPlatformServiceFeeRate\_success\_operationalAdmin() (gas: 79730) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.06ms (572.90µs CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:TransferOwnedPoolTests \[PASS] test\_transferOwnedPool() (gas: 74382) \[PASS] test\_transferOwnedPool\_alreadyOwns() (gas: 286162) \[PASS] test\_transferOwnedPool\_notPoolDelegate() (gas: 26491) \[PASS] test\_transferOwnedPool\_notPoolManager() (gas: 21659) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.75ms (720.00µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetCanDeployFromTests \[PASS] test\_setCanDeployFrom\_notAuthorized() (gas: 24097) \[PASS] test\_setCanDeployFrom\_success\_governor() (gas: 51684) \[PASS] test\_setCanDeployFrom\_success\_operationalAdmin() (gas: 88617) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.16ms (598.67µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetValidInstanceOfTests \[PASS] test\_setValidInstanceOf\_notAuthorized() (gas: 58309) \[PASS] test\_setValidInstanceOf\_success\_governor() (gas: 44086) \[PASS] test\_setValidInstanceOf\_success\_operationalAdmin() (gas: 81113) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.92ms (575.80µs CPU time)

Ran 5 tests for tests/GovernorTimelock/GovernorTimelockScenarios.t.sol:GovernorTimelockScenariosTests \[PASS] test\_deployment() (gas: 45190) \[PASS] test\_executeProposals\_revert\_unscheduledProposal() (gas: 98500) \[PASS] test\_proposeRoleUpdates\_unsuccessfulUnschedule() (gas: 109355) \[PASS] test\_setFunctionTimelockParameters\_respectsDelayOfFunction() (gas: 388223) \[PASS] test\_updateTimelockConfig\_success\_fullProposalCycle() (gas: 170017) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 4.67ms (2.83ms CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetPriceOracleTests \[PASS] test\_setPriceOracle() (gas: 55546) \[PASS] test\_setPriceOracle\_notGovernor() (gas: 22063) \[PASS] test\_setPriceOracle\_zeroAddressCheck() (gas: 46110) \[PASS] test\_setPriceOracle\_zeroTimeCheck() (gas: 24834) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.06ms (490.72µs CPU time)

Ran 6 tests for tests/MapleGlobals.t.sol:GetLatestPriceTests \[PASS] test\_getLatestPrice() (gas: 79036) \[PASS] test\_getLatestPrice\_manualOverride() (gas: 98140) \[PASS] test\_getLatestPrice\_oracleNotSet() (gas: 21410) \[PASS] test\_getLatestPrice\_roundNotComplete() (gas: 30122) \[PASS] test\_getLatestPrice\_stalePrice() (gas: 96392) \[PASS] test\_getLatestPrice\_zeroPrice() (gas: 53879) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.38ms (1.28ms CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetContractPauseTests \[PASS] test\_setContractPause\_asGovernor() (gas: 43413) \[PASS] test\_setContractPause\_asSecurityAdmin() (gas: 45229) \[PASS] test\_setContractPause\_notAuthorized() (gas: 21664) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.30ms (506.49µs CPU time)

Ran 5 tests for tests/MapleGlobals.t.sol:UnScheduleCallTests \[PASS] test\_unscheduleCall() (gas: 29441) \[PASS] test\_unscheduleCall\_asGovernor() (gas: 34316) \[PASS] test\_unscheduleCall\_asGovernor\_callDataMismatch() (gas: 32089) \[PASS] test\_unscheduleCall\_callDataMismatch() (gas: 27171) \[PASS] test\_unscheduleCall\_notGovernor() (gas: 20231) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.36ms (1.65ms CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetValidPoolAssetTests \[PASS] test\_setValidPoolAsset() (gas: 42178) \[PASS] test\_setValidPoolAsset\_notGovernor() (gas: 55282) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.62ms (330.84µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetDefaultTimelockParametersTests \[PASS] test\_setDefaultTimelockParameters() (gas: 47573) \[PASS] test\_setDefaultTimelockParameters\_notGovernor() (gas: 17478) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.02ms (223.19µs CPU time)

Ran 8 tests for tests/GovernorTimelock/SetFunctionTimelockParameters.t.sol:SetFunctionTimelockParametersTests \[PASS] test\_deployment() (gas: 45190) \[PASS] test\_setFunctionTimelockParameters\_resetToDefaults\_success() (gas: 41330) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDefaultForDelay() (gas: 10636) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDefaultForExecutionWindow() (gas: 10575) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidDelay() (gas: 15249) \[PASS] test\_setFunctionTimelockParameters\_revert\_invalidExecutionWindow() (gas: 15276) \[PASS] test\_setFunctionTimelockParameters\_revert\_notSelf() (gas: 12575) \[PASS] test\_setFunctionTimelockParameters\_success() (gas: 45507) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 8.84ms (7.20ms CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetValidPoolDelegate \[PASS] test\_setValidDeployer\_zeroAddress() (gas: 19972) \[PASS] test\_setValidPoolDelegate\_notAuthorized() (gas: 57553) \[PASS] test\_setValidPoolDelegate\_success\_governor() (gas: 42773) \[PASS] test\_setValidPoolDelegate\_success\_operationalAdmin() (gas: 80005) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.11ms (647.00µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetFunctionUnpauseTests \[PASS] test\_setContractPause\_asGovernor() (gas: 47780) \[PASS] test\_setContractPause\_asSecurityAdmin() (gas: 47996) \[PASS] test\_setContractPause\_notAuthorized() (gas: 24064) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.26ms (558.42µs CPU time)

Ran 7 tests for tests/MapleGlobals.t.sol:canDeployFromTests \[PASS] test\_canDeployFrom\_invalidFactoryAndCaller() (gas: 29969) \[PASS] test\_canDeployFrom\_poolManagerDeployingLoanManager() (gas: 104525) \[PASS] test\_canDeployFrom\_poolManagerDeployingLoanManager\_WithValidFactoryAndCallerSet() (gas: 136223) \[PASS] test\_canDeployFrom\_validBorrowerDeploying\_invalidFactoryInstance() (gas: 61321) \[PASS] test\_canDeployFrom\_validBorrowerDeploying\_validFactoryInstanceSet() (gas: 84862) \[PASS] test\_canDeployFrom\_validBorrowerDeploying\_withoutFactoryAndCallerSet() (gas: 90615) \[PASS] test\_canDeployFrom\_validFactoryAndCaller() (gas: 54970) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 4.56ms (1.58ms CPU time)

Ran 7 tests for tests/MapleGlobals.t.sol:ActivatePoolManagerTests \[PASS] test\_activatePoolManager\_alreadyOwns() (gas: 54737) \[PASS] test\_activatePoolManager\_invalidDelegate() (gas: 78896) \[PASS] test\_activatePoolManager\_invalidFactory() (gas: 71451) \[PASS] test\_activatePoolManager\_invalidInstance() (gas: 73119) \[PASS] test\_activatePoolManager\_notAuthorized() (gas: 58266) \[PASS] test\_activatePoolManager\_success\_governor() (gas: 53907) \[PASS] test\_activatePoolManager\_success\_operationalAdmin() (gas: 56109) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 6.77ms (1.76ms CPU time)

Ran 3 tests for tests/GovernorTimelock/SetPendingTokenWithdrawer.sol:SetPendingTokenWithdrawerTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_setPendingTokenWithdrawer\_revert\_notTokenWithdrawer() (gas: 13747) \[PASS] test\_setPendingTokenWithdrawer\_success() (gas: 47241) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.55ms (930.80µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetProtocolPauseTests \[PASS] test\_setProtocolPause\_asGovernor() (gas: 33963) \[PASS] test\_setProtocolPause\_asSecurityAdmin() (gas: 34300) \[PASS] test\_setProtocolPause\_notAuthorized() (gas: 19139) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 7.93ms (482.23µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetManualOverridePriceTests \[PASS] test\_setManualOverridePrice() (gas: 310430) \[PASS] test\_setManualOverridePrice\_notGovernor() (gas: 55560) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.04ms (397.15µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetSecurityAdminTests \[PASS] test\_setSecurityAdmin() (gas: 49178) \[PASS] test\_setSecurityAdmin\_notGovernor() (gas: 19187) \[PASS] test\_setSecurityAdmin\_zeroAddressCheck() (gas: 19784) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.71ms (283.60µs CPU time)

Ran 10 tests for tests/GovernorTimelock/ExecuteProposals.t.sol:ExecuteProposalsTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_executeProposals\_executionFailed() (gas: 294196) \[PASS] test\_executeProposals\_revert\_emptyArray() (gas: 15873) \[PASS] test\_executeProposals\_revert\_invalidData() (gas: 321804) \[PASS] test\_executeProposals\_revert\_invalidDataLength() (gas: 17754) \[PASS] test\_executeProposals\_revert\_invalidTargetsLength() (gas: 16903) \[PASS] test\_executeProposals\_revert\_notExecutable() (gas: 365428) \[PASS] test\_executeProposals\_revert\_notExecutor() (gas: 13176) \[PASS] test\_executeProposals\_revert\_notFound() (gas: 25131) \[PASS] test\_executeProposals\_success() (gas: 313971) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 16.09ms (14.34ms CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetValidPoolDeployer \[PASS] test\_setValidDeployer\_enablingNotAllowed() (gas: 22121) \[PASS] test\_setValidDeployer\_notGovernor() (gas: 19399) \[PASS] test\_setValidDeployer\_success() (gas: 25193) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.63ms (215.60µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetMapleTreasuryTests \[PASS] test\_setMapleTreasury() (gas: 49168) \[PASS] test\_setMapleTreasury\_notGovernor() (gas: 19119) \[PASS] test\_setMapleTreasury\_zeroAddressCheck() (gas: 19673) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.61ms (279.11µs CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetMaxCoverLiquidationPercentTests \[PASS] test\_setMaxCoverLiquidationPercent\_gt100() (gas: 55502) \[PASS] test\_setMaxCoverLiquidationPercent\_notAuthorized() (gas: 57579) \[PASS] test\_setMaxCoverLiquidationPercent\_success\_governor() (gas: 50373) \[PASS] test\_setMaxCoverLiquidationPercent\_success\_operationalAdmin() (gas: 79662) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.04ms (552.03µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetOperationalAdminTests \[PASS] test\_setOperationalAdmin() (gas: 49126) \[PASS] test\_setOperationalAdmin\_notGovernor() (gas: 19119) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.51ms (194.93µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetPendingGovernorTests \[PASS] test\_setPendingGovernor() (gas: 48704) \[PASS] test\_setPendingGovernor\_notGovernor() (gas: 19139) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.53ms (196.03µs CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetTimelockWindowTests \[PASS] test\_setTimelockWindow() (gas: 54440) \[PASS] test\_setTimelockWindow\_notGovernor() (gas: 20301) \[PASS] test\_setTimelockWindows() (gas: 91506) \[PASS] test\_setTimelockWindows\_notGovernor() (gas: 22958) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.14ms (712.81µs CPU time)

Ran 2 tests for tests/MapleGlobals.t.sol:SetMigrationAdminTests \[PASS] test\_setMigrationAdmin() (gas: 49209) \[PASS] test\_setMigrationAdmin\_notGovernor() (gas: 19162) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.50ms (173.46µs CPU time)

Ran 3 tests for tests/GovernorTimelock/UpdateRole.t.sol:UpdateRoleTests \[PASS] test\_deployment() (gas: 45190) \[PASS] test\_updateRole\_revert\_notSelf() (gas: 12011) \[PASS] test\_updateRole\_success() (gas: 37946) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.46ms (839.93µs CPU time)

\[PASS] test\_isValidScheduledCall() (gas: 90994) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.04ms (405.83µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetMinCoverAmountTests \[PASS] test\_setMinCoverAmount\_notAuthorized() (gas: 57639) \[PASS] test\_setMinCoverAmount\_success\_governor() (gas: 50347) \[PASS] test\_setMinCoverAmount\_success\_operationalAdmin() (gas: 79570) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.88ms (443.58µs CPU time)

Ran 5 tests for tests/GovernorTimelock/UnscheduleProposal.t.sol:UnscheduleProposalsTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_unscheduleProposals\_revert\_notCanceller() (gas: 11825) \[PASS] test\_unscheduleProposals\_revert\_notUnschedulable() (gas: 176226) \[PASS] test\_unscheduleProposals\_revert\_proposalNotFound() (gas: 17175) \[PASS] test\_unscheduleProposals\_success() (gas: 289131) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 6.62ms (4.82ms CPU time)

Ran 4 tests for tests/GovernorTimelock/WithdrawERC20Token.t.sol:WithdrawERC20TokenTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_withdrawERC20Token\_revert\_notTokenWithdrawer() (gas: 13872) \[PASS] test\_withdrawERC20Token\_revert\_transferFailed() (gas: 23345) \[PASS] test\_withdrawERC20Token\_success() (gas: 51794) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.01ms (524.47µs CPU time)

Ran 6 tests for tests/GovernorTimelock/ProposeRoleUpdates.t.sol:ProposeRoleUpdatesTests \[PASS] test\_deployment() (gas: 45168) \[PASS] test\_proposeRoleUpdates\_revert\_emptyArray() (gas: 15864) \[PASS] test\_proposeRoleUpdates\_revert\_invalidAccountsLength() (gas: 16938) \[PASS] test\_proposeRoleUpdates\_revert\_invalidShouldGrantLength() (gas: 17297) \[PASS] test\_proposeRoleUpdates\_revert\_notRoleAdmin() (gas: 13211) \[PASS] test\_proposeRoleUpdates\_success() (gas: 196970) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 8.17ms (4.12ms CPU time)

\[PASS] test\_isFunctionPaused() (gas: 256932) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.57ms (1.37ms CPU time)

Ran 4 tests for tests/MapleGlobals.t.sol:SetPlatformManagementFeeRateTests \[PASS] test\_setPlatformManagementFeeRate\_notAuthorized() (gas: 57736) \[PASS] test\_setPlatformManagementFeeRate\_outOfBounds() (gas: 55570) \[PASS] test\_setPlatformManagementFeeRate\_success\_governor() (gas: 50511) \[PASS] test\_setPlatformManagementFeeRate\_success\_operationalAdmin() (gas: 79711) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.27ms (648.80µs CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:SetBootstrapMintTests \[PASS] test\_setBootstrapMint\_notAuthorized() (gas: 57640) \[PASS] test\_setBootstrapMint\_success\_governor() (gas: 50410) \[PASS] test\_setBootstrapMint\_success\_operationalAdmin() (gas: 79632) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.82ms (578.19µs CPU time)

Ran 7 tests for tests/GovernorTimelock/ScheduleProposals.t.sol:ScheduleProposalsTests \[PASS] test\_deployment() (gas: 45190) \[PASS] test\_scheduleProposals\_revert\_arrayLengthMismatch() (gas: 16710) \[PASS] test\_scheduleProposals\_revert\_emptyArray() (gas: 15237) \[PASS] test\_scheduleProposals\_revert\_emptyTarget() (gas: 21390) \[PASS] test\_scheduleProposals\_revert\_notProposer() (gas: 12539) \[PASS] test\_scheduleProposals\_revert\_updateRoleNotAllowed() (gas: 191197) \[PASS] test\_scheduleProposals\_success() (gas: 385500) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 4.89ms (3.29ms CPU time)

Ran 10 tests for tests/MapleGlobals.t.sol:IsPoolDeployerTest \[PASS] test\_isPoolDeployer\_fixedTermLoanFactory\_deployerCanDeploy() (gas: 79356) \[PASS] test\_isPoolDeployer\_fixedTermLoanFactory\_deployerCannotDeploy() (gas: 58509) \[PASS] test\_isPoolDeployer\_fixedTermLoanFactory\_deployerIsPoolManager() (gas: 470261) \[PASS] test\_isPoolDeployer\_fixedTermLoanFactory\_poolManagerNotFromValidFactory() (gas: 449418) \[PASS] test\_isPoolDeployer\_fixedTermLoanFactory\_poolManagerNotInstance() (gas: 446083) \[PASS] test\_isPoolDeployer\_invalidFactory() (gas: 21731) \[PASS] test\_isPoolDeployer\_poolManagerFactory\_deployerCanDeploy() (gas: 81656) \[PASS] test\_isPoolDeployer\_poolManagerFactory\_deployerCannotDeploy() (gas: 60856) \[PASS] test\_isPoolDeployer\_withdrawalManagerFactory\_deployerCanDeploy() (gas: 83981) \[PASS] test\_isPoolDeployer\_withdrawalManagerFactory\_deployerCannotDeploy() (gas: 63204) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 5.30ms (5.44ms CPU time)

Ran 3 tests for tests/MapleGlobals.t.sol:ScheduleCallTests \[PASS] test\_scheduleCal\_overwrite() (gas: 82503) \[PASS] test\_scheduleCall() (gas: 69746) \[PASS] test\_scheduleCall\_defaultState() (gas: 19157) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 7.21ms (475.64µs CPU time)

Ran 47 test suites in 73.51ms (168.54ms CPU time): 181 tests passed, 0 failed, 0 skipped (181 total tests)

## open-term-loan

Ran 2 tests for tests/IsInDefault.t.sol:DefaultDatesTests \[PASS] test\_isInDefault\_successBoundary() (gas: 37730) \[PASS] test\_isInDefault\_zeroDefaultDate() (gas: 10353) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 885.73µs (172.00µs CPU time)

Ran 3 tests for tests/AcceptLender.t.sol:AcceptLenderTests \[PASS] test\_acceptLender\_notPendingLender() (gas: 48654) \[PASS] test\_acceptLender\_paused() (gas: 46191) \[PASS] test\_acceptLender\_success() (gas: 57255) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.49ms (454.68µs CPU time)

Ran 3 tests for tests/AcceptBorrower.t.sol:AcceptBorrowerTests \[PASS] test\_acceptBorrower\_notPendingBorrower() (gas: 48700) \[PASS] test\_acceptBorrower\_paused() (gas: 46171) \[PASS] test\_acceptBorrower\_success() (gas: 57205) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.50ms (437.73µs CPU time)

Ran 5 tests for tests/AcceptLoanTerms.t.sol:AcceptLoanTermsTests \[PASS] test\_acceptLoanTerms\_alreadyAccepted() (gas: 51466) \[PASS] test\_acceptLoanTerms\_notBorrower() (gas: 30608) \[PASS] test\_acceptLoanTerms\_paused() (gas: 46188) \[PASS] test\_acceptLoanTerms\_success\_asBorrower() (gas: 54182) \[PASS] test\_acceptLoanTerms\_success\_asBorrowerActions() (gas: 83840) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 2.03ms (643.93µs CPU time)

Ran 5 tests for tests/MakePayment.t.sol:MakePaymentFailureTests \[PASS] test\_makePayment\_insufficientForCalled() (gas: 107447) \[PASS] test\_makePayment\_insufficientForTotalTransferFromCaller() (gas: 1528232) \[PASS] test\_makePayment\_notFunded() (gas: 26551) \[PASS] test\_makePayment\_paused() (gas: 47580) \[PASS] test\_makePayment\_returningTooMuch() (gas: 86036) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 3.79ms (2.46ms CPU time)

Ran 7 tests for tests/Fund.t.sol:FundTests \[PASS] testFuzz\_fund\_success() (gas: 1615271) \[PASS] test\_fund\_loanActive() (gas: 54349) \[PASS] test\_fund\_loanClosed() (gas: 35145) \[PASS] test\_fund\_notLender() (gas: 25850) \[PASS] test\_fund\_paused() (gas: 46958) \[PASS] test\_fund\_revertingTransfer() (gas: 1521294) \[PASS] test\_fund\_termsNotAccepted() (gas: 30270) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 11.08ms (9.67ms CPU time)

Ran 4 tests for tests/AcceptNewTerms.t.sol:AcceptNewTerms \[PASS] test\_acceptNewTerms\_earlyRefinance() (gas: 448435) \[PASS] test\_acceptNewTerms\_principalDecrease() (gas: 462776) \[PASS] test\_acceptNewTerms\_principalDecreaseToZero() (gas: 450855) \[PASS] test\_acceptNewTerms\_principalIncrease() (gas: 483196) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 30.37ms (27.94ms CPU time)

Ran 7 tests for tests/AcceptNewTerms.t.sol:AcceptNewTermsFailure \[PASS] test\_acceptNewTerms\_expiredCommitmentBoundary() (gas: 3065516) \[PASS] test\_acceptNewTerms\_invalidRefinancer() (gas: 56353) \[PASS] test\_acceptNewTerms\_mismatchedCommitment() (gas: 37323) \[PASS] test\_acceptNewTerms\_notBorrower() (gas: 32449) \[PASS] test\_acceptNewTerms\_paused() (gas: 48030) \[PASS] test\_acceptNewTerms\_refinancerRevert() (gas: 101411) \[PASS] test\_acceptNewTerms\_transferRevert() (gas: 1307795) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.58ms (1.97ms CPU time)

Ran 3 tests for tests/AcceptNewTerms.t.sol:AcceptNewTermsPrincipalChangeTests \[PASS] test\_acceptNewTerms\_payInterestAndIncreasePrincipalForBorrower() (gas: 479092) \[PASS] test\_acceptNewTerms\_payInterestWithExactPrincipalIncrease() (gas: 439815) \[PASS] test\_acceptNewTerms\_payInterestWithSingleWeiFromBorrower() (gas: 465431) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 21.24ms (19.16ms CPU time)

\[PASS] testFuzz\_defaultDates(uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 75359, \~: 75768) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 167.29ms (166.57ms CPU time)

Ran 4 tests for tests/Getter.t.sol:GetterTests \[PASS] test\_factory\_getter() (gas: 10390) \[PASS] test\_globals\_getter() (gas: 16099) \[PASS] test\_isCalled\_getter() (gas: 30978) \[PASS] test\_isImpaied\_getter() (gas: 31028) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.59ms (266.82µs CPU time)

Ran 5 tests for tests/SetPendingBorrower.t.sol:SetPendingBorrowerTests \[PASS] test\_setPendingBorrower\_invalidBorrower() (gas: 35821) \[PASS] test\_setPendingBorrower\_notBorrower() (gas: 33388) \[PASS] test\_setPendingBorrower\_paused() (gas: 48992) \[PASS] test\_setPendingBorrower\_success\_asBorrowerActions() (gas: 113092) \[PASS] test\_setPendingBorrower\_success\_asCurrentBorrower() (gas: 85328) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 5.23ms (893.80µs CPU time)

Ran 3 tests for tests/SetPendingLender.t.sol:SetPendingLenderTests \[PASS] test\_setPendingLender\_notLender() (gas: 27797) \[PASS] test\_setPendingLender\_paused() (gas: 48858) \[PASS] test\_setPendingLender\_success() (gas: 77832) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.61ms (364.34µs CPU time)

Ran 7 tests for tests/Skim.t.sol:SkimTests \[PASS] test\_skim\_borrower() (gas: 1484553) \[PASS] test\_skim\_governor() (gas: 1482416) \[PASS] test\_skim\_noTokenToSkim() (gas: 1334560) \[PASS] test\_skim\_notBorrower() (gas: 31226) \[PASS] test\_skim\_paused() (gas: 32445) \[PASS] test\_skim\_revertingToken() (gas: 1411761) \[PASS] test\_skim\_zeroAddress() (gas: 24154) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 7.22ms (5.24ms CPU time)

Ran 4 tests for tests/Upgrade.t.sol:UpgradeTests \[PASS] test\_upgrade\_noAuth() (gas: 28661) \[PASS] test\_upgrade\_noAuth\_asBorrower() (gas: 31292) \[PASS] test\_upgrade\_paused() (gas: 49820) \[PASS] test\_upgrade\_success\_asSecurityAdmin() (gas: 234737) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.64ms (1.19ms CPU time)

\[PASS] test\_migrate\_success() (gas: 54203) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.19ms (182.37µs CPU time)

Ran 7 tests for tests/ProposeNewTerms.t.sol:ProposeNewTermsTests \[PASS] test\_proposeNewTerms\_deadlineBoundary() (gas: 113070) \[PASS] test\_proposeNewTerms\_emptyCalls() (gas: 63920) \[PASS] test\_proposeNewTerms\_invalidRefinancer() (gas: 39638) \[PASS] test\_proposeNewTerms\_notFunded() (gas: 33631) \[PASS] test\_proposeNewTerms\_notLender() (gas: 26902) \[PASS] test\_proposeNewTerms\_paused() (gas: 48009) \[PASS] test\_proposeNewTerms\_success() (gas: 116203) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.06ms (1.56ms CPU time)

Ran 4 tests for tests/RemoveCall.t.sol:RemoveCallTests \[PASS] testFuzz\_removeCall\_success(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 107792, \~: 108512) \[PASS] test\_removeCall\_notCalled() (gas: 30471) \[PASS] test\_removeCall\_notLender() (gas: 25614) \[PASS] test\_removeCall\_paused() (gas: 46720) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 196.21ms (194.82ms CPU time)

\[PASS] testFuzz\_dueDates(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 70122, \~: 70365) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 222.18ms (221.47ms CPU time)

Ran 11 tests for tests/GetPaymentBreakdown.t.sol:GetPaymentBreakdownTests \[PASS] testFuzz\_getPaymentBreakdown(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 295774, \~: 286969) \[PASS] test\_getPaymentBreakdown\_fixture1() (gas: 206354) \[PASS] test\_getPaymentBreakdown\_fixture10() (gas: 119261) \[PASS] test\_getPaymentBreakdown\_fixture2() (gas: 206105) \[PASS] test\_getPaymentBreakdown\_fixture3() (gas: 182205) \[PASS] test\_getPaymentBreakdown\_fixture4() (gas: 216371) \[PASS] test\_getPaymentBreakdown\_fixture5() (gas: 205290) \[PASS] test\_getPaymentBreakdown\_fixture6() (gas: 206778) \[PASS] test\_getPaymentBreakdown\_fixture7() (gas: 206960) \[PASS] test\_getPaymentBreakdown\_fixture8() (gas: 207011) \[PASS] test\_getPaymentBreakdown\_fixture9() (gas: 118981) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 243.72ms (242.78ms CPU time)

Ran 6 tests for tests/RejectNewTerms.t.sol:RejectNewTermsTests \[PASS] test\_rejectNewTerms\_mismatchedCommitment() (gas: 34615) \[PASS] test\_rejectNewTerms\_notBorrowerNorLender() (gas: 36724) \[PASS] test\_rejectNewTerms\_paused() (gas: 50099) \[PASS] test\_rejectNewTerms\_success\_asBorrower() (gas: 47689) \[PASS] test\_rejectNewTerms\_success\_asBorrowerActions() (gas: 77427) \[PASS] test\_rejectNewTerms\_success\_asLender() (gas: 55335) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.05ms (1.18ms CPU time)

Ran 6 tests for tests/Repossess.t.sol:RepossessTests \[PASS] test\_repossess\_notInDefault() (gas: 57125) \[PASS] test\_repossess\_notLender() (gas: 28094) \[PASS] test\_repossess\_paused() (gas: 49155) \[PASS] test\_repossess\_revertingToken() (gas: 1428999) \[PASS] test\_repossess\_success() (gas: 1621055) \[PASS] test\_repossess\_success\_noTransfer() (gas: 1474883) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 11.63ms (9.59ms CPU time)

Ran 3 tests for tests/SetImplementation.t.sol:SetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 23720) \[PASS] test\_setImplementation\_paused() (gas: 46810) \[PASS] test\_setImplementation\_success() (gas: 93403) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.26ms (313.99µs CPU time)

Ran 4 tests for tests/Impair.t.sol:ImpairTests \[PASS] testFuzz\_impair\_success(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 105918, \~: 106477) \[PASS] test\_impair\_loanNotFunded() (gas: 30539) \[PASS] test\_impair\_notLender() (gas: 25614) \[PASS] test\_impair\_paused() (gas: 46743) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 262.08ms (260.74ms CPU time)

Ran 3 tests for tests/Migrate.t.sol:MigrateTests \[PASS] test\_migrate\_notFactory() (gas: 24454) \[PASS] test\_migrate\_paused() (gas: 47455) \[PASS] test\_migrate\_success() (gas: 71013) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.37ms (367.13µs CPU time)

Ran 11 tests for tests/Initializer.t.sol:InitializerTests \[PASS] test\_initialize\_differentFundsAsset() (gas: 115879) \[PASS] test\_initialize\_invalidBorrower() (gas: 57213) \[PASS] test\_initialize\_invalidFundsAsset() (gas: 60950) \[PASS] test\_initialize\_invalidLenderFactory() (gas: 1760572) \[PASS] test\_initialize\_invalidLenderFactoryInstance() (gas: 1790211) \[PASS] test\_initialize\_invalidNoticePeriod() (gas: 22386) \[PASS] test\_initialize\_invalidPaymentInterval() (gas: 22435) \[PASS] test\_initialize\_invalidPrincipal() (gas: 22274) \[PASS] test\_initialize\_success() (gas: 301929) \[PASS] test\_initialize\_zeroBorrower() (gas: 28478) \[PASS] test\_initialize\_zeroLender() (gas: 60694) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 7.67ms (4.34ms CPU time)

Ran 6 tests for tests/CallPrincipal.t.sol:CallPrincipalTests \[PASS] testFuzz\_callPrincipal\_success(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 137506, \~: 138147) \[PASS] test\_callPrincipal\_insufficientPrincipalToReturn() (gas: 52434) \[PASS] test\_callPrincipal\_loanNotFunded() (gas: 30993) \[PASS] test\_callPrincipal\_notLender() (gas: 26067) \[PASS] test\_callPrincipal\_paused() (gas: 47151) \[PASS] test\_callPrincipal\_principalToReturnBoundary() (gas: 106826) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 312.89ms (312.50ms CPU time)

Ran 4 tests for tests/RemoveImpairment.t.sol:RemoveImpairmentTests \[PASS] testFuzz\_removeImpairment\_success(uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 103019, \~: 103593) \[PASS] test\_removeImpairment\_notImpaired() (gas: 30536) \[PASS] test\_removeImpairment\_notLender() (gas: 25634) \[PASS] test\_removeImpairment\_paused() (gas: 46719) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 228.19ms (227.28ms CPU time)

Ran 2 tests for tests/Factory.t.sol:FactoryTests \[PASS] test\_createInstance(bytes32) (runs: 256, μ: 442869, \~: 442869) \[PASS] test\_createInstance\_cannotDeploy(bytes32) (runs: 256, μ: 44453, \~: 44453) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 799.96ms (435.14ms CPU time)

Ran 10 tests for tests/Refinancer.t.sol:RefinancerTests \[PASS] test\_refinancer\_decreasePrincipal(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144680, \~: 146339) \[PASS] test\_refinancer\_increasePrincipal(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144358, \~: 146222) \[PASS] test\_refinancer\_multipleCalls\_refinance(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 176963, \~: 177900) \[PASS] test\_refinancer\_setDelegateServiceFeeRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 143063, \~: 144773) \[PASS] test\_refinancer\_setGracePeriod(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 143160, \~: 145005) \[PASS] test\_refinancer\_setInterestRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144498, \~: 146400) \[PASS] test\_refinancer\_setLateFeeRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144066, \~: 145312) \[PASS] test\_refinancer\_setLateInterestPremiumRate(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144281, \~: 146209) \[PASS] test\_refinancer\_setNoticePeriod(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144919, \~: 146550) \[PASS] test\_refinancer\_setPaymentInterval(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) (runs: 256, μ: 144594, \~: 146263) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 605.89ms (2.94s CPU time)

\[PASS] testFuzz\_makePayment(uint256,uint256,uint256,uint256) (runs: 256, μ: 564617, \~: 572090) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 876.36ms (864.85ms CPU time)

Ran 31 test suites in 882.81ms (4.04s CPU time): 143 tests passed, 0 failed, 0 skipped (143 total tests)

## open-term-loan-manager

Ran 4 tests for tests/Call.t.sol:CallPrincipalTests \[PASS] test\_callPrincipal\_notLoan() (gas: 36801) \[PASS] test\_callPrincipal\_notPoolDelegate() (gas: 33939) \[PASS] test\_callPrincipal\_paused() (gas: 49258) \[PASS] test\_callPrincipal\_success() (gas: 219567) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.12ms (655.13µs CPU time)

Ran 6 tests for tests/DistributeLiquidationFunds.t.sol:DistributeLiquidationFundsFailureTests \[PASS] test\_distributeLiquidationFunds\_transferBorrower() (gas: 62615) \[PASS] test\_distributeLiquidationFunds\_transferPool() (gas: 96332) \[PASS] test\_distributeLiquidationFunds\_transferTreasury() (gas: 135887) \[PASS] test\_distributeLiquidationFunds\_zeroBorrower() (gas: 31964) \[PASS] test\_distributeLiquidationFunds\_zeroPool() (gas: 63616) \[PASS] test\_distributeLiquidationFunds\_zeroTreasury() (gas: 103186) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 3.29ms (1.24ms CPU time)

Ran 3 tests for tests/ImpairLoan.t.sol:ImpairLoanLimitTests \[PASS] test\_impairLoan\_accountedInterestLimit() (gas: 334688) \[PASS] test\_impairLoan\_impairmentDateLimit() (gas: 276295) \[PASS] test\_impairLoan\_unrealizedLossesLimit() (gas: 321500) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.63ms (1.74ms CPU time)

Ran 4 tests for tests/Call.t.sol:RemoveCallTests \[PASS] test\_removeCall\_notLoan() (gas: 36510) \[PASS] test\_removeCall\_notPoolDelegate() (gas: 33647) \[PASS] test\_removeCall\_paused() (gas: 49012) \[PASS] test\_removeCall\_success() (gas: 163392) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.15ms (569.69µs CPU time)

Ran 4 tests for tests/ImpairLoan.t.sol:ImpairLoanSuccessTests \[PASS] test\_impairLoan\_acl\_governor() (gas: 86453) \[PASS] test\_impairLoan\_acl\_poolDelegate() (gas: 94367) \[PASS] test\_impairLoan\_success() (gas: 237556) \[PASS] test\_impairLoan\_success\_alreadyImpaired() (gas: 301460) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 5.36ms (3.32ms CPU time)

Ran 7 tests for tests/Claim.t.sol:ClaimFailureTests \[PASS] test\_claim\_invalidState1() (gas: 61971) \[PASS] test\_claim\_invalidState2() (gas: 61982) \[PASS] test\_claim\_invalidState3() (gas: 62006) \[PASS] test\_claim\_invalidState4() (gas: 85800) \[PASS] test\_claim\_notLoan() (gas: 29726) \[PASS] test\_claim\_notPaused() (gas: 30908) \[PASS] test\_claim\_reentrancy() (gas: 210) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 3.11ms (1.01ms CPU time)

Ran 6 tests for tests/CreateInstance.t.sol:CreateInstanceTests \[PASS] test\_createInstance\_cannotDeploy() (gas: 20830) \[PASS] test\_createInstance\_invalidFactory() (gas: 208565) \[PASS] test\_createInstance\_invalidInstance() (gas: 214446) \[PASS] test\_createInstance\_revertIfCollision() (gas: 1040439035) \[PASS] test\_createInstance\_revertIfnotPool() (gas: 193001) \[PASS] test\_createInstance\_success() (gas: 301735) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 6.77ms (2.69ms CPU time)

Ran 9 tests for tests/Fund.t.sol:FundFailureTests \[PASS] test\_fund\_failedApproval() (gas: 305098) \[PASS] test\_fund\_fundingMismatch() (gas: 249481) \[PASS] test\_fund\_inactiveLoan() (gas: 137835) \[PASS] test\_fund\_invalidBorrower() (gas: 111961) \[PASS] test\_fund\_invalidFactory() (gas: 52687) \[PASS] test\_fund\_invalidLoan() (gas: 85086) \[PASS] test\_fund\_notPoolDelegate() (gas: 36527) \[PASS] test\_fund\_paused() (gas: 46877) \[PASS] test\_fund\_reentrancy() (gas: 3063037) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 7.14ms (5.29ms CPU time)

Ran 4 tests for tests/RejectNewTerms.t.sol:RejectNewTermsTests \[PASS] test\_rejectNewTerms\_notLoan() (gas: 37807) \[PASS] test\_rejectNewTerms\_notPoolDelegate() (gas: 34945) \[PASS] test\_rejectNewTerms\_paused() (gas: 50263) \[PASS] test\_rejectNewTerms\_success() (gas: 370039) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 11.18ms (9.47ms CPU time)

Ran 6 tests for tests/DistributeClaimedFunds.t.sol:DistributeClaimedFundsFailureTests \[PASS] test\_distributeClaimFunds\_platformTransfer() (gas: 114619) \[PASS] test\_distributeClaimFunds\_poolTransfer() (gas: 66853) \[PASS] test\_distributeClaimFunds\_zeroDelegate() (gas: 74958) \[PASS] test\_distributeClaimFunds\_zeroPool() (gas: 34186) \[PASS] test\_distributeClaimFunds\_zeroPoolDelegate() (gas: 61369) \[PASS] test\_distributeClaimFunds\_zeroTreasury() (gas: 81969) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 7.54ms (1.26ms CPU time)

Ran 4 tests for tests/RemoveLoanImpairment.t.sol:RemoveLoanImpairmentFailureTests \[PASS] test\_removeLoanImpairment\_noAuth() (gas: 109665) \[PASS] test\_removeLoanImpairment\_notLoan() (gas: 30665) \[PASS] test\_removeLoanImpairment\_paused() (gas: 31780) \[PASS] test\_removeLoanImpairment\_poolDelegateAfterGovernor() (gas: 104416) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 9.18ms (6.26ms CPU time)

Ran 4 tests for tests/ProposeNewTerms.t.sol:ProposeNewTermsTests \[PASS] test\_proposeNewTerms\_notLoan() (gas: 40572) \[PASS] test\_proposeNewTerms\_notPoolDelegate() (gas: 37665) \[PASS] test\_proposeNewTerms\_paused() (gas: 53073) \[PASS] test\_proposeNewTerms\_success() (gas: 370106) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.40ms (1.61ms CPU time)

Ran 3 tests for tests/RemoveLoanImpairment.t.sol:RemoveLoanImpairmentSuccessTests \[PASS] test\_removeLoanImpairment\_acl\_governor\_success() (gas: 86417) \[PASS] test\_removeLoanImpairment\_success() (gas: 232231) \[PASS] test\_removeLoanImpairment\_success\_alreadyUnimpaired() (gas: 298844) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 9.12ms (2.43ms CPU time)

Ran 3 tests for tests/ImpairLoan.t.sol:ImpairLoanFailureTests \[PASS] test\_impairLoan\_notLoan() (gas: 30688) \[PASS] test\_impairLoan\_notPoolDelegateOrGovernor() (gas: 62776) \[PASS] test\_impairLoan\_paused() (gas: 31824) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 9.54ms (407.08µs CPU time)

Ran 3 tests for tests/TriggerDefault.t.sol:TriggerDefaultFailureTests \[PASS] test\_triggerDefault\_notLoan() (gas: 29045) \[PASS] test\_triggerDefault\_notPoolDelegate() (gas: 52388) \[PASS] test\_triggerDefault\_paused() (gas: 47303) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.91ms (372.22µs CPU time)

Ran 2 tests for tests/TriggerDefault.t.sol:TriggerDefaultSuccessTests \[PASS] test\_triggerDefault\_success\_impaired() (gas: 127694) \[PASS] test\_triggerDefault\_success\_notImpaired() (gas: 144035) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 8.73ms (1.79ms CPU time)

Ran 5 tests for tests/Upgrade.t.sol:UpgradeTests \[PASS] test\_upgrade\_noAuth() (gas: 36587) \[PASS] test\_upgrade\_notScheduled() (gas: 38973) \[PASS] test\_upgrade\_paused() (gas: 47166) \[PASS] test\_upgrade\_success\_asPoolDelegate() (gas: 267440) \[PASS] test\_upgrade\_success\_asSecurityAdmin() (gas: 242666) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 7.32ms (1.85ms CPU time)

\[PASS] testFuzz\_updateUnrealizedLosses(uint256,int256) (runs: 256, μ: 44652, \~: 45552) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 77.25ms (76.22ms CPU time)

Ran 10 tests for tests/Claim.t.sol:ClaimTests \[PASS] test\_claim() (gas: 292994) \[PASS] test\_claim\_closingLoan() (gas: 254851) \[PASS] test\_claim\_impaired() (gas: 296699) \[PASS] test\_claim\_impaired\_requestingPrincipal() (gas: 369089) \[PASS] test\_claim\_impaired\_returningPrincipal() (gas: 334817) \[PASS] test\_claim\_payInterestWithPrincipalIncrease\_exactAmount() (gas: 341478) \[PASS] test\_claim\_payInterestWithPrincipalIncrease\_oneWeiExtra() (gas: 391956) \[PASS] test\_claim\_requestingPrincipalIncrease() (gas: 391921) \[PASS] test\_claim\_returnMorePrincipal() (gas: 294676) \[PASS] test\_claim\_returningPrincipal() (gas: 306530) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 97.78ms (23.24ms CPU time)

\[PASS] testFuzz\_updatePrincipalOut(uint256,int256) (runs: 256, μ: 44598, \~: 45406) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 89.19ms (88.52ms CPU time)

\[PASS] testFuzz\_updateInterestAccounting(uint256,uint256,uint256,int256,int256) (runs: 256, μ: 89190, \~: 89181) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 140.81ms (140.00ms CPU time)

\[PASS] testFuzz\_distributeLiquidationFunds(uint256,uint256,uint256,uint256) (runs: 256, μ: 169821, \~: 166179) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 184.97ms (174.79ms CPU time)

\[PASS] testFuzz\_distributeClaimFunds(int256,uint256,uint256,uint256,bool) (runs: 256, μ: 187628, \~: 180805) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 197.30ms (195.27ms CPU time)

Ran 5 tests for tests/Fund.t.sol:FundSuccessTests \[PASS] testFuzz\_fund\_multipleLoans(uint256) (runs: 256, μ: 75219957, \~: 73863533) \[PASS] test\_fund\_managementFeeRateLimits() (gas: 3269304) \[PASS] test\_fund\_paymentIssuanceRateLimit() (gas: 3356610) \[PASS] test\_fund\_principalLimit() (gas: 3463308) \[PASS] test\_fund\_startDateAndDomainStartLimit() (gas: 3390474) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 5.06s (5.07s CPU time)

Ran 24 test suites in 5.08s (5.96s CPU time): 97 tests passed, 0 failed, 0 skipped (97 total tests)

## pool

Ran 3 tests for tests/MaplePool.t.sol:ConstructorTests \[PASS] test\_constructor\_invalidApproval() (gas: 6027789) \[PASS] test\_constructor\_invalidDecimals() (gas: 5934729) \[PASS] test\_constructor\_zeroManager() (gas: 5509190) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.71ms (3.15ms CPU time)

Ran 3 tests for tests/MaplePoolManager.t.sol:DepositCoverTests \[PASS] test\_depositCover\_insufficientApproval() (gas: 109188) \[PASS] test\_depositCover\_paused() (gas: 51524) \[PASS] test\_depositCover\_success() (gas: 94787) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 7.03ms (1.01ms CPU time)

Ran 6 tests for tests/MaplePoolManager.t.sol:UpgradeTests \[PASS] test\_upgrade\_noAuth() (gas: 35289) \[PASS] test\_upgrade\_notScheduled() (gas: 37596) \[PASS] test\_upgrade\_paused() (gas: 51998) \[PASS] test\_upgrade\_successWithPoolDelegate() (gas: 103678) \[PASS] test\_upgrade\_successWithSecurityAdmin() (gas: 100271) \[PASS] test\_upgrade\_upgradeFailed() (gas: 94539) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.30ms (2.67ms CPU time)

Ran 3 tests for tests/MaplePoolManager.t.sol:SetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30457) \[PASS] test\_setImplementation\_paused() (gas: 53650) \[PASS] test\_setImplementation\_success() (gas: 40907) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 10.74ms (464.13µs CPU time)

Ran 6 tests for tests/MaplePoolManager.t.sol:SetIsStrategy\_SetterTests \[PASS] test\_setIsStrategy\_invalidLM() (gas: 720609) \[PASS] test\_setIsStrategy\_notPoolDelegate() (gas: 41664) \[PASS] test\_setIsStrategy\_paused() (gas: 53929) \[PASS] test\_setIsStrategy\_successWithPoolDelegate() (gas: 60972) \[PASS] test\_setIsStrategy\_success\_asGovernor() (gas: 67804) \[PASS] test\_setIsStrategy\_success\_asOperationalAdmin() (gas: 74634) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 8.75ms (1.66ms CPU time)

Ran 7 tests for tests/MaplePoolManager.t.sol:WithdrawCoverTests \[PASS] test\_withdrawCover\_noRequirement() (gas: 97315) \[PASS] test\_withdrawCover\_notPoolDelegate() (gas: 157700) \[PASS] test\_withdrawCover\_paused() (gas: 54737) \[PASS] test\_withdrawCover\_success() (gas: 151779) \[PASS] test\_withdrawCover\_success\_zeroRecipient() (gas: 151612) \[PASS] test\_withdrawCover\_tryWithdrawBelowRequired() (gas: 200456) \[PASS] test\_withdrawCover\_withdrawMoreThanBalance() (gas: 83424) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 12.72ms (2.55ms CPU time)

Ran 10 tests for tests/MaplePoolManager.t.sol:FinishCollateralLiquidation \[PASS] test\_finishCollateralLiquidation\_notAuthorized() (gas: 208697) \[PASS] test\_finishCollateralLiquidation\_paused() (gas: 36639) \[PASS] test\_finishCollateralLiquidation\_success\_coverLeftOver() (gas: 282420) \[PASS] test\_finishCollateralLiquidation\_success\_exceedMaxCoverLiquidationPercentAmount() (gas: 279117) \[PASS] test\_finishCollateralLiquidation\_success\_fullCoverLiquidation\_preexistingLoss() (gas: 283947) \[PASS] test\_finishCollateralLiquidation\_success\_noCoverLeftOver() (gas: 262497) \[PASS] test\_finishCollateralLiquidation\_success\_noCover\_asGovernor() (gas: 244105) \[PASS] test\_finishCollateralLiquidation\_success\_noCover\_asOperationalAdmin() (gas: 252404) \[PASS] test\_finishCollateralLiquidation\_success\_noCover\_asPoolDelegate() (gas: 237140) \[PASS] test\_finishCollateralLiquidation\_success\_noRemainingLossAfterCollateralLiquidation() (gas: 246062) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 18.75ms (9.01ms CPU time)

Ran 6 tests for tests/MaplePoolManager.t.sol:SetLiquidityCap\_SetterTests \[PASS] test\_setLiquidityCap\_notPoolDelegate() (gas: 46154) \[PASS] test\_setLiquidityCap\_paused() (gas: 54278) \[PASS] test\_setLiquidityCap\_success\_asGovernor() (gas: 66844) \[PASS] test\_setLiquidityCap\_success\_asOperationalAdmin() (gas: 72386) \[PASS] test\_setLiquidityCap\_success\_asPoolDelegate() (gas: 64138) \[PASS] test\_setLiquidityCap\_success\_whenNotConfigured() (gas: 52084) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 11.67ms (3.92ms CPU time)

Ran 7 tests for tests/MaplePoolManagerFactory.t.sol:PoolManagerFactoryFailureTest \[PASS] test\_createInstance\_failWithActivePoolDelegate() (gas: 268952) \[PASS] test\_createInstance\_failWithDisallowedAsset() (gas: 250599) \[PASS] test\_createInstance\_failWithInvalidPoolDelegate() (gas: 239071) \[PASS] test\_createInstance\_failWithNonERC20Asset() (gas: 246529) \[PASS] test\_createInstance\_failWithZeroAddressPoolDelegate() (gas: 195499) \[PASS] test\_createInstance\_failWithZeroAdmin() (gas: 5201197) \[PASS] test\_createInstance\_notPoolDeployer() (gas: 4904692) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 13.41ms (5.98ms CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:HandleCoverTests \[PASS] test\_handleCover\_feesAndSomeLosses() (gas: 126670) \[PASS] test\_handleCover\_fullCoverage() (gas: 146582) \[PASS] test\_handleCover\_halfCoverage() (gas: 153452) \[PASS] test\_handleCover\_noCover() (gas: 67529) \[PASS] test\_handleCover\_onlyFees() (gas: 114749) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 9.34ms (2.67ms CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:SetPendingPoolDelegate\_SetterTests \[PASS] test\_setPendingPoolDelegate\_asGovernor\_success() (gas: 66408) \[PASS] test\_setPendingPoolDelegate\_asOperationalAdmin\_success() (gas: 71861) \[PASS] test\_setPendingPoolDelegate\_asPoolDelegate\_success() (gas: 61887) \[PASS] test\_setPendingPoolDelegate\_notPoolDelegateOrProtocolAdmins() (gas: 41362) \[PASS] test\_setPendingPoolDelegate\_paused() (gas: 56294) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 10.48ms (1.25ms CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:SetWithdrawalManager\_SetterTests \[PASS] test\_setWithdrawalManager\_configured() (gas: 37274) \[PASS] test\_setWithdrawalManager\_invalidFactory() (gas: 72838) \[PASS] test\_setWithdrawalManager\_invalidInstance() (gas: 52003) \[PASS] test\_setWithdrawalManager\_paused() (gas: 56404) \[PASS] test\_setWithdrawalManager\_success\_asPoolDelegate() (gas: 52089) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 9.72ms (1.11ms CPU time)

\[PASS] test\_createInstance() (gas: 5010625) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 13.18ms (5.77ms CPU time)

Ran 6 tests for tests/MaplePoolManager.t.sol:TriggerDefault \[PASS] test\_triggerDefault\_invalidFactory() (gas: 117070) \[PASS] test\_triggerDefault\_notAuthorized() (gas: 48967) \[PASS] test\_triggerDefault\_paused() (gas: 41742) \[PASS] test\_triggerDefault\_success\_asGovernor() (gas: 85794) \[PASS] test\_triggerDefault\_success\_asOperationalAdmin() (gas: 93798) \[PASS] test\_triggerDefault\_success\_asPoolDelegate() (gas: 81376) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.78ms (4.19ms CPU time)

Ran 2 tests for tests/MaplePoolManagerMigrator.t.sol:MaplePoolManagerMigratorTests \[PASS] test\_migrator\_failure() (gas: 99097) \[PASS] test\_migrator\_success() (gas: 157785) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 20.97ms (1.41ms CPU time)

Ran 4 tests for tests/MaplePoolManager.t.sol:MaxDepositTests \[PASS] test\_maxDeposit\_liquidityCap() (gas: 196685) \[PASS] test\_maxDeposit\_liquidityCap(address,address,uint256,uint256) (runs: 256, μ: 136313, \~: 136425) \[PASS] test\_maxDeposit\_withPermission() (gas: 89205) \[PASS] test\_maxDeposit\_withoutPermission() (gas: 81430) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 159.85ms (150.92ms CPU time)

Ran 7 tests for tests/MaplePool.t.sol:ConvertToAssetsTests \[PASS] testFuzz\_convertToAssets(uint256,uint256,uint256) (runs: 256, μ: 188632, \~: 189249) \[PASS] test\_convertToAssets\_decreasedExchangeRate() (gas: 183675) \[PASS] test\_convertToAssets\_increasedExchangeRate() (gas: 183676) \[PASS] test\_convertToAssets\_initialExchangeRate() (gas: 183631) \[PASS] test\_convertToAssets\_initialState() (gas: 23222) \[PASS] test\_convertToAssets\_prematureYield() (gas: 43166) \[PASS] test\_convertToAssets\_worthlessShares() (gas: 163751) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 248.42ms (239.23ms CPU time)

Ran 7 tests for tests/MaplePool.t.sol:PreviewMintTests \[PASS] testFuzz\_previewMint(uint256,uint256,uint256) (runs: 256, μ: 192356, \~: 193578) \[PASS] test\_previewMint\_decreasedExchangeRate() (gas: 184987) \[PASS] test\_previewMint\_increasedExchangeRate() (gas: 184987) \[PASS] test\_previewMint\_initialExchangeRate() (gas: 185032) \[PASS] test\_previewMint\_initialState() (gas: 23368) \[PASS] test\_previewMint\_prematureYield() (gas: 43247) \[PASS] test\_previewMint\_worthlessShares() (gas: 165063) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 270.07ms (264.88ms CPU time)

Ran 8 tests for tests/MaplePool.t.sol:RedeemTests \[PASS] test\_redeem\_checkCall() (gas: 83076) \[PASS] test\_redeem\_insufficientAmount() (gas: 66669) \[PASS] test\_redeem\_insufficientApprove() (gas: 142433) \[PASS] test\_redeem\_reentrancy() (gas: 145936) \[PASS] test\_redeem\_success() (gas: 140985) \[PASS] test\_redeem\_success\_differentUser() (gas: 176995) \[PASS] test\_redeem\_zeroAssets() (gas: 98332) \[PASS] test\_redeem\_zeroShares() (gas: 53739) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 20.80ms (4.02ms CPU time)

Ran 4 tests for tests/MaplePool.t.sol:RemoveSharesTests \[PASS] test\_removeShares\_checkCall() (gas: 54421) \[PASS] test\_removeShares\_failWithoutApproval() (gas: 33201) \[PASS] test\_removeShares\_insufficientApproval() (gas: 72758) \[PASS] test\_removeShares\_withApproval() (gas: 49885) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 8.67ms (1.10ms CPU time)

Ran 6 tests for tests/MaplePool.t.sol:RequestRedeemTests \[PASS] test\_requestRedeem\_checkCall() (gas: 82551) \[PASS] test\_requestRedeem\_failWithoutApproval() (gas: 35469) \[PASS] test\_requestRedeem\_insufficientApproval() (gas: 107325) \[PASS] test\_requestRedeem\_withApproval() (gas: 77312) \[PASS] test\_requestRedeem\_zeroShares() (gas: 71251) \[PASS] test\_requestRedeem\_zeroSharesAndNotOwnerAndNoAllowance() (gas: 45966) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.19ms (1.92ms CPU time)

Ran 7 tests for tests/MaplePool.t.sol:ConvertToSharesTests \[PASS] testFuzz\_convertToShares(uint256,uint256,uint256) (runs: 256, μ: 187262, \~: 189415) \[PASS] test\_convertToShares\_decreasedExchangeRate() (gas: 183670) \[PASS] test\_convertToShares\_increasedExchangeRate() (gas: 183712) \[PASS] test\_convertToShares\_initialExchangeRate() (gas: 183669) \[PASS] test\_convertToShares\_initialState() (gas: 23302) \[PASS] test\_convertToShares\_prematureYield() (gas: 43248) \[PASS] test\_convertToShares\_worthlessShares() (gas: 170960) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 350.73ms (329.96ms CPU time)

Ran 5 tests for tests/MaplePool.t.sol:RequestWithdraw \[PASS] testFuzz\_requestWithdraw\_failNotEnabled(uint256) (runs: 256, μ: 92740, \~: 93678) \[PASS] test\_requestWithdraw\_checkCall() (gas: 82617) \[PASS] test\_requestWithdraw\_failWithoutApproval() (gas: 45049) \[PASS] test\_requestWithdraw\_insufficientApproval() (gas: 125876) \[PASS] test\_requestWithdraw\_withApproval\_failNotEnabled() (gas: 86172) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 208.31ms (174.39ms CPU time)

Ran 4 tests for tests/MaplePool.t.sol:ConvertToExitAssetsTests \[PASS] testFuzz\_convertToExitAssets(uint256,uint256,uint256,uint256) (runs: 256, μ: 212844, \~: 213604) \[PASS] testFuzz\_convertToExitAssets\_zeroSupply(uint256) (runs: 256, μ: 8622, \~: 8622) \[PASS] test\_convertToExitAssets() (gas: 233940) \[PASS] test\_convertToExitAssets\_zeroSupply() (gas: 13685) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 371.75ms (359.21ms CPU time)

Ran 3 tests for tests/MaplePool.t.sol:WithdrawTests \[PASS] testFuzz\_withdraw\_failNotEnabled(uint256) (runs: 256, μ: 33332, \~: 33332) \[PASS] test\_withdraw\_checkCall() (gas: 83054) \[PASS] test\_withdraw\_failNotEnabled() (gas: 33201) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 93.50ms (87.42ms CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:MaxMintTests \[PASS] testFuzz\_maxMint\_liquidityCap(address,address,uint256,uint256,uint256) (runs: 256, μ: 252092, \~: 251773) \[PASS] test\_maxMint\_liquidityCap\_exchangeRateGtOne() (gas: 312997) \[PASS] test\_maxMint\_liquidityCap\_exchangeRateOneToOne() (gas: 345305) \[PASS] test\_maxMint\_withPermission() (gas: 262557) \[PASS] test\_maxMint\_withoutPermission() (gas: 251091) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 430.65ms (391.89ms CPU time)

Ran 3 tests for tests/MaplePoolDelegateCover.t.sol:MaplePoolDelegateCoverTests \[PASS] test\_moveFunds\_badTransfer() (gas: 61203) \[PASS] test\_moveFunds\_notManager() (gas: 52195) \[PASS] test\_moveFunds\_success() (gas: 61763) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 9.08ms (5.64ms CPU time)

Ran 6 tests for tests/MaplePool.t.sol:DepositTests \[PASS] testFuzz\_deposit\_badApprove(uint256) (runs: 256, μ: 167616, \~: 167469) \[PASS] testFuzz\_deposit\_insufficientBalance(uint256) (runs: 256, μ: 170982, \~: 170413) \[PASS] test\_deposit\_checkCall() (gas: 134081) \[PASS] test\_deposit\_reentrancy() (gas: 186312) \[PASS] test\_deposit\_zeroReceiver() (gas: 111219) \[PASS] test\_deposit\_zeroShares() (gas: 111266) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 309.83ms (295.18ms CPU time)

Ran 2 tests for tests/MaplePoolManager.t.sol:MaxWithdrawTests \[PASS] testFuzz\_maxWithdraw(address) (runs: 256, μ: 17623, \~: 17623) \[PASS] test\_maxWithdraw() (gas: 17294) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 42.49ms (30.34ms CPU time)

Ran 6 tests for tests/MaplePoolDeployer.t.sol:MaplePoolDeployerTests \[PASS] test\_deployPool\_invalidPoolDelegate() (gas: 154104) \[PASS] test\_deployPool\_mismatchingArrays() (gas: 153814) \[PASS] test\_deployPool\_success\_withCoverRequired\_cyclicalWM() (gas: 5844643) \[PASS] test\_deployPool\_success\_withCoverRequired\_queueWM() (gas: 5833486) \[PASS] test\_deployPool\_success\_withoutCoverRequired\_cyclicalWM() (gas: 5781416) \[PASS] test\_deployPool\_transferFailed() (gas: 5677198) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 40.12ms (24.07ms CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:MigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34102) \[PASS] test\_migrate\_invalidPoolDelegateCover() (gas: 39204) \[PASS] test\_migrate\_notFactory() (gas: 30954) \[PASS] test\_migrate\_paused() (gas: 54124) \[PASS] test\_migrate\_success() (gas: 42249) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 14.65ms (871.03µs CPU time)

Ran 4 tests for tests/MaplePoolManager.t.sol:AcceptPoolDelegate\_SetterTests \[PASS] test\_acceptPoolDelegate\_globalsTransferFails() (gas: 61264) \[PASS] test\_acceptPoolDelegate\_notPendingPoolDelegate() (gas: 29878) \[PASS] test\_acceptPoolDelegate\_paused() (gas: 53768) \[PASS] test\_acceptPoolDelegate\_success() (gas: 53416) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 16.57ms (711.63µs CPU time)

Ran 5 tests for tests/MaplePoolManager.t.sol:ProcessRedeemTests \[PASS] test\_processRedeem\_noApproval() (gas: 47228) \[PASS] test\_processRedeem\_notWithdrawalManager() (gas: 36460) \[PASS] test\_processRedeem\_paused() (gas: 52589) \[PASS] test\_processRedeem\_success() (gas: 44048) \[PASS] test\_processRedeem\_success\_notSender() (gas: 81793) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 14.81ms (1.61ms CPU time)

Ran 10 tests for tests/MaplePoolManager.t.sol:RequestFundsTests \[PASS] test\_requestFunds\_insufficientCoverBoundary() (gas: 227392) \[PASS] test\_requestFunds\_invalidFactory() (gas: 51339) \[PASS] test\_requestFunds\_invalidInstance() (gas: 57275) \[PASS] test\_requestFunds\_lockedLiquidityBoundary() (gas: 252885) \[PASS] test\_requestFunds\_notLM() (gas: 57966) \[PASS] test\_requestFunds\_paused() (gas: 36946) \[PASS] test\_requestFunds\_success() (gas: 126667) \[PASS] test\_requestFunds\_zeroAddress() (gas: 82347) \[PASS] test\_requestFunds\_zeroPrincipal() (gas: 45067) \[PASS] test\_requestFunds\_zeroSupply() (gas: 67365) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 34.27ms (16.92ms CPU time)

Ran 8 tests for tests/MaplePoolManager.t.sol:AddStrategy\_SetterTests \[PASS] test\_addStrategy\_aumFailure() (gas: 273254) \[PASS] test\_addStrategy\_invalidFactory() (gas: 43824) \[PASS] test\_addStrategy\_notPoolDelegate() (gas: 51348) \[PASS] test\_addStrategy\_paused() (gas: 42306) \[PASS] test\_addStrategy\_success\_asGovernor() (gas: 251424) \[PASS] test\_addStrategy\_success\_asOperationalAdmin() (gas: 255782) \[PASS] test\_addStrategy\_success\_asPoolDelegate() (gas: 246876) \[PASS] test\_addStrategy\_success\_whenNotConfigured() (gas: 234863) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 55.34ms (37.08ms CPU time)

Ran 3 tests for tests/MaplePoolManager.t.sol:SetActive\_SetterTests \[PASS] test\_setActive\_notGlobals() (gas: 33257) \[PASS] test\_setActive\_paused() (gas: 52165) \[PASS] test\_setActive\_success() (gas: 48165) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 28.10ms (4.84ms CPU time)

Ran 7 tests for tests/MaplePoolManager.t.sol:SetDelegateManagementFeeRate\_SetterTests \[PASS] test\_setDelegateManagementFeeRate\_notPoolDelegate() (gas: 48107) \[PASS] test\_setDelegateManagementFeeRate\_oob() (gas: 76141) \[PASS] test\_setDelegateManagementFeeRate\_paused() (gas: 56208) \[PASS] test\_setDelegateManagementFeeRate\_success\_asGovernor() (gas: 68867) \[PASS] test\_setDelegateManagementFeeRate\_success\_asOperationalAdmin() (gas: 74365) \[PASS] test\_setDelegateManagementFeeRate\_success\_asPoolDelegate() (gas: 66262) \[PASS] test\_setDelegateManagementFeeRate\_success\_whenNotConfigured() (gas: 54207) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 31.04ms (11.07ms CPU time)

Ran 26 tests for tests/MaplePoolManager.t.sol:CanCallTests \[PASS] test\_canCall\_depositWithPermit\_lenderNotAllowed() (gas: 103752) \[PASS] test\_canCall\_depositWithPermit\_liquidityCapExceeded() (gas: 87905) \[PASS] test\_canCall\_depositWithPermit\_notActive() (gas: 49761) \[PASS] test\_canCall\_deposit\_lenderNotAllowed() (gas: 102783) \[PASS] test\_canCall\_deposit\_liquidityCapExceeded() (gas: 87478) \[PASS] test\_canCall\_deposit\_notActive() (gas: 48997) \[PASS] test\_canCall\_invalidFunctionId() (gas: 43359) \[PASS] test\_canCall\_mintWithPermit\_lenderNotAllowed() (gas: 122554) \[PASS] test\_canCall\_mintWithPermit\_liquidityCapExceeded() (gas: 100495) \[PASS] test\_canCall\_mintWithPermit\_notActive() (gas: 72918) \[PASS] test\_canCall\_mint\_lenderNotAllowed() (gas: 121352) \[PASS] test\_canCall\_mint\_liquidityCapExceeded() (gas: 99677) \[PASS] test\_canCall\_mint\_notActive() (gas: 72077) \[PASS] test\_canCall\_paused\_redeem() (gas: 51914) \[PASS] test\_canCall\_paused\_removeShares() (gas: 51958) \[PASS] test\_canCall\_paused\_requestRedeem() (gas: 51958) \[PASS] test\_canCall\_paused\_requestWithdraw() (gas: 51893) \[PASS] test\_canCall\_paused\_transfer() (gas: 51937) \[PASS] test\_canCall\_paused\_withdraw() (gas: 51980) \[PASS] test\_canCall\_redeem() (gas: 41164) \[PASS] test\_canCall\_removeShares() (gas: 40655) \[PASS] test\_canCall\_requestRedeem() (gas: 40642) \[PASS] test\_canCall\_requestWithdraw() (gas: 40721) \[PASS] test\_canCall\_transferFrom\_recipientNotAllowed() (gas: 92746) \[PASS] test\_canCall\_transfer\_recipientNotAllowed() (gas: 91885) \[PASS] test\_canCall\_withdraw() (gas: 41144) Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 87.67ms (63.31ms CPU time)

Ran 3 tests for tests/MaplePoolManager.t.sol:CompleteConfigurationTests \[PASS] test\_completeConfiguration\_alreadyConfigured() (gas: 34571) \[PASS] test\_completeConfiguration\_paused() (gas: 50988) \[PASS] test\_completeConfiguration\_success() (gas: 32142) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 41.38ms (558.26µs CPU time)

Ran 10 tests for tests/MaplePool.t.sol:DepositWithPermitTests \[PASS] testFuzz\_depositWithPermit\_insufficientBalance(uint256) (runs: 256, μ: 219840, \~: 219334) \[PASS] test\_depositWithPermit\_badNonce() (gas: 136062) \[PASS] test\_depositWithPermit\_checkCall() (gas: 154588) \[PASS] test\_depositWithPermit\_notStakerSignature() (gas: 137914) \[PASS] test\_depositWithPermit\_pastDeadline() (gas: 107731) \[PASS] test\_depositWithPermit\_reentrancy() (gas: 235115) \[PASS] test\_depositWithPermit\_replay() (gas: 241103) \[PASS] test\_depositWithPermit\_zeroAddress() (gas: 107184) \[PASS] test\_depositWithPermit\_zeroReceiver() (gas: 160129) \[PASS] test\_depositWithPermit\_zeroShares() (gas: 140380) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 563.76ms (541.63ms CPU time)

Ran 7 tests for tests/MaplePool.t.sol:PreviewDepositTests \[PASS] testFuzz\_previewDeposit(uint256,uint256,uint256) (runs: 256, μ: 186986, \~: 189412) \[PASS] test\_previewDeposit\_decreasedExchangeRate() (gas: 183880) \[PASS] test\_previewDeposit\_increasedExchangeRate() (gas: 183902) \[PASS] test\_previewDeposit\_initialExchangeRate() (gas: 183904) \[PASS] test\_previewDeposit\_initialState() (gas: 23514) \[PASS] test\_previewDeposit\_prematureYield() (gas: 43437) \[PASS] test\_previewDeposit\_worthlessShares() (gas: 171083) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 166.69ms (154.98ms CPU time)

Ran 6 tests for tests/MaplePool.t.sol:MintTests \[PASS] testFuzz\_mint\_badApprove(uint256) (runs: 256, μ: 167858, \~: 167536) \[PASS] testFuzz\_mint\_insufficientBalance(uint256) (runs: 256, μ: 170986, \~: 170437) \[PASS] test\_mint\_checkCall() (gas: 136391) \[PASS] test\_mint\_reentrancy() (gas: 186358) \[PASS] test\_mint\_zeroReceiver() (gas: 111287) \[PASS] test\_mint\_zeroShares() (gas: 111378) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 412.69ms (393.84ms CPU time)

Ran 11 tests for tests/MaplePool.t.sol:MintWithPermitTests \[PASS] testFuzz\_mintWithPermit\_insufficientBalance(uint256) (runs: 256, μ: 220326, \~: 219806) \[PASS] test\_mintWithPermit\_badNonce() (gas: 140701) \[PASS] test\_mintWithPermit\_checkCall() (gas: 155087) \[PASS] test\_mintWithPermit\_insufficientPermit() (gas: 102421) \[PASS] test\_mintWithPermit\_notStakerSignature() (gas: 142515) \[PASS] test\_mintWithPermit\_pastDeadline() (gas: 112329) \[PASS] test\_mintWithPermit\_reentrancy() (gas: 235616) \[PASS] test\_mintWithPermit\_replay() (gas: 265508) \[PASS] test\_mintWithPermit\_zeroAddress() (gas: 111734) \[PASS] test\_mintWithPermit\_zeroReceiver() (gas: 160502) \[PASS] test\_mintWithPermit\_zeroShares() (gas: 160703) Suite result: ok. 11 passed; 0 failed; 0 skipped; finished in 393.32ms (393.48ms CPU time)

Ran 7 tests for tests/MaplePoolMintFrontrunTests.t.sol:MaplePoolMintFrontrunTests \[PASS] testFuzz\_depositFrontRun\_honestOnePercentHarm(uint256) (runs: 256, μ: 6946126, \~: 6946505) \[PASS] testFuzz\_depositFrontRun\_honestTenPercentHarm(uint256) (runs: 256, μ: 6946123, \~: 6946506) \[PASS] testFuzz\_depositFrontRun\_theftThwarted(uint256) (runs: 256, μ: 6954652, \~: 6954762) \[PASS] test\_depositFrontRun\_theft() (gas: 6906977) \[PASS] test\_depositFrontRun\_theftReverted() (gas: 6855007) \[PASS] test\_depositFrontRun\_theftThwarted() (gas: 6952346) \[PASS] test\_depositFrontRun\_zeroShares() (gas: 6895180) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.84s (2.54s CPU time)

Ran 14 tests for tests/ERC20.t.sol:Pool\_ERC20PermitTest \[PASS] testFuzz\_permit(uint256) (runs: 256, μ: 95838, \~: 96157) \[PASS] testFuzz\_permit\_multiple(bytes32) (runs: 256, μ: 374236, \~: 374237) \[PASS] test\_domainSeparator() (gas: 12213) \[PASS] test\_initialState() (gas: 20878) \[PASS] test\_permit\_badS() (gas: 36122) \[PASS] test\_permit\_badV() (gas: 2071353) \[PASS] test\_permit\_differentSpender() (gas: 64699) \[PASS] test\_permit\_differentVerifier() (gas: 1192833) \[PASS] test\_permit\_earlyNonce() (gas: 64918) \[PASS] test\_permit\_ownerSignerMismatch() (gas: 64877) \[PASS] test\_permit\_replay() (gas: 102897) \[PASS] test\_permit\_withExpiry() (gas: 113609) \[PASS] test\_permit\_zeroAddress() (gas: 64684) \[PASS] test\_typehash() (gas: 8906) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 2.52s (2.57s CPU time)

Ran 14 tests for tests/ERC20.t.sol:Pool\_ERC20Test \[PASS] invariant\_metadata() (runs: 256, calls: 128000, reverts: 69721) \[PASS] testFuzz\_approve(address,uint256) (runs: 256, μ: 36960, \~: 37271) \[PASS] testFuzz\_burn(address,uint256,uint256) (runs: 256, μ: 32536, \~: 2094) \[PASS] testFuzz\_decreaseAllowance\_infiniteApproval(address,uint256) (runs: 256, μ: 45931, \~: 45931) \[PASS] testFuzz\_decreaseAllowance\_nonInfiniteApproval(address,uint256,uint256) (runs: 256, μ: 50202, \~: 50151) \[PASS] testFuzz\_increaseAllowance(address,uint256,uint256) (runs: 256, μ: 50267, \~: 50204) \[PASS] testFuzz\_metadata(string,string,uint8) (runs: 256, μ: 1285517, \~: 1288546) \[PASS] testFuzz\_mint(address,uint256) (runs: 256, μ: 59618, \~: 59929) \[PASS] testFuzz\_transfer(address,uint256) (runs: 256, μ: 82865, \~: 83021) \[PASS] testFuzz\_transferFrom(address,uint256,uint256) (runs: 256, μ: 516689, \~: 517187) \[PASS] testFuzz\_transferFrom\_infiniteApproval(address,uint256) (runs: 256, μ: 519785, \~: 519941) \[PASS] testFuzz\_transferFrom\_insufficientAllowance(address,uint256) (runs: 256, μ: 508441, \~: 508237) \[PASS] testFuzz\_transferFrom\_insufficientBalance(address,uint256) (runs: 256, μ: 489789, \~: 489653) \[PASS] testFuzz\_transfer\_insufficientBalance(address,uint256) (runs: 256, μ: 498827, \~: 498828) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 16.37s (18.20s CPU time)

Ran 46 test suites in 16.40s (25.35s CPU time): 292 tests passed, 0 failed, 0 skipped (292 total tests)

## pool-permission-manager

\[PASS] test\_fallback\_noCode() (gas: 27165) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.09ms (251.57µs CPU time)

Ran 4 tests for tests/unit/SetPermisionAdmin.t.sol:SetPermissionAdminTests \[PASS] test\_setPermissionAdmin\_protocolPaused() (gas: 29220) \[PASS] test\_setPermissionAdmin\_success() (gas: 56673) \[PASS] test\_setPermissionAdmin\_success\_operationalAdmin() (gas: 59970) \[PASS] test\_setPermissionAdmin\_unauthorized() (gas: 28863) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.04ms (552.96µs CPU time)

Ran 2 tests for tests/unit/Initialize.t.sol:InitializeTests \[PASS] test\_initializer\_notGovernor() (gas: 21620) \[PASS] test\_initializer\_success() (gas: 43137) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.30ms (313.43µs CPU time)

Ran 8 tests for tests/unit/SetLenderAllowlist.t.sol:SetLenderAllowlistTests \[PASS] test\_setLenderAllowlist\_batch() (gas: 248434) \[PASS] test\_setLenderAllowlist\_empty() (gas: 40724) \[PASS] test\_setLenderAllowlist\_mismatch() (gas: 85836) \[PASS] test\_setLenderAllowlist\_protocolPaused() (gas: 39426) \[PASS] test\_setLenderAllowlist\_success\_governor() (gas: 162474) \[PASS] test\_setLenderAllowlist\_success\_operationalAdmin() (gas: 165792) \[PASS] test\_setLenderAllowlist\_success\_poolDelegate() (gas: 160095) \[PASS] test\_setLenderAllowlist\_unauthorized() (gas: 55362) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 6.75ms (2.94ms CPU time)

Ran 2 tests for tests/unit/SetImplementation.t.sol:SetImplementationTests \[PASS] test\_setImplementation\_success() (gas: 2901617) \[PASS] test\_setImplementation\_unauthorized() (gas: 11612) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.42ms (360.38µs CPU time)

Ran 8 tests for tests/unit/SetLenderBitmaps.t.sol:SetLenderBitmapsTests \[PASS] test\_setLenderBitmaps\_batch() (gas: 304199) \[PASS] test\_setLenderBitmaps\_empty() (gas: 32799) \[PASS] test\_setLenderBitmaps\_mismatch() (gas: 77936) \[PASS] test\_setLenderBitmaps\_protocolPaused() (gas: 34012) \[PASS] test\_setLenderBitmaps\_success() (gas: 153072) \[PASS] test\_setLenderBitmaps\_success\_asGovernor() (gas: 155539) \[PASS] test\_setLenderBitmaps\_success\_asOperationalAdmin() (gas: 158881) \[PASS] test\_setLenderBitmaps\_unauthorized() (gas: 35877) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 15.27ms (3.56ms CPU time)

Ran 8 tests for tests/unit/SetPoolBitmaps.t.sol:SetPoolBitmapsTests \[PASS] test\_setPoolBitmaps\_batch() (gas: 386761) \[PASS] test\_setPoolBitmaps\_empty() (gas: 37691) \[PASS] test\_setPoolBitmaps\_mismatch() (gas: 82725) \[PASS] test\_setPoolBitmaps\_protocolPaused() (gas: 36527) \[PASS] test\_setPoolBitmaps\_success\_governor() (gas: 160814) \[PASS] test\_setPoolBitmaps\_success\_operationalAdmin() (gas: 164156) \[PASS] test\_setPoolBitmaps\_success\_poolDelegate() (gas: 158504) \[PASS] test\_setPoolBitmaps\_unauthorized() (gas: 52353) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 101.80ms (3.63ms CPU time)

Ran 8 tests for tests/unit/SetPoolPermissionLevel.t.sol:SetPoolPermissionLevelTests \[PASS] testFuzz\_setPoolPermissionLevel(uint256,uint256) (runs: 256, μ: 73301, \~: 77387) \[PASS] test\_setPoolPermissionLevel\_invalid() (gas: 34833) \[PASS] test\_setPoolPermissionLevel\_protocolPaused() (gas: 31346) \[PASS] test\_setPoolPermissionLevel\_public() (gas: 64124) \[PASS] test\_setPoolPermissionLevel\_success\_governor() (gas: 63625) \[PASS] test\_setPoolPermissionLevel\_success\_operationalAdmin() (gas: 66986) \[PASS] test\_setPoolPermissionLevel\_success\_poolDelegate() (gas: 61246) \[PASS] test\_setPoolPermissionLevel\_unauthorized() (gas: 47259) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 126.39ms (125.99ms CPU time)

Ran 9 tests for tests/unit/ConfigurePool.t.sol:ConfigurePoolTests \[PASS] test\_configurePool\_invalid() (gas: 40201) \[PASS] test\_configurePool\_lengthMismatch() (gas: 85219) \[PASS] test\_configurePool\_noFunctionIds() (gas: 40253) \[PASS] test\_configurePool\_protocolPaused() (gas: 36780) \[PASS] test\_configurePool\_public() (gas: 69601) \[PASS] test\_configurePool\_success\_governor() (gas: 190727) \[PASS] test\_configurePool\_success\_operationalAdmin() (gas: 194003) \[PASS] test\_configurePool\_success\_poolDelegate() (gas: 188373) \[PASS] test\_configurePool\_unauthorized() (gas: 52693) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 130.08ms (2.19ms CPU time)

Ran 22 tests for tests/unit/HasPermission.t.sol:HasPermissionTests \[PASS] testFuzz\_hasPermission\_functionLevel\_multiLender\_whitelisted(address\[]) (runs: 256, μ: 6876862, \~: 6463854) \[PASS] testFuzz\_hasPermission\_multiLender\_private\_whitelisted(address,address\[],bytes32) (runs: 256, μ: 7152130, \~: 6968816) \[PASS] testFuzz\_hasPermission\_multiLender\_public\_(address,address\[],bytes32) (runs: 256, μ: 214905, \~: 207924) \[PASS] testFuzz\_hasPermission\_private\_unauthorized(address,address,bytes32) (runs: 256, μ: 17811, \~: 17811) \[PASS] testFuzz\_hasPermission\_private\_whitelisted(address,address,bytes32) (runs: 256, μ: 162940, \~: 162940) \[PASS] testFuzz\_hasPermission\_public(address,address,bytes32) (runs: 256, μ: 65200, \~: 65200) \[PASS] test\_hasPermission\_functionLevel\_match() (gas: 274433) \[PASS] test\_hasPermission\_functionLevel\_mismatch() (gas: 274488) \[PASS] test\_hasPermission\_functionLevel\_whitelisted() (gas: 190750) \[PASS] test\_hasPermission\_functionLevel\_zeroFunctionBitmap\_zeroLenderBitmap() (gas: 70352) \[PASS] test\_hasPermission\_functionLevel\_zeroLenderBitmap() (gas: 193505) \[PASS] test\_hasPermission\_multiLender\_functionLevel(address\[]) (runs: 256, μ: 9965895, \~: 9504754) \[PASS] test\_hasPermission\_multiLender\_noLenders() (gas: 173029) \[PASS] test\_hasPermission\_poolLevel\_match() (gas: 254433) \[PASS] test\_hasPermission\_poolLevel\_mismatch() (gas: 254509) \[PASS] test\_hasPermission\_poolLevel\_multiLender\_mismatch() (gas: 327610) \[PASS] test\_hasPermission\_poolLevel\_whitelisted() (gas: 190752) \[PASS] test\_hasPermission\_poolLevel\_zeroLenderBitmap() (gas: 173482) \[PASS] test\_hasPermission\_poolLevel\_zeroLenderBitmap\_zeroPoolBitmap() (gas: 132950) \[PASS] test\_hasPermission\_private\_unauthorized() (gas: 23479) \[PASS] test\_hasPermission\_private\_whitelisted() (gas: 161411) \[PASS] test\_hasPermission\_public\_success() (gas: 63493) Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 3.51s (10.95s CPU time)

Ran 10 test suites in 3.52s (3.90s CPU time): 72 tests passed, 0 failed, 0 skipped (72 total tests)

## strategies

Ran 3 tests for tests/unit/SetImplementation.t.sol:MapleBasicStrategySetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30369) \[PASS] test\_setImplementation\_protocolPaused() (gas: 36338) \[PASS] test\_setImplementation\_success() (gas: 42162) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.81ms (554.36µs CPU time)

Ran 6 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyDeactivateStrategyTests \[PASS] test\_deactivateStrategy\_failIfAlreadyInactive() (gas: 67346) \[PASS] test\_deactivateStrategy\_failIfNotProtocolAdmin() (gas: 146213) \[PASS] test\_deactivateStrategy\_failReentrancy() (gas: 20739) \[PASS] test\_deactivateStrategy\_failWhenPaused() (gas: 38954) \[PASS] test\_deactivateStrategy\_successWhenActive() (gas: 68247) \[PASS] test\_deactivateStrategy\_successWhenImpaired() (gas: 68313) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 5.96ms (1.46ms CPU time)

Ran 4 tests for tests/unit/AaveStrategy.t.sol:ClaimRewardsTests \[PASS] test\_claimRewards\_failIfNotProtocolAdmin() (gas: 163050) \[PASS] test\_claimRewards\_failReentrancy() (gas: 30962) \[PASS] test\_claimRewards\_failWhenPaused() (gas: 49132) \[PASS] test\_claimRewards\_success() (gas: 82923) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 6.05ms (1.63ms CPU time)

Ran 14 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyAccrueFeesTests \[PASS] test\_accrueFees\_minimumGain\_realisticFeeRate() (gas: 103409) \[PASS] test\_accrueFees\_minimumGain\_zeroFeeRate() (gas: 80876) \[PASS] test\_accrueFees\_minimumLoss\_realisticFeeRate() (gas: 102785) \[PASS] test\_accrueFees\_minimumLoss\_zeroFeeRate() (gas: 80911) \[PASS] test\_accrueFees\_normalGain\_maximumFeeRate() (gas: 124170) \[PASS] test\_accrueFees\_normalGain\_minimumFeeRate() (gas: 124371) \[PASS] test\_accrueFees\_normalGain\_realisticFeeRate() (gas: 126692) \[PASS] test\_accrueFees\_normalGain\_zeroFeeRate() (gas: 82997) \[PASS] test\_accrueFees\_normalLoss\_realisticFeeRate() (gas: 104842) \[PASS] test\_accrueFees\_normalLoss\_zeroFeeRate() (gas: 82943) \[PASS] test\_accrueFees\_totalLoss\_realisticFeeRate() (gas: 82704) \[PASS] test\_accrueFees\_totalLoss\_zeroFeeRate() (gas: 60806) \[PASS] test\_accrueFees\_unfundedStrategy\_realisticFeeRate() (gas: 60784) \[PASS] test\_accrueFees\_unfundedStrategy\_zeroFeeRate() (gas: 38954) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 8.03ms (2.62ms CPU time)

Ran 8 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyFundStrategyTests \[PASS] test\_fundStrategy\_successWithPoolDelegate() (gas: 130164) \[PASS] test\_fundStrategy\_successWithStrategyManager() (gas: 133299) \[PASS] test\_fund\_failIfImpaired() (gas: 70260) \[PASS] test\_fund\_failIfInactive() (gas: 70260) \[PASS] test\_fund\_failIfInvalidAavePool() (gas: 68255) \[PASS] test\_fund\_failIfNonManager() (gas: 56897) \[PASS] test\_fund\_failReentrancy() (gas: 23183) \[PASS] test\_fund\_failWhenPaused() (gas: 41418) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 9.50ms (2.16ms CPU time)

Ran 6 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyImpairStrategyTests \[PASS] test\_impairStrategy\_failIfAlreadyImpaired() (gas: 46838) \[PASS] test\_impairStrategy\_failIfNotProtocolAdmin() (gas: 113236) \[PASS] test\_impairStrategy\_failReentrancy() (gas: 17164) \[PASS] test\_impairStrategy\_failWhenPaused() (gas: 33855) \[PASS] test\_impairStrategy\_successWhenActive() (gas: 47469) \[PASS] test\_impairStrategy\_successWhenInactive() (gas: 47449) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 15.30ms (1.37ms CPU time)

Ran 3 tests for tests/unit/SetImplementation.t.sol:MapleCoreStrategySetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30391) \[PASS] test\_setImplementation\_protocolPaused() (gas: 36360) \[PASS] test\_setImplementation\_success() (gas: 42118) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 6.11ms (1.36ms CPU time)

Ran 6 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyImpairStrategyTests \[PASS] test\_impairStrategy\_failIfAlreadyImpaired() (gas: 67279) \[PASS] test\_impairStrategy\_failIfNotProtocolAdmin() (gas: 146143) \[PASS] test\_impairStrategy\_failReentrancy() (gas: 20695) \[PASS] test\_impairStrategy\_failWhenPaused() (gas: 38844) \[PASS] test\_impairStrategy\_successWhenActive() (gas: 68268) \[PASS] test\_impairStrategy\_successWhenInactive() (gas: 68248) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 5.71ms (1.37ms CPU time)

Ran 3 tests for tests/unit/SetImplementation.t.sol:MapleSkyStrategySetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30369) \[PASS] test\_setImplementation\_protocolPaused() (gas: 36338) \[PASS] test\_setImplementation\_success() (gas: 42098) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.25ms (519.74µs CPU time)

Ran 8 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyReactivateStrategyTests \[PASS] test\_reactivateStrategy\_failIfAlreadyActive() (gas: 45817) \[PASS] test\_reactivateStrategy\_failIfNotProtocolAdmin() (gas: 120733) \[PASS] test\_reactivateStrategy\_failReentrancy() (gas: 21136) \[PASS] test\_reactivateStrategy\_failWhenPaused() (gas: 39306) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withAccountingUpdate() (gas: 65062) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withoutAccountingUpdate() (gas: 53963) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withAccountingUpdate() (gas: 65063) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withoutAccountingUpdate() (gas: 53941) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 7.73ms (2.33ms CPU time)

Ran 18 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategySetStrategyFeeRateTests \[PASS] test\_setStrategyFeeRate\_failIfImpaired() (gas: 69873) \[PASS] test\_setStrategyFeeRate\_failIfInactive() (gas: 69873) \[PASS] test\_setStrategyFeeRate\_failReentrancy() (gas: 23203) \[PASS] test\_setStrategyFeeRate\_failWhenInvalidStrategyFeeRate() (gas: 46041) \[PASS] test\_setStrategyFeeRate\_failWhenNotAdmin() (gas: 51915) \[PASS] test\_setStrategyFeeRate\_failWhenPaused() (gas: 41440) \[PASS] test\_setStrategyFeeRate\_normalGain\_1e6() (gas: 154092) \[PASS] test\_setStrategyFeeRate\_normalGain\_realisticFeeRate() (gas: 156636) \[PASS] test\_setStrategyFeeRate\_normalGain\_zeroFeeRate() (gas: 146396) \[PASS] test\_setStrategyFeeRate\_normalLoss\_realisticFeeRate() (gas: 148362) \[PASS] test\_setStrategyFeeRate\_normalLoss\_zeroFeeRate() (gas: 146411) \[PASS] test\_setStrategyFeeRate\_successWithGovernor() (gas: 88634) \[PASS] test\_setStrategyFeeRate\_successWithOperationalAdmin() (gas: 92919) \[PASS] test\_setStrategyFeeRate\_successWithPoolDelegate() (gas: 84104) \[PASS] test\_setStrategyFeeRate\_totalLoss\_realisticFeeRate() (gas: 103963) \[PASS] test\_setStrategyFeeRate\_totalLoss\_zeroFeeRate() (gas: 103962) \[PASS] test\_setStrategyFeeRate\_unfundedStrategy\_realisticFeeRate() (gas: 103986) \[PASS] test\_setStrategyFeeRate\_unfundedStrategy\_zeroFeeRate() (gas: 102011) Suite result: ok. 18 passed; 0 failed; 0 skipped; finished in 9.88ms (5.13ms CPU time)

Ran 6 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyAccrueFeesTests \[PASS] test\_accrueFees\_strategyFeeOneHundredPercent() (gas: 212580) \[PASS] test\_accrueFees\_strategyFeeRoundedDown() (gas: 128010) \[PASS] test\_accrueFees\_totalAssetsDecreased() (gas: 84611) \[PASS] test\_accrueFees\_totalAssetsIncreased() (gas: 211910) \[PASS] test\_accrueFees\_zeroStrategyFeeRateAndNoChangeInTotalAssets() (gas: 43936) \[PASS] test\_accrueFees\_zeroStrategyFeeRate\_totalAssetsIncreased() (gas: 112186) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 13.45ms (3.12ms CPU time)

Ran 7 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyPushAssetsToPoolTests \[PASS] test\_pushAssetsToPool\_failERC20Transfer() (gas: 59225) \[PASS] test\_pushAssetsToPool\_paused() (gas: 33855) \[PASS] test\_pushAssetsToPool\_reentrancy() (gas: 17164) \[PASS] test\_pushAssetsToPool\_successWhenImpaired() (gas: 95894) \[PASS] test\_pushAssetsToPool\_successWhenInactive() (gas: 95873) \[PASS] test\_pushAssetsToPool\_successWithStrategyManager() (gas: 87557) \[PASS] test\_pushAssetsToPool\_unauthorized() (gas: 49333) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 32.71ms (23.40ms CPU time)

Ran 6 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyDeactivateStrategyTests \[PASS] test\_deactivateStrategy\_failIfAlreadyInactive() (gas: 63903) \[PASS] test\_deactivateStrategy\_failIfNotProtocolAdmin() (gas: 138360) \[PASS] test\_deactivateStrategy\_failReentrancy() (gas: 17274) \[PASS] test\_deactivateStrategy\_failWhenPaused() (gas: 33965) \[PASS] test\_deactivateStrategy\_successWhenActive() (gas: 64344) \[PASS] test\_deactivateStrategy\_successWhenImpaired() (gas: 64410) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.66ms (1.40ms CPU time)

Ran 6 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyDeactivateStrategyTests \[PASS] test\_deactivateStrategy\_failIfAlreadyInactive() (gas: 46839) \[PASS] test\_deactivateStrategy\_failIfNotProtocolAdmin() (gas: 113060) \[PASS] test\_deactivateStrategy\_failReentrancy() (gas: 17142) \[PASS] test\_deactivateStrategy\_failWhenPaused() (gas: 33899) \[PASS] test\_deactivateStrategy\_successWhenActive() (gas: 47382) \[PASS] test\_deactivateStrategy\_successWhenImpaired() (gas: 47448) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 6.63ms (1.44ms CPU time)

Ran 6 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyReactivateStrategyTests \[PASS] test\_reactivateStrategy\_failIfAlreadyActive() (gas: 46880) \[PASS] test\_reactivateStrategy\_failIfNotProtocolAdmin() (gas: 113145) \[PASS] test\_reactivateStrategy\_failReentrancy() (gas: 17098) \[PASS] test\_reactivateStrategy\_failWhenPaused() (gas: 33921) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withAccountingUpdate() (gas: 84956) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withAccountingUpdate() (gas: 84957) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.53ms (9.50ms CPU time)

Ran 8 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyFundTests \[PASS] test\_fund\_failIfImpaired() (gas: 64862) \[PASS] test\_fund\_failIfInactive() (gas: 64862) \[PASS] test\_fund\_failIfInvalidStrategyVault() (gas: 59154) \[PASS] test\_fund\_failIfNonManager() (gas: 49843) \[PASS] test\_fund\_failReentrancy() (gas: 4117637) \[PASS] test\_fund\_failWhenPaused() (gas: 34452) \[PASS] test\_fund\_successWithPoolDelegate() (gas: 115688) \[PASS] test\_fund\_successWithStrategyManager() (gas: 118867) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 12.44ms (6.86ms CPU time)

Ran 10 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyFundStrategyTests \[PASS] test\_fundStrategy\_with\_max\_value() (gas: 128645) \[PASS] test\_fundStrategy\_with\_zero\_amount() (gas: 100268) \[PASS] test\_fund\_failIfImpaired() (gas: 47842) \[PASS] test\_fund\_failIfInactive() (gas: 47820) \[PASS] test\_fund\_failIfNotStrategyManager() (gas: 49865) \[PASS] test\_fund\_failInvalidStrategyVault() (gas: 54962) \[PASS] test\_fund\_failReentrancy() (gas: 17675) \[PASS] test\_fund\_failWhenPaused() (gas: 34452) \[PASS] test\_fund\_successWithPoolDelegate() (gas: 133955) \[PASS] test\_fund\_successWithStrategyManager() (gas: 141918) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 9.88ms (2.98ms CPU time)

Ran 6 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyDeactivateStrategyTests \[PASS] test\_deactivateStrategy\_failIfAlreadyInactive() (gas: 63837) \[PASS] test\_deactivateStrategy\_failIfNotProtocolAdmin() (gas: 138220) \[PASS] test\_deactivateStrategy\_failReentrancy() (gas: 17230) \[PASS] test\_deactivateStrategy\_failWhenPaused() (gas: 33943) \[PASS] test\_deactivateStrategy\_successWhenActive() (gas: 64323) \[PASS] test\_deactivateStrategy\_successWhenImpaired() (gas: 64389) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 6.18ms (1.25ms CPU time)

Ran 6 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyImpairStrategyTests \[PASS] test\_impairStrategy\_failIfAlreadyImpaired() (gas: 63836) \[PASS] test\_impairStrategy\_failIfNotProtocolAdmin() (gas: 138290) \[PASS] test\_impairStrategy\_failReentrancy() (gas: 17230) \[PASS] test\_impairStrategy\_failWhenPaused() (gas: 33855) \[PASS] test\_impairStrategy\_successWhenActive() (gas: 64365) \[PASS] test\_impairStrategy\_successWhenInactive() (gas: 64345) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 9.29ms (1.52ms CPU time)

Ran 4 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyRemoveSharesByIdTests \[PASS] test\_removeSharesById\_failIfNotAuthorized() (gas: 54227) \[PASS] test\_removeSharesById\_failReentrancy() (gas: 24683) \[PASS] test\_removeSharesById\_failWhenPaused() (gas: 41351) \[PASS] test\_removeSharesById\_success() (gas: 62059) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 11.03ms (4.74ms CPU time)

Ran 9 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyFundStrategyTests \[PASS] test\_fund\_failIfImpaired() (gas: 65188) \[PASS] test\_fund\_failIfInactive() (gas: 65166) \[PASS] test\_fund\_failIfNotStrategyManager() (gas: 50257) \[PASS] test\_fund\_failInvalidStrategyVault() (gas: 57303) \[PASS] test\_fund\_failMinimumSharesOut() (gas: 65060) \[PASS] test\_fund\_failReentrancy() (gas: 18111) \[PASS] test\_fund\_failWhenPaused() (gas: 34844) \[PASS] test\_fund\_successWithPoolDelegate() (gas: 140398) \[PASS] test\_fund\_successWithStrategyManager() (gas: 148361) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 7.57ms (2.60ms CPU time)

Ran 8 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyReactivateStrategyTests \[PASS] test\_reactivateStrategy\_failIfAlreadyActive() (gas: 42349) \[PASS] test\_reactivateStrategy\_failIfNotProtocolAdmin() (gas: 110817) \[PASS] test\_reactivateStrategy\_failReentrancy() (gas: 17646) \[PASS] test\_reactivateStrategy\_failWhenPaused() (gas: 34292) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withAccountingUpdate() (gas: 79964) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withoutAccountingUpdate() (gas: 49559) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withAccountingUpdate() (gas: 79965) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withoutAccountingUpdate() (gas: 49537) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 10.95ms (2.44ms CPU time)

Ran 6 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyImpairStrategyTests \[PASS] test\_impairStrategy\_failIfAlreadyImpaired() (gas: 63748) \[PASS] test\_impairStrategy\_failIfNotProtocolAdmin() (gas: 138079) \[PASS] test\_impairStrategy\_failReentrancy() (gas: 17164) \[PASS] test\_impairStrategy\_failWhenPaused() (gas: 33811) \[PASS] test\_impairStrategy\_successWhenActive() (gas: 64322) \[PASS] test\_impairStrategy\_successWhenInactive() (gas: 64302) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.90ms (6.33ms CPU time)

Ran 6 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyRemoveSharesTests \[PASS] test\_removeShares\_failIfNotStrategyManager() (gas: 49886) \[PASS] test\_removeShares\_failReentrancy() (gas: 17696) \[PASS] test\_removeShares\_failWhenPaused() (gas: 34451) \[PASS] test\_removeShares\_successWithMaximum() (gas: 48220) \[PASS] test\_removeShares\_successWithMinimum() (gas: 48577) \[PASS] test\_removeShares\_zeroAmount() (gas: 39252) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 8.54ms (1.17ms CPU time)

Ran 8 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyReactivateStrategyTests \[PASS] test\_reactivateStrategy\_failIfAlreadyActive() (gas: 42305) \[PASS] test\_reactivateStrategy\_failIfNotProtocolAdmin() (gas: 110729) \[PASS] test\_reactivateStrategy\_failReentrancy() (gas: 17624) \[PASS] test\_reactivateStrategy\_failWhenPaused() (gas: 34292) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withAccountingUpdate() (gas: 64559) \[PASS] test\_reactivateStrategy\_successWhenImpaired\_withoutAccountingUpdate() (gas: 49538) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withAccountingUpdate() (gas: 64560) \[PASS] test\_reactivateStrategy\_successWhenInactive\_withoutAccountingUpdate() (gas: 49516) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 10.36ms (2.14ms CPU time)

Ran 8 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyRequestWithdrawFromStrategyTests \[PASS] test\_requestWithdrawFromStrategy\_failIfNotStrategyManager() (gas: 51883) \[PASS] test\_requestWithdrawFromStrategy\_failIfZeroAssets() (gas: 39296) \[PASS] test\_requestWithdrawFromStrategy\_failReentrancy() (gas: 3463628) \[PASS] test\_requestWithdrawFromStrategy\_failWhenPaused() (gas: 36339) \[PASS] test\_requestWithdrawFromStrategy\_successWhenImpaired() (gas: 110367) \[PASS] test\_requestWithdrawFromStrategy\_successWhenInactive() (gas: 71998) \[PASS] test\_requestWithdrawFromStrategy\_successWithPoolDelegate() (gas: 105895) \[PASS] test\_requestWithdrawFromStrategy\_successWithStrategyManager() (gas: 107397) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 9.77ms (3.60ms CPU time)

Ran 8 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategySetPsmTests \[PASS] test\_setPsm\_failIfInvalidGem() (gas: 57288) \[PASS] test\_setPsm\_failIfInvalidUsds() (gas: 60369) \[PASS] test\_setPsm\_failIfNotProtocolAdmin() (gas: 331573) \[PASS] test\_setPsm\_failIfNotValidInstance() (gas: 69928) \[PASS] test\_setPsm\_failIfZeroAddress() (gas: 38783) \[PASS] test\_setPsm\_failReentrancy() (gas: 19844) \[PASS] test\_setPsm\_failWhenPaused() (gas: 36579) \[PASS] test\_setPsm\_success() (gas: 174068) Suite result: ok. 8 passed; 0 failed; 0 skipped; finished in 22.06ms (14.98ms CPU time)

Ran 9 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategySetStrategyFeeRateTests \[PASS] test\_setStrategyFeeRate\_failIfImpaired() (gas: 64342) \[PASS] test\_setStrategyFeeRate\_failIfInactive() (gas: 64299) \[PASS] test\_setStrategyFeeRate\_failIfNotProtocolAdmin() (gas: 162957) \[PASS] test\_setStrategyFeeRate\_failInvalidStrategyFeeRate() (gas: 43296) \[PASS] test\_setStrategyFeeRate\_failReentrancy() (gas: 17739) \[PASS] test\_setStrategyFeeRate\_failWhenPaused() (gas: 34452) \[PASS] test\_setStrategyFeeRate\_nonZeroPriorFeeRate\_totalAssetsIncreased() (gas: 172859) \[PASS] test\_setStrategyFeeRate\_zeroPriorFeeRateAndTotalAssets() (gas: 87207) \[PASS] test\_setStrategyFeeRate\_zeroPriorFeeRate\_totalAssetsIncreased() (gas: 158638) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 15.10ms (3.35ms CPU time)

Ran 9 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyWithdrawFromStrategyTests \[PASS] test\_withdrawFromStrategy\_failIfLowAssets() (gas: 65578) \[PASS] test\_withdrawFromStrategy\_failIfNonManager() (gas: 56850) \[PASS] test\_withdrawFromStrategy\_failIfZeroAssets() (gas: 44198) \[PASS] test\_withdrawFromStrategy\_failReentrancy() (gas: 23224) \[PASS] test\_withdrawFromStrategy\_failWhenPaused() (gas: 41374) \[PASS] test\_withdrawFromStrategy\_successWhenImpaired() (gas: 102820) \[PASS] test\_withdrawFromStrategy\_successWhenInactive() (gas: 102821) \[PASS] test\_withdrawFromStrategy\_successWithPoolDelegate() (gas: 94801) \[PASS] test\_withdrawFromStrategy\_successWithStrategyManager() (gas: 98024) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 8.42ms (2.48ms CPU time)

Ran 10 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategySetStrategyFeeRateTests \[PASS] test\_setStrategyFeeRate\_failIfImpaired() (gas: 64386) \[PASS] test\_setStrategyFeeRate\_failIfInactive() (gas: 64431) \[PASS] test\_setStrategyFeeRate\_failIfNotProtocolAdmin() (gas: 189163) \[PASS] test\_setStrategyFeeRate\_failInvalidStrategyFeeRate() (gas: 41107) \[PASS] test\_setStrategyFeeRate\_failReentrancy() (gas: 17783) \[PASS] test\_setStrategyFeeRate\_failWhenPaused() (gas: 34474) \[PASS] test\_setStrategyFeeRate\_nonZeroPriorFeeRate\_totalAssetsIncreasedWithTout() (gas: 263450) \[PASS] test\_setStrategyFeeRate\_nonZeroPriorFeeRate\_totalAssetsIncreasedWithZeroTout() (gas: 252817) \[PASS] test\_setStrategyFeeRate\_zeroPriorFeeRateAndTotalAssetsAndZeroTout() (gas: 105388) \[PASS] test\_setStrategyFeeRate\_zeroPriorFeeRate\_totalAssetsIncreasedWithTout() (gas: 186699) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 21.12ms (7.14ms CPU time)

Ran 7 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyAccrueFeesTests \[PASS] test\_accrueFees\_strategyFeeOneHundredPercent() (gas: 127646) \[PASS] test\_accrueFees\_strategyFeeRoundedDown() (gas: 101126) \[PASS] test\_accrueFees\_totalAssetsDecreased() (gas: 63252) \[PASS] test\_accrueFees\_totalAssetsIncreased() (gas: 124915) \[PASS] test\_accrueFees\_zeroStrategyFeeRateAndNoChangeInTotalAssets() (gas: 30829) \[PASS] test\_accrueFees\_zeroStrategyFeeRate\_totalAssetsIncreased() (gas: 84552) \[PASS] test\_accrueFees\_zeroStrategyFeeRate\_totalAssetsUnchanged() (gas: 105865) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 8.94ms (2.62ms CPU time)

Ran 10 tests for tests/unit/CreateInstance.t.sol:MapleCoreStrategyCreateInstanceTests \[PASS] test\_createInstance\_invalidCaller() (gas: 415205) \[PASS] test\_createInstance\_invalidPoolManagerFactory() (gas: 185268) \[PASS] test\_createInstance\_invalidPoolManagerInstance() (gas: 181940) \[PASS] test\_createInstance\_invalidStrategyAsset() (gas: 830708) \[PASS] test\_createInstance\_invalidVaultFactory() (gas: 234693) \[PASS] test\_createInstance\_invalidVaultInstance() (gas: 201127) \[PASS] test\_createInstance\_invalidWithdrawalManagerFactory() (gas: 279560) \[PASS] test\_createInstance\_invalidWithdrawalManagerInstance() (gas: 217722) \[PASS] test\_createInstance\_success() (gas: 421493) \[PASS] test\_createInstance\_zeroPool() (gas: 157593) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 17.01ms (11.75ms CPU time)

Ran 4 tests for tests/unit/Migrate.t.sol:MapleBasicStrategyMigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34308) \[PASS] test\_migrate\_notFactory() (gas: 30803) \[PASS] test\_migrate\_protocolPaused() (gas: 36774) \[PASS] test\_migrate\_success() (gas: 41443) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 6.05ms (674.99µs CPU time)

Ran 10 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyWithdrawFromStrategyTests \[PASS] test\_withdrawFromStrategy\_failIfLowAssets() (gas: 67739) \[PASS] test\_withdrawFromStrategy\_failIfNotStrategyManager() (gas: 52125) \[PASS] test\_withdrawFromStrategy\_failIfSlippage() (gas: 75689) \[PASS] test\_withdrawFromStrategy\_failIfZeroAssets() (gas: 39517) \[PASS] test\_withdrawFromStrategy\_failReentrancy() (gas: 3223776) \[PASS] test\_withdrawFromStrategy\_failWhenPaused() (gas: 36715) \[PASS] test\_withdrawFromStrategy\_successWhenImpaired() (gas: 95306) \[PASS] test\_withdrawFromStrategy\_successWhenInactive() (gas: 95307) \[PASS] test\_withdrawFromStrategy\_successWithPoolDelegate() (gas: 96013) \[PASS] test\_withdrawFromStrategy\_successWithStrategyManager() (gas: 97625) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 11.73ms (6.90ms CPU time)

Ran 4 tests for tests/unit/Migrate.t.sol:MapleAaveStrategyMigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34308) \[PASS] test\_migrate\_notFactory() (gas: 30803) \[PASS] test\_migrate\_protocolPaused() (gas: 36774) \[PASS] test\_migrate\_success() (gas: 41487) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 8.50ms (656.25µs CPU time)

Ran 15 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyViewFunctionTests \[PASS] test\_aavePool() (gas: 18336) \[PASS] test\_aaveToken() (gas: 18250) \[PASS] test\_factory() (gas: 18373) \[PASS] test\_fundsAsset() (gas: 18295) \[PASS] test\_globals() (gas: 23964) \[PASS] test\_governor() (gas: 29640) \[PASS] test\_implementation() (gas: 16394) \[PASS] test\_locked() (gas: 15953) \[PASS] test\_pool() (gas: 18296) \[PASS] test\_poolDelegate() (gas: 23891) \[PASS] test\_poolManager() (gas: 18315) \[PASS] test\_securityAdmin() (gas: 29567) \[PASS] test\_strategyState() (gas: 16092) \[PASS] test\_strategyType() (gas: 15198) \[PASS] test\_treasury() (gas: 29525) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 5.70ms (1.27ms CPU time)

Ran 10 tests for tests/unit/CreateInstance.t.sol:MapleSkyStrategyCreateInstanceTests \[PASS] test\_createInstance\_invalidCaller() (gas: 513632) \[PASS] test\_createInstance\_invalidFactory() (gas: 199223) \[PASS] test\_createInstance\_invalidGemPSM() (gas: 210310) \[PASS] test\_createInstance\_invalidInstance() (gas: 195855) \[PASS] test\_createInstance\_invalidPSM() (gas: 163477) \[PASS] test\_createInstance\_invalidSavingsUsds() (gas: 163355) \[PASS] test\_createInstance\_invalidUsdsPSM() (gas: 213371) \[PASS] test\_createInstance\_nonAuthorizedPSM() (gas: 199179) \[PASS] test\_createInstance\_success() (gas: 525588) \[PASS] test\_createInstance\_zeroPool() (gas: 163321) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 24.90ms (16.93ms CPU time)

Ran 7 tests for tests/unit/CreateInstance.t.sol:MapleAaveStrategyCreateInstanceTests \[PASS] test\_createInstance\_invalidCaller() (gas: 31209) \[PASS] test\_createInstance\_invalidPoolManagerFactory() (gas: 196191) \[PASS] test\_createInstance\_invalidPoolManagerInstance() (gas: 192841) \[PASS] test\_createInstance\_success() (gas: 422021) \[PASS] test\_createInstance\_underlyingAssetMismatch() (gas: 203244) \[PASS] test\_createInstance\_zeroAaveToken() (gas: 162993) \[PASS] test\_createInstance\_zeroPool() (gas: 162936) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 14.96ms (9.26ms CPU time)

Ran 4 tests for tests/unit/Migrate.t.sol:MapleCoreStrategyMigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34330) \[PASS] test\_migrate\_notFactory() (gas: 30825) \[PASS] test\_migrate\_protocolPaused() (gas: 36796) \[PASS] test\_migrate\_success() (gas: 41509) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 16.60ms (4.80ms CPU time)

Ran 6 tests for tests/unit/CreateInstance.t.sol:MapleBasicStrategyCreateInstanceTests \[PASS] test\_createInstance\_invalidCaller() (gas: 381850) \[PASS] test\_createInstance\_invalidFactory() (gas: 185311) \[PASS] test\_createInstance\_invalidInstance() (gas: 181943) \[PASS] test\_createInstance\_invalidStrategyAsset() (gas: 836139) \[PASS] test\_createInstance\_success() (gas: 388119) \[PASS] test\_createInstance\_zeroPool() (gas: 157572) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.46ms (9.52ms CPU time)

Ran 4 tests for tests/unit/Migrate.t.sol:MapleSkyStrategyMigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34330) \[PASS] test\_migrate\_notFactory() (gas: 30825) \[PASS] test\_migrate\_protocolPaused() (gas: 36796) \[PASS] test\_migrate\_success() (gas: 41553) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 10.86ms (1.21ms CPU time)

Ran 3 tests for tests/unit/SetImplementation.t.sol:MapleAaveStrategySetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30369) \[PASS] test\_setImplementation\_protocolPaused() (gas: 36338) \[PASS] test\_setImplementation\_success() (gas: 42141) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 15.44ms (960.76µs CPU time)

Ran 6 tests for tests/unit/Upgrade.t.sol:MapleAaveStrategyUpgradeTests \[PASS] test\_upgrade\_notPoolDelegate() (gas: 123773) \[PASS] test\_upgrade\_notScheduled() (gas: 43201) \[PASS] test\_upgrade\_notSecurityAdmin() (gas: 117313) \[PASS] test\_upgrade\_protocolPaused() (gas: 35117) \[PASS] test\_upgrade\_success() (gas: 106458) \[PASS] test\_upgrade\_upgradeFailed() (gas: 90521) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 13.83ms (2.80ms CPU time)

Ran 6 tests for tests/unit/Upgrade.t.sol:MapleBasicStrategyUpgradeTests \[PASS] test\_upgrade\_notPoolDelegate() (gas: 123597) \[PASS] test\_upgrade\_notScheduled() (gas: 43157) \[PASS] test\_upgrade\_notSecurityAdmin() (gas: 117137) \[PASS] test\_upgrade\_protocolPaused() (gas: 35073) \[PASS] test\_upgrade\_success() (gas: 99320) \[PASS] test\_upgrade\_upgradeFailed() (gas: 90257) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 13.94ms (6.96ms CPU time)

Ran 6 tests for tests/unit/Upgrade.t.sol:MapleCoreStrategyUpgradeTests \[PASS] test\_upgrade\_notPoolDelegate() (gas: 123595) \[PASS] test\_upgrade\_notScheduled() (gas: 43178) \[PASS] test\_upgrade\_notSecurityAdmin() (gas: 117135) \[PASS] test\_upgrade\_protocolPaused() (gas: 35094) \[PASS] test\_upgrade\_success() (gas: 99209) \[PASS] test\_upgrade\_upgradeFailed() (gas: 90234) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 8.25ms (2.99ms CPU time)

Ran 6 tests for tests/unit/Upgrade.t.sol:MapleSkyStrategyUpgradeTests \[PASS] test\_upgrade\_notPoolDelegate() (gas: 123621) \[PASS] test\_upgrade\_notScheduled() (gas: 43201) \[PASS] test\_upgrade\_notSecurityAdmin() (gas: 117161) \[PASS] test\_upgrade\_protocolPaused() (gas: 35117) \[PASS] test\_upgrade\_success() (gas: 99214) \[PASS] test\_upgrade\_upgradeFailed() (gas: 90237) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 11.14ms (3.49ms CPU time)

Ran 9 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyWithdrawTests \[PASS] test\_withdrawFromStrategy\_failIfLowAssets() (gas: 71774) \[PASS] test\_withdrawFromStrategy\_failIfZeroAssets() (gas: 39228) \[PASS] test\_withdraw\_failReentrancy() (gas: 4119499) \[PASS] test\_withdraw\_failsIfNotStrategyManager() (gas: 51749) \[PASS] test\_withdraw\_failsIfProtocolPaused() (gas: 41724) \[PASS] test\_withdraw\_successWhenImpaired() (gas: 111890) \[PASS] test\_withdraw\_successWhenInactive() (gas: 111869) \[PASS] test\_withdraw\_successWithPoolDelegate() (gas: 119737) \[PASS] test\_withdraw\_successWithStrategyManager() (gas: 124441) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 16.74ms (4.18ms CPU time)

Ran 3 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyUnrealizedLossesTests \[PASS] testFuzz\_unrealizedLosses\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 100756, \~: 101110) \[PASS] testFuzz\_unrealizedLosses\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 129740, \~: 130651) \[PASS] testFuzz\_unrealizedLosses\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 120725, \~: 121010) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.07s (1.28s CPU time)

Ran 3 tests for tests/unit/AaveStrategy.t.sol:MapleAaveStrategyAssetsUnderManagementTests \[PASS] testFuzz\_assetsUnderManagement\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 107283, \~: 108233) \[PASS] testFuzz\_assetsUnderManagement\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 127319, \~: 128155) \[PASS] testFuzz\_assetsUnderManagement\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 120805, \~: 121094) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.11s (1.37s CPU time)

Ran 27 tests for tests/unit/SkyStrategy.t.sol:MapleSkyStrategyViewFunctionTests \[PASS] testFuzz\_assetsUnderManagement\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 143927, \~: 144074) \[PASS] testFuzz\_assetsUnderManagement\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 164010, \~: 164862) \[PASS] testFuzz\_assetsUnderManagement\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 140230, \~: 140647) \[PASS] testFuzz\_unrealizedLosses\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 120474, \~: 120707) \[PASS] testFuzz\_unrealizedLosses\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 166877, \~: 166844) \[PASS] testFuzz\_unrealizedLosses\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 140361, \~: 140629) \[PASS] test\_assetsUnderManagement\_strategyFundedAndZeroFeeAndZeroTout() (gas: 92997) \[PASS] test\_assetsUnderManagement\_strategyFundedAndZeroFeeWithTout() (gas: 96663) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndLossAndTout() (gas: 141387) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndLossAndZeroTout() (gas: 137677) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndTotalAssetsIncreasedAndAndTout() (gas: 145956) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndTotalAssetsIncreasedAndZeroTout() (gas: 138499) \[PASS] test\_assetsUnderManagement\_strategyNotFunded() (gas: 39240) \[PASS] test\_factory() (gas: 13375) \[PASS] test\_fundsAsset() (gas: 13386) \[PASS] test\_globals() (gas: 18944) \[PASS] test\_governor() (gas: 24641) \[PASS] test\_implementation() (gas: 13462) \[PASS] test\_locked() (gas: 11065) \[PASS] test\_pool() (gas: 13320) \[PASS] test\_poolDelegate() (gas: 19026) \[PASS] test\_poolManager() (gas: 13295) \[PASS] test\_savingsUsds() (gas: 13403) \[PASS] test\_securityAdmin() (gas: 24591) \[PASS] test\_strategyState() (gas: 11072) \[PASS] test\_strategyType() (gas: 10282) \[PASS] test\_treasury() (gas: 24637) Suite result: ok. 27 passed; 0 failed; 0 skipped; finished in 1.28s (2.65s CPU time)

Ran 23 tests for tests/unit/BasicStrategy.t.sol:MapleBasicStrategyViewFunctionTests \[PASS] testFuzz\_assetsUnderManagement\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 107558, \~: 108270) \[PASS] testFuzz\_assetsUnderManagement\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 127303, \~: 128083) \[PASS] testFuzz\_assetsUnderManagement\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 116973, \~: 117325) \[PASS] testFuzz\_unrealizedLosses\_strategyActive(uint256,uint256,uint256) (runs: 1000, μ: 96985, \~: 97341) \[PASS] testFuzz\_unrealizedLosses\_strategyImpaired(uint256,uint256,uint256) (runs: 1000, μ: 127421, \~: 128297) \[PASS] testFuzz\_unrealizedLosses\_strategyInactive(uint256,uint256,uint256) (runs: 1000, μ: 116842, \~: 117196) \[PASS] test\_assetsUnderManagement\_strategyFundedAndZeroFee() (gas: 57886) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndLoss() (gas: 100565) \[PASS] test\_assetsUnderManagement\_strategyFundedWithFeeAndTotalAssetsIncreased() (gas: 101364) \[PASS] test\_assetsUnderManagement\_strategyNotFunded() (gas: 27763) \[PASS] test\_factory() (gas: 13397) \[PASS] test\_fundsAsset() (gas: 13297) \[PASS] test\_globals() (gas: 19032) \[PASS] test\_governor() (gas: 24641) \[PASS] test\_implementation() (gas: 13440) \[PASS] test\_locked() (gas: 10955) \[PASS] test\_pool() (gas: 13365) \[PASS] test\_poolDelegate() (gas: 18981) \[PASS] test\_poolManager() (gas: 13317) \[PASS] test\_securityAdmin() (gas: 24569) \[PASS] test\_strategyType() (gas: 10304) \[PASS] test\_strategyVault() (gas: 13384) \[PASS] test\_treasury() (gas: 24702) Suite result: ok. 23 passed; 0 failed; 0 skipped; finished in 1.44s (2.14s CPU time)

Ran 26 tests for tests/unit/CoreStrategy.t.sol:MapleCoreStrategyViewFunctionTests \[PASS] testFuzz\_assetsUnderManagement\_strategyActive(uint256,uint256,uint256,uint256) (runs: 1000, μ: 272974, \~: 272908) \[PASS] testFuzz\_assetsUnderManagement\_strategyImpaired(uint256,uint256,uint256,uint256) (runs: 1000, μ: 275668, \~: 276874) \[PASS] testFuzz\_assetsUnderManagement\_strategyInactive(uint256,uint256,uint256,uint256) (runs: 1000, μ: 255994, \~: 256187) \[PASS] testFuzz\_unrealizedLosses\_strategyActive(uint256) (runs: 1000, μ: 47445, \~: 47010) \[PASS] testFuzz\_unrealizedLosses\_strategyImpaired(uint256) (runs: 1000, μ: 80567, \~: 80313) \[PASS] testFuzz\_unrealizedLosses\_strategyInactive(uint256) (runs: 1000, μ: 50025, \~: 49723) \[PASS] test\_assetsUnderManagement\_strategyFunded() (gas: 71368) \[PASS] test\_assetsUnderManagement\_strategyFundedAndCash() (gas: 255661) \[PASS] test\_assetsUnderManagement\_strategyFundedWithSharesOnWithdrawalQueue() (gas: 208798) \[PASS] test\_assetsUnderManagement\_strategyFundedWithSharesOnWithdrawalQueueAndCash() (gas: 208786) \[PASS] test\_assetsUnderManagement\_strategyFundedWithSharesOnWithdrawalQueue\_multiple\_requests() (gas: 258633) \[PASS] test\_assetsUnderManagement\_strategyFundedWithTotalAssetsIncreased() (gas: 71345) \[PASS] test\_assetsUnderManagement\_strategyNotFunded() (gas: 44588) \[PASS] test\_factory() (gas: 13441) \[PASS] test\_fundsAsset() (gas: 13296) \[PASS] test\_globals() (gas: 18988) \[PASS] test\_governor() (gas: 24597) \[PASS] test\_implementation() (gas: 13374) \[PASS] test\_locked() (gas: 10932) \[PASS] test\_pool() (gas: 13320) \[PASS] test\_poolDelegate() (gas: 18894) \[PASS] test\_poolManager() (gas: 13361) \[PASS] test\_securityAdmin() (gas: 24525) \[PASS] test\_strategyType() (gas: 10303) \[PASS] test\_strategyVault() (gas: 13405) \[PASS] test\_treasury() (gas: 24636) Suite result: ok. 26 passed; 0 failed; 0 skipped; finished in 1.62s (2.46s CPU time)

Ran 71 test suites in 1.75s (7.40s CPU time): 545 tests passed, 0 failed, 0 skipped (545 total tests)

## syrup-utils

Ran 2 tests for tests/unit/MapleBorrowerActions.t.sol:MapleBorrowerActionsTests \[PASS] test\_acceptLoanTerms() (gas: 24480) \[PASS] test\_acceptLoanTerms\_notBorrower() (gas: 22166) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 969.44µs (202.23µs CPU time)

Ran 4 tests for tests/unit/MapleRouter.t.sol:SkimTests \[PASS] test\_skim\_notAdmin() (gas: 30155) \[PASS] test\_skim\_success() (gas: 103644) \[PASS] test\_skim\_zeroAddress() (gas: 28542) \[PASS] test\_skim\_zero\_amount() (gas: 36763) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 3.65ms (755.36µs CPU time)

Ran 4 tests for tests/unit/MapleRouter.t.sol:SetRouterFunctionSelectorWhitelistTests \[PASS] test\_setAllowedRouterFunction\_emitsEvent() (gas: 53067) \[PASS] test\_setAllowedRouterFunction\_notAdmin() (gas: 28044) \[PASS] test\_setAllowedRouterFunction\_removeMultipleFunctions() (gas: 88464) \[PASS] test\_setAllowedRouterFunction\_setMultipleFunctions() (gas: 91947) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.36ms (1.37ms CPU time)

Ran 7 tests for tests/unit/MapleRouter.t.sol:SetAllowedAssetsTests \[PASS] test\_setAllowedAssets\_addAsset() (gas: 159144) \[PASS] test\_setAllowedAssets\_addMultipleAssets() (gas: 214131) \[PASS] test\_setAllowedAssets\_lengthMismatch() (gas: 124302) \[PASS] test\_setAllowedAssets\_noAssets() (gas: 36861) \[PASS] test\_setAllowedAssets\_notAdmin() (gas: 120421) \[PASS] test\_setAllowedAssets\_removeAsset() (gas: 237388) \[PASS] test\_setAllowedAssets\_updateAssets() (gas: 334948) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 5.64ms (2.69ms CPU time)

Ran 3 tests for tests/unit/MapleRouter.t.sol:setAllowedAllowanceHolderTests \[PASS] test\_setAllowedAllowanceHolder\_notAdmin() (gas: 27809) \[PASS] test\_setAllowedAllowanceHolder\_updated() (gas: 58630) \[PASS] test\_setAllowedAllowanceHolder\_zeroAddress() (gas: 28358) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.28ms (470.86µs CPU time)

Ran 3 tests for tests/unit/MapleRouter.t.sol:SetAssetWhitelistingTests \[PASS] test\_setAssetWhitelisting\_identical() (gas: 34699) \[PASS] test\_setAssetWhitelisting\_notAdmin() (gas: 25196) \[PASS] test\_setAssetWhitelisting\_updated() (gas: 37481) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.47ms (613.01µs CPU time)

Ran 2 tests for tests/unit/MapleRouter.t.sol:DepositWithAlternativeAllowanceHolderTests \[PASS] test\_deposit\_allowance\_holder\_is\_router() (gas: 439040) \[PASS] test\_deposit\_different\_allowance\_holder\_than\_router() (gas: 562275) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 6.45ms (3.62ms CPU time)

\[PASS] test\_constructor() (gas: 1201715) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.78ms (779.73µs CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsRedeemAndMigrateAndStakeTests \[PASS] testFuzz\_redeemAndMigrateAndStake() (gas: 166) \[PASS] test\_redeemAndMigrateAndStake\_differentReceiver() (gas: 384123) \[PASS] test\_redeemAndMigrateAndStake\_insufficientApproval() (gas: 51534) \[PASS] test\_redeemAndMigrateAndStake\_insufficientBalance() (gas: 68079) \[PASS] test\_redeemAndMigrateAndStake\_sameReceiver() (gas: 403570) \[PASS] test\_redeemAndMigrateAndStake\_zeroAmount() (gas: 14700) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.78ms (12.78ms CPU time)

Ran 4 tests for tests/unit/MapleRouter.t.sol:IsAssetAllowedTests \[PASS] test\_isAssetAllowed\_allAllowed() (gas: 27441) \[PASS] test\_isAssetAllowed\_allAllowedAgain() (gas: 235075) \[PASS] test\_isAssetAllowed\_multipleAllowed() (gas: 221837) \[PASS] test\_isAssetAllowed\_oneAllowed() (gas: 175678) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 9.46ms (1.58ms CPU time)

Ran 24 tests for tests/unit/MapleRouter.t.sol:DepositFailureTests \[PASS] test\_deposit\_approvalFailed() (gas: 227881) \[PASS] test\_deposit\_approveFail() (gas: 419921) \[PASS] test\_deposit\_emptyCalldata() (gas: 197062) \[PASS] test\_deposit\_expiredAuthorization() (gas: 357941) \[PASS] test\_deposit\_insufficientApproval() (gas: 121809) \[PASS] test\_deposit\_insufficientBalance() (gas: 173335) \[PASS] test\_deposit\_invalidAsset() (gas: 93367) \[PASS] test\_deposit\_invalidFactory() (gas: 88227) \[PASS] test\_deposit\_invalidInstance() (gas: 89280) \[PASS] test\_deposit\_invalidPermit() (gas: 131871) \[PASS] test\_deposit\_invalidSignature() (gas: 386344) \[PASS] test\_deposit\_malleableSignature\_v1() (gas: 357865) \[PASS] test\_deposit\_malleableSignature\_v2() (gas: 353636) \[PASS] test\_deposit\_maximumSlippage() (gas: 196253) \[PASS] test\_deposit\_notAllowedAllowanceHolder() (gas: 215612) \[PASS] test\_deposit\_notAllowedRouterFunction() (gas: 209843) \[PASS] test\_deposit\_notPermissionAdmin() (gas: 395607) \[PASS] test\_deposit\_slippageFailed() (gas: 358022) \[PASS] test\_deposit\_swapFailed() (gas: 271657) \[PASS] test\_deposit\_swapReentrancy() (gas: 67749) \[PASS] test\_deposit\_zeroAddressAsset() (gas: 86308) \[PASS] test\_deposit\_zeroAddressPoolManager() (gas: 63346) \[PASS] test\_deposit\_zeroAddressRouter() (gas: 196219) \[PASS] test\_deposit\_zeroAmount() (gas: 71614) Suite result: ok. 24 passed; 0 failed; 0 skipped; finished in 22.34ms (18.18ms CPU time)

Ran 5 tests for tests/integration/MplUserActions.t.sol:MigrateAndStakeTests \[PASS] test\_integration\_migrateAndStake\_insufficientApproval() (gas: 91272) \[PASS] test\_integration\_migrateAndStake\_insufficientBalance() (gas: 53190) \[PASS] test\_integration\_migrateAndStake\_migratorInactive() (gas: 79190) \[PASS] test\_integration\_migrateAndStake\_success() (gas: 486154) \[PASS] test\_integration\_migrateAndStake\_zeroAmount() (gas: 14612) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 25.50ms (9.53ms CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsRedeemAndMigrateAndStakeWithPermitTests \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_expiredDeadline() (gas: 45250) \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_insufficientBalance() (gas: 115633) \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_invalidSignature() (gas: 73348) \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_malleable() (gas: 44711) \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_success() (gas: 431573) \[PASS] test\_redeemAndMigrateAndStakeWithPermit\_zeroAmount() (gas: 39555) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 9.59ms (7.71ms CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsMigrateAndStakeTests \[PASS] testFuzz\_migrateAndStake() (gas: 187) \[PASS] test\_migrateAndStake\_differentReceiver() (gas: 372800) \[PASS] test\_migrateAndStake\_insufficientApproval() (gas: 53903) \[PASS] test\_migrateAndStake\_insufficientBalance() (gas: 70447) \[PASS] test\_migrateAndStake\_sameReceiver() (gas: 383619) \[PASS] test\_migrateAndStake\_zeroAmount() (gas: 14678) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 13.29ms (10.83ms CPU time)

Ran 7 tests for tests/integration/MplUserActions.t.sol:RedeemAndMigrateAndStakeWithPermitTests \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_expiredDeadline() (gas: 45353) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_insufficientBalance() (gas: 267786) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_invalidSignature() (gas: 73504) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_malleable() (gas: 44924) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_migratorInactive() (gas: 290944) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_success() (gas: 642664) \[PASS] test\_integration\_redeemAndMigrateAndStakeWithPermit\_zeroAmount() (gas: 39608) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 32.08ms (14.93ms CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsRedeemAndMigrateWithPermitTests \[PASS] test\_redeemAndMigrateWithPermit\_expiredDeadline() (gas: 45204) \[PASS] test\_redeemAndMigrateWithPermit\_insufficientBalance() (gas: 115545) \[PASS] test\_redeemAndMigrateWithPermit\_invalidSignature() (gas: 73305) \[PASS] test\_redeemAndMigrateWithPermit\_malleable() (gas: 44753) \[PASS] test\_redeemAndMigrateWithPermit\_success() (gas: 371698) \[PASS] test\_redeemAndMigrateWithPermit\_zeroAmount() (gas: 39557) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.46ms (8.35ms CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsRedeemAndMigrateTests \[PASS] testFuzz\_redeemAndMigrate() (gas: 188) \[PASS] test\_redeemAndMigrate\_differentReceiver() (gas: 324225) \[PASS] test\_redeemAndMigrate\_insufficientApproval() (gas: 51557) \[PASS] test\_redeemAndMigrate\_insufficientBalance() (gas: 68146) \[PASS] test\_redeemAndMigrate\_sameReceiver() (gas: 339715) \[PASS] test\_redeemAndMigrate\_zeroAmount() (gas: 14721) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 17.32ms (10.73ms CPU time)

Ran 7 tests for tests/integration/MplUserActions.t.sol:MigrateAndStakeWithPermitTests \[PASS] test\_integration\_migrateAndStakeWithPermit\_expiredDeadline() (gas: 40007) \[PASS] test\_integration\_migrateAndStakeWithPermit\_insufficientBalance() (gas: 93084) \[PASS] test\_integration\_migrateAndStakeWithPermit\_invalidSignature() (gas: 65194) \[PASS] test\_integration\_migrateAndStakeWithPermit\_malleable() (gas: 65412) \[PASS] test\_integration\_migrateAndStakeWithPermit\_migratorInactive() (gas: 119126) \[PASS] test\_integration\_migrateAndStakeWithPermit\_success() (gas: 526122) \[PASS] test\_integration\_migrateAndStakeWithPermit\_zeroAmount() (gas: 35525) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 34.27ms (17.26ms CPU time)

Ran 6 tests for tests/unit/MplUserActions.t.sol:MplUserActionsMigrateAndStakeWithPermitTests \[PASS] test\_migrateAndStakeWithPermit\_expiredDeadline() (gas: 45284) \[PASS] test\_migrateAndStakeWithPermit\_insufficientBalance() (gas: 117835) \[PASS] test\_migrateAndStakeWithPermit\_invalidSignature() (gas: 73360) \[PASS] test\_migrateAndStakeWithPermit\_malleable() (gas: 44745) \[PASS] test\_migrateAndStakeWithPermit\_success() (gas: 420152) \[PASS] test\_migrateAndStakeWithPermit\_zeroAmount() (gas: 39511) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 36.95ms (20.16ms CPU time)

Ran 5 tests for tests/integration/MplUserActions.t.sol:RedeemAndMigrateAndStakeTests \[PASS] test\_integration\_redeemAndMigrateAndStake\_insufficientApproval() (gas: 217309) \[PASS] test\_integration\_redeemAndMigrateAndStake\_insufficientBalance() (gas: 220179) \[PASS] test\_integration\_redeemAndMigrateAndStake\_migratorInactive() (gas: 252913) \[PASS] test\_integration\_redeemAndMigrateAndStake\_success() (gas: 604574) \[PASS] test\_integration\_redeemAndMigrateAndStake\_zeroAmount() (gas: 14655) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 28.37ms (13.11ms CPU time)

Ran 10 tests for tests/unit/MapleRouter.t.sol:DepositSuccessTests \[PASS] test\_deposit\_withAll() (gas: 743730) \[PASS] test\_deposit\_withAuth() (gas: 438356) \[PASS] test\_deposit\_withIgnoredPermit() (gas: 387059) \[PASS] test\_deposit\_withPermit() (gas: 414133) \[PASS] test\_deposit\_withPermitAndAuth() (gas: 579040) \[PASS] test\_deposit\_withPermitAndSwap() (gas: 591329) \[PASS] test\_deposit\_withSwap() (gas: 483578) \[PASS] test\_deposit\_withSwapAndAuth() (gas: 610688) \[PASS] test\_deposit\_withSwap\_withDust() (gas: 479235) \[PASS] test\_deposit\_withoutAnySwap() (gas: 275634) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 65.34ms (80.31ms CPU time)

Ran 5 tests for tests/integration/MplUserActions.t.sol:RedeemAndMigrateTests \[PASS] test\_integration\_redeemAndMigrate\_insufficientApproval() (gas: 217331) \[PASS] test\_integration\_redeemAndMigrate\_insufficientBalance() (gas: 220201) \[PASS] test\_integration\_redeemAndMigrate\_migratorInactive() (gas: 252912) \[PASS] test\_integration\_redeemAndMigrate\_success() (gas: 495878) \[PASS] test\_integration\_redeemAndMigrate\_zeroAmount() (gas: 14677) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 33.35ms (13.57ms CPU time)

Ran 2 tests for tests/unit/SyrupRateProvider.t.sol:SyrupRateProviderTests \[PASS] test\_constructor\_success() (gas: 181883) \[PASS] test\_getRate() (gas: 25875) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.25ms (246.82µs CPU time)

Ran 6 tests for tests/integration/SyrupDrip.t.sol:AllocateIntegrationTests \[PASS] test\_allocate\_expiredDeadline\_governor() (gas: 28041) \[PASS] test\_allocate\_expiredDeadline\_operationalAdmin() (gas: 32035) \[PASS] test\_allocate\_invalidMaxId() (gas: 109384) \[PASS] test\_allocate\_notAuthorized() (gas: 31232) \[PASS] test\_allocate\_success\_governor() (gas: 105419) \[PASS] test\_allocate\_success\_operationalAdmin() (gas: 109435) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 18.92ms (1.08ms CPU time)

Ran 5 tests for tests/unit/SyrupDrip.t.sol:SyrupDripReclaimTests \[PASS] test\_reclaim\_notAuthorized() (gas: 22481) \[PASS] test\_reclaim\_success\_governor() (gas: 68905) \[PASS] test\_reclaim\_success\_operationalAdmin() (gas: 71901) \[PASS] test\_reclaim\_transferFail() (gas: 31656) \[PASS] test\_reclaim\_zeroAmount() (gas: 20178) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 11.09ms (7.24ms CPU time)

Ran 7 tests for tests/integration/MplUserActions.t.sol:RedeemAndMigrateWithPermitTests \[PASS] test\_integration\_redeemAndMigrateWithPermit\_expiredDeadline() (gas: 45329) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_insufficientBalance() (gas: 267719) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_invalidSignature() (gas: 73483) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_malleable() (gas: 44879) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_migratorInactive() (gas: 290944) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_success() (gas: 533951) \[PASS] test\_integration\_redeemAndMigrateWithPermit\_zeroAmount() (gas: 39586) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 33.61ms (9.99ms CPU time)

\[PASS] test\_constructor() (gas: 1453582) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.05ms (416.11µs CPU time)

Ran 6 tests for tests/unit/SyrupDrip.t.sol:SyrupDripAllocateTests \[PASS] test\_allocate\_expiredDeadline\_governor() (gas: 22429) \[PASS] test\_allocate\_expiredDeadline\_operationalAdmin() (gas: 25467) \[PASS] test\_allocate\_invalidMaxId() (gas: 100748) \[PASS] test\_allocate\_notAuthorized() (gas: 24669) \[PASS] test\_allocate\_success\_governor() (gas: 99807) \[PASS] test\_allocate\_success\_operationalAdmin() (gas: 102867) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 9.97ms (797.88µs CPU time)

\[PASS] test\_scenario\_drip() (gas: 741512) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 48.52ms (6.56ms CPU time)

Ran 22 tests for tests/unit/SyrupRouter.t.sol:SyrupRouterTests \[PASS] test\_authorizeAndDepositWithPermit\_expired() (gas: 21827) \[PASS] test\_authorizeAndDepositWithPermit\_malleable() (gas: 18722) \[PASS] test\_authorizeAndDepositWithPermit\_notPermissionAdmin() (gas: 77190) \[PASS] test\_authorizeAndDepositWithPermit\_success() (gas: 292699) \[PASS] test\_authorizeAndDeposit\_expired() (gas: 20754) \[PASS] test\_authorizeAndDeposit\_malleable() (gas: 17647) \[PASS] test\_authorizeAndDeposit\_notPermissionAdmin() (gas: 74817) \[PASS] test\_authorizeAndDeposit\_success() (gas: 236939) \[PASS] test\_constructor\_approveFails() (gas: 91197) \[PASS] test\_constructor\_success() (gas: 1583289) \[PASS] test\_depositWithPermit\_expiredDeadline() (gas: 43633) \[PASS] test\_depositWithPermit\_invalidSignature() (gas: 72412) \[PASS] test\_depositWithPermit\_notAuthorized() (gas: 107757) \[PASS] test\_depositWithPermit\_skipPermit() (gas: 205116) \[PASS] test\_depositWithPermit\_success() (gas: 230579) \[PASS] test\_depositWithPermit\_transferFails() (gas: 186071) \[PASS] test\_depositWithPermit\_transferFromFails\_insufficientAmount() (gas: 125860) \[PASS] test\_deposit\_notAuthorized() (gas: 27447) \[PASS] test\_deposit\_success() (gas: 189128) \[PASS] test\_deposit\_transferFails() (gas: 141618) \[PASS] test\_deposit\_transferFromFails\_insufficientAmount() (gas: 47419) \[PASS] test\_deposit\_transferFromFails\_insufficientApproval() (gas: 58932) Suite result: ok. 22 passed; 0 failed; 0 skipped; finished in 34.86ms (45.82ms CPU time)

Ran 5 tests for tests/integration/SyrupDrip.t.sol:ReclaimIntegrationTest \[PASS] test\_reclaim\_notAuthorized() (gas: 29044) \[PASS] test\_reclaim\_success\_governor() (gas: 81079) \[PASS] test\_reclaim\_success\_operationalAdmin() (gas: 85031) \[PASS] test\_reclaim\_transferFail() (gas: 40411) \[PASS] test\_reclaim\_zeroAmount() (gas: 25790) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 31.54ms (13.11ms CPU time)

Ran 14 tests for tests/integration/SyrupDrip.t.sol:ClaimIntegrationTests \[PASS] test\_claim\_alreadyClaimed() (gas: 103506) \[PASS] test\_claim\_expiredDeadline() (gas: 33983) \[PASS] test\_claim\_invalidProof\_account() (gas: 35733) \[PASS] test\_claim\_invalidProof\_amount() (gas: 35897) \[PASS] test\_claim\_invalidProof\_id() (gas: 35886) \[PASS] test\_claim\_invalidProof\_proof() (gas: 39332) \[PASS] test\_claim\_success\_duplicateId() (gas: 150434) \[PASS] test\_claim\_success\_multipleClaims() (gas: 204801) \[PASS] test\_claim\_success\_multipleInstances() (gas: 173403) \[PASS] test\_claim\_success\_multipleSlots() (gas: 239228) \[PASS] test\_claim\_success\_singleClaim() (gas: 129758) \[PASS] test\_claim\_success\_updatedAllocation() (gas: 256856) \[PASS] test\_claim\_success\_zeroAmount() (gas: 100440) \[PASS] test\_claim\_transferFail() (gas: 79478) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 69.52ms (50.57ms CPU time)

Ran 15 tests for tests/unit/SyrupDrip.t.sol:SyrupDripClaimAndStakeTests \[PASS] testFuzz\_claimAndStake(uint256) (runs: 1000, μ: 305473, \~: 305001) \[PASS] test\_claimAndStake\_alreadyClaimed() (gas: 215006) \[PASS] test\_claimAndStake\_expiredDeadline() (gas: 34563) \[PASS] test\_claimAndStake\_fullStake() (gas: 273568) \[PASS] test\_claimAndStake\_invalidProof\_account() (gas: 36289) \[PASS] test\_claimAndStake\_invalidProof\_amount() (gas: 36499) \[PASS] test\_claimAndStake\_invalidProof\_id() (gas: 36465) \[PASS] test\_claimAndStake\_invalidProof\_proof() (gas: 39889) \[PASS] test\_claimAndStake\_invalidStakeAmount() (gas: 26927) \[PASS] test\_claimAndStake\_partialStake() (gas: 299155) \[PASS] test\_claimAndStake\_success\_multipleClaims() (gas: 419237) \[PASS] test\_claimAndStake\_success\_multipleInstances() (gas: 355103) \[PASS] test\_claimAndStake\_transferFail() (gas: 72786) \[PASS] test\_claimAndStake\_transferToStakeFail() (gas: 188212) \[PASS] test\_claimAndStake\_zeroStakeAmount() (gas: 26740) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 2.56s (2.59s CPU time)

Ran 14 tests for tests/unit/SyrupDrip.t.sol:SyrupDripClaimTests \[PASS] test\_claim\_alreadyClaimed() (gas: 100384) \[PASS] test\_claim\_expiredDeadline() (gas: 33983) \[PASS] test\_claim\_invalidProof\_account() (gas: 35733) \[PASS] test\_claim\_invalidProof\_amount() (gas: 35897) \[PASS] test\_claim\_invalidProof\_id() (gas: 35886) \[PASS] test\_claim\_invalidProof\_proof() (gas: 39332) \[PASS] test\_claim\_success\_duplicateId() (gas: 149334) \[PASS] test\_claim\_success\_multipleClaims() (gas: 209697) \[PASS] test\_claim\_success\_multipleInstances() (gas: 180877) \[PASS] test\_claim\_success\_multipleSlots() (gas: 244128) \[PASS] test\_claim\_success\_singleClaim() (gas: 128654) \[PASS] test\_claim\_success\_updatedAllocation() (gas: 263378) \[PASS] test\_claim\_success\_zeroAmount() (gas: 97958) \[PASS] test\_claim\_transferFail() (gas: 72204) Suite result: ok. 14 passed; 0 failed; 0 skipped; finished in 2.60s (27.19ms CPU time)

Ran 15 tests for tests/integration/SyrupDrip.t.sol:ClaimAndStakeIntegrationTest \[PASS] testFuzz\_claimAndStake(uint256) (runs: 1000, μ: 313456, \~: 312944) \[PASS] test\_claimAndStake\_alreadyClaimed() (gas: 218027) \[PASS] test\_claimAndStake\_expiredDeadline() (gas: 34563) \[PASS] test\_claimAndStake\_fullStake() (gas: 282609) \[PASS] test\_claimAndStake\_invalidProof\_account() (gas: 36289) \[PASS] test\_claimAndStake\_invalidProof\_amount() (gas: 36499) \[PASS] test\_claimAndStake\_invalidProof\_id() (gas: 36465) \[PASS] test\_claimAndStake\_invalidProof\_proof() (gas: 39889) \[PASS] test\_claimAndStake\_invalidStakeAmount() (gas: 26927) \[PASS] test\_claimAndStake\_partialStake() (gas: 308818) \[PASS] test\_claimAndStake\_success\_multipleClaims() (gas: 433483) \[PASS] test\_claimAndStake\_success\_multipleInstances() (gas: 366147) \[PASS] test\_claimAndStake\_transferFail() (gas: 80060) \[PASS] test\_claimAndStake\_transferToStakeFail() (gas: 195387) \[PASS] test\_claimAndStake\_zeroStakeAmount() (gas: 26740) Suite result: ok. 15 passed; 0 failed; 0 skipped; finished in 2.63s (2.63s CPU time)

Ran 41 test suites in 2.71s (8.46s CPU time): 242 tests passed, 6 failed, 0 skipped (248 total tests)

## withdrawal-manager-queue

Ran 3 tests for tests/unit/MapleWithdrawalManagerMigrator.t.sol:WithdrawalManagerMigrateTests \[PASS] test\_migrate\_notFactory() (gas: 31188) \[PASS] test\_migrate\_protocolPaused() (gas: 37166) \[PASS] test\_migrate\_success\_xxx() (gas: 684975) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.39ms (1.12ms CPU time)

Ran 5 tests for tests/unit/CreateInstance.t.sol:CreateInstanceTests \[PASS] test\_createInstance\_invalidCaller() (gas: 312348) \[PASS] test\_createInstance\_invalidFactory() (gas: 185844) \[PASS] test\_createInstance\_invalidInstance() (gas: 187024) \[PASS] test\_createInstance\_success() (gas: 311984) \[PASS] test\_createInstance\_zeroPool() (gas: 162747) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 6.94ms (2.41ms CPU time)

Ran 4 tests for tests/unit/Migrate.t.sol:MigrateTests \[PASS] test\_migrate\_internalFailure() (gas: 34693) \[PASS] test\_migrate\_notFactory() (gas: 31166) \[PASS] test\_migrate\_protocolPaused() (gas: 37166) \[PASS] test\_migrate\_success() (gas: 41020) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.71ms (598.71µs CPU time)

Ran 3 tests for tests/unit/RemoveSharesById.t.sol:RemoveSharesByIdSuccessTests \[PASS] test\_removeSharesById\_decrease() (gas: 297027) \[PASS] test\_removeSharesById\_multipleLPsWithMultipleRequests() (gas: 916084) \[PASS] test\_removeSharesById\_remove\_request() (gas: 235653) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 10.62ms (6.15ms CPU time)

Ran 4 tests for tests/unit/PreviewRedeem.t.sol:PreviewRedeemTests \[PASS] test\_previewRedeem\_complete() (gas: 72722) \[PASS] test\_previewRedeem\_notProcessed() (gas: 21118) \[PASS] test\_previewRedeem\_partial() (gas: 89589) \[PASS] test\_previewRedeem\_tooManyShares() (gas: 44164) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 8.01ms (641.53µs CPU time)

Ran 9 tests for tests/unit/ProcessEmptyRedemptions.t.sol:ProcessEmptyRedemptionsSuccessTests \[PASS] test\_processEmptyRedemptions\_chunkProcessing() (gas: 1135048) \[PASS] test\_processEmptyRedemptions\_emptyQueueNoStateChange() (gas: 44215) \[PASS] test\_processEmptyRedemptions\_fullyProcessedQueueNoStateChange() (gas: 253610) \[PASS] test\_processEmptyRedemptions\_multipleEmptyRequests() (gas: 653049) \[PASS] test\_processEmptyRedemptions\_noEmptyRequests() (gas: 498840) \[PASS] test\_processEmptyRedemptions\_operationalAdmin() (gas: 242789) \[PASS] test\_processEmptyRedemptions\_poolDelegate() (gas: 252141) \[PASS] test\_processEmptyRedemptions\_redeemer() (gas: 245564) \[PASS] test\_processEmptyRedemptions\_stopsAtNonEmptyRequest() (gas: 702437) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 13.44ms (10.87ms CPU time)

Ran 4 tests for tests/unit/SetManualWithdrawal.t.sol:SetManualWithdrawalTests \[PASS] test\_setManualWithdrawal\_governotNotAllowed() (gas: 46121) \[PASS] test\_setManualWithdrawal\_notPoolDelegateOrOpsAdmin() (gas: 43468) \[PASS] test\_setManualWithdrawal\_protocolPaused() (gas: 37033) \[PASS] test\_setManualWithdrawal\_success() (gas: 73217) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 4.30ms (735.16µs CPU time)

Ran 16 tests for tests/unit/ProcessRedemptions.t.sol:ProcessRedemptionsTests \[PASS] test\_processRedemptions\_automatic\_complete() (gas: 218520) \[PASS] test\_processRedemptions\_automatic\_overkill() (gas: 231470) \[PASS] test\_processRedemptions\_automatic\_partial() (gas: 301136) \[PASS] test\_processRedemptions\_bot() (gas: 78963) \[PASS] test\_processRedemptions\_governorNotAllowed() (gas: 52717) \[PASS] test\_processRedemptions\_lowLiquidity() (gas: 90734) \[PASS] test\_processRedemptions\_manual\_complete() (gas: 248524) \[PASS] test\_processRedemptions\_manual\_multipleLps\_multiple\_requests() (gas: 715937) \[PASS] test\_processRedemptions\_manual\_multiple\_requests() (gas: 358748) \[PASS] test\_processRedemptions\_manual\_overkill() (gas: 263055) \[PASS] test\_processRedemptions\_manual\_partial() (gas: 339489) \[PASS] test\_processRedemptions\_multiple() (gas: 369099) \[PASS] test\_processRedemptions\_notRedeemer() (gas: 49995) \[PASS] test\_processRedemptions\_poolDelegate() (gas: 76172) \[PASS] test\_processRedemptions\_protocolPaused() (gas: 36590) \[PASS] test\_processRedemptions\_zeroShares() (gas: 47407) Suite result: ok. 16 passed; 0 failed; 0 skipped; finished in 25.15ms (20.59ms CPU time)

Ran 5 tests for tests/unit/SortedArray/Push.t.sol:PushTests \[PASS] test\_push\_failed\_outOfOrder() (gas: 83535) \[PASS] test\_push\_failed\_valueExists() (gas: 81436) \[PASS] test\_push\_failed\_zeroValue() (gas: 11498) \[PASS] test\_push\_multipleValues\_inOrder() (gas: 201721) \[PASS] test\_push\_singleValue() (gas: 83080) Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 993.37µs (669.85µs CPU time)

Ran 3 tests for tests/unit/SortedArray/Remove.t.sol:RemoveTests \[PASS] test\_remove\_failed\_valueNotExists() (gas: 11502) \[PASS] test\_remove\_multipleValues() (gas: 175044) \[PASS] test\_remove\_singleValue() (gas: 64156) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.06ms (705.46µs CPU time)

Ran 9 tests for tests/unit/ProcessExit.t.sol:ProcessExitTests \[PASS] test\_processExit\_automatic() (gas: 50973) \[PASS] test\_processExit\_manual\_complete() (gas: 339259) \[PASS] test\_processExit\_manual\_partial() (gas: 305388) \[PASS] test\_processExit\_noShares() (gas: 46623) \[PASS] test\_processExit\_notEnoughLiquidity() (gas: 281552) \[PASS] test\_processExit\_notPoolManager() (gas: 21515) \[PASS] test\_processExit\_tooManyShares() (gas: 50939) \[PASS] test\_processExit\_tooManyShares\_notProcessed() (gas: 201532) \[PASS] test\_processExit\_transferFail() (gas: 294066) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 7.37ms (3.37ms CPU time)

Ran 4 tests for tests/unit/ProcessEmptyRedemptions.t.sol:ProcessEmptyRedemptionsFailureTests \[PASS] test\_processEmptyRedemptions\_governorNotAllowed() (gas: 45645) \[PASS] test\_processEmptyRedemptions\_notRedeemer() (gas: 45690) \[PASS] test\_processEmptyRedemptions\_protocolPaused() (gas: 37277) \[PASS] test\_processEmptyRedemptions\_zeroRequests() (gas: 42417) Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 13.57ms (755.29µs CPU time)

Ran 6 tests for tests/unit/Upgrade.t.sol:UpgradeTests \[PASS] test\_upgrade\_notPoolDelegate() (gas: 125129) \[PASS] test\_upgrade\_notScheduled() (gas: 43911) \[PASS] test\_upgrade\_notSecurityAdmin() (gas: 116893) \[PASS] test\_upgrade\_protocolPaused() (gas: 35529) \[PASS] test\_upgrade\_success() (gas: 101099) \[PASS] test\_upgrade\_upgradeFailed() (gas: 92969) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 10.30ms (5.59ms CPU time)

Ran 6 tests for tests/unit/RemoveRequest.t.sol:RemoveRequestTests \[PASS] test\_removeRequest\_failedTransfer() (gas: 258500) \[PASS] test\_removeRequest\_multiple\_requests\_success() (gas: 504917) \[PASS] test\_removeRequest\_notAuthorized() (gas: 51939) \[PASS] test\_removeRequest\_notInQueue() (gas: 42504) \[PASS] test\_removeRequest\_protocolPaused() (gas: 37391) \[PASS] test\_removeRequest\_success() (gas: 263732) Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 14.58ms (10.07ms CPU time)

Ran 9 tests for tests/unit/RemoveSharesById.t.sol:RemoveSharesByIdFailureTests \[PASS] test\_removeSharesById\_insufficientShares() (gas: 257548) \[PASS] test\_removeSharesById\_invalidRequest() (gas: 38778) \[PASS] test\_removeSharesById\_maxUint128Exceeded() (gas: 36884) \[PASS] test\_removeSharesById\_noChange() (gas: 257492) \[PASS] test\_removeSharesById\_notOwner() (gas: 257318) \[PASS] test\_removeSharesById\_protocolPaused() (gas: 38089) \[PASS] test\_removeSharesById\_requestAlreadyRemoved() (gas: 239292) \[PASS] test\_removeSharesById\_transferFail() (gas: 254599) \[PASS] test\_removeSharesById\_zeroRequestId() (gas: 41452) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 6.54ms (2.50ms CPU time)

Ran 9 tests for tests/unit/RemoveShares.t.sol:RemoveSharesTests \[PASS] test\_removeShares\_decreaseOnly() (gas: 238267) \[PASS] test\_removeShares\_emptyRequest() (gas: 21981) \[PASS] test\_removeShares\_failedTransfer() (gas: 239568) \[PASS] test\_removeShares\_notInQueue() (gas: 33299) \[PASS] test\_removeShares\_notPoolManager() (gas: 19216) \[PASS] test\_removeShares\_success\_cancelAllRequests() (gas: 460622) \[PASS] test\_removeShares\_success\_cancelRequest() (gas: 232357) \[PASS] test\_removeShares\_success\_decreaseRequest() (gas: 291746) \[PASS] test\_removeShares\_success\_partial\_multipleRequests() (gas: 482843) Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 11.32ms (5.75ms CPU time)

Ran 3 tests for tests/unit/SetImplementation.t.sol:SetImplementationTests \[PASS] test\_setImplementation\_notFactory() (gas: 30726) \[PASS] test\_setImplementation\_protocolPaused() (gas: 36746) \[PASS] test\_setImplementation\_success() (gas: 41679) Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.30ms (460.77µs CPU time)

\[PASS] test\_processRedemptions\_complex() (gas: 886492) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 17.95ms (5.58ms CPU time)

Ran 7 tests for tests/unit/AddShares.t.sol:AddSharesTests \[PASS] test\_addShares\_emptyRequest() (gas: 22003) \[PASS] test\_addShares\_failedTransfer() (gas: 197319) \[PASS] test\_addShares\_multiple\_requests() (gas: 369979) \[PASS] test\_addShares\_newRequestAddedToQueue() (gas: 243606) \[PASS] test\_addShares\_newRequestAddedToQueue\_manual() (gas: 268012) \[PASS] test\_addShares\_notPoolManager() (gas: 19325) \[PASS] test\_addShares\_success() (gas: 420040) Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 45.79ms (28.20ms CPU time)

Ran 10 tests for tests/unit/ViewFunctions.t.sol:ViewFunctionsTests \[PASS] testFuzz\_isInExitWindow(address) (runs: 256, μ: 11801, \~: 11801) \[PASS] test\_asset() (gas: 21045) \[PASS] test\_globals() (gas: 21066) \[PASS] test\_governor() (gas: 26809) \[PASS] test\_lockedLiquidity() (gas: 10960) \[PASS] test\_lockedShares(address,uint256) (runs: 256, μ: 36379, \~: 36457) \[PASS] test\_previewWithdraw(address,uint256) (runs: 256, μ: 12580, \~: 12580) \[PASS] test\_requests\_by\_owner() (gas: 746657) \[PASS] test\_requests\_by\_requestId() (gas: 731015) \[PASS] test\_securityAdmin() (gas: 26876) Suite result: ok. 10 passed; 0 failed; 0 skipped; finished in 37.28ms (79.16ms CPU time)

\[PASS] testFuzz\_removeShares(address\[10],uint256\[10],uint256\[10]) (runs: 256, μ: 553896, \~: 538295) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 402.86ms (397.75ms CPU time)

\[PASS] testFuzz\_addShares(uint256\[10],address\[10]) (runs: 256, μ: 1884370, \~: 1884890) Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 811.44ms (807.31ms CPU time)

Ran 2 tests for tests/integration/EndToEndTests.t.sol:EndToEndTests \[PASS] testFuzz\_fullFLow\_fixedExchangeRate(address\[10],bool\[10],uint256\[10]) (runs: 256, μ: 2662144, \~: 2669480) \[PASS] test\_e2e\_fullFlow() (gas: 823046) Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 930.57ms (930.78ms CPU time)

Ran 23 test suites in 932.72ms (2.40s CPU time): 124 tests passed, 0 failed, 0 skipped (124 total tests)
