1 line
80 KiB
JSON
1 line
80 KiB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_asset","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"asset","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToAssets","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"convertToShares","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"isBufferInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxDeposit","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxMint","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"mint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"previewDeposit","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewMint","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewRedeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"previewWithdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"redeem","inputs":[{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalAssets","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"receiver","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Deposit","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"receiver","type":"address","indexed":true,"internalType":"address"},{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"assets","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"shares","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC4626ExceededMaxDeposit","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxMint","inputs":[{"name":"receiver","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxRedeem","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"shares","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC4626ExceededMaxWithdraw","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"assets","type":"uint256","internalType":"uint256"},{"name":"max","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60c0806040523461036f576020816113eb803803809161001f8285610373565b83398101031261036f57516001600160a01b038116810361036f5760409081519161004a8184610373565b600b83526a5374616b6564205553444360a81b602084015280519161006f8284610373565b6005835264735553444360d81b602084015283516001600160401b03811161028057600354600181811c91168015610365575b602082101461026257601f8111610302575b50602094601f821160011461029f579481929394955f92610294575b50508160011b915f199060031b1c1916176003555b82516001600160401b03811161028057600454600181811c91168015610276575b602082101461026257601f81116101ff575b506020601f821160011461019c57819293945f92610191575b50508160011b915f199060031b1c1916176004555b61014f81610396565b9015610189575b60a05260805251610fa2908161044982396080518181816104eb015281816108880152610b81015260a0518161052e0152f35b506012610156565b015190505f80610131565b601f1982169060045f52805f20915f5b8181106101e7575095836001959697106101cf575b505050811b01600455610146565b01515f1960f88460031b161c191690555f80806101c1565b9192602060018192868b0151815501940192016101ac565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c81019160208410610258575b601f0160051c01905b81811061024d5750610118565b5f8155600101610240565b9091508190610237565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610106565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d0565b601f1982169560035f52805f20915f5b8881106102ea575083600195969798106102d2575b505050811b016003556100e5565b01515f1960f88460031b161c191690555f80806102c4565b919260206001819286850151815501940192016102af565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c8101916020841061035b575b601f0160051c01905b81811061035057506100b4565b5f8155600101610343565b909150819061033a565b90607f16906100a2565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761028057604052565b5f8091604051602081019063313ce56760e01b8252600481526103ba602482610373565b51916001600160a01b03165afa3d15610440573d906001600160401b03821161028057604051916103f5601f8201601f191660200184610373565b82523d5f602084013e5b80610434575b610411575b505f905f90565b60208180518101031261036f576020015160ff811161040a579060ff6001921690565b50602081511015610405565b6060906103ff56fe60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b0033","sourceMap":"216:729:81:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:729:81;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;216:729:81;;;;;;-1:-1:-1;;;;;216:729:81;;;;1667:13:28;216:729:81;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;1667:13:28;216:729:81;;;;-1:-1:-1;;;;;216:729:81;;;;1690:17:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;1690:17:28;216:729:81;;4353:28:30;;;:::i;:::-;4413;;;;;4391:50;;4451:15;;216:729:81;;;;;;;4451:15:30;216:729:81;;;;;;;;;;;;;;;4391:50:30;216:729:81;;;;;;4413:28:30;;4439:2;4413:28;;216:729:81;;;;-1:-1:-1;216:729:81;;;;;;;;;;1690:17:28;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;216:729:81;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:17:28;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;-1:-1:-1;216:729:81;;1690:17:28;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;1690:17:28;216:729:81;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;;;;;;1667:13:28;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;1667:13:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1667:13:28;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;;;;;;-1:-1:-1;;216:729:81;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;:::o;4616:533:30:-;4753:93;4616:533;;216:729:81;;4793:43:30;;;;;;;;;;;;;;;;:::i;:::-;4753:93;;-1:-1:-1;;;;;216:729:81;4753:93:30;;216:729:81;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;-1:-1:-1;;216:729:81;4793:43:30;216:729:81;;;:::i;:::-;;;;4753:93:30;4793:43;216:729:81;;;;4860:39:30;;;216:729:81;4856:260:30;;216:729:81;5125:17:30;4753:93;5125:17;4753:93;4616:533;:::o;4856:260::-;4793:43;216:729:81;;;4942:38:30;;216:729:81;;;;4793:43:30;4942:38;216:729:81;;4998:35:30;;4856:260;4994:112;5053:38;216:729:81;;;;5053:38:30;:::o;4860:39::-;216:729:81;4793:43:30;216:729:81;;4871:28:30;;4860:39;;216:729:81;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806301e1d1141461074b57806306fdde031461069057806307a2d13a1461022e578063095ea7b3146105e85780630a28a477146105ca57806318160ddd146105ad57806323b872dd14610575578063313ce5671461051a57806338d52e0f146104d6578063402d267d146102335780634cdad506146104b85780636e553f651461048557806370a08231146101d357806394bf804d1461045257806395d89b411461034e578063a9059cbb1461031d578063b3d7f6b9146102ff578063b460af94146102a4578063ba08765214610238578063c63d75b614610233578063c6e6f5921461022e578063ce96cb771461020b578063d905777e146101d3578063dc0a9929146101b1578063dd62ed3e146101615763ef8b30f714610137575f80fd5b3461015d57602036600319011261015d576020610155600435610956565b604051908152f35b5f80fd5b3461015d57604036600319011261015d5761017a6107ac565b6101826107c2565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b3461015d575f36600319011261015d57602060ff600554166040519015158152f35b3461015d57602036600319011261015d5760206101556101f16107ac565b6001600160a01b03165f9081526020819052604090205490565b3461015d57602036600319011261015d5760206101556102296107ac565b6108fd565b61078f565b6107d8565b3461015d57610246366107fd565b90916102628260018060a01b03165f525f60205260405f205490565b80821161028357508060209361027a61015593610ae0565b93849133610c31565b91632e52afbb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d576102b2366107fd565b90916102bd826108fd565b8082116102de5750602092816102d561015593610928565b93849233610c31565b91633fa733bb60e21b5f5260018060a01b031660045260245260445260645ffd5b3461015d57602036600319011261015d576020610155600435610b0d565b3461015d57604036600319011261015d576103436103396107ac565b6024359033610a23565b602060405160018152f35b3461015d575f36600319011261015d576040515f6004548060011c90600181168015610448575b6020831081146104345782855290811561041057506001146103b2575b6103ae836103a281850382610837565b60405191829182610765565b0390f35b91905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f905b8082106103f6575090915081016020016103a2610392565b9192600181602092548385880101520191019092916103de565b60ff191660208086019190915291151560051b840190910191506103a29050610392565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610375565b3461015d57604036600319011261015d5760206004356101556104736107c2565b9161047d81610b0d565b809333610b3b565b3461015d57604036600319011261015d5760206004356101556104a66107c2565b6104af83610956565b92839133610b3b565b3461015d57602036600319011261015d576020610155600435610ae0565b3461015d575f36600319011261015d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461015d575f36600319011261015d5760ff7f00000000000000000000000000000000000000000000000000000000000000001660ff811161056157602090604051908152f35b634e487b7160e01b5f52601160045260245ffd5b3461015d57606036600319011261015d576103436105916107ac565b6105996107c2565b604435916105a8833383610983565b610a23565b3461015d575f36600319011261015d576020600254604051908152f35b3461015d57602036600319011261015d576020610155600435610928565b3461015d57604036600319011261015d576106016107ac565b60243590331561067d576001600160a01b031690811561066a57335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b3461015d575f36600319011261015d576040515f6003548060011c90600181168015610741575b6020831081146104345782855290811561041057506001146106e3576103ae836103a281850382610837565b91905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b808210610727575090915081016020016103a2610392565b91926001816020925483858801015201910190929161070f565b91607f16916106b7565b3461015d575f36600319011261015d57602061015561086d565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461015d57602036600319011261015d5760206040516004358152f35b600435906001600160a01b038216820361015d57565b602435906001600160a01b038216820361015d57565b3461015d57602036600319011261015d576107f16107ac565b5060206040515f198152f35b606090600319011261015d57600435906024356001600160a01b038116810361015d57906044356001600160a01b038116810361015d5790565b90601f8019910116810190811067ffffffffffffffff82111761085957604052565b634e487b7160e01b5f52604160045260245ffd5b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108f2575f916108c3575090565b90506020813d6020116108ea575b816108de60209383610837565b8101031261015d575190565b3d91506108d1565b6040513d5f823e3d90fd5b60018060a01b03165f525f60205261091860405f2054610ae0565b90565b9190820180921161056157565b60025490600182018092116105615761093f61086d565b600181018091116105615761091892600192610d44565b60025490600182018092116105615761096d61086d565b6001810180911161056157610918925f92610d44565b6001600160a01b039081165f81815260016020818152604080842095871684529490529290205493929184016109ba575b50505050565b828410610a0057801561067d576001600160a01b0382161561066a575f52600160205260405f209060018060a01b03165f5260205260405f20910390555f8080806109b4565b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115610acd576001600160a01b0316918215610aba57815f525f60205260405f2054818110610aa157817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b63ec442f0560e01b5f525f60045260245ffd5b634b637e8f60e11b5f525f60045260245ffd5b610ae861086d565b9060018201809211610561576002546001810180911161056157610918925f92610d44565b610b1561086d565b906001820180921161056157600254600181018091116105615761091892600192610d44565b6040516323b872dd60e01b60208201526001600160a01b039091166024820181905230604483015260648083018590528252929190610ba590610b7f608482610837565b7f0000000000000000000000000000000000000000000000000000000000000000610e5b565b6001600160a01b0316928315610aba577fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d79181610be660409360025461091b565b600255855f525f602052825f20818154019055855f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a382519182526020820152a3565b6001600160a01b03808416959294908216939092918290878603610d33575b5050508415610acd57845f525f60205260405f2054818110610d1a5791816040927ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db94885f525f60205203835f205580600254036002555f877fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60208651858152a3825163a9059cbb60e01b60208201526001600160a01b03909616602487018190526044808801849052875295610d0d90610b7f606482610837565b82519182526020820152a4565b8563391434e360e21b5f5260045260245260445260645ffd5b610d3c92610983565b5f8181610c50565b9291610d51818386610db6565b926004811015610da2576001809116149182610d77575b5050610918925015159061091b565b9080925015610d8e57610918930915155f80610d68565b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b91818302915f1981850993838086109503948086039514610e4d5784831115610e2e5790829109815f0382168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b82610e465760125b634e487b715f526020526024601cfd5b6011610e36565b505080925015610d8e570490565b81516001600160a01b03909116915f91829160200182855af13d15610f02573d67ffffffffffffffff811161085957610eb69160405191610ea66020601f19601f8401160184610837565b82523d5f602084013e5b83610f0e565b8051908115159182610ede575b5050610ecc5750565b635274afe760e01b5f5260045260245ffd5b819250906020918101031261015d576020015180159081150361015d575f80610ec3565b610eb690606090610eb0565b90610f325750805115610f2357805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610f63575b610f43575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15610f3b56fea264697066735822122030e578a6ab691e6efcf0de3f1efc050cfdb95d2181c5a43a9ea8a724a0678a6f64736f6c634300081b0033","sourceMap":"216:729:81:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;7232:45:30;216:729:81;;7232:45:30;:::i;:::-;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;252:31;216:729;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;:::i;:::-;-1:-1:-1;;;;;216:729:81;3095:9:28;216:729:81;;;;;;;;;;;;3004:116:28;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;7061:16:30;;;;216:729:81;;;;;;3095:9:28;216:729:81;3095:9:28;216:729:81;;;3095:9:28;216:729:81;;3004:116:28;;7061:16:30;9400:18;;;9396:106;;7824:45;;216:729:81;7824:45:30;;9609:6;7824:45;;:::i;:::-;735:10:34;;;;9609:6:30;:::i;9396:106::-;9441:50;;;;216:729:81;9441:50:30;216:729:81;;;;;;;;;;;;;;9441:50:30;216:729:81;;;;;;;:::i;:::-;8914:18:30;;;;;:::i;:::-;8946;;;8942:108;;7627:44;216:729:81;7627:44:30;;;9159:6;7627:44;;:::i;:::-;735:10:34;;;;9159:6:30;:::i;8942:108::-;8987:52;;;;216:729:81;8987:52:30;216:729:81;;;;;;;;;;;;;;8987:52:30;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;7426:44:30;216:729:81;;7426:44:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;3459:5:28;216:729:81;;:::i;:::-;;;735:10:34;;3459:5:28;:::i;:::-;216:729:81;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;8699:6:30;216:729:81;;:::i;:::-;7426:44:30;;;;:::i;:::-;735:10:34;;;8699:6:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;;8276:6:30;216:729:81;;:::i;:::-;7232:45:30;;;:::i;:::-;735:10:34;;;;8276:6:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;7824:45:30;216:729:81;;7824:45:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;5829:6:30;-1:-1:-1;;;;;216:729:81;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;5659:19:30;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;4986:5:28;216:729:81;;:::i;:::-;;;:::i;:::-;;;735:10:34;4950:5:28;735:10:34;;4950:5:28;;:::i;:::-;4986;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;2927:12:28;216:729:81;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;7627:44:30;216:729:81;;7627:44:30;:::i;216:729:81:-;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;735:10:34;;9813:19:28;9809:89;;-1:-1:-1;;;;;216:729:81;;9911:21:28;;9907:90;;735:10:34;216:729:81;;;;;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;;;10085:31:28;216:729:81;735:10:34;10085:31:28;;216:729:81;;;;;;;9907:90:28;9955:31;;;216:729:81;9955:31:28;216:729:81;;;;;9955:31:28;9809:89;9855:32;;;216:729:81;9855:32:28;216:729:81;;;;;9855:32:28;216:729:81;;;;;;-1:-1:-1;;216:729:81;;;;;;;1856:5:28;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;1856:5:28;216:729:81;;;;;;;;;;;;-1:-1:-1;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;216:729:81;;;;:::o;:::-;;;;;;-1:-1:-1;;216:729:81;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;216:729:81;;;;;;:::o;:::-;;;;;;-1:-1:-1;;216:729:81;;;;;;:::i;:::-;;;;;6546:17:30;;216:729:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;;;-1:-1:-1;;;;;216:729:81;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;5893:116:30;216:729:81;;-1:-1:-1;;;5971:31:30;;5996:4;5971:31;;;216:729:81;;;5971:31:30;216:729:81;5971:6:30;-1:-1:-1;;;;;216:729:81;5971:31:30;;;;;;;-1:-1:-1;5971:31:30;;;5964:38;5893:116;:::o;5971:31::-;;;216:729:81;5971:31:30;;216:729:81;5971:31:30;;;;;;216:729:81;5971:31:30;;;:::i;:::-;;;216:729:81;;;;;5893:116:30;:::o;5971:31::-;;;-1:-1:-1;5971:31:30;;;216:729:81;;;-1:-1:-1;216:729:81;;;;;6771:153:30;216:729:81;;;;;;3095:9:28;216:729:81;3095:9:28;216:729:81;;6862:55:30;216:729:81;3095:9:28;216:729:81;;6862:55:30;:::i;:::-;6771:153;:::o;216:729:81:-;;;;;;;;;;:::o;9771:213:30:-;2927:12:28;216:729:81;9924:23:30;7652:18;216:729:81;;;;;;;9949:13:30;;:::i;:::-;7652:18;216:729:81;;;;;;;9894:83:30;;7652:18;9894:83;;:::i;9771:213::-;2927:12:28;216:729:81;9924:23:30;216:729:81;;;;;;;;9949:13:30;;:::i;:::-;216:729:81;;;;;;;;9894:83:30;;216:729:81;9894:83:30;;:::i;10415:477:28:-;-1:-1:-1;;;;;216:729:81;;;-1:-1:-1;216:729:81;;;;;;;;;;;;;;;;;;;;;;;;;10415:477:28;;10580:37;;10576:310;;10415:477;;;;;:::o;10576:310::-;10637:24;;;10633:130;;9813:19;;9809:89;;-1:-1:-1;;;;;216:729:81;;9911:21:28;9907:90;;-1:-1:-1;216:729:81;3657:11:28;216:729:81;;;-1:-1:-1;216:729:81;10006:27:28;216:729:81;;;;;;-1:-1:-1;216:729:81;;;;-1:-1:-1;216:729:81;;;;;10576:310:28;;;;;;10633:130;10688:60;;;;;;-1:-1:-1;10688:60:28;216:729:81;;;;;;10688:60:28;216:729:81;;;;;;-1:-1:-1;10688:60:28;5393:300;-1:-1:-1;;;;;216:729:81;;5476:18:28;;5472:86;;-1:-1:-1;;;;;216:729:81;;5571:16:28;;5567:86;;216:729:81;5492:1:28;216:729:81;5492:1:28;216:729:81;;;5492:1:28;216:729:81;;6340:19:28;;;6336:115;;216:729:81;7083:25:28;216:729:81;;;;5492:1:28;216:729:81;5492:1:28;216:729:81;;;;5492:1:28;216:729:81;;;5492:1:28;216:729:81;5492:1:28;216:729:81;;;5492:1:28;216:729:81;;;;;;;;;;;;7083:25:28;5393:300::o;6336:115::-;6386:50;;;;5492:1;6386:50;;216:729:81;;;;;;5492:1:28;6386:50;5567:86;5610:32;;;5492:1;5610:32;5492:1;5610:32;216:729:81;;5492:1:28;5610:32;5472:86;5517:30;;;5492:1;5517:30;5492:1;5517:30;216:729:81;;5492:1:28;5517:30;10108:213:30;10245:13;;:::i;:::-;216:729:81;10261:1:30;216:729:81;;;;;;;2927:12:28;216:729:81;10261:1:30;216:729:81;;;;;;;10231:83:30;;216:729:81;10231:83:30;;:::i;10108:213::-;10245:13;;:::i;:::-;216:729:81;7451:18:30;216:729:81;;;;;;;2927:12:28;216:729:81;7451:18:30;216:729:81;;;;;;;10231:83:30;;7451:18;10231:83;;:::i;10385:831::-;216:729:81;;-1:-1:-1;;;1829:53:32;;;;-1:-1:-1;;;;;216:729:81;;;1829:53:32;;;216:729:81;;;11105:4:30;216:729:81;;;;;;;;;;;1829:53:32;;216:729:81;10385:831:30;;1829:53:32;;;;216:729:81;1829:53:32;:::i;:::-;11081:6:30;1829:53:32;:::i;:::-;-1:-1:-1;;;;;216:729:81;;7528:21:28;;7524:91;;11168:41:30;216:729:81;;6233:21:28;216:729:81;;6233:21:28;216:729:81;6233:21:28;:::i;:::-;;216:729:81;;-1:-1:-1;216:729:81;-1:-1:-1;1829:53:32;216:729:81;;-1:-1:-1;216:729:81;;;;;;;;-1:-1:-1;7083:25:28;1829:53:32;216:729:81;;;;;7083:25:28;216:729:81;;;;;1829:53:32;216:729:81;;;11168:41:30;10385:831::o;11283:915::-;-1:-1:-1;;;;;216:729:81;;;;11283:915:30;;216:729:81;;;;11283:915:30;;;;;11460:15;;;11456:84;;11283:915;8054:21:28;;;;;8050:89;;216:729:81;8073:1:28;216:729:81;8073:1:28;216:729:81;;;8073:1:28;216:729:81;;6340:19:28;;;6336:115;;216:729:81;;;;12142:49:30;216:729:81;;8073:1:28;216:729:81;8073:1:28;216:729:81;;;;8073:1:28;216:729:81;;;6810:21:28;216:729:81;;6810:21:28;216:729:81;8073:1:28;216:729:81;7083:25:28;216:729:81;;;;;;7083:25:28;216:729:81;;-1:-1:-1;;;216:729:81;1412:43:32;;;-1:-1:-1;;;;;216:729:81;;;1412:43:32;;;216:729:81;;;;;;;;;;1412:43:32;;216:729:81;1412:43:32;;;;216:729:81;1412:43:32;:::i;:::-;216:729:81;;;;;;;;;12142:49:30;11283:915::o;6336:115:28:-;6386:50;;;;8073:1;6386:50;;216:729:81;;;;;;8073:1:28;6386:50;11456:84:30;11522:6;;;:::i;:::-;11456:84;;;;;8641:238:38;;;8768:25;;;;;:::i;:::-;216:729:81;;;;;;;26935:1:38;216:729:81;;;26912:24:38;8812:59;;;;8641:238;34906:55:39;;8768:104:38;34906:55:39;;;;8768:104:38;;:::i;8812:59::-;8842:25;;;;;;;8768:104;8842:25;;:29;;8812:59;;;;8842:25;216:729:81;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;;;;;-1:-1:-1;216:729:81;4289:4223:38;;216:729:81;;;;-1:-1:-1;;216:729:81;4289:4223:38;4881:131;;;;;;;;;;;;5093:10;;5089:368;;5567:20;;;;5563:136;;5985:300;;;;216:729:81;;;6504:31:38;;6549:375;;;7384:1;216:729:81;7365:1:38;216:729:81;7364:21:38;216:729:81;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;;;;7384:1:38;216:729:81;;6549:375:38;;;;216:729:81;6549:375:38;;;5985:300;;;;;;216:729:81;5985:300:38;;6549:375;6990:21;216:729:81;4289:4223:38;:::o;5563:136::-;5619:16;;;939:4:36;5619:64:38;1776:119:36;216:729:81;1776:119:36;;;;;;5619:64:38;844:4:36;5619:64:38;;5089:368;216:729:81;;;;;;;;;5416:26:38;:::o;6468:629:32:-;3256:31:33;;-1:-1:-1;;;;;216:729:81;;;;2626:1:33;;;;3256:31;;2626:1;216:729:81;3256:31:33;;216:729:81;;;;;;;;;;3304:55:33;216:729:81;;;;;3256:31:33;216:729:81;;;;;;;;;:::i;:::-;;;;2626:1:33;3256:31;216:729:81;;;;3304:55:33;;:::i;:::-;216:729:81;;6960:22:32;;;;:57;;;;216:729:81;6956:135:32;;;;6468:629;:::o;6956:135::-;7040:40;;;2626:1:33;7040:40:32;;216:729:81;;2626:1:33;7040:40:32;6960:57;6987:30;;;;3256:31:33;6987:30:32;;;216:729:81;;;;3256:31:33;6987:30:32;216:729:81;;;;;;;;;6960:57:32;;;;216:729:81;3304:55:33;216:729:81;;;;;4421:582:33;;4593:8;;-1:-1:-1;216:729:81;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;216:729:81;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;216:729:81;;;;4917:24:33;216:729:81;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"47616":[{"start":1259,"length":32},{"start":2184,"length":32},{"start":2945,"length":32}],"47618":[{"start":1326,"length":32}]}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","asset()":"38d52e0f","balanceOf(address)":"70a08231","convertToAssets(uint256)":"07a2d13a","convertToShares(uint256)":"c6e6f592","decimals()":"313ce567","deposit(uint256,address)":"6e553f65","isBufferInitialized()":"dc0a9929","maxDeposit(address)":"402d267d","maxMint(address)":"c63d75b6","maxRedeem(address)":"d905777e","maxWithdraw(address)":"ce96cb77","mint(uint256,address)":"94bf804d","name()":"06fdde03","previewDeposit(uint256)":"ef8b30f7","previewMint(uint256)":"b3d7f6b9","previewRedeem(uint256)":"4cdad506","previewWithdraw(uint256)":"0a28a477","redeem(uint256,address,address)":"ba087652","symbol()":"95d89b41","totalAssets()":"01e1d114","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","withdraw(uint256,address,address)":"b460af94"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_asset\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxMint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxRedeem\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"ERC4626ExceededMaxWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Deposit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"asset\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"convertToAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"convertToShares\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isBufferInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"maxMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"maxWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewMint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"previewRedeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"}],\"name\":\"previewWithdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"shares\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalAssets\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assets\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC4626ExceededMaxDeposit(address,uint256,uint256)\":[{\"details\":\"Attempted to deposit more assets than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxMint(address,uint256,uint256)\":[{\"details\":\"Attempted to mint more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxRedeem(address,uint256,uint256)\":[{\"details\":\"Attempted to redeem more shares than the max amount for `receiver`.\"}],\"ERC4626ExceededMaxWithdraw(address,uint256,uint256)\":[{\"details\":\"Attempted to withdraw more assets than the max amount for `receiver`.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InsufficientBalance(uint256,uint256)\":[{\"details\":\"The ETH balance of the account is not enough to perform the operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"asset()\":{\"details\":\"See {IERC4626-asset}. \"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"convertToAssets(uint256)\":{\"details\":\"See {IERC4626-convertToAssets}. \"},\"convertToShares(uint256)\":{\"details\":\"See {IERC4626-convertToShares}. \"},\"decimals()\":{\"details\":\"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \\\"original\\\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}.\"},\"deposit(uint256,address)\":{\"details\":\"See {IERC4626-deposit}. \"},\"maxDeposit(address)\":{\"details\":\"See {IERC4626-maxDeposit}. \"},\"maxMint(address)\":{\"details\":\"See {IERC4626-maxMint}. \"},\"maxRedeem(address)\":{\"details\":\"See {IERC4626-maxRedeem}. \"},\"maxWithdraw(address)\":{\"details\":\"See {IERC4626-maxWithdraw}. \"},\"mint(uint256,address)\":{\"details\":\"See {IERC4626-mint}. \"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"previewDeposit(uint256)\":{\"details\":\"See {IERC4626-previewDeposit}. \"},\"previewMint(uint256)\":{\"details\":\"See {IERC4626-previewMint}. \"},\"previewRedeem(uint256)\":{\"details\":\"See {IERC4626-previewRedeem}. \"},\"previewWithdraw(uint256)\":{\"details\":\"See {IERC4626-previewWithdraw}. \"},\"redeem(uint256,address,address)\":{\"details\":\"See {IERC4626-redeem}. \"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalAssets()\":{\"details\":\"See {IERC4626-totalAssets}. \"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"withdraw(uint256,address,address)\":{\"details\":\"See {IERC4626-withdraw}. \"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockSUSDC.sol\":\"MockSUSDC\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73\",\"dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol\":{\"keccak256\":\"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf\",\"dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12\",\"dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol\":{\"keccak256\":\"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2\",\"dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488\",\"dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b\",\"dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3\",\"dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f\",\"dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047\",\"dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko\"]},\"test/mocks/MockSUSDC.sol\":{\"keccak256\":\"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1\",\"dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IERC20","name":"_asset","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxDeposit"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxMint"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxRedeem"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"type":"error","name":"ERC4626ExceededMaxWithdraw"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Deposit","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"receiver","type":"address","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"assets","type":"uint256","indexed":false},{"internalType":"uint256","name":"shares","type":"uint256","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isBufferInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"view","type":"function","name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"asset()":{"details":"See {IERC4626-asset}. "},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"convertToAssets(uint256)":{"details":"See {IERC4626-convertToAssets}. "},"convertToShares(uint256)":{"details":"See {IERC4626-convertToShares}. "},"decimals()":{"details":"Decimals are computed by adding the decimal offset on top of the underlying asset's decimals. This \"original\" value is cached during construction of the vault contract. If this read operation fails (e.g., the asset has not been created yet), a default of 18 is used to represent the underlying asset's decimals. See {IERC20Metadata-decimals}."},"deposit(uint256,address)":{"details":"See {IERC4626-deposit}. "},"maxDeposit(address)":{"details":"See {IERC4626-maxDeposit}. "},"maxMint(address)":{"details":"See {IERC4626-maxMint}. "},"maxRedeem(address)":{"details":"See {IERC4626-maxRedeem}. "},"maxWithdraw(address)":{"details":"See {IERC4626-maxWithdraw}. "},"mint(uint256,address)":{"details":"See {IERC4626-mint}. "},"name()":{"details":"Returns the name of the token."},"previewDeposit(uint256)":{"details":"See {IERC4626-previewDeposit}. "},"previewMint(uint256)":{"details":"See {IERC4626-previewMint}. "},"previewRedeem(uint256)":{"details":"See {IERC4626-previewRedeem}. "},"previewWithdraw(uint256)":{"details":"See {IERC4626-previewWithdraw}. "},"redeem(uint256,address,address)":{"details":"See {IERC4626-redeem}. "},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalAssets()":{"details":"See {IERC4626-totalAssets}. "},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"withdraw(uint256,address,address)":{"details":"See {IERC4626-withdraw}. "}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","balancer-v2/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/MockSUSDC.sol":"MockSUSDC"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9f21f1bcc51daf7fe3998608d7eeb96b16a9c3816898a0cf6a9407bd105c9253","urls":["bzz-raw://71cd1acb2370851314e9e2fc84123228e468037435eea0ed1c459346a214ce73","dweb:/ipfs/QmXw5XVVnrjX3m224Zs9jdQVY3abwiCEVBjk9w24DXsFSi"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4626.sol":{"keccak256":"0x6423475004ac1c4db6e9f16908cbfb82e630f7868051869c6f89c7452facbc06","urls":["bzz-raw://bd31766a3235519db9207c02652e124746eef3e451271e82830090f9864ff4cf","dweb:/ipfs/QmNjjADM3vFELnFtiZJYuRRXEjQb8KP7cq6b8YqKww6Sdb"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xc61b3530214f6729db70cc02ffacf6218e601a5e351dd25e369a03c6ca201cfb","urls":["bzz-raw://48b897a0323b8d04464848832b364ecfd6c002fd15c53a86304ca1eec1475d12","dweb:/ipfs/QmV1S2GmZgU9bDEfdXFyCe1HhDy4nND3z4Jyy4iBvh5wu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/ERC4626.sol":{"keccak256":"0xf171181c69e4560fbe3c575b8b0457ee4077cf22514c29c1b2cfcd3d9ad515cf","urls":["bzz-raw://66ff4f5325f725be9dd654b2e31c94a621261ff93295cdae03e85f8bd6bee4f2","dweb:/ipfs/QmefUEsDJvdCeX6mehjE645tM9j9PHxfQzoGwZE3mArsZh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xde02e3a80c5c3b3a2187fbfbdfc7ed7c8c0d5b2e4a0ff5671611674b6c96bd91","urls":["bzz-raw://44b4a6161c6b718c37229643c8e6881b82b14dbcf7ea1b0b081fbc7b810e3488","dweb:/ipfs/QmUAxfrzeBusBHRkCfgzvD8axBKvdmtWz9rb52rYBH5K1w"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x80b4189de089dc632b752b365a16c5063b58cc24da0dd38b82f2c25f56d25c84","urls":["bzz-raw://81e2717e78844156a86733f1cada84dba906ffe03e4957de12ca219c65e9191b","dweb:/ipfs/QmW8vg3AafPJRo7EC75RQJTtjiaYmfPa4U4sqmEuBXXzaP"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0x29074fe5a74bb024c57b3570abf6c74d8bceed3438694d470fd0166a3ecd196a","urls":["bzz-raw://f4f8435ccbc56e384f4cc9ac9ff491cf30a82f2beac00e33ccc2cf8af3f77cc3","dweb:/ipfs/QmUKJXxTe6nn1qfgnX8xbnboNNAPUuEmJyGqMZCKNiFBgn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x6fe40ce2addf1fe91a86c334b51ef5abe9c3b831d5d4d74ecae1d9c7d06cdccb","urls":["bzz-raw://5027588e408027935ac78e32d9e813fda6bf33349b8a5be5c6c936273743369f","dweb:/ipfs/QmZwSzs94V9u7VSdhw2bhbrogWZ37wvrQFBz6QNJTmKokE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x8cd59334ed58b8884cd1f775afc9400db702e674e5d6a7a438c655b9de788d7e","urls":["bzz-raw://99e62c7de7318f413b6352e3f2704ca23e7725ff144e43c8bd574d12dbf29047","dweb:/ipfs/QmSEXG2rBx1VxU2uFTWdiChjDvA4osEY2mesjmoVeVhHko"],"license":"MIT"},"test/mocks/MockSUSDC.sol":{"keccak256":"0x9ecd1e464af8b8f0d23bb44953eca1944f67cf4bc8c6800d02a7bd5e6f58b17c","urls":["bzz-raw://464b50a2acd53195e88e6e900a181b532670de703d596366d348a49856d6e7c1","dweb:/ipfs/QmVutpEvdTXy4jC7kJkE54QUYgfk6ngkEwsVoVtPU4j72b"],"license":"AGPL-3.0-or-later"}},"version":1},"id":81} |