Files
tycho-protocol-sdk/evm/out/AngleAdapter.sol/AngleAdapter.json
2025-09-16 11:31:19 +02:00

1 line
60 KiB
JSON

{"abi":[{"type":"constructor","inputs":[{"name":"_transmuter","type":"address","internalType":"contract ITransmuter"}],"stateMutability":"nonpayable"},{"type":"function","name":"getCapabilities","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"capabilities","type":"uint8[]","internalType":"enum ISwapAdapterTypes.Capability[]"}],"stateMutability":"pure"},{"type":"function","name":"getLimits","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"}],"outputs":[{"name":"limits","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPoolIds","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"pure"},{"type":"function","name":"getTokens","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"tokens","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct ISwapAdapterTypes.Fraction[]","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"swap","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"sellToken","type":"address","internalType":"address"},{"name":"buyToken","type":"address","internalType":"address"},{"name":"side","type":"uint8","internalType":"enum ISwapAdapterTypes.OrderSide"},{"name":"specifiedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"trade","type":"tuple","internalType":"struct ISwapAdapterTypes.Trade","components":[{"name":"calculatedAmount","type":"uint256","internalType":"uint256"},{"name":"gasUsed","type":"uint256","internalType":"uint256"},{"name":"price","type":"tuple","internalType":"struct ISwapAdapterTypes.Fraction","components":[{"name":"numerator","type":"uint256","internalType":"uint256"},{"name":"denominator","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"nonpayable"},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"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":"LimitExceeded","inputs":[{"name":"limit","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"Unavailable","inputs":[{"name":"reason","type":"string","internalType":"string"}]}],"bytecode":{"object":"0x60a03461008c57601f6116e038819003918201601f19168301916001600160401b038311848410176100905780849260209460405283398101031261008c57516001600160a01b038116810361008c5760805260405161163b90816100a58239608051818181607e015281816103ba01528181610afc01528181610c3a01528181610d0e0152610eb30152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b0033","sourceMap":"920:7543:40:-:0;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;1083:24;;920:7543;;;;;;;;1083:24;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;-1:-1:-1;920:7543:40;;;;;-1:-1:-1;920:7543:40","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816323eeca01146108e45750806348bd7dfd146108435780638307c655146107e0578063a9270fbe1461037e578063aad6e488146102b55763ecbbc0331461005e575f80fd5b346101f25760203660031901126101f25760405163b718136160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316905f81600481855afa9081156101fe575f9161021d575b50805160018101809111610209576100ed6100d7826109ee565b916100e560405193846109cd565b8083526109ee565b602082019290601f19013684375f5b815181101561012d576001906001600160a01b0361011a8285610a36565b51166101268286610a36565b52016100fc565b506020600492946040519384809263ee565a6360e01b82525afa9182156101fe575f926101bb575b50610164909392935183610a36565b6001600160a01b0390911690526040805160208082529251928101839052928392918301915f5b818110610199575050500390f35b82516001600160a01b031684528594506020938401939092019160010161018b565b9091506020813d6020116101f6575b816101d7602093836109cd565b810103126101f2576101eb6101649161101e565b9190610155565b5f80fd5b3d91506101ca565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90503d805f833e61022e81836109cd565b8101906020818303126101f2578051906001600160401b0382116101f257019080601f830112156101f2578151610264816109ee565b9261027260405194856109cd565b81845260208085019260051b8201019283116101f257602001905b82821061029d575050505f6100bd565b602080916102aa8461101e565b81520191019061028d565b346101f25760803660031901126101f2576102ce610938565b506102d761094e565b506064356001600160401b0381116101f257366023820112156101f25780600401359060246020610307846109ee565b61031460405191826109cd565b848152019260051b820101903682116101f257602401915b81831061036e57604051631d04569d60e21b8152602060048201526012602482015271416e676c65416461707465722e707269636560701b6044820152606490fd5b823581526020928301920161032c565b346101f25761038c36610964565b60405192509061039d6060846109cd565b600283526020830191604036843760405163ee565a6360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa9081156101fe575f916107a6575b506001600160a01b038381169116810361061f5750604051630333522160e41b81526001600160a01b038416600482018190525f82602481865afa9182156101fe575f926105fb575b50815160ff161561057a5750906104b993610468602061018081969501510151611406565b61047188610a05565b525b61047c87610a05565b516040516322c1d75360e11b815260048101919091526001600160a01b039182166024820152921660448301529092839190829081906064820190565b03915afa9081156101fe575f91610548575b506104d583610a26565b52600a6104e183610a26565b51046104ec83610a26565b52600a6104f883610a05565b510461050383610a05565b52905b604051918291602083019060208452518091526040830191905f5b81811061052f575050500390f35b8251845285945060209384019390920191600101610521565b90506020813d602011610572575b81610563602093836109cd565b810103126101f25751836104cb565b3d9150610556565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f916105c1575b50906104b993602093926105bb88610a05565b52610473565b929190506020833d6020116105f3575b816105de602093836109cd565b810103126101f25791519091906104b96105a8565b3d91506105d1565b6106189192503d805f833e61061081836109cd565b810190611169565b9087610443565b604051630333522160e41b815260048101829052929392905f82602481865afa9182156101fe575f9261078a575b50815160ff161561070957509061068693610672602061018081969501510151611406565b61067b88610a26565b525b61047c87610a26565b03915afa9081156101fe575f916106d7575b506106a283610a05565b52600a6106ae83610a26565b51046106b983610a26565b52600a6106c583610a05565b51046106d083610a05565b5290610506565b90506020813d602011610701575b816106f2602093836109cd565b810103126101f2575183610698565b3d91506106e5565b60249150602090604051928380926370a0823160e01b82528660048301525afa9081156101fe575f91610750575b5090610686936020939261074a88610a26565b5261067d565b929190506020833d602011610782575b8161076d602093836109cd565b810103126101f2579151909190610686610737565b3d9150610760565b61079f9192503d805f833e61061081836109cd565b908761064d565b90506020813d6020116107d8575b816107c1602093836109cd565b810103126101f2576107d29061101e565b866103fa565b3d91506107b4565b346101f25760a03660031901126101f2576107f9610938565b61080161094e565b6064359160028310156101f25760809261081e9260843592610a70565b6020604080519280518452828101518385015201518051604084015201516060820152f35b346101f25761085136610964565b5050506040516108626060826109cd565b60028152602081016040368237600161087a83610a05565b52600261088683610a26565b52604051906020820192602083525180935260408201905f935b8085106108ad5783830384f35b9091825190600a8210156108d057602081600193829352019301940193906108a0565b634e487b7160e01b5f52602160045260245ffd5b346101f25760403660031901126101f257631d04569d60e21b815260206004820152601760248201527f416e676c65416461707465722e676574506f6f6c4964730000000000000000006044820152606490fd5b602435906001600160a01b03821682036101f257565b604435906001600160a01b03821682036101f257565b60609060031901126101f257600435906024356001600160a01b03811681036101f257906044356001600160a01b03811681036101f25790565b604081019081106001600160401b038211176109b957604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176109b957604052565b6001600160401b0381116109b95760051b60200190565b805115610a125760200190565b634e487b7160e01b5f52603260045260245ffd5b805160011015610a125760400190565b8051821015610a125760209160051b010190565b60405190610a578261099e565b5f6020838281520152565b519060ff821682036101f257565b91939260405194606086018681106001600160401b038211176109b9576040525f86525f6020870152604051610aa58161099e565b5f81525f6020820152604087015285821561101657505a9060028110156108d05715918215610e83576001600160a01b03851690610ae5813033856114d2565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201819052602482018390529290916020836044815f865af19081156101fe5760209360c492610e58575b505f60405195869485936301db50ff60e51b85526004850152826024850152604484015260018060a01b038a1660648401523360848401528160a48401525af19081156101fe575f91610e26575b5086525b5a81039081116102095760208601528015610db85760405163313ce56760e01b81526020816004816001600160a01b0388165afa9081156101fe575f91610d7e575b50905b610be8610a4a565b5015610cc257610c3691610bfd6020926113f5565b6040516322c1d75360e11b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610c90575b50905b60405191610c828361099e565b825260208201526040830152565b90506020813d602011610cba575b81610cab602093836109cd565b810103126101f257515f610c72565b3d9150610c9e565b610d0a91610cd16020926113f5565b604051639525f3ab60e01b8152600481018290526001600160a01b03958616602482015291909416604482015291829081906064820190565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101fe575f91610d4c575b50610c75565b90506020813d602011610d76575b81610d67602093836109cd565b810103126101f257515f610d46565b3d9150610d5a565b90506020813d602011610db0575b81610d99602093836109cd565b810103126101f257610daa90610a62565b5f610bdd565b3d9150610d8c565b60405163313ce56760e01b81526020816004816001600160a01b0387165afa9081156101fe575f91610dec575b5090610be0565b90506020813d602011610e1e575b81610e07602093836109cd565b810103126101f257610e1890610a62565b5f610de5565b3d9150610dfa565b90506020813d602011610e50575b81610e41602093836109cd565b810103126101f257515f610b97565b3d9150610e34565b610e7790853d8711610e7c575b610e6f81836109cd565b8101906113dd565b610b49565b503d610e65565b604051639525f3ab60e01b8152600481018290526001600160a01b038681166024830152858116604483015290917f000000000000000000000000000000000000000000000000000000000000000090911690602083606481855afa9283156101fe575f93610fe2575b506001600160a01b038716610f04843033846114d2565b60405163095ea7b360e01b81526001600160a01b038416600482015260248101859052916020836044815f865af19081156101fe5760209360c492610fc7575b505f6040519586948593635c92b3fd60e11b8552600485015282196024850152604484015260018060a01b038b1660648401523360848401528160a48401525af180156101fe57610f98575b508652610b9b565b610fb99060203d602011610fc0575b610fb181836109cd565b8101906113ce565b505f610f90565b503d610fa7565b610fdd90853d8711610e7c57610e6f81836109cd565b610f44565b9092506020813d60201161100e575b81610ffe602093836109cd565b810103126101f25751915f610eed565b3d9150610ff1565b955050505050565b51906001600160a01b03821682036101f257565b9080601f830112156101f25781519061104a826109ee565b9261105860405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110805750505090565b82516001600160401b03811681036101f257815260209283019201611073565b9080601f830112156101f2578151906110b8826109ee565b926110c660405194856109cd565b82845260208085019360051b8201019182116101f257602001915b8183106110ee5750505090565b82518060070b81036101f2578152602092830192016110e1565b6001600160401b0381116109b957601f01601f191660200190565b81601f820112156101f25780519061113a82611108565b9261114860405194856109cd565b828452602083830101116101f257815f9260208093018386015e8301015290565b6020818303126101f2578051906001600160401b0382116101f25701906101a0828203126101f257604051916101a083018381106001600160401b038211176109b9576040526111b881610a62565b83526111c660208201610a62565b60208401526111d760408201610a62565b60408401526111e860608201610a62565b60608401526111f960808201610a62565b608084015260a08101516001600160d81b03811681036101f25760a084015260c08101516001600160401b0381116101f25782611237918301611032565b60c084015260e08101516001600160401b0381116101f2578261125b9183016110a0565b60e08401526101008101516001600160401b0381116101f25782611280918301611032565b6101008401526101208101516001600160401b0381116101f257826112a69183016110a0565b6101208401526101408101516001600160401b0381116101f257826112cc918301611123565b6101408401526101608101516001600160401b0381116101f257826112f2918301611123565b610160840152610180810151906001600160401b0382116101f257016040818303126101f257604051916113258361099e565b81516001600160401b0381116101f257820181601f820112156101f257805161134d816109ee565b9161135b60405193846109cd565b81835260208084019260051b820101908482116101f257602001915b8183106113ae57505050835260208201516001600160401b0381116101f2576113a09201611123565b602082015261018082015290565b82516001600160a01b03811681036101f257815260209283019201611377565b908160209103126101f2575190565b908160209103126101f2575180151581036101f25790565b60ff16604d811161020957600a0a90565b905f91805181016040828203126101f25760208201519160018310156101f2576040810151916001600160401b0383116101f25761144b926020809201920101611123565b90156114545750565b9091506020818051810103126101f257602001516001600160a01b038116908190036101f25760206004916040519283809263e8c9bee560e01b82525afa9081156101fe575f916114a3575090565b90506020813d6020116114ca575b816114be602093836109cd565b810103126101f2575190565b3d91506114b1565b6040516323b872dd60e01b602082019081526001600160a01b0393841660248301529390921660448301526064808301949094529281529161155c915f9182919061151e6084876109cd565b60018060a01b031694519082865af13d1561159f573d9061153e82611108565b9161154c60405193846109cd565b82523d5f602084013e5b836115a7565b8051908115159182611584575b50506115725750565b635274afe760e01b5f5260045260245ffd5b61159792506020809183010191016113dd565b155f80611569565b606090611556565b906115cb57508051156115bc57805190602001fd5b63d6bda27560e01b5f5260045ffd5b815115806115fc575b6115dc575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156115d456fea2646970667358221220c5c3311a5d17cff62dfcf36c9e310f0750eec2ab8f1197d1bad4f9fd1daec9a564736f6c634300081b0033","sourceMap":"920:7543:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;6053:41;;920:7543;6053:41;;;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;;;-1:-1:-1;;;5600:30:40;;:10;-1:-1:-1;;;;;920:7543:40;;;;;;;5600:30;;;;;;;920:7543;5600:30;;;920:7543;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;920:7543:40;;;;;5758:3;920:7543;;5725:31;;;;;920:7543;;-1:-1:-1;;;;;5797:23:40;920:7543;5797:23;;:::i;:::-;920:7543;;5777:44;;;;:::i;:::-;920:7543;;5710:13;;5725:31;;920:7543;;5725:31;;920:7543;;;;;;;;;5879:20;;;;;;;;;920:7543;5879:20;;;5705:127;920:7543;5841:58;920:7543;;;;;5841:58;;:::i;:::-;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;5879:20;;;;920:7543;5879:20;;920:7543;5879:20;;;;;;920:7543;5879:20;;;:::i;:::-;;;920:7543;;;;;5841:58;920:7543;;:::i;:::-;5879:20;;;;920:7543;;;;5879:20;;;-1:-1:-1;5879:20:40;;;920:7543;;;;;;;;;;;;;;;;;;;;;5600:30;;;;;920:7543;5600:30;;;;;;:::i;:::-;;;920:7543;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;5600:30;;;;;;920:7543;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1680:36:40;;920:7543;;1680:36;;920:7543;;;;;;-1:-1:-1;;;920:7543:40;;;;;;1680:36;920:7543;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;920:7543:40;;;;;:::i;:::-;3570:1;920:7543;;;;;;;;;;;;-1:-1:-1;;;3656:20:40;;3618:10;-1:-1:-1;;;;;920:7543:40;;;;;;;3656:20;;;;;;;920:7543;3656:20;;;920:7543;-1:-1:-1;;;;;;920:7543:40;;;;;3644:32;;920:7543;;-1:-1:-1;920:7543:40;;-1:-1:-1;;;3772:39:40;;-1:-1:-1;;;;;920:7543:40;;;3772:39;;920:7543;;;-1:-1:-1;920:7543:40;3772:39;920:7543;3772:39;;;;;;;;920:7543;3772:39;;;3640:1233;-1:-1:-1;920:7543:40;;;;3829:24;920:7543;;3929:22;;4096:50;3929:22;3905:54;920:7543;3929:22;;;;;;:29;;3905:54;:::i;:::-;3873:86;;;:::i;:::-;920:7543;3825:246;4115:9;;;:::i;:::-;920:7543;;;-1:-1:-1;;;4096:50:40;;920:7543;4096:50;;920:7543;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;4096:50;;;;;;;;;;920:7543;4096:50;;;3825:246;4084:62;;;;:::i;:::-;920:7543;575:2;4172:9;;;:::i;:::-;920:7543;575:2;4160:44;;;:::i;:::-;920:7543;575:2;4230:9;;;:::i;:::-;920:7543;575:2;4218:44;;;:::i;:::-;920:7543;3640:1233;;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;4096:50;;;920:7543;4096:50;;920:7543;4096:50;;;;;;920:7543;4096:50;;;:::i;:::-;;;920:7543;;;;;4096:50;;;;;;-1:-1:-1;4096:50:40;;3825:246;3772:39;920:7543;;;;;;;;;;;;;4010:46;;;920:7543;4010:46;;920:7543;4010:46;;;;;;;920:7543;4010:46;;;3825:246;3998:58;;4096:50;3998:58;920:7543;3998:58;;;;;:::i;:::-;920:7543;3825:246;;4010:46;;;;;920:7543;4010:46;;920:7543;4010:46;;;;;;920:7543;4010:46;;;:::i;:::-;;;920:7543;;;;;;4010:46;;;4096:50;4010:46;;;;;-1:-1:-1;4010:46:40;;3772:39;;;;;;;920:7543;3772:39;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;3640:1233;920:7543;;-1:-1:-1;;;4374:38:40;;920:7543;4374:38;;920:7543;;;;;;;-1:-1:-1;920:7543:40;4374:38;920:7543;4374:38;;;;;;;;920:7543;4374:38;;;3640:1233;-1:-1:-1;920:7543:40;;;;4430:24;920:7543;;4530:22;;4696:50;4530:22;4506:54;920:7543;4530:22;;;;;;:29;;4506:54;:::i;:::-;4474:86;;;:::i;:::-;920:7543;4426:245;4715:9;;;:::i;4696:50::-;;;;;;;;;;920:7543;4696:50;;;4426:245;4684:62;;;;:::i;:::-;920:7543;575:2;4772:9;;;:::i;:::-;920:7543;575:2;4760:44;;;:::i;:::-;920:7543;575:2;4830:9;;;:::i;:::-;920:7543;575:2;4818:44;;;:::i;:::-;920:7543;3640:1233;;;4696:50;;;920:7543;4696:50;;920:7543;4696:50;;;;;;920:7543;4696:50;;;:::i;:::-;;;920:7543;;;;;4696:50;;;;;;-1:-1:-1;4696:50:40;;4426:245;4374:38;920:7543;;;;;;;;;;;;;4611:45;;;920:7543;4611:45;;920:7543;4611:45;;;;;;;920:7543;4611:45;;;4426:245;4599:57;;4696:50;4599:57;920:7543;4599:57;;;;;:::i;:::-;920:7543;4426:245;;4611:45;;;;;920:7543;4611:45;;920:7543;4611:45;;;;;;920:7543;4611:45;;;:::i;:::-;;;920:7543;;;;;;4611:45;;;4696:50;4611:45;;;;;-1:-1:-1;4611:45:40;;4374:38;;;;;;;920:7543;4374:38;;;;;;:::i;:::-;;;;;3656:20;;;920:7543;3656:20;;920:7543;3656:20;;;;;;920:7543;3656:20;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;3656:20;;;;;;-1:-1:-1;3656:20:40;;920:7543;;;;;;-1:-1:-1;;920:7543:40;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5114:1;920:7543;;;;;;;;;5144:20;5126:38;;;:::i;:::-;920:7543;5114:1;5174:37;;;:::i;:::-;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5144:20;920:7543;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;920:7543:40;;;;-1:-1:-1;;;6053:41:40;;920:7543;;6053:41;;920:7543;;;;;;;;;;;6053:41;;;920:7543;;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;;;;-1:-1:-1;920:7543:40;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;:::o;:::-;-1:-1:-1;;;;;920:7543:40;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;5144:20;920:7543;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;920:7543:40;;;;;;;:::o;:::-;;;;;;;;;;:::o;2061:798::-;;;;920:7543;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;-1:-1:-1;920:7543:40;;-1:-1:-1;920:7543:40;;;;;;;;;:::i;:::-;-1:-1:-1;920:7543:40;;-1:-1:-1;920:7543:40;;;;;;;;2226:18;2260:20;;2256:63;;2349:9;;920:7543;;;;;;;2372:22;;;;;;-1:-1:-1;;;;;920:7543:40;;;7451:6;7444:4;;7424:10;920:7543;7451:6;:::i;:::-;920:7543;;-1:-1:-1;;;7468:54:40;;-1:-1:-1;;;;;7502:10:40;920:7543;7468:54;;;920:7543;;;;;;;;;;;;;;;;-1:-1:-1;920:7543:40;7468:54;;;;;;;920:7543;7468:54;7551:94;7468:54;;;2368:217;920:7543;-1:-1:-1;920:7543:40;;;;;;;;;;7551:94;;7468:54;7551:94;;920:7543;;;;;;;;;;;;;;;;;;;;;7424:10;920:7543;;;;;;;;;7551:94;;;;;;;-1:-1:-1;7551:94:40;;;2368:217;920:7543;;;2368:217;2622:9;920:7543;;;;;;;;2594:13;;920:7543;2658:123;;;;920:7543;;-1:-1:-1;;;2695:36:40;;920:7543;;2695:36;920:7543;-1:-1:-1;;;;;920:7543:40;;2695:36;;;;;;;-1:-1:-1;2695:36:40;;;2658:123;;;;920:7543;;:::i;:::-;-1:-1:-1;6651:22:40;;;6740:47;6700:14;;920:7543;6700:14;;:::i;:::-;920:7543;;-1:-1:-1;;;6740:47:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;6740:47;;920:7543;6740:10;-1:-1:-1;;;;;920:7543:40;6740:47;;;;;;;-1:-1:-1;6740:47:40;;;6647:282;6728:59;6647:282;;920:7543;;;;;;:::i;:::-;;;;6945:29;;920:7543;;2791:11;;:61;2061:798::o;6740:47::-;;;920:7543;6740:47;;920:7543;6740:47;;;;;;920:7543;6740:47;;;:::i;:::-;;;920:7543;;;;;6740:47;;;;;;-1:-1:-1;6740:47:40;;6647:282;6869:49;6830:14;;920:7543;6830:14;;:::i;:::-;920:7543;;-1:-1:-1;;;6869:49:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;6869:49;;920:7543;6869:10;-1:-1:-1;;;;;920:7543:40;6869:49;;;;;;;-1:-1:-1;6869:49:40;;;6647:282;6858:60;6647:282;;6869:49;;;920:7543;6869:49;;920:7543;6869:49;;;;;;920:7543;6869:49;;;:::i;:::-;;;920:7543;;;;;6869:49;;;;;;-1:-1:-1;6869:49:40;;2695:36;;;920:7543;2695:36;;920:7543;2695:36;;;;;;920:7543;2695:36;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;2695:36;;;;;;-1:-1:-1;2695:36:40;;2658:123;920:7543;;-1:-1:-1;;;2746:35:40;;920:7543;;2746:35;920:7543;-1:-1:-1;;;;;920:7543:40;;2746:35;;;;;;;-1:-1:-1;2746:35:40;;;2658:123;;;;;2746:35;;;920:7543;2746:35;;920:7543;2746:35;;;;;;920:7543;2746:35;;;:::i;:::-;;;920:7543;;;;;;;:::i;:::-;2746:35;;;;;;-1:-1:-1;2746:35:40;;7551:94;;;920:7543;7551:94;;920:7543;7551:94;;;;;;920:7543;7551:94;;;:::i;:::-;;;920:7543;;;;;7551:94;;;;;;-1:-1:-1;7551:94:40;;7468:54;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;2368:217;920:7543;;-1:-1:-1;;;8093:51:40;;;;;920:7543;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;8093:10;920:7543;;;;;;;;;8093:51;;;;;;;-1:-1:-1;8093:51:40;;;2368:217;-1:-1:-1;;;;;;920:7543:40;;8230:16;8223:4;;8203:10;920:7543;8230:16;:::i;:::-;920:7543;;-1:-1:-1;;;8266:64:40;;-1:-1:-1;;;;;920:7543:40;;8093:51;8266:64;;920:7543;;;;;;;;;;;;-1:-1:-1;8266:64:40;;;;;;;;920:7543;8266:64;8340:114;8266:64;;;2368:217;920:7543;-1:-1:-1;920:7543:40;;;;;;;;;;8340:114;;8093:51;8340:114;;920:7543;8391:17;;920:7543;;;;;;;;;;;;;;;;;;;8203:10;920:7543;;;;;;;;;8340:114;;;;;;;;2368:217;920:7543;;;2368:217;;8340:114;;;920:7543;8340:114;920:7543;8340:114;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8266:64;;;;;;;;;;;;;:::i;:::-;;;8093:51;;;;920:7543;8093:51;;920:7543;8093:51;;;;;;920:7543;8093:51;;;:::i;:::-;;;920:7543;;;;;8093:51;;;;;;;-1:-1:-1;8093:51:40;;2256:63;2296:12;-1:-1:-1;;;;;2296:12:40:o;920:7543::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;-1:-1:-1;;920:7543:40;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;920:7543:40;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;920:7543:40;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;18042:340::-;;920:7543;;;;18633:40;;920:7543;;;;;;;18633:40;;;920:7543;;;;;;;;;;;;;-1:-1:-1;;;;;920:7543:40;;;;;18633:40;;;;;920:7543;;;;:::i;:::-;;18264:35;18260:116;;18042:340;:::o;18260:116::-;920:7543;;;18633:40;920:7543;;;18322:28;;920:7543;;;;18633:40;18322:28;920:7543;-1:-1:-1;;;;;920:7543:40;;;;;;;;18633:40;18322:43;920:7543;;;;;;;;;;18322:43;;;;;;;;;920:7543;18322:43;;;18315:50;;:::o;18322:43::-;;;18633:40;18322:43;;18633:40;18322:43;;;;;;920:7543;18322:43;;;:::i;:::-;;;920:7543;;;;;18315:50;:::o;18322:43::-;;;-1:-1:-1;18322:43:40;;1702:188:32;920:7543:40;;-1:-1:-1;;;1829:53:32;;;;;;-1:-1:-1;;;;;920:7543:40;;;1829:53:32;;;920:7543:40;;;;;;;;;;;;;;;;;1829:53:32;;;920:7543:40;3304:55:33;;-1:-1:-1;;;;1829:53:32;;;920:7543:40;1829:53:32;:::i;:::-;920:7543:40;;;;;;3256:31:33;;;;;;;920:7543:40;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1829:53:32;920:7543:40;;;;3304:55:33;;:::i;:::-;920:7543:40;;6960:22:32;;;;:57;;;;920:7543:40;6956:135:32;;;;1702:188;:::o;6956:135::-;7040:40;;;-1:-1:-1;7040:40:32;;920:7543:40;1829:53:32;-1:-1:-1;7040:40:32;6960:57;6987:30;;;1829:53;6987:30;;;;;;;;:::i;:::-;6986:31;6960:57;;;;920:7543:40;;;;;4421:582:33;;4593:8;;-1:-1:-1;920:7543:40;;5674:21:33;:17;;5846:142;;;;;;5670:385;6025:19;;;5694:1;6025:19;;5694:1;6025:19;4589:408;920:7543:40;;4841:22:33;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;-1:-1:-1;;;4862:1:33;4917:24;;;-1:-1:-1;;;;;920:7543:40;;;;4917:24:33;920:7543:40;;;4917:24:33;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"52444":[{"start":126,"length":32},{"start":954,"length":32},{"start":2812,"length":32},{"start":3130,"length":32},{"start":3342,"length":32},{"start":3763,"length":32}]}},"methodIdentifiers":{"getCapabilities(bytes32,address,address)":"48bd7dfd","getLimits(bytes32,address,address)":"a9270fbe","getPoolIds(uint256,uint256)":"23eeca01","getTokens(bytes32)":"ecbbc033","price(bytes32,address,address,uint256[])":"aad6e488","swap(bytes32,address,address,uint8,uint256)":"8307c655"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ITransmuter\",\"name\":\"_transmuter\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"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\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"LimitExceeded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"Unavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getCapabilities\",\"outputs\":[{\"internalType\":\"enum ISwapAdapterTypes.Capability[]\",\"name\":\"capabilities\",\"type\":\"uint8[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"}],\"name\":\"getLimits\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"limits\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"getPoolIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"name\":\"price\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"sellToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"buyToken\",\"type\":\"address\"},{\"internalType\":\"enum ISwapAdapterTypes.OrderSide\",\"name\":\"side\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"specifiedAmount\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"calculatedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"internalType\":\"struct ISwapAdapterTypes.Fraction\",\"name\":\"price\",\"type\":\"tuple\"}],\"internalType\":\"struct ISwapAdapterTypes.Trade\",\"name\":\"trade\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Information about prices: When swapping collateral to agEUR, the trade price will not decrease(amountOut). Instead, when swapping agEUR to collateral, it will, because agEUR is minted, and this mechanism is used to stabilize the agEUR price.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"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.\"}],\"LimitExceeded(uint256)\":[{\"details\":\"The LimitExceeded error is thrown when a limit has been exceeded. E.g. the specified amount can't be traded safely.\"}],\"NotImplemented(string)\":[{\"details\":\"The NotImplemented error is thrown when a function is not implemented.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"Unavailable(string)\":[{\"details\":\"The Unavailable error is thrown when a pool or swap is not available for unexpected reason. E.g. it was paused due to a bug.\"}]},\"kind\":\"dev\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"capabilities\":\"An array of Capability.\"}},\"getLimits(bytes32,address,address)\":{\"details\":\"Mint may have no limits, but we underestimate them to make sure, with the same amount of sellToken. We use the quoteIn (incl. fee), because calculating fee requires a part of the implementation of the Angle Diamond Storage, and therefore redundant functions and excessive contract size, with an high complexity. In addition, we underestimate to RESERVE_LIMIT_FACTOR to ensure swaps with OrderSide.Buy won't fail anyway.\",\"params\":{\"buyToken\":\"The token being bought.\",\"poolId\":\"The ID of the trading pool.\",\"sellToken\":\"The token being sold.\"},\"returns\":{\"limits\":\"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token).\"}},\"getTokens(bytes32)\":{\"details\":\"Since Angle has no pool IDs but supports 3 tokens(agToken and the collaterals), we return all the available collaterals and the agToken(agEUR)\",\"params\":{\"poolId\":\"The ID of the trading pool.\"},\"returns\":{\"tokens\":\"An array of address contracts.\"}},\"price(bytes32,address,address,uint256[])\":{\"details\":\"It is not possible to reproduce the swap in a view mode (like Bancor, Uniswap v2, etc..) as the swap produce a change of storage in the Angle protocol, that impacts the price post trade. Due to the architecture of Angle, it's not possible to calculate the storage modifications of Angle inside the adapter.\"},\"swap(bytes32,address,address,uint8,uint256)\":{\"details\":\"The price post trade is indipendent by the amount, since is the price with minimal fees with 0 slippage. In Angle there is no price with 0 slippage, so we use the PRECISE_UNIT (10^18, that is a small value) as input amount to have a slippage ---> 0.\"}},\"title\":\"AngleAdapter\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getCapabilities(bytes32,address,address)\":{\"notice\":\"Retrieves the capabilities of the selected pool.\"},\"getLimits(bytes32,address,address)\":{\"notice\":\"Retrieves the limits for each token.\"},\"getTokens(bytes32)\":{\"notice\":\"Retrieves the tokens in the selected pool.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/angle/AngleAdapter.sol\":\"AngleAdapter\"},\"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/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"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/Errors.sol\":{\"keccak256\":\"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756\",\"dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"src/angle/AngleAdapter.sol\":{\"keccak256\":\"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664\",\"dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5\"]},\"src/interfaces/ISwapAdapter.sol\":{\"keccak256\":\"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87\",\"dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C\"]},\"src/interfaces/ISwapAdapterTypes.sol\":{\"keccak256\":\"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c\",\"dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract ITransmuter","name":"_transmuter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"InsufficientBalance"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"type":"error","name":"LimitExceeded"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"NotImplemented"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"Unavailable"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"getCapabilities","outputs":[{"internalType":"enum ISwapAdapterTypes.Capability[]","name":"capabilities","type":"uint8[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"}],"stateMutability":"view","type":"function","name":"getLimits","outputs":[{"internalType":"uint256[]","name":"limits","type":"uint256[]"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function","name":"getPoolIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getTokens","outputs":[{"internalType":"address[]","name":"tokens","type":"address[]"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"pure","type":"function","name":"price","outputs":[{"internalType":"struct ISwapAdapterTypes.Fraction[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"sellToken","type":"address"},{"internalType":"address","name":"buyToken","type":"address"},{"internalType":"enum ISwapAdapterTypes.OrderSide","name":"side","type":"uint8"},{"internalType":"uint256","name":"specifiedAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"struct ISwapAdapterTypes.Trade","name":"trade","type":"tuple","components":[{"internalType":"uint256","name":"calculatedAmount","type":"uint256"},{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"struct ISwapAdapterTypes.Fraction","name":"price","type":"tuple","components":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}]}]}]}],"devdoc":{"kind":"dev","methods":{"getCapabilities(bytes32,address,address)":{"params":{"poolId":"The ID of the trading pool."},"returns":{"capabilities":"An array of Capability."}},"getLimits(bytes32,address,address)":{"details":"Mint may have no limits, but we underestimate them to make sure, with the same amount of sellToken. We use the quoteIn (incl. fee), because calculating fee requires a part of the implementation of the Angle Diamond Storage, and therefore redundant functions and excessive contract size, with an high complexity. In addition, we underestimate to RESERVE_LIMIT_FACTOR to ensure swaps with OrderSide.Buy won't fail anyway.","params":{"buyToken":"The token being bought.","poolId":"The ID of the trading pool.","sellToken":"The token being sold."},"returns":{"limits":"An array of size two indicating the limit amount for the sell token (maximum the pool is willing to buy in sell token) as well as the limit amount of the buy token (maximum the pool is willing to sell in buy token)."}},"getTokens(bytes32)":{"details":"Since Angle has no pool IDs but supports 3 tokens(agToken and the collaterals), we return all the available collaterals and the agToken(agEUR)","params":{"poolId":"The ID of the trading pool."},"returns":{"tokens":"An array of address contracts."}},"price(bytes32,address,address,uint256[])":{"details":"It is not possible to reproduce the swap in a view mode (like Bancor, Uniswap v2, etc..) as the swap produce a change of storage in the Angle protocol, that impacts the price post trade. Due to the architecture of Angle, it's not possible to calculate the storage modifications of Angle inside the adapter."},"swap(bytes32,address,address,uint8,uint256)":{"details":"The price post trade is indipendent by the amount, since is the price with minimal fees with 0 slippage. In Angle there is no price with 0 slippage, so we use the PRECISE_UNIT (10^18, that is a small value) as input amount to have a slippage ---> 0."}},"version":1},"userdoc":{"kind":"user","methods":{"getCapabilities(bytes32,address,address)":{"notice":"Retrieves the capabilities of the selected pool."},"getLimits(bytes32,address,address)":{"notice":"Retrieves the limits for each token."},"getTokens(bytes32)":{"notice":"Retrieves the tokens in the selected pool."}},"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":{"src/angle/AngleAdapter.sol":"AngleAdapter"},"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/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"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/Errors.sol":{"keccak256":"0x1b0625096e82d06abdcf1844172ef78ef54a5e878761f4d905fda07eaf098424","urls":["bzz-raw://5cd99f1a4836c07461cb3ea023ae2f6d1d01e80694b764a87623aa7252754756","dweb:/ipfs/QmNPNDuiNU6TJatZcdBcrwixBoo5MSXNDq4kaXhpJLWGpB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"src/angle/AngleAdapter.sol":{"keccak256":"0x51397895e82efaf858a0aa7fbc0629844ff4ac17c5f4f43d1c2ab13c1072b46c","urls":["bzz-raw://05a3e26a8cb9d82385c6eea9dcd244a66c3f403a74536a0e687dcaf729d1b664","dweb:/ipfs/QmWTnGs2huvac7YDFPMf95XZ4QnbGTKtnTHsBGJTDUcCD5"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapter.sol":{"keccak256":"0xb7af70bac27e53573dfb145ec715203ca28ab8795f512b8ec84c33b5d812d702","urls":["bzz-raw://ad7d3672672ef08abd6c7c04d3426d6f0bed4ebb34c5e4d70926da145cdfbd87","dweb:/ipfs/QmS99C7MRYB9Lkph2f3XLJfjFmX4u2aC6Tm5n886pMSk1C"],"license":"AGPL-3.0-or-later"},"src/interfaces/ISwapAdapterTypes.sol":{"keccak256":"0xf5637c8fca78253bd88d94d8173d8de4487146f82e462df42f428142ee951778","urls":["bzz-raw://f2c3ab44f87f9c945f52052196537e057292e45d4011830c73a9495e60cdbf4c","dweb:/ipfs/QmePvUFDNHpH2b5Y4kRBXgSrA55RrZgjdUXwV5GLNX5o5h"],"license":"AGPL-3.0-or-later"}},"version":1},"id":40}