{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_addDelta_fuzz","inputs":[{"name":"x","type":"uint128","internalType":"uint128"},{"name":"y","type":"int128","internalType":"int128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_addDelta_sub_int128min_fuzz","inputs":[{"name":"x","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_addDelta_sub_int128min_throwsForReferenceOnly","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_addDelta_throwsForOverflow","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_addDelta_throwsForUnderflow","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f556127b390816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e4146119cb575080630d231d12146116d15780631ed7831c146116285780632ade3880146113fc57806335a3481f146111815780633e5e3c23146110d85780633f7286f41461102f57806346bcd8f914610ab0578063576858061461096357806366d9a9a01461080857806385226c8114610760578063916a17c61461068b578063b0464fdc146105b6578063b5508aa91461050e578063ba414fa6146104cb578063e20c9f7114610412578063f44c0ad5146101275763fa7626d4146100e4575f80fd5b3461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602060ff601f54166040519015158152f35b80fd5b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c0576103fd575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082528660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301525afa80156103c0576103e0575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c0576103cb575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f7fffffffffffffffffffffffffffffff60048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa80156103c057610394575080f35b6103b59060203d6020116103b9575b6103ad8183611d47565b810190611d88565b5080f35b503d6103a3565b6040513d84823e3d90fd5b816103d591611d47565b61012457805f6102fc565b6103f89060203d6020116103b9576103ad8183611d47565b61026b565b8161040791611d47565b61012457805f6101e6565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061049f5761049b8561048f81870382611d47565b60405191829182611b04565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201610478565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602061050461216f565b6040519015158152f35b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760195461054981611db0565b916105576040519384611d47565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610599576040518061049b8782611c0a565b6001602081926105a885611dc8565b815201920192019190610584565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601c546105f181611db0565b916105ff6040519384611d47565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310610641576040518061049b8782611c87565b6002602060019260405161065481611d2b565b73ffffffffffffffffffffffffffffffffffffffff8654168152610679858701611ecb565b8382015281520192019201919061062c565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601d546106c681611db0565b916106d46040519384611d47565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b838310610716576040518061049b8782611c87565b6002602060019260405161072981611d2b565b73ffffffffffffffffffffffffffffffffffffffff865416815261074e858701611ecb565b83820152815201920192019190610701565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601a5461079b81611db0565b916107a96040519384611d47565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106107eb576040518061049b8782611c0a565b6001602081926107fa85611dc8565b8152019201920191906107d6565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601b5461084381611db0565b6108506040519182611d47565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b83831061092857868587604051928392602084019060208552518091526040840160408260051b8601019392905b8282106108bd57505050500390f35b91936020610918827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836109088351604084526040840190611b53565b9201519084818403910152611bb5565b96019201920185949391926108ae565b6002602060019260405161093b81611d2b565b61094486611dc8565b8152610951858701611ecb565b83820152815201920192019190610880565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057610a9b575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526fffffffffffffffffffffffffffffffff6004830152600160248301525afa80156103c057610394575080f35b81610aa591611d47565b61012457805f610a22565b50346101245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457610ae8611b96565b602435908282600f0b808403610ea957737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea9577fffffffffffffffffffffffffffffffff80000000000000000000000000000000604051917f4c63e562000000000000000000000000000000000000000000000000000000008352141560048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156103c05761101a575b5050601f546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff83166004820152600f84900b602482015290602090829060081c73ffffffffffffffffffffffffffffffffffffffff1681806044810103915afa849181610ff9575b50610f2c57503d15610f24573d67ffffffffffffffff8111610ef7576040518491610c5a601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200183611d47565b81523d82602083013e5b602081519101517fffffffff0000000000000000000000000000000000000000000000000000000081169160048110610ec2575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea9577fffffffff00000000000000000000000000000000000000000000000000000000604051917f7c84c69b0000000000000000000000000000000000000000000000000000000083521660048201527f93dafdf10000000000000000000000000000000000000000000000000000000060248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156103c057610ead575b506040517f4e487b710000000000000000000000000000000000000000000000000000000060208201526011602482015260248152610d90604482611d47565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea95781610deb91604051809381927ff28dceb3000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b53565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057610e90575b5050602080546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff939093166004840152600f9390930b602483015290918290604490829073ffffffffffffffffffffffffffffffffffffffff165afa80156103c057610394575080f35b81610e9a91611d47565b610ea557825f610e10565b8280fd5b5080fd5b81610eb791611d47565b610ea557825f610d50565b7fffffffff000000000000000000000000000000000000000000000000000000009250829060040360031b1b16165f80610c98565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b826060610c64565b602080546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff949094166004850152600f9490940b602484015291929091908390604490829073ffffffffffffffffffffffffffffffffffffffff165afa8015610fee576fffffffffffffffffffffffffffffffff8091610fcc948691610fcf575b50169116612248565b80f35b610fe8915060203d6020116103b9576103ad8183611d47565b5f610fc3565b6040513d85823e3d90fd5b61101391925060203d6020116103b9576103ad8183611d47565b905f610c07565b8161102491611d47565b610ea557825f610b89565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106110ac5761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611095565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106111555761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161113e565b50346101245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610124576111d36fffffffffffffffffffffffffffffffff6111cd611b96565b166122c8565b6fffffffffffffffffffffffffffffffff604091838084516111f58682611d47565b600c81527f426f756e6420726573756c740000000000000000000000000000000000000000602082015285516112928161126060208201947fb60e72cc0000000000000000000000000000000000000000000000000000000086528a60248401526064830190611b53565b876044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611d47565b51906a636f6e736f6c652e6c6f675afa50166044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c168451928380927f402d44fb0000000000000000000000000000000000000000000000000000000082528660048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa9283156113f3575083926113b0575b507fffffffffffffffffffffffffffffffff80000000000000000000000000000000016fffffffffffffffffffffffffffffffff811161138357906fffffffffffffffffffffffffffffffff80610fcc93169116612248565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7fffffffffffffffffffffffffffffffff800000000000000000000000000000009192506113ec9060203d6020116103b9576103ad8183611d47565b919061132a565b513d85823e3d90fd5b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601e5461143781611db0565b6114446040519182611d47565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106115925786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106114b05786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09086929496030183528551906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110611549575050505050602080600192970193019301909286959492936114a3565b9091929394602080611585837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951611b53565b9701950193929101611525565b60405161159e81611d2b565b73ffffffffffffffffffffffffffffffffffffffff83541681526001830180546115c781611db0565b916115d56040519384611d47565b8183528a526020808b20908b9084015b83821061160b575050505060019282602092836002950152815201920192019190611474565b60016020819261161a86611dc8565b8152019301910190916115e5565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106116a55761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161168e565b50346119a8575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126119a8576044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f8000000000000000000000000000000060048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa90811561199d575f916119ac575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156119a8576fffffffffffffffffffffffffffffffff604051917f98296c540000000000000000000000000000000000000000000000000000000083521660048201525f60248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561199d5761198a575b50806040517f4e487b71000000000000000000000000000000000000000000000000000000006020820152601160248201526024815261185e604482611d47565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561198757816118b991604051809381927ff28dceb3000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b53565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057611972575b50506044602073ffffffffffffffffffffffffffffffffffffffff815416604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f8000000000000000000000000000000060048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa80156103c057610394575080f35b8161197c91611d47565b61012457805f6118de565b50fd5b61199691505f90611d47565b5f8061181d565b6040513d5f823e3d90fd5b5f80fd5b6119c5915060203d6020116103b9576103ad8183611d47565b5f611796565b346119a8575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126119a85760d280820182811067ffffffffffffffff821117611ad757829161254e833903905ff0801561199d577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f5560405161018780820182811067ffffffffffffffff821117611ad7578291612620833903905ff0801561199d5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000060205416176020555f80f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60206040818301928281528451809452019201905f5b818110611b275750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611b1a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b600435906fffffffffffffffffffffffffffffffff821682036119a857565b90602080835192838152019201905f5b818110611bd25750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611bc5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611c3c57505050505090565b9091929394602080611c78837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951611b53565b97019301930191939290611c2d565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611cb957505050505090565b9091929394602080611d1c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611bb5565b97019301930191939290611caa565b6040810190811067ffffffffffffffff821117611ad757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611ad757604052565b908160209103126119a857516fffffffffffffffffffffffffffffffff811681036119a85790565b67ffffffffffffffff8111611ad75760051b60200190565b90604051915f8154908160011c9260018316928315611ec1575b602085108414611e94578487528693908115611e545750600114611e10575b50611e0e92500383611d47565b565b90505f9291925260205f20905f915b818310611e38575050906020611e0e928201015f611e01565b6020919350806001915483858901015201910190918492611e1f565b60209350611e0e9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611e01565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f1693611de2565b90604051918281549182825260208201905f5260205f20925f905b8060078301106120e257611e0e9454918181106120ac575b818110612076575b818110612040575b81811061200a575b818110611fd4575b818110611f9e575b818110611f69575b10611f3c575b500383611d47565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f611f34565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301611f2e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301611f26565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301611f1e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301611f16565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301611f0e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301611f06565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301611efe565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391611ee6565b60085460ff16801561217e5790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa90811561199d575f91612216575b50151590565b90506020813d602011612240575b8161223160209383611d47565b810103126119a857515f612210565b3d9150612224565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156119a857604051917f98296c54000000000000000000000000000000000000000000000000000000008352600483015260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561199d576122be5750565b5f611e0e91611d47565b6f8000000000000000000000000000000081105f811580612533575b61252e576f7fffffffffffffffffffffffffffffff91600384111580612515575b6124e6577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc841015806124cc575b61249c576fffffffffffffffffffffffffffffffff8411156123fe5750507fffffffffffffffffffffffffffffffff0000000000000000000000000000000182019182116123ba576f80000000000000000000000000000000916f7fffffffffffffffffffffffffffffff1680156123e7578083018093116123ba57019081116123ba5790565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5050506fffffffffffffffffffffffffffffffff90565b909392915061240a5750565b9091506f80000000000000000000000000000000036f8000000000000000000000000000000081116123ba576f7fffffffffffffffffffffffffffffff166f80000000000000000000000000000000811561249757506fffffffffffffffffffffffffffffffff036fffffffffffffffffffffffffffffffff81116123ba57600181018091116123ba5790565b905090565b505050196fffffffffffffffffffffffffffffffff036fffffffffffffffffffffffffffffffff81116123ba5790565b5083196f8000000000000000000000000000000011612333565b5050506f8000000000000000000000000000000001806f80000000000000000000000000000000116123ba5790565b50836f8000000000000000000000000000000011612305565b505090565b506fffffffffffffffffffffffffffffffff8311156122e456fe6080806040523460135760ba908160188239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c63402d44fb146023575f80fd5b3460a95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260a9576004356fffffffffffffffffffffffffffffffff811680910360a9576024359081600f0b80920360a95701908160801c609c576fffffffffffffffffffffffffffffffff602092168152f35b6393dafdf15f526004601cfd5b5f80fdfea164736f6c634300081a000a6080806040523460155761016d908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63402d44fb14610024575f80fd5b3461015c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576004356fffffffffffffffffffffffffffffffff811680910361015c5760243580600f0b9081810361015c575f82121561012857507fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146100fb576fffffffffffffffffffffffffffffffff905f031690036fffffffffffffffffffffffffffffffff81116100fb576020905b6fffffffffffffffffffffffffffffffff60405191168152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff915016016fffffffffffffffffffffffffffffffff81116100fb576020906100e1565b5f80fdfea164736f6c634300081a000aa164736f6c634300081a000a","sourceMap":"406:1992:132:-:0;;;;;;;3166:4:2;406:1992:132;;3166:4:2;406:1992:132;;;3166:4:2;406:1992:132;3166:4:2;406:1992:132;;1038:4:12;406:1992:132;;;1038:4:12;406:1992:132;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e4146119cb575080630d231d12146116d15780631ed7831c146116285780632ade3880146113fc57806335a3481f146111815780633e5e3c23146110d85780633f7286f41461102f57806346bcd8f914610ab0578063576858061461096357806366d9a9a01461080857806385226c8114610760578063916a17c61461068b578063b0464fdc146105b6578063b5508aa91461050e578063ba414fa6146104cb578063e20c9f7114610412578063f44c0ad5146101275763fa7626d4146100e4575f80fd5b3461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602060ff601f54166040519015158152f35b80fd5b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c0576103fd575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082528660048301527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60248301525afa80156103c0576103e0575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c0576103cb575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f7fffffffffffffffffffffffffffffff60048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa80156103c057610394575080f35b6103b59060203d6020116103b9575b6103ad8183611d47565b810190611d88565b5080f35b503d6103a3565b6040513d84823e3d90fd5b816103d591611d47565b61012457805f6102fc565b6103f89060203d6020116103b9576103ad8183611d47565b61026b565b8161040791611d47565b61012457805f6101e6565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061049f5761049b8561048f81870382611d47565b60405191829182611b04565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201610478565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457602061050461216f565b6040519015158152f35b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760195461054981611db0565b916105576040519384611d47565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310610599576040518061049b8782611c0a565b6001602081926105a885611dc8565b815201920192019190610584565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601c546105f181611db0565b916105ff6040519384611d47565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310610641576040518061049b8782611c87565b6002602060019260405161065481611d2b565b73ffffffffffffffffffffffffffffffffffffffff8654168152610679858701611ecb565b8382015281520192019201919061062c565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601d546106c681611db0565b916106d46040519384611d47565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b838310610716576040518061049b8782611c87565b6002602060019260405161072981611d2b565b73ffffffffffffffffffffffffffffffffffffffff865416815261074e858701611ecb565b83820152815201920192019190610701565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601a5461079b81611db0565b916107a96040519384611d47565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106107eb576040518061049b8782611c0a565b6001602081926107fa85611dc8565b8152019201920191906107d6565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601b5461084381611db0565b6108506040519182611d47565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b83831061092857868587604051928392602084019060208552518091526040840160408260051b8601019392905b8282106108bd57505050500390f35b91936020610918827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836109088351604084526040840190611b53565b9201519084818403910152611bb5565b96019201920185949391926108ae565b6002602060019260405161093b81611d2b565b61094486611dc8565b8152610951858701611ecb565b83820152815201920192019190610880565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561012457806040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f93dafdf1000000000000000000000000000000000000000000000000000000006004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057610a9b575b50506044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526fffffffffffffffffffffffffffffffff6004830152600160248301525afa80156103c057610394575080f35b81610aa591611d47565b61012457805f610a22565b50346101245760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457610ae8611b96565b602435908282600f0b808403610ea957737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea9577fffffffffffffffffffffffffffffffff80000000000000000000000000000000604051917f4c63e562000000000000000000000000000000000000000000000000000000008352141560048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156103c05761101a575b5050601f546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff83166004820152600f84900b602482015290602090829060081c73ffffffffffffffffffffffffffffffffffffffff1681806044810103915afa849181610ff9575b50610f2c57503d15610f24573d67ffffffffffffffff8111610ef7576040518491610c5a601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200183611d47565b81523d82602083013e5b602081519101517fffffffff0000000000000000000000000000000000000000000000000000000081169160048110610ec2575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea9577fffffffff00000000000000000000000000000000000000000000000000000000604051917f7c84c69b0000000000000000000000000000000000000000000000000000000083521660048201527f93dafdf10000000000000000000000000000000000000000000000000000000060248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156103c057610ead575b506040517f4e487b710000000000000000000000000000000000000000000000000000000060208201526011602482015260248152610d90604482611d47565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610ea95781610deb91604051809381927ff28dceb3000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b53565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057610e90575b5050602080546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff939093166004840152600f9390930b602483015290918290604490829073ffffffffffffffffffffffffffffffffffffffff165afa80156103c057610394575080f35b81610e9a91611d47565b610ea557825f610e10565b8280fd5b5080fd5b81610eb791611d47565b610ea557825f610d50565b7fffffffff000000000000000000000000000000000000000000000000000000009250829060040360031b1b16165f80610c98565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b826060610c64565b602080546040517f402d44fb0000000000000000000000000000000000000000000000000000000081526fffffffffffffffffffffffffffffffff949094166004850152600f9490940b602484015291929091908390604490829073ffffffffffffffffffffffffffffffffffffffff165afa8015610fee576fffffffffffffffffffffffffffffffff8091610fcc948691610fcf575b50169116612248565b80f35b610fe8915060203d6020116103b9576103ad8183611d47565b5f610fc3565b6040513d85823e3d90fd5b61101391925060203d6020116103b9576103ad8183611d47565b905f610c07565b8161102491611d47565b610ea557825f610b89565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b8181106110ac5761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611095565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b8181106111555761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161113e565b50346101245760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610124576111d36fffffffffffffffffffffffffffffffff6111cd611b96565b166122c8565b6fffffffffffffffffffffffffffffffff604091838084516111f58682611d47565b600c81527f426f756e6420726573756c740000000000000000000000000000000000000000602082015285516112928161126060208201947fb60e72cc0000000000000000000000000000000000000000000000000000000086528a60248401526064830190611b53565b876044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282611d47565b51906a636f6e736f6c652e6c6f675afa50166044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c168451928380927f402d44fb0000000000000000000000000000000000000000000000000000000082528660048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa9283156113f3575083926113b0575b507fffffffffffffffffffffffffffffffff80000000000000000000000000000000016fffffffffffffffffffffffffffffffff811161138357906fffffffffffffffffffffffffffffffff80610fcc93169116612248565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7fffffffffffffffffffffffffffffffff800000000000000000000000000000009192506113ec9060203d6020116103b9576103ad8183611d47565b919061132a565b513d85823e3d90fd5b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012457601e5461143781611db0565b6114446040519182611d47565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106115925786858760405192839260208401906020855251809152604084019160408260051b8601019392815b8383106114b05786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09086929496030183528551906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110611549575050505050602080600192970193019301909286959492936114a3565b9091929394602080611585837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951611b53565b9701950193929101611525565b60405161159e81611d2b565b73ffffffffffffffffffffffffffffffffffffffff83541681526001830180546115c781611db0565b916115d56040519384611d47565b8183528a526020808b20908b9084015b83821061160b575050505060019282602092836002950152815201920192019190611474565b60016020819261161a86611dc8565b8152019301910190916115e5565b503461012457807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101245760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b8181106116a55761049b8561048f81870382611d47565b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161168e565b50346119a8575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126119a8576044602073ffffffffffffffffffffffffffffffffffffffff601f5460081c16604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f8000000000000000000000000000000060048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa90811561199d575f916119ac575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156119a8576fffffffffffffffffffffffffffffffff604051917f98296c540000000000000000000000000000000000000000000000000000000083521660048201525f60248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561199d5761198a575b50806040517f4e487b71000000000000000000000000000000000000000000000000000000006020820152601160248201526024815261185e604482611d47565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561198757816118b991604051809381927ff28dceb3000000000000000000000000000000000000000000000000000000008352602060048401526024830190611b53565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af180156103c057611972575b50506044602073ffffffffffffffffffffffffffffffffffffffff815416604051928380927f402d44fb0000000000000000000000000000000000000000000000000000000082526f8000000000000000000000000000000060048301527fffffffffffffffffffffffffffffffff8000000000000000000000000000000060248301525afa80156103c057610394575080f35b8161197c91611d47565b61012457805f6118de565b50fd5b61199691505f90611d47565b5f8061181d565b6040513d5f823e3d90fd5b5f80fd5b6119c5915060203d6020116103b9576103ad8183611d47565b5f611796565b346119a8575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126119a85760d280820182811067ffffffffffffffff821117611ad757829161254e833903905ff0801561199d577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b16911617601f5560405161018780820182811067ffffffffffffffff821117611ad7578291612620833903905ff0801561199d5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000060205416176020555f80f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60206040818301928281528451809452019201905f5b818110611b275750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611b1a565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b600435906fffffffffffffffffffffffffffffffff821682036119a857565b90602080835192838152019201905f5b818110611bd25750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101611bc5565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611c3c57505050505090565b9091929394602080611c78837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951611b53565b97019301930191939290611c2d565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310611cb957505050505090565b9091929394602080611d1c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190611bb5565b97019301930191939290611caa565b6040810190811067ffffffffffffffff821117611ad757604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117611ad757604052565b908160209103126119a857516fffffffffffffffffffffffffffffffff811681036119a85790565b67ffffffffffffffff8111611ad75760051b60200190565b90604051915f8154908160011c9260018316928315611ec1575b602085108414611e94578487528693908115611e545750600114611e10575b50611e0e92500383611d47565b565b90505f9291925260205f20905f915b818310611e38575050906020611e0e928201015f611e01565b6020919350806001915483858901015201910190918492611e1f565b60209350611e0e9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611e01565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f1693611de2565b90604051918281549182825260208201905f5260205f20925f905b8060078301106120e257611e0e9454918181106120ac575b818110612076575b818110612040575b81811061200a575b818110611fd4575b818110611f9e575b818110611f69575b10611f3c575b500383611d47565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f611f34565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301611f2e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301611f26565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301611f1e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301611f16565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301611f0e565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b168152019301611f06565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301611efe565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920185929391611ee6565b60085460ff16801561217e5790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa90811561199d575f91612216575b50151590565b90506020813d602011612240575b8161223160209383611d47565b810103126119a857515f612210565b3d9150612224565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156119a857604051917f98296c54000000000000000000000000000000000000000000000000000000008352600483015260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561199d576122be5750565b5f611e0e91611d47565b6f8000000000000000000000000000000081105f811580612533575b61252e576f7fffffffffffffffffffffffffffffff91600384111580612515575b6124e6577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc841015806124cc575b61249c576fffffffffffffffffffffffffffffffff8411156123fe5750507fffffffffffffffffffffffffffffffff0000000000000000000000000000000182019182116123ba576f80000000000000000000000000000000916f7fffffffffffffffffffffffffffffff1680156123e7578083018093116123ba57019081116123ba5790565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5050506fffffffffffffffffffffffffffffffff90565b909392915061240a5750565b9091506f80000000000000000000000000000000036f8000000000000000000000000000000081116123ba576f7fffffffffffffffffffffffffffffff166f80000000000000000000000000000000811561249757506fffffffffffffffffffffffffffffffff036fffffffffffffffffffffffffffffffff81116123ba57600181018091116123ba5790565b905090565b505050196fffffffffffffffffffffffffffffffff036fffffffffffffffffffffffffffffffff81116123ba5790565b5083196f8000000000000000000000000000000011612333565b5050506f8000000000000000000000000000000001806f80000000000000000000000000000000116123ba5790565b50836f8000000000000000000000000000000011612305565b505090565b506fffffffffffffffffffffffffffffffff8311156122e456fe6080806040523460135760ba908160188239f35b5f80fdfe60808060405260043610156011575f80fd5b5f3560e01c63402d44fb146023575f80fd5b3460a95760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011260a9576004356fffffffffffffffffffffffffffffffff811680910360a9576024359081600f0b80920360a95701908160801c609c576fffffffffffffffffffffffffffffffff602092168152f35b6393dafdf15f526004601cfd5b5f80fdfea164736f6c634300081a000a6080806040523460155761016d908161001a8239f35b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c63402d44fb14610024575f80fd5b3461015c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261015c576004356fffffffffffffffffffffffffffffffff811680910361015c5760243580600f0b9081810361015c575f82121561012857507fffffffffffffffffffffffffffffffff8000000000000000000000000000000081146100fb576fffffffffffffffffffffffffffffffff905f031690036fffffffffffffffffffffffffffffffff81116100fb576020905b6fffffffffffffffffffffffffffffffff60405191168152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b6fffffffffffffffffffffffffffffffff915016016fffffffffffffffffffffffffffffffff81116100fb576020906100e1565b5f80fdfea164736f6c634300081a000aa164736f6c634300081a000a","sourceMap":"406:1992:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:12;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;785:51;;;;406:1992;;;;785:51;;801:34;406:1992;785:51;;406:1992;785:51;;;;;406:1992;785:51;;;;;;;;406:1992;;;846:29;406:1992;;846:13;406:1992;;;;;;846:29;;;;406:1992;846:29;;;406:1992;846:29;;406:1992;872:2;785:51;406:1992;;;846:29;;;;;;;;406:1992;885:51;406:1992;885:51;;;;406:1992;;;;885:51;;801:34;406:1992;885:51;;406:1992;885:51;;785;885;;406:1992;885:51;;;;;;;;406:1992;;;846:29;406:1992;;846:13;406:1992;;;;;;946:67;;;;406:1992;946:67;;977:16;406:1992;946:67;;406:1992;996:16;785:51;406:1992;;;946:67;;;;;;;;406:1992;;;946:67;;;406:1992;946:67;406:1992;946:67;;;;;;;;:::i;:::-;;;;;:::i;:::-;;406:1992;;946:67;;;;;;406:1992;;;;;;;;;885:51;;;;;:::i;:::-;406:1992;;885:51;;;;846:29;;;406:1992;846:29;406:1992;846:29;;;;;;;:::i;:::-;;;785:51;;;;;:::i;:::-;406:1992;;785:51;;;;406:1992;;;;;;;;;;;;;;;;;2723:18:5;406:1992:132;;;;;;;2723:18:5;406:1992:132;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2575:18:5;406:1992:132;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2575:18:5;406:1992:132;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2876:18:5;406:1992:132;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;2876:18:5;406:1992:132;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3653:18:5;406:1992:132;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3653:18:5;406:1992:132;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3162:18:5;406:1992:132;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;3162:18:5;406:1992:132;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;3346:26:5;406:1992:132;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3346:26:5;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1138:51;;;;406:1992;;;;1138:51;;1154:34;406:1992;1138:51;;406:1992;1138:51;;;;;406:1992;1138:51;;;;;;;;406:1992;;;1199:44;406:1992;;1199:13;406:1992;;;;;;1199:44;;;;406:1992;1199:44;;1222:17;406:1992;1199:44;;406:1992;1241:1;1138:51;406:1992;;;1199:44;;;;;;;;406:1992;;;1138:51;;;;;:::i;:::-;406:1992;;1138:51;;;;406:1992;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;1989:32;;;;2004:16;406:1992;;1989:32;406:1992;1989:32;;1999:21;;406:1992;1989:32;;406:1992;1989:32;;406:1992;1989:32;406:1992;1989:32;;;;;;;;406:1992;-1:-1:-1;;2035:13:132;406:1992;;;;2035:28;;406:1992;;;;2035:28;;406:1992;;;;;;;;;;;;;;;;;;;;;;;2035:28;;;;;;;;;406:1992;-1:-1:-1;2031:359:132;;-1:-1:-1;406:1992:132;;;;;;;;;;;;;;;2035:13;406:1992;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3789:24:1;;406:1992:132;3789:24:1;;;;406:1992:132;;;3789:24:1;406:1992:132;3789:24:1;;406:1992:132;;3789:24:1;;192:59;2221:34:132;406:1992;;;192:59:1;3789:24;;;;406:1992:132;3789:24:1;;;;;;;;406:1992:132;;;;2286:47;406:1992;2286:47;;;2328:4;406:1992;2286:47;;1590:14:0;406:1992:132;2286:47;;;3789:24:1;2286:47:132;;:::i;:::-;406:1992;2270:64;;;;406:1992;1590:14:0;406:1992:132;;;2270:64;;;;406:1992;2270:64;;406:1992;;2270:64;;1590:14:0;406:1992:132;1590:14:0;;;;:::i;:::-;2270:64:132;;;406:1992;2270:64;;;;;;;;406:1992;-1:-1:-1;;406:1992:132;1590:14:0;;406:1992:132;;;2348:31;;406:1992;;;;;;2348:31;;406:1992;;;;;;;;;;;;;;;;;;;;2348:31;;;;;;;;2031:359;406:1992;;2270:64;;;;;:::i;:::-;406:1992;;2270:64;;;;406:1992;;;;2270:64;406:1992;;;3789:24:1;;;;;:::i;:::-;406:1992:132;;3789:24:1;;;;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:359;406:1992;1590:14:0;;406:1992:132;;;2110:31;;406:1992;;;;;;2110:31;;406:1992;;;;;;;;;;;;1590:14:0;;406:1992:132;;;;;;;;;2110:31;;;;;;406:1992;2110:31;;2098:44;2110:31;;;;;2031:359;406:1992;;;;2098:44;:::i;:::-;406:1992;;2110:31;;;;406:1992;2110:31;406:1992;2110:31;;;;;;;:::i;:::-;;;;;406:1992;;;;;;;;;2035:28;;;;;406:1992;2035:28;406:1992;2035:28;;;;;;;:::i;:::-;;;;;1989:32;;;;;:::i;:::-;406:1992;;1989:32;;;;406:1992;;;;;;;;;;;;;;;;;3501:18:5;406:1992:132;;;;;;;3501:18:5;406:1992:132;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3794:16:5;406:1992:132;;;;;;;3794:16:5;406:1992:132;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3033:19:11;406:1992:132;;;:::i;:::-;;3033:19:11;:::i;:::-;406:1992:132;;;;;;;;;;;:::i;:::-;;;;;;;;;;;10418:54:11;;406:1992:132;;10418:54:11;;;;;;;;;;406:1992:132;;;;;;:::i;:::-;;;;;192:59:1;10418:54:11;406:1992:132;10418:54:11;;;;;;:::i;:::-;406:1992:132;10003:159:11;779:42;10003:159;;;406:1992:132;;;;;;;;;;;1743:43;;;;406:1992;1743:43;;;406:1992;1743:43;;406:1992;1686:16;10418:54:11;406:1992:132;;;1743:43;;;;;;;;;;;;406:1992;;1686:16;406:1992;;;;;;;;;1734:84;406:1992;;;;1734:84;:::i;406:1992::-;10418:54:11;406:1992:132;;;;;;;;1743:43;1686:16;1743:43;;;;;406:1992;1743:43;406:1992;1743:43;;;;;;;:::i;:::-;;;;;;406:1992;;;;;;;;;;;;;;;;;;;;3948:19:5;406:1992:132;;;;:::i;:::-;;;;;;;:::i;:::-;;;;3948:19:5;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3018:16:5;406:1992:132;;;;;;;3018:16:5;406:1992:132;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1344:67;406:1992;;1344:13;406:1992;;;;;;1344:67;;;;406:1992;1344:67;;406:1992;;1344:67;;406:1992;1375:16;406:1992;;;;1344:67;;;;;;;406:1992;1344:67;;;406:1992;2349:24:1;406:1992:132;2349:24:1;;;;406:1992:132;;;2349:24:1;406:1992:132;2349:24:1;;406:1992:132;;2349:24:1;;192:59;406:1992:132;;;;192:59:1;406:1992:132;2349:24:1;1344:67:132;2349:24:1;406:1992:132;2349:24:1;;;;;;;;406:1992:132;;;;;1441:47;406:1992;1441:47;;;1483:4;406:1992;1441:47;;1590:14:0;406:1992:132;1441:47;;;1344:67;1441:47;;:::i;:::-;406:1992;1425:64;;;;406:1992;1590:14:0;406:1992:132;;;1425:64;;;;406:1992;1425:64;;406:1992;;1425:64;;1590:14:0;406:1992:132;1590:14:0;;;;:::i;:::-;1425:64:132;;;406:1992;1425:64;;;;;;;;406:1992;1590:14:0;;1344:67:132;406:1992;;1590:14:0;;406:1992:132;;;1499:70;;;;406:1992;1499:70;;406:1992;;1499:70;;406:1992;1375:16;406:1992;;;;1499:70;;;;;;;;406:1992;;;1425:64;;;;;:::i;:::-;406:1992;;1425:64;;;;;406:1992;;2349:24:1;;;;406:1992:132;2349:24:1;;:::i;:::-;406:1992:132;2349:24:1;;;;406:1992:132;;;;;;;;;2349:24:1;406:1992:132;;;1344:67;;;;406:1992;1344:67;406:1992;1344:67;;;;;;;:::i;:::-;;;;406:1992;;;;;;;;;;;588:19;;;;;;;;;;;;;;;;;;;;406:1992;588:19;;;;;406:1992;;572:35;406:1992;;;;;;;;572:35;406:1992;;;636:22;;;;;;;588:19;636:22;;;;;;;;;;;;406:1992;636:22;;;;;406:1992;;;617:41;406:1992;;;617:41;406:1992;;;;636:22;406:1992;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:1992:132;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;406:1992:132;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;406:1992:132;;;;;-1:-1:-1;406:1992:132;;-1:-1:-1;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:1992:132;;;;;-1:-1:-1;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:1992:132;;-1:-1:-1;406:1992:132;;-1:-1:-1;406:1992:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:1;1302:7;406:1992:132;;;;;;;1325:14:1;:::o;1298:143::-;406:1992:132;;;;1377:39:1;;406:1992:132;1377:39:1;;;406:1992:132;192:59:1;;;;;;1377:39;;;406:1992:132;1377:39:1;;;;;;;406:1992:132;1377:39:1;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;192:59;1377:39;;;:::i;:::-;;;192:59;;;;;1377:39;;;;;;-1:-1:-1;1377:39:1;;2270:110;;406:1992:132;2349:24:1;;;;406:1992:132;;2349:24:1;406:1992:132;2349:24:1;;;;;192:59;406:1992:132;;;192:59:1;-1:-1:-1;2349:24:1;;;406:1992:132;2349:24:1;;;;;;;;2270:110;:::o;2349:24::-;-1:-1:-1;2349:24:1;;;:::i;1646:1263:11:-;406:1992:132;2070:8:11;;406:1992:132;2070:8:11;;;:20;;1646:1263;2066:34;;406:1992:132;;2334:1:11;2329:6;;;:18;;;1646:1263;2325:38;;406:1992:132;2377:20:11;;;:46;;;1646:1263;2373:82;;406:1992:132;2555:7:11;;406:1992:132;;;2593:7:11;;406:1992:132;;;;;;;;;;1142:78:11;;2657:8;;2653:24;;406:1992:132;;;;;;;;;;;;;;2551:352:11;1646:1263::o;406:1992:132:-;;-1:-1:-1;406:1992:132;;;;;-1:-1:-1;406:1992:132;2653:24:11;2667:10;;;406:1992:132;2667:10:11;:::o;2551:352::-;2730:173;;;;;;;2551:352;1646:1263::o;2730:173::-;2772:7;;;406:1992:132;;;;;;;1142:78:11;;406:1992:132;2836:8:11;;2832:24;;2879:9;406:1992:132;;;;;;;2138:1:11;406:1992:132;;;;;;;2730:173:11;1646:1263::o;2832:24::-;2846:10;;;:::o;2373:82::-;2432:23;;;406:1992:132;;;;;;;;2425:30:11;:::o;2377:46::-;406:1992:132;;;;2401:22:11;2377:46;;2325:38;2356:7;;;406:1992:132;;;;;;;2349:14:11;:::o;2329:18::-;2339:8;;406:1992:132;2339:8:11;2329:18;;2066:34;2092:8;;;:::o;2070:20::-;2082:8;406:1992:132;2082:8:11;;;2070:20;","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSelectors()":"b0464fdc","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","test_addDelta_fuzz(uint128,int128)":"46bcd8f9","test_addDelta_sub_int128min_fuzz(uint128)":"35a3481f","test_addDelta_sub_int128min_throwsForReferenceOnly()":"0d231d12","test_addDelta_throwsForOverflow()":"57685806","test_addDelta_throwsForUnderflow()":"f44c0ad5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"excludedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"artifact\",\"type\":\"string\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzArtifactSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"x\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"y\",\"type\":\"int128\"}],\"name\":\"test_addDelta_fuzz\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"x\",\"type\":\"uint128\"}],\"name\":\"test_addDelta_sub_int128min_fuzz\",\"outputs\":[],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_addDelta_sub_int128min_throwsForReferenceOnly\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_addDelta_throwsForOverflow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_addDelta_throwsForUnderflow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"test_addDelta_fuzz(uint128,int128)\":{\"notice\":\"Test the equivalence of the new `addDelta` and the reference implementation\"},\"test_addDelta_throwsForOverflow()\":{\"notice\":\"Test the revert reason for overflow\"},\"test_addDelta_throwsForUnderflow()\":{\"notice\":\"Test the revert reason for underflow\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/libraries/LiquidityMath.t.sol\":\"LiquidityMathTest\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":44444444},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/\"],\"viaIR\":true},\"sources\":{\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557\",\"dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f\",\"dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391\",\"dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974\",\"dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57\",\"dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3\",\"dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1\",\"dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57\",\"dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d\",\"dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87\",\"dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab\",\"dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3\"]},\"src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"src/test/LiquidityMathTest.sol\":{\"keccak256\":\"0x9998cf79a63249c076874aad65bd156f1ce5af7dfd7eab857fa912df83954f84\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ef6ec28307ed5f000dad77820bad21f906f9044de67b1329cab3a77c218c1bb0\",\"dweb:/ipfs/QmetpABMmVFP6KZNtfLdxXnUbn5fTZUXioLcdLQEGxJKd4\"]},\"test/libraries/LiquidityMath.t.sol\":{\"keccak256\":\"0x26fff77a20493e52316957eb8f836cffb1bcb958bc727d06152043f3dd2fa0ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfd19caab22937a131ef739e3fa750ea9685fd736c36a9ca0ec65b7565835453\",\"dweb:/ipfs/QmZj1biJ7ri2JMyjHqRSZguENjwWADcMu1ebAkS6rAGoAb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"excludedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzArtifactSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"string","name":"artifact","type":"string"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint128","name":"x","type":"uint128"},{"internalType":"int128","name":"y","type":"int128"}],"stateMutability":"nonpayable","type":"function","name":"test_addDelta_fuzz"},{"inputs":[{"internalType":"uint128","name":"x","type":"uint128"}],"stateMutability":"view","type":"function","name":"test_addDelta_sub_int128min_fuzz"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_addDelta_sub_int128min_throwsForReferenceOnly"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_addDelta_throwsForOverflow"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_addDelta_throwsForUnderflow"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"test_addDelta_fuzz(uint128,int128)":{"notice":"Test the equivalence of the new `addDelta` and the reference implementation"},"test_addDelta_throwsForOverflow()":{"notice":"Test the revert reason for overflow"},"test_addDelta_throwsForUnderflow()":{"notice":"Test the revert reason for underflow"}},"version":1}},"settings":{"remappings":["@ensdomains/=node_modules/@ensdomains/","@openzeppelin/=lib/openzeppelin-contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solmate/=lib/solmate/"],"optimizer":{"enabled":true,"runs":44444444},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"test/libraries/LiquidityMath.t.sol":"LiquidityMathTest"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x7dd11ac4db798fa196e00a0cfa288ce984acac881f1f34de03fe3187deed58de","urls":["bzz-raw://2c15fb03d5545e2d8d3948661596410edec5ec278a73988914b14a05d0d54557","dweb:/ipfs/QmWGjkLgp4wSrTrFxF8cmhghaXQp5VyXYQvWE1DUTPL4rG"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xc28b654cfbcafb8f7688c8dc69134921bb4841c82ddc2e5f27bcf5d8eb2177cf","urls":["bzz-raw://3f1875b52fb32efefdc467d9566bf93d72dad036547ce6955e4f7a318eea9d6f","dweb:/ipfs/QmbgbSX8JajLzTyWcPqrYAcsQcHNuGTFTKdQ3HNTvyRgdj"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x4dab3021edfa9511bbdd80c48f060ef62eaf457f99eaf841f561fc2557d9a08d","urls":["bzz-raw://07668628673174cf8f27f8f4e1f862bab775013ec247eb34f698c5005f229391","dweb:/ipfs/QmPJsiiYwmCZXMsHmQv5tg8VF3CAhNdat7WnKLTWZZH2v5"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0xbc0132abe1c2accc2867c0f03667afffdf92f3e95a581bb03c9557eaa38ea500","urls":["bzz-raw://eb6fab37dc73c219cfbb7b4f4998bcf7677ca5397a867e850f40232192073974","dweb:/ipfs/QmUHsbVdp9SKmgek7ZfPcLTKrpZFXpqaqt4sVejzxGEQL3"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0xb91ab24383a5872b894fc93325eef1add6cbbf981628f18e860068bf88bb7dcc","urls":["bzz-raw://2651e33b9ac8fc5803ed0a43078c1bf4fa90a0b0347aafd95776b02daccdcc57","dweb:/ipfs/QmbdRyPuGJdZgnCuMnp7c1WsBo1Spf7j1KMmws1Z5rd4BQ"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0x58a72c765ed3f7ff6b105509689658795b8a3739b8931772a497155878381861","urls":["bzz-raw://b4a3746f4fabaeb980bd77d9e091d3904ee38a6c0e191bfa8ba6874c6f8558a3","dweb:/ipfs/QmUfFDMEn461FgGEXt5HicyGD54sc28sLaQ9JRWDMBKed8"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51d822417db259b59eec2dfb7859285cef983a26b5d4fba20e1addabccc8734e","urls":["bzz-raw://0e3b5abe0173ee6e479e4248eb4ee3a4374f7e08fb2848d93f5c2cf5e95214f1","dweb:/ipfs/QmbUBD4NLFCuR6WHVx5unXH2uWHEhtADLcFrUwyev8iLrD"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x4bbf47eb762cef93729d6ef15e78789957147039b113e5d4df48e3d3fd16d0f5","urls":["bzz-raw://af9e3a7c3d82fb5b10b57ca4d1a82f2acbef80c077f6f6ef0cc0187c7bfd9f57","dweb:/ipfs/QmR9VzmnBDJpgiDP6CHT6truehukF9HpYvuP6kRiJbDwPP"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x3b8fe79f48f065a4e4d35362171304a33784c3a90febae5f2787805a438de12f","urls":["bzz-raw://61de63af08803549299e68b6e6e88d40f3c5afac450e4ee0a228c66a61ba003d","dweb:/ipfs/QmWVoQ5rrVxnczD4ZZoPbD4PC9Z3uExJtzjD4awTqd14MZ"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0xbfbb755bb379f58b97699f7cda0e9a2b9113daaa072e41b280a5ce6a3bff44c9","urls":["bzz-raw://5ae0c31d29db14d6a0e9b62d33d550feb307f48a6f45068901a013321f337f87","dweb:/ipfs/QmX25DVXW6XZDvRm6SNBGCWrZQ6oNhdq5CmgtVocvsUdwv"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbef9786cb49d3eade757bad87568c49c8c8f35721f0193c95ffb055d9e466e11","urls":["bzz-raw://3bafd2b0b2d28068d329f95ea8a1fbce3719c257fcb863fc01abcbafd8d531ab","dweb:/ipfs/QmUeaFjKWTVDBsHVfSob4mwt6A5hTnKDz22HaUXeZhypa3"],"license":"MIT"},"src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"src/test/LiquidityMathTest.sol":{"keccak256":"0x9998cf79a63249c076874aad65bd156f1ce5af7dfd7eab857fa912df83954f84","urls":["bzz-raw://ef6ec28307ed5f000dad77820bad21f906f9044de67b1329cab3a77c218c1bb0","dweb:/ipfs/QmetpABMmVFP6KZNtfLdxXnUbn5fTZUXioLcdLQEGxJKd4"],"license":"UNLICENSED"},"test/libraries/LiquidityMath.t.sol":{"keccak256":"0x26fff77a20493e52316957eb8f836cffb1bcb958bc727d06152043f3dd2fa0ea","urls":["bzz-raw://cfd19caab22937a131ef739e3fa750ea9685fd736c36a9ca0ec65b7565835453","dweb:/ipfs/QmZj1biJ7ri2JMyjHqRSZguENjwWADcMu1ebAkS6rAGoAb"],"license":"MIT"}},"version":1},"id":132}