{ "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": "excludeSenders", "outputs": [ { "internalType": "address[]", "name": "excludedSenders_", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "int256", "name": "t", "type": "int256" } ], "name": "sanityReverts", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "setUp", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "targetArtifactSelectors", "outputs": [ { "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "internalType": "bytes4[]", "name": "selectors", "type": "bytes4[]" } ], "internalType": "struct StdInvariant.FuzzSelector[]", "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": "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": [], "name": "testFloat2fixed", "outputs": [], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "testSanity", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "bytecode": { "object": "0x608060405260008054600160ff19918216811790925560048054909116909117905534801561002d57600080fd5b506115308061003d6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b1a3670e1161008c578063c21e06ec11610066578063c21e06ec1461017e578063df96063b14610186578063e20c9f7114610199578063fa7626d4146101a157600080fd5b8063b1a3670e14610159578063b5508aa914610161578063ba414fa61461016957600080fd5b80633f7286f4116100c85780633f7286f41461011f57806366d9a9a01461012757806385226c811461013c578063916a17c61461015157600080fd5b80630a9254e4146100ef5780631ed7831c146100f95780633e5e3c2314610117575b600080fd5b6100f76101ae565b005b6101016101ee565b60405161010e9190611003565b60405180910390f35b61010161025d565b6101016102ca565b61012f610337565b60405161010e9190611126565b610144610448565b60405161010e919061120d565b61012f610518565b6100f7610620565b61014461081c565b6101716108ec565b60405161010e9190611228565b6100f7610a6e565b6100f7610194366004611256565b610bbc565b610101610cb6565b6000546101719060ff1681565b6101ec6040518060400160405280601181526020017f54657374466c6f61742073657475702829000000000000000000000000000000815250610d23565b565b6060600d80548060200260200160405190810160405280929190818152602001828054801561025357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b8282101561043f57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561042757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103d45790505b5050505050815250508152602001906001019061035b565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b8282101561043f57838290600052602060002001805461048b906112a4565b80601f01602080910402602001604051908101604052809291908181526020018280546104b7906112a4565b80156105045780601f106104d957610100808354040283529160200191610504565b820191906000526020600020905b8154815290600101906020018083116104e757829003601f168201915b50505050508152602001906001019061046c565b60606013805480602002602001604051908101604052809291908181526020016000905b8282101561043f57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561060857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105b55790505b5050505050815250508152602001906001019061053c565b61065e6040518060400160405280601d81526020017f54657374494545453735342e74657374466c6f61743266697865642829000000815250610d23565b6040805161012081018252633f80000060c08201818152600060e0840181905260016101008501529083528351606081810186528382526080602083810182905270010000000000000000000000000000000084890152808701939093528651808301885294855260fe858401527f400000000000000000000000000000000000000000000000000000000000000085880152858701949094528551808201875263bf80000081528083018590527fffffffffffffffffffffffffffffffff000000000000000000000000000000008188015281860152855180820187526340000000815280830185905270020000000000000000000000000000000081880152848601528551908101865263c00000008152908101929092527ffffffffffffffffffffffffffffffffe000000000000000000000000000000009382019390935260a0820152905b6006811015610818576107eb8282600681106107c5576107c56112d3565b6020020151518383600681106107dd576107dd6112d3565b602002015160200151610db2565b8282600681106107fd576107fd6112d3565b6020020151604001511461081057600080fd5b6001016107a7565b5050565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101561043f57838290600052602060002001805461085f906112a4565b80601f016020809104026020016040519081016040528092919081815260200182805461088b906112a4565b80156108d85780601f106108ad576101008083540402835291602001916108d8565b820191906000526020600020905b8154815290600101906020018083116108bb57829003601f168201915b505050505081526020019060010190610840565b60008054610100900460ff161561090c5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610a6957604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4906109979083907f6661696c6564000000000000000000000000000000000000000000000000000090602001611308565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526109d39291602001611344565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a0b9161135d565b6000604051808303816000865af19150503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091505080806020019051810190610a65919061137d565b9150505b919050565b610aac6040518060400160405280601281526020017f466c6f61742e7465737453616e69747928290000000000000000000000000000815250610d23565b60015b60048113610bb9577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2257600080fd5b505af1158015610b36573d6000803e3d6000fd5b50506040517fdf96063b00000000000000000000000000000000000000000000000000000000815230925063df96063b9150610b7690849060040161139c565b60006040518083038186803b158015610b8e57600080fd5b505afa158015610ba2573d6000803e3d6000fd5b505050508080610bb1906113d9565b915050610aaf565b50565b610bfb6040518060400160405280600d81526020017f73616e697479526576657274730000000000000000000000000000000000000081525082610ece565b60008082600103610c3757610c317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001611414565b50505050565b82600203610c4b57610c3160016000611431565b82600303610c7e57610c317f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001611446565b82600403610cb157610c3160017f8000000000000000000000000000000000000000000000000000000000000000611466565b505050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b610bb981604051602401610d379190611488565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610f5b565b6000637fffffff83168103610dc957506000610ec8565b637f8000008316600390810b60171d9081900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e349061149b565b60405180910390fd5b627fffff8416600390810b9082900b15610e575762800000175b6380000000851615610e67576000035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818201918401601703607f0160030b6000811215610ead578060000382901b9350610ec4565b6000811315610ec05781811d9350610ec4565b8193505b5050505b92915050565b6108188282604051602401610ee49291906114d8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ca6268e000000000000000000000000000000000000000000000000000000001790525b610bb98180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ec8565b610fa781610f80565b82525050565b610fb78282610f9e565b5060200190565b6000610fc8825190565b808452602093840193830160005b82811015610ff957610fe9868351610fad565b9550602082019150600101610fd6565b5093949350505050565b6020815260006110166020830184610fbe565b9392505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116610fa7565b610fb7828261101d565b6000611059825190565b808452602093840193830160005b82811015610ff95761107a868351611045565b9550602082019150600101611067565b611095828251610f9e565b60006020820151604060208501526110b0604085018261104f565b949350505050565b6000611016838361108a565b60006110ce825190565b808452602084018094508160051b81016110e88560200190565b60005b8481101561111a5783830388526111038383516110b8565b9250602082016020989098019791506001016110eb565b50909695505050505050565b60208152600061101660208301846110c4565b60005b8381101561115457818101518382015260200161113c565b50506000910152565b6000611167825190565b8084526020840161117c828260208701611139565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000611016838361115d565b60006111c1825190565b808452602084018094508160051b81016111db8560200190565b60005b8481101561111a5783830388526111f68383516111ab565b9250602082016020989098019791506001016111de565b60208152600061101660208301846111b7565b801515610fa7565b60208101610ec88284611220565b805b8114610bb957600080fd5b80358061124f81611236565b5092915050565b60006020828403121561126b5761126b600080fd5b6110168383611243565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c9081908316806112ba57607f821692505b6020831081036112cc576112cc611275565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80610fa7565b604081016113168285610f9e565b6110166020830184611302565b600061132d825190565b8361133c828260208701611139565b019392505050565b61134e818461101d565b60006110b06004830184611323565b60006110168284611323565b801515611238565b80518061124f81611369565b60006020828403121561139257611392600080fd5b6110168383611371565b60208101610ec88284611302565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361140b5761140b6113aa565b60010192915050565b818101818180821115611429576114296113aa565b505092915050565b818103818181811115611429576114296113aa565b8181016000821283821280158216821582161715611429576114296113aa565b81810381600084128282811282168382138315161715610ec457610ec46113aa565b602081526000611016602083018461115d565b602081526000610ec860208301601181527f4e614e206e6f7420737570706f72746564000000000000000000000000000000602082015260400190565b6040815260006114eb604083018561115d565b9050611016602083018461130256fea2646970667358221220fecbc324d045dedde91acef77bf81946e23f5769a302ceb963316d7301e2e4a864736f6c63430008160033", "sourceMap": "1962:2165:65:-:0;;;1572:26:0;;;1594:4;-1:-1:-1;;1572:26:0;;;;;;;;3126:44:4;;;;;;;;;;;1962:2165:65;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c8063b1a3670e1161008c578063c21e06ec11610066578063c21e06ec1461017e578063df96063b14610186578063e20c9f7114610199578063fa7626d4146101a157600080fd5b8063b1a3670e14610159578063b5508aa914610161578063ba414fa61461016957600080fd5b80633f7286f4116100c85780633f7286f41461011f57806366d9a9a01461012757806385226c811461013c578063916a17c61461015157600080fd5b80630a9254e4146100ef5780631ed7831c146100f95780633e5e3c2314610117575b600080fd5b6100f76101ae565b005b6101016101ee565b60405161010e9190611003565b60405180910390f35b61010161025d565b6101016102ca565b61012f610337565b60405161010e9190611126565b610144610448565b60405161010e919061120d565b61012f610518565b6100f7610620565b61014461081c565b6101716108ec565b60405161010e9190611228565b6100f7610a6e565b6100f7610194366004611256565b610bbc565b610101610cb6565b6000546101719060ff1681565b6101ec6040518060400160405280601181526020017f54657374466c6f61742073657475702829000000000000000000000000000000815250610d23565b565b6060600d80548060200260200160405190810160405280929190818152602001828054801561025357602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575b5050505050905090565b6060600f8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b6060600e8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b60606012805480602002602001604051908101604052809291908181526020016000905b8282101561043f57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561042757602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116103d45790505b5050505050815250508152602001906001019061035b565b50505050905090565b60606011805480602002602001604051908101604052809291908181526020016000905b8282101561043f57838290600052602060002001805461048b906112a4565b80601f01602080910402602001604051908101604052809291908181526020018280546104b7906112a4565b80156105045780601f106104d957610100808354040283529160200191610504565b820191906000526020600020905b8154815290600101906020018083116104e757829003601f168201915b50505050508152602001906001019061046c565b60606013805480602002602001604051908101604052809291908181526020016000905b8282101561043f57600084815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561060857602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116105b55790505b5050505050815250508152602001906001019061053c565b61065e6040518060400160405280601d81526020017f54657374494545453735342e74657374466c6f61743266697865642829000000815250610d23565b6040805161012081018252633f80000060c08201818152600060e0840181905260016101008501529083528351606081810186528382526080602083810182905270010000000000000000000000000000000084890152808701939093528651808301885294855260fe858401527f400000000000000000000000000000000000000000000000000000000000000085880152858701949094528551808201875263bf80000081528083018590527fffffffffffffffffffffffffffffffff000000000000000000000000000000008188015281860152855180820187526340000000815280830185905270020000000000000000000000000000000081880152848601528551908101865263c00000008152908101929092527ffffffffffffffffffffffffffffffffe000000000000000000000000000000009382019390935260a0820152905b6006811015610818576107eb8282600681106107c5576107c56112d3565b6020020151518383600681106107dd576107dd6112d3565b602002015160200151610db2565b8282600681106107fd576107fd6112d3565b6020020151604001511461081057600080fd5b6001016107a7565b5050565b60606010805480602002602001604051908101604052809291908181526020016000905b8282101561043f57838290600052602060002001805461085f906112a4565b80601f016020809104026020016040519081016040528092919081815260200182805461088b906112a4565b80156108d85780601f106108ad576101008083540402835291602001916108d8565b820191906000526020600020905b8154815290600101906020018083116108bb57829003601f168201915b505050505081526020019060010190610840565b60008054610100900460ff161561090c5750600054610100900460ff1690565b6000737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610a6957604051600090737109709ecfa91a80626ff3989d68f67f5b1dd12d907f667f9d70ca411d70ead50d8d5c22070dafc36ad75f3dcf5e7237b22ade9aecc4906109979083907f6661696c6564000000000000000000000000000000000000000000000000000090602001611308565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290526109d39291602001611344565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052610a0b9161135d565b6000604051808303816000865af19150503d8060008114610a48576040519150601f19603f3d011682016040523d82523d6000602084013e610a4d565b606091505b5091505080806020019051810190610a65919061137d565b9150505b919050565b610aac6040518060400160405280601281526020017f466c6f61742e7465737453616e69747928290000000000000000000000000000815250610d23565b60015b60048113610bb9577f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610b2257600080fd5b505af1158015610b36573d6000803e3d6000fd5b50506040517fdf96063b00000000000000000000000000000000000000000000000000000000815230925063df96063b9150610b7690849060040161139c565b60006040518083038186803b158015610b8e57600080fd5b505afa158015610ba2573d6000803e3d6000fd5b505050508080610bb1906113d9565b915050610aaf565b50565b610bfb6040518060400160405280600d81526020017f73616e697479526576657274730000000000000000000000000000000000000081525082610ece565b60008082600103610c3757610c317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001611414565b50505050565b82600203610c4b57610c3160016000611431565b82600303610c7e57610c317f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001611446565b82600403610cb157610c3160017f8000000000000000000000000000000000000000000000000000000000000000611466565b505050565b6060600c8054806020026020016040519081016040528092919081815260200182805480156102535760200282019190600052602060002090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610228575050505050905090565b610bb981604051602401610d379190611488565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac00000000000000000000000000000000000000000000000000000000179052610f5b565b6000637fffffff83168103610dc957506000610ec8565b637f8000008316600390810b60171d9081900b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101610e3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e349061149b565b60405180910390fd5b627fffff8416600390810b9082900b15610e575762800000175b6380000000851615610e67576000035b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff818201918401601703607f0160030b6000811215610ead578060000382901b9350610ec4565b6000811315610ec05781811d9350610ec4565b8193505b5050505b92915050565b6108188282604051602401610ee49291906114d8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f3ca6268e000000000000000000000000000000000000000000000000000000001790525b610bb98180516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ec8565b610fa781610f80565b82525050565b610fb78282610f9e565b5060200190565b6000610fc8825190565b808452602093840193830160005b82811015610ff957610fe9868351610fad565b9550602082019150600101610fd6565b5093949350505050565b6020815260006110166020830184610fbe565b9392505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116610fa7565b610fb7828261101d565b6000611059825190565b808452602093840193830160005b82811015610ff95761107a868351611045565b9550602082019150600101611067565b611095828251610f9e565b60006020820151604060208501526110b0604085018261104f565b949350505050565b6000611016838361108a565b60006110ce825190565b808452602084018094508160051b81016110e88560200190565b60005b8481101561111a5783830388526111038383516110b8565b9250602082016020989098019791506001016110eb565b50909695505050505050565b60208152600061101660208301846110c4565b60005b8381101561115457818101518382015260200161113c565b50506000910152565b6000611167825190565b8084526020840161117c828260208701611139565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011601949350505050565b6000611016838361115d565b60006111c1825190565b808452602084018094508160051b81016111db8560200190565b60005b8481101561111a5783830388526111f68383516111ab565b9250602082016020989098019791506001016111de565b60208152600061101660208301846111b7565b801515610fa7565b60208101610ec88284611220565b805b8114610bb957600080fd5b80358061124f81611236565b5092915050565b60006020828403121561126b5761126b600080fd5b6110168383611243565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600181811c9081908316806112ba57607f821692505b6020831081036112cc576112cc611275565b5050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80610fa7565b604081016113168285610f9e565b6110166020830184611302565b600061132d825190565b8361133c828260208701611139565b019392505050565b61134e818461101d565b60006110b06004830184611323565b60006110168284611323565b801515611238565b80518061124f81611369565b60006020828403121561139257611392600080fd5b6110168383611371565b60208101610ec88284611302565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810361140b5761140b6113aa565b60010192915050565b818101818180821115611429576114296113aa565b505092915050565b818103818181811115611429576114296113aa565b8181016000821283821280158216821582161715611429576114296113aa565b81810381600084128282811282168382138315161715610ec457610ec46113aa565b602081526000611016602083018461115d565b602081526000610ec860208301601181527f4e614e206e6f7420737570706f72746564000000000000000000000000000000602082015260400190565b6040815260006114eb604083018561115d565b9050611016602083018461130256fea2646970667358221220fecbc324d045dedde91acef77bf81946e23f5769a302ceb963316d7301e2e4a864736f6c63430008160033", "sourceMap": "1962:2165:65:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1998:81;;;:::i;:::-;;2170:134:7;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:133;;;:::i;2640:141::-;;;:::i;2456:178::-;;;:::i;:::-;;;;;;;:::i;2310:140::-;;;:::i;:::-;;;;;;;:::i;2787:146::-;;;:::i;3364:761:65:-;;;:::i;1875:141:7:-;;;:::i;1819:584:0:-;;;:::i;:::-;;;;;;;:::i;2860:390:65:-;;;:::i;2408:446::-;;;;;;:::i;:::-;;:::i;2022:142:7:-;;;:::i;1572:26:0:-;;;;;;;;;1998:81:65;2039:33;;;;;;;;;;;;;;;;;;:12;:33::i;:::-;1998:81::o;2170:134:7:-;2217:33;2281:16;2262:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:134;:::o;2939:133::-;2985:33;3049:16;3030:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2939:133;:::o;2640:141::-;2688:35;2756:18;2735:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2640:141;:::o;2456:178::-;2512:48;2601:26;2572:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:178;:::o;2310:140::-;2358:34;2425:18;2404:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:146;2835:40;2908:18;2887:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3364:761:65;3415:45;;;;;;;;;;;;;;;;;;:12;:45::i;:::-;3471:446;;;3508:27;;;;;3513:10;3471:446;;;3508:27;;;3471:20;3508:27;;;;;;3528:6;3508:27;;;;3471:446;;;3561:31;;3508:27;3561:31;;;;;;;;-1:-1:-1;3508:27:65;3561:31;;;;;;3583:8;3561:31;;;;3471:446;;;;;;;3614:31;;;;;;;;;;3631:3;3614:31;;;;3636:8;3614:31;;;;3471:446;;;;;;;3667:32;;;;;;;3672:10;3667:32;;;;;;;;3689:9;3667:32;;;;3471:446;;;;3721:31;;;;;;;3726:10;3721:31;;;;;;;;3743:8;3721:31;;;;-1:-1:-1;;;3471:446:65;3774:32;;;;;;;3779:10;3774:32;;;;;;;;;3796:9;3774:32;;;;;;;-1:-1:-1;;;3471:446:65;;3928:190;3945:12;3943:1;:14;3928:190;;;4009:97;4046:5;4052:1;4046:8;;;;;;;:::i;:::-;;;;;:22;4070:5;4076:1;4070:8;;;;;;;:::i;:::-;;;;;:18;;;4009:19;:97::i;:::-;3986:5;3992:1;3986:8;;;;;;;:::i;:::-;;;;;:19;;;:120;3978:129;;;;;;3959:3;;3928:190;;;;3405:720;3364:761::o;1875:141:7:-;1924:34;1991:18;1970:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1819:584:0;1853:4;1873:7;;;;;;;1869:528;;;-1:-1:-1;1903:7:0;;;;;;;;1819:584::o;1869:528::-;1941:17;2997:42;2985:55;3066:16;1980:374;;2196:43;;2023:20;;1671:64;;2135:34;;2196:43;;1671:64;;2221:17;;2196:43;;;:::i;:::-;;;;;;;;;;;;;;;2086:175;;;2196:43;2086:175;;:::i;:::-;;;;;;;;;;;;;;;2047:232;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:259;;;2323:7;2312:27;;;;;;;;;;;;:::i;:::-;2297:42;;2002:352;1980:374;2374:12;1819:584;-1:-1:-1;1819:584:0:o;2860:390:65:-;2901:34;;;;;;;;;;;;;;;;;;:12;:34::i;:::-;2970:1;2963:133;2976:1;2973;:4;2963:133;;317:28:1;309:37;;2998:15:65;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3029:21:65;;;;;:4;;-1:-1:-1;3029:18:65;;-1:-1:-1;3029:21:65;;3048:1;;3029:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2979:3;;;;;:::i;:::-;;;;2963:133;;;-1:-1:-1;2860:390:65:o;2408:446::-;2465:32;;;;;;;;;;;;;;;;;;2495:1;2465:12;:32::i;:::-;2507:9;2526:8;2548:1;2553;2548:6;2544:304;;2574:6;2183:5;2579:1;2574:6;:::i;:::-;-1:-1:-1;;;;2408:446:65:o;2544:304::-;2613:1;2618;2613:6;2609:239;;2639:6;2644:1;2143;2639:6;:::i;2609:239::-;2679:1;2684;2679:6;2675:173;;2705:6;2255:7;2261:1;2705:6;:::i;2675:173::-;2744:1;2749;2744:6;2740:108;;2770:6;2775:1;2313:5;2770:6;:::i;2740:108::-;2455:399;;2408:446;:::o;2022:142:7:-;2071:35;2139:18;2118:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:142;:::o;6598:121:16:-;6653:59;6708:2;6669:42;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;6653:15;:59::i;852:1106:65:-;936:17;748:20;1002:25;;:30;;998:44;;-1:-1:-1;1041:1:65;1034:8;;998:44;638:11;1107:24;;1101:37;;;;1136:2;1101:37;;1157:11;;;;;1148:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;693:11;1253:25;;1233:46;;;;;1293:15;;;;1289:32;;812:11;1310;1289:32;583:11;1387:25;;:30;1383:48;;1426:5;;1383:48;1507:11;;;;1567:27;;:2;:27;416:3;1567:27;1552:42;;:12;1721:9;;1717:205;;;1795:5;1794:6;;1778:4;:23;;1765:36;;1717:205;;;1828:1;1820:5;:9;1816:106;;;1856:22;;;;-1:-1:-1;1816:106:65;;;1918:4;1905:17;;1816:106;1933:17;;;852:1106;;;;;:::o;7697:143:16:-;7763:70;7825:2;7829;7779:53;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;868:133;939:55;986:7;1105:14;;591:42;1278:2;1265:16;;1081:21;;1105:14;1265:16;591:42;1314:5;1303:68;1294:77;;1231:150;;1007:380;:::o;495:96:69:-;530:7;441:42;430:54;;563:22;362:128;596:106;673:22;689:5;673:22;:::i;:::-;668:3;661:35;;;596:106::o;707:164::-;786:42;824:3;816:6;786:42;:::i;:::-;-1:-1:-1;860:4:69;851:14;;707:164::o;969:506::-;1022:3;1054:37;1085:5;87:12;;14:87;1054:37;204:19;;;256:4;247:14;;;;341;;1246:1;1256:194;1270:6;1267:1;1264:13;1256:194;;;1326:48;1370:3;1361:6;1355:13;1326:48;:::i;:::-;1319:55;-1:-1:-1;350:4:69;341:14;;1387:53;-1:-1:-1;1292:1:69;1285:9;1256:194;;;-1:-1:-1;1466:3:69;;969:506;-1:-1:-1;;;;969:506:69:o;1480:261::-;1659:2;1648:9;1641:21;1622:4;1679:56;1731:2;1720:9;1716:18;1708:6;1679:56;:::i;:::-;1671:64;1480:261;-1:-1:-1;;;1480:261:69:o;2631:93::-;2553:66;2542:78;;2696:21;2475:151;2729;2807:30;2833:3;2825:6;2807:30;:::i;2977:500::-;3029:3;3061:36;3091:5;87:12;;14:87;3061:36;204:19;;;256:4;247:14;;;;341;;3250:1;3260:192;3274:6;3271:1;3268:13;3260:192;;;3330:47;3373:3;3364:6;3358:13;3330:47;:::i;:::-;3323:54;-1:-1:-1;350:4:69;341:14;;3390:52;-1:-1:-1;3296:1:69;3289:9;3260:192;;3482:289;3555:48;3599:3;3591:5;3585:12;3555:48;:::i;:::-;3537:3;3649:4;3642:5;3638:16;3632:23;3687:4;3680;3675:3;3671:14;3664:28;3708:57;3759:4;3754:3;3750:14;3736:12;3708:57;:::i;:::-;3701:64;3482:289;-1:-1:-1;;;;3482:289:69:o;3776:154::-;3842:10;3881:43;3920:3;3912:6;3881:43;:::i;4040:731::-;4105:3;4137:49;4180:5;87:12;;14:87;4137:49;204:19;;;256:4;247:14;;4295:5;4288:12;;4339:6;4336:1;4332:14;4325:5;4321:26;4370:51;4415:5;350:4;341:14;;272:85;4370:51;4439:1;4449:296;4463:6;4460:1;4457:13;4449:296;;;4534:5;4528:4;4524:16;4519:3;4512:29;4562:61;4618:4;4609:6;4603:13;4562:61;:::i;:::-;4554:69;-1:-1:-1;350:4:69;341:14;;4730:4;4721:14;;;;;4636:65;-1:-1:-1;4485:1:69;4478:9;4449:296;;;-1:-1:-1;4761:4:69;;4040:731;-1:-1:-1;;;;;;4040:731:69:o;4776:333::-;5015:2;5004:9;4997:21;4978:4;5035:68;5099:2;5088:9;5084:18;5076:6;5035:68;:::i;5695:250::-;5780:1;5790:113;5804:6;5801:1;5798:13;5790:113;;;5880:11;;;5874:18;5861:11;;;5854:39;5826:2;5819:10;5790:113;;;-1:-1:-1;;5937:1:69;5919:16;;5912:27;5695:250::o;6117:317::-;6170:3;6202:26;6222:5;87:12;;14:87;6202:26;204:19;;;256:4;247:14;;6307:67;6367:6;6360:5;6353:4;6346:5;6342:16;6307:67;:::i;:::-;6039:66;6034:2;6023:14;;6019:87;6390:38;;6117:317;-1:-1:-1;;;;6117:317:69:o;6439:139::-;6492:10;6531:41;6568:3;6560:6;6531:41;:::i;6675:653::-;6727:3;6759:36;6789:5;87:12;;14:87;6759:36;204:19;;;256:4;247:14;;6891:5;6884:12;;6935:6;6932:1;6928:14;6921:5;6917:26;6966:38;6998:5;350:4;341:14;;272:85;6966:38;7022:1;7032:270;7046:6;7043:1;7040:13;7032:270;;;7117:5;7111:4;7107:16;7102:3;7095:29;7145:48;7188:4;7179:6;7173:13;7145:48;:::i;:::-;7137:56;-1:-1:-1;350:4:69;341:14;;7287:4;7278:14;;;;;7206:52;-1:-1:-1;7068:1:69;7061:9;7032:270;;7333:280;7532:2;7521:9;7514:21;7495:4;7552:55;7603:2;7592:9;7588:18;7580:6;7552:55;:::i;7715:89::-;7690:13;;7683:21;7778:19;7618:92;7809:180;7937:2;7922:18;;7949:34;7926:9;7965:6;7949:34;:::i;8179:120::-;8268:5;8253:21;8246:5;8243:32;8233:60;;8289:1;8286;8279:12;8304:170;8382:20;;;8436:32;8382:20;8436:32;:::i;:::-;;8304:170;;;;:::o;8479:288::-;8537:6;8590:2;8578:9;8569:7;8565:23;8561:32;8558:147;;;8616:79;1962:2165:65;;;8616:79:69;8724:37;8753:7;8742:9;8724:37;:::i;8772:184::-;8824:77;8821:1;8814:88;8921:4;8918:1;8911:15;8945:4;8942:1;8935:15;8961:318;9046:1;9042:12;;;;;;9116;;;9137:63;;9193:4;9183:8;9179:19;9169:29;;9137:63;9246:2;9238:6;9235:14;9215:18;9212:38;9209:64;;9253:18;;:::i;:::-;9209:64;;8961:318;;;:::o;9284:184::-;9336:77;9333:1;9326:88;9433:4;9430:1;9423:15;9457:4;9454:1;9447:15;9645:95;9727:5;9711:22;8108:66;9745:272;9907:2;9892:18;;9919:37;9896:9;9938:6;9919:37;:::i;:::-;9965:46;10007:2;9996:9;9992:18;9984:6;9965:46;:::i;10440:301::-;10481:3;10513:25;10532:5;87:12;;14:87;10513:25;10613:3;10634:67;10694:6;10687:5;10680:4;10673:5;10669:16;10634:67;:::i;:::-;10717:18;;10440:301;-1:-1:-1;;;10440:301:69:o;10746:290::-;10919:58;10973:3;10965:6;10919:58;:::i;:::-;10901:3;10993:37;11027:1;11022:3;11018:11;11010:6;10993:37;:::i;11041:189::-;11170:3;11195:29;11220:3;11212:6;11195:29;:::i;11235:116::-;7690:13;;7683:21;11307:19;7618:92;11356:170;11443:13;;;11490:30;11443:13;11490:30;:::i;11531:306::-;11598:6;11651:2;11639:9;11630:7;11626:23;11622:32;11619:147;;;11677:79;1962:2165:65;;;11677:79:69;11785:46;11823:7;11812:9;11785:46;:::i;11940:186::-;12072:2;12057:18;;12084:36;12061:9;12102:6;12084:36;:::i;12131:184::-;12183:77;12180:1;12173:88;12280:4;12277:1;12270:15;12304:4;12301:1;12294:15;12320:243;12358:3;12406:5;12436:66;12427:7;12424:79;12421:105;;12506:18;;:::i;:::-;12555:1;12542:15;;12320:243;-1:-1:-1;;12320:243:69:o;12640:213::-;12749:28;;;12725:1;12749:28;12810:14;;;12807:40;;;12827:18;;:::i;:::-;12807:40;;12640:213;;;;:::o;12858:218::-;12969:28;;;12944:1;12969:28;13032:15;;;13029:41;;;13050:18;;:::i;13081:327::-;13225:13;;;13120:3;13312:11;;13278:15;;;13367:10;;13359:19;;13342:10;;13338:19;;13335:44;13332:70;;;13382:18;;:::i;13413:317::-;13559:13;;;13497:1;13452:4;-1:-1:-1;;13559:13:69;13683:16;;;13675:25;;13656:16;;;13644:10;;13640:33;13637:64;13634:90;;;13704:18;;:::i;14221:220::-;14370:2;14359:9;14352:21;14333:4;14390:45;14431:2;14420:9;14416:18;14408:6;14390:45;:::i;14889:277::-;15091:2;15080:9;15073:21;15054:4;15111:49;15156:2;15145:9;15141:18;14741:2;204:19;;14581;256:4;247:14;;14566:35;14864:14;;;14612:272;15171:300;15346:2;15335:9;15328:21;15309:4;15366:45;15407:2;15396:9;15392:18;15384:6;15366:45;:::i;:::-;15358:53;;15420:45;15461:2;15450:9;15446:18;15438:6;15420:45;:::i", "linkReferences": {} }, "methodIdentifiers": { "IS_TEST()": "fa7626d4", "excludeArtifacts()": "b5508aa9", "excludeContracts()": "e20c9f71", "excludeSenders()": "1ed7831c", "failed()": "ba414fa6", "sanityReverts(int256)": "df96063b", "setUp()": "0a9254e4", "targetArtifactSelectors()": "66d9a9a0", "targetArtifacts()": "85226c81", "targetContracts()": "3f7286f4", "targetSelectors()": "916a17c6", "targetSenders()": "3e5e3c23", "testFloat2fixed()": "b1a3670e", "testSanity()": "c21e06ec" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"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\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"t\",\"type\":\"int256\"}],\"name\":\"sanityReverts\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"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\":\"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\":[],\"name\":\"testFloat2fixed\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testSanity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestIEEE754.sol\":\"TestIEEE754\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"test/TestIEEE754.sol\":{\"keccak256\":\"0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69\",\"dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.22+commit.4fc1097e" }, "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": "excludeSenders", "outputs": [ { "internalType": "address[]", "name": "excludedSenders_", "type": "address[]" } ] }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "failed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [ { "internalType": "int256", "name": "t", "type": "int256" } ], "stateMutability": "pure", "type": "function", "name": "sanityReverts" }, { "inputs": [], "stateMutability": "pure", "type": "function", "name": "setUp" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "targetArtifactSelectors", "outputs": [ { "internalType": "struct StdInvariant.FuzzSelector[]", "name": "targetedArtifactSelectors_", "type": "tuple[]", "components": [ { "internalType": "address", "name": "addr", "type": "address" }, { "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": "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": [], "stateMutability": "pure", "type": "function", "name": "testFloat2fixed" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "testSanity" } ], "devdoc": { "kind": "dev", "methods": {}, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@uniswap/v3-core/=lib_uniswap/v3-core/", "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "v3-core/=lib_uniswap/v3-core/", "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/" ], "optimizer": { "runs": 999999999, "details": { "peephole": true, "inliner": true, "jumpdestRemover": true, "orderLiterals": true, "deduplicate": true, "cse": true, "constantOptimizer": true, "yul": true, "yulDetails": { "stackAllocation": true, "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu" } } }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "test/TestIEEE754.sol": "TestIEEE754" }, "libraries": {} }, "sources": { "lib/forge-std/lib/ds-test/src/test.sol": { "keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b", "urls": [ "bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240", "dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k" ], "license": "GPL-3.0-or-later" }, "lib/forge-std/src/Base.sol": { "keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c", "urls": [ "bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224", "dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK" ], "license": "MIT" }, "lib/forge-std/src/StdAssertions.sol": { "keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60", "urls": [ "bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b", "dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL" ], "license": "MIT" }, "lib/forge-std/src/StdChains.sol": { "keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6", "urls": [ "bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d", "dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx" ], "license": "MIT" }, "lib/forge-std/src/StdCheats.sol": { "keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5", "urls": [ "bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a", "dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe" ], "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": "0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1", "urls": [ "bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c", "dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss" ], "license": "MIT" }, "lib/forge-std/src/StdJson.sol": { "keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b", "urls": [ "bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c", "dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV" ], "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": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d", "urls": [ "bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26", "dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9" ], "license": "MIT" }, "lib/forge-std/src/StdStyle.sol": { "keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d", "urls": [ "bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8", "dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK" ], "license": "MIT" }, "lib/forge-std/src/StdUtils.sol": { "keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1", "urls": [ "bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140", "dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi" ], "license": "MIT" }, "lib/forge-std/src/Test.sol": { "keccak256": "0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24", "urls": [ "bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb", "dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x" ], "license": "MIT" }, "lib/forge-std/src/Vm.sol": { "keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5", "urls": [ "bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c", "dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw" ], "license": "MIT" }, "lib/forge-std/src/console.sol": { "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba", "urls": [ "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70", "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec" ], "license": "MIT" }, "lib/forge-std/src/console2.sol": { "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea", "urls": [ "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973", "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF" ], "license": "MIT" }, "lib/forge-std/src/interfaces/IMulticall3.sol": { "keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a", "urls": [ "bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0", "dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2" ], "license": "MIT" }, "lib/forge-std/src/safeconsole.sol": { "keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381", "urls": [ "bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae", "dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq" ], "license": "MIT" }, "test/TestIEEE754.sol": { "keccak256": "0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072", "urls": [ "bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69", "dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1" ], "license": "UNLICENSED" } }, "version": 1 }, "ast": { "absolutePath": "test/TestIEEE754.sol", "id": 50824, "exportedSymbols": { "DSTest": [ 2291 ], "IEEE754": [ 50578 ], "StdAssertions": [ 3823 ], "StdChains": [ 4516 ], "StdCheats": [ 7334 ], "StdInvariant": [ 7624 ], "StdStorage": [ 8374 ], "StdStyle": [ 11038 ], "StdUtils": [ 11886 ], "Test": [ 11937 ], "TestBase": [ 2357 ], "TestIEEE754": [ 50823 ], "Vm": [ 13464 ], "console": [ 21528 ], "console2": [ 29653 ], "safeconsole": [ 42891 ], "stdError": [ 7400 ], "stdJson": [ 8200 ], "stdMath": [ 8342 ], "stdStorage": [ 9827 ] }, "nodeType": "SourceUnit", "src": "39:4089:65", "nodes": [ { "id": 50396, "nodeType": "PragmaDirective", "src": "39:24:65", "nodes": [], "literals": [ "solidity", ">=", "0.8", ".0" ] }, { "id": 50397, "nodeType": "PragmaDirective", "src": "64:19:65", "nodes": [], "literals": [ "abicoder", "v2" ] }, { "id": 50398, "nodeType": "ImportDirective", "src": "85:28:65", "nodes": [], "absolutePath": "lib/forge-std/src/Test.sol", "file": "forge-std/Test.sol", "nameLocation": "-1:-1:-1", "scope": 50824, "sourceUnit": 11938, "symbolAliases": [], "unitAlias": "" }, { "id": 50578, "nodeType": "ContractDefinition", "src": "115:1845:65", "nodes": [ { "id": 50436, "nodeType": "FunctionDefinition", "src": "177:195:65", "nodes": [], "body": { "id": 50435, "nodeType": "Block", "src": "251:121:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 50414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50408, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "269:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "hexValue": "31", "id": 50409, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "274:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "269:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50413, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50411, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "279:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "323536", "id": 50412, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "284:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "src": "279:8:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "269:18:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "7020696e76616c6964", "id": 50415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "289:11:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721", "typeString": "literal_string \"p invalid\"" }, "value": "p invalid" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721", "typeString": "literal_string \"p invalid\"" } ], "id": 50407, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "261:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50416, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "261:40:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50417, "nodeType": "ExpressionStatement", "src": "261:40:65" }, { "assignments": [ 50419 ], "declarations": [ { "constant": false, "id": 50419, "mutability": "mutable", "name": "s", "nameLocation": "319:1:65", "nodeType": "VariableDeclaration", "scope": 50435, "src": "311:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50418, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "311:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50423, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "323536", "id": 50420, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "323:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_256_by_1", "typeString": "int_const 256" }, "value": "256" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50421, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50402, "src": "329:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "323:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "311:19:65" }, { "expression": { "id": 50433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50424, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50405, "src": "340:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50432, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50427, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50400, "src": "352:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "id": 50428, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50419, "src": "357:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "352:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 50426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "344:6:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 50425, "name": "int256", "nodeType": "ElementaryTypeName", "src": "344:6:65", "typeDescriptions": {} } }, "id": 50430, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "344:16:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "id": 50431, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50419, "src": "364:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "344:21:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "340:25:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50434, "nodeType": "ExpressionStatement", "src": "340:25:65" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "bits2int", "nameLocation": "186:8:65", "parameters": { "id": 50403, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50400, "mutability": "mutable", "name": "b", "nameLocation": "204:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "196:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50399, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "196:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 50402, "mutability": "mutable", "name": "p", "nameLocation": "215:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "207:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50401, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "207:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "195:22:65" }, "returnParameters": { "id": 50406, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50405, "mutability": "mutable", "name": "r", "nameLocation": "248:1:65", "nodeType": "VariableDeclaration", "scope": 50436, "src": "241:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50404, "name": "int256", "nodeType": "ElementaryTypeName", "src": "241:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "240:10:65" }, "scope": 50578, "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "id": 50439, "nodeType": "VariableDeclaration", "src": "378:41:65", "nodes": [], "constant": true, "mutability": "constant", "name": "EBIAS", "nameLocation": "403:5:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50437, "name": "int32", "nodeType": "ElementaryTypeName", "src": "378:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "313237", "id": 50438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "416:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_127_by_1", "typeString": "int_const 127" }, "value": "127" }, "visibility": "internal" }, { "id": 50442, "nodeType": "VariableDeclaration", "src": "425:42:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ENAN", "nameLocation": "450:4:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50440, "name": "int32", "nodeType": "ElementaryTypeName", "src": "425:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "30786666", "id": 50441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "463:4:65", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "0xff" }, "visibility": "internal" }, { "id": 50445, "nodeType": "VariableDeclaration", "src": "499:39:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ESUBNORM", "nameLocation": "524:8:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50443, "name": "int32", "nodeType": "ElementaryTypeName", "src": "499:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "30", "id": 50444, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "537:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "internal" }, { "id": 50448, "nodeType": "VariableDeclaration", "src": "545:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "SIGN_MASK", "nameLocation": "570:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50446, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "545:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078383030305f30303030", "id": 50447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "583:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_2147483648_by_1", "typeString": "int_const 2147483648" }, "value": "0x8000_0000" }, "visibility": "internal" }, { "id": 50451, "nodeType": "VariableDeclaration", "src": "600:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "EXP_MASK", "nameLocation": "625:8:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50449, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "600:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078376638305f30303030", "id": 50450, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "638:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_2139095040_by_1", "typeString": "int_const 2139095040" }, "value": "0x7f80_0000" }, "visibility": "internal" }, { "id": 50454, "nodeType": "VariableDeclaration", "src": "655:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "MANT_MASK", "nameLocation": "680:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50452, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "655:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3078303037665f66666666", "id": 50453, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "693:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_8388607_by_1", "typeString": "int_const 8388607" }, "value": "0x007f_ffff" }, "visibility": "internal" }, { "id": 50459, "nodeType": "VariableDeclaration", "src": "710:58:65", "nodes": [], "constant": true, "mutability": "constant", "name": "ZERO_MASK", "nameLocation": "735:9:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50455, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "710:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50456, "name": "EXP_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50451, "src": "748:8:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "|", "rightExpression": { "id": 50457, "name": "MANT_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50454, "src": "759:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "748:20:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "id": 50462, "nodeType": "VariableDeclaration", "src": "774:49:65", "nodes": [], "constant": true, "mutability": "constant", "name": "MSB", "nameLocation": "799:3:65", "scope": 50578, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50460, "name": "int32", "nodeType": "ElementaryTypeName", "src": "774:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "value": { "hexValue": "3078303038305f30303030", "id": 50461, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "812:11:65", "typeDescriptions": { "typeIdentifier": "t_rational_8388608_by_1", "typeString": "int_const 8388608" }, "value": "0x0080_0000" }, "visibility": "internal" }, { "id": 50577, "nodeType": "FunctionDefinition", "src": "852:1106:65", "nodes": [], "body": { "id": 50576, "nodeType": "Block", "src": "955:1003:65", "nodes": [], "statements": [ { "id": 50575, "nodeType": "UncheckedBlock", "src": "956:1001:65", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50475, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50473, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50471, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1002:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50472, "name": "ZERO_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50459, "src": "1018:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1002:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 50474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1031:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1002:30:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50478, "nodeType": "IfStatement", "src": "998:44:65", "trueBody": { "expression": { "hexValue": "30", "id": 50476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1041:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "functionReturnParameters": 50470, "id": 50477, "nodeType": "Return", "src": "1034:8:65" } }, { "assignments": [ 50480 ], "declarations": [ { "constant": false, "id": 50480, "mutability": "mutable", "name": "exp", "nameLocation": "1095:3:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1088:10:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" }, "typeName": { "id": 50479, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1088:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "visibility": "internal" } ], "id": 50489, "initialValue": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50483, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1107:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50484, "name": "EXP_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50451, "src": "1123:8:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1107:24:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50482, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1101:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50481, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1101:5:65", "typeDescriptions": {} } }, "id": 50486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1101:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "hexValue": "3233", "id": 50487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1136:2:65", "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "src": "1101:37:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1088:50:65" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50493, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50491, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1157:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 50492, "name": "ENAN", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50442, "src": "1164:4:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1157:11:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4e614e206e6f7420737570706f72746564", "id": 50494, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1170:19:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e", "typeString": "literal_string \"NaN not supported\"" }, "value": "NaN not supported" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e", "typeString": "literal_string \"NaN not supported\"" } ], "id": 50490, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "1148:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 50495, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1148:42:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50496, "nodeType": "ExpressionStatement", "src": "1148:42:65" }, { "assignments": [ 50498 ], "declarations": [ { "constant": false, "id": 50498, "mutability": "mutable", "name": "mant", "nameLocation": "1240:4:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1233:11:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50497, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1233:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50505, "initialValue": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50501, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1253:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50502, "name": "MANT_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50454, "src": "1269:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1253:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50500, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1247:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50499, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1247:5:65", "typeDescriptions": {} } }, "id": 50504, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1247:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1233:46:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50506, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1293:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 50507, "name": "ESUBNORM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50445, "src": "1300:8:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1293:15:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50513, "nodeType": "IfStatement", "src": "1289:32:65", "trueBody": { "expression": { "id": 50511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50509, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1310:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "|=", "rightHandSide": { "id": 50510, "name": "MSB", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50462, "src": "1318:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1310:11:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50512, "nodeType": "ExpressionStatement", "src": "1310:11:65" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 50516, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50514, "name": "floatingPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50464, "src": "1387:13:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { "id": 50515, "name": "SIGN_MASK", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50448, "src": "1403:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "1387:25:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 50517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1416:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1387:30:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50524, "nodeType": "IfStatement", "src": "1383:48:65", "trueBody": { "expression": { "id": 50522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50519, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1419:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 50521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1426:5:65", "subExpression": { "id": 50520, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1427:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1419:12:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50523, "nodeType": "ExpressionStatement", "src": "1419:12:65" } }, { "expression": { "id": 50529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50525, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1501:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50528, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50526, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1507:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50527, "name": "EBIAS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50439, "src": "1513:5:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1507:11:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1501:17:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "id": 50530, "nodeType": "ExpressionStatement", "src": "1501:17:65" }, { "assignments": [ 50532 ], "declarations": [ { "constant": false, "id": 50532, "mutability": "mutable", "name": "rshft", "nameLocation": "1559:5:65", "nodeType": "VariableDeclaration", "scope": 50575, "src": "1552:12:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50531, "name": "int256", "nodeType": "ElementaryTypeName", "src": "1552:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50541, "initialValue": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_int32", "typeString": "int32" }, "id": 50538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3233", "id": 50533, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1567:2:65", "typeDescriptions": { "typeIdentifier": "t_rational_23_by_1", "typeString": "int_const 23" }, "value": "23" }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [ { "id": 50536, "name": "fixedBits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50466, "src": "1578:9:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 50535, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1572:5:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int32_$", "typeString": "type(int32)" }, "typeName": { "id": 50534, "name": "int32", "nodeType": "ElementaryTypeName", "src": "1572:5:65", "typeDescriptions": {} } }, "id": 50537, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1572:16:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1567:21:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 50539, "name": "exp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50480, "src": "1591:3:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "src": "1567:27:65", "typeDescriptions": { "typeIdentifier": "t_int32", "typeString": "int32" } }, "nodeType": "VariableDeclarationStatement", "src": "1552:42:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50542, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1721:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "hexValue": "30", "id": 50543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1729:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1721:9:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50555, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1820:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 50556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1828:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "1820:9:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "expression": { "id": 50569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50567, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1905:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 50568, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1918:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1905:17:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50570, "nodeType": "ExpressionStatement", "src": "1905:17:65" }, "id": 50571, "nodeType": "IfStatement", "src": "1816:106:65", "trueBody": { "expression": { "id": 50565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50558, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1843:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50559, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1856:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "arguments": [ { "id": 50562, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1872:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 50561, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1864:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 50560, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1864:7:65", "typeDescriptions": {} } }, "id": 50563, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1864:14:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1856:22:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1843:35:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50566, "nodeType": "ExpressionStatement", "src": "1843:35:65" } }, "id": 50572, "nodeType": "IfStatement", "src": "1717:205:65", "trueBody": { "expression": { "id": 50553, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50545, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1765:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50546, "name": "mant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50498, "src": "1778:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "arguments": [ { "id": 50550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "1794:6:65", "subExpression": { "id": 50549, "name": "rshft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50532, "src": "1795:5:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "id": 50548, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "1786:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 50547, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1786:7:65", "typeDescriptions": {} } }, "id": 50551, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1786:15:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "1778:23:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "1765:36:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50554, "nodeType": "ExpressionStatement", "src": "1765:36:65" } }, { "expression": { "id": 50573, "name": "fixedPoint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50469, "src": "1940:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "functionReturnParameters": 50470, "id": 50574, "nodeType": "Return", "src": "1933:17:65" } ] } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "float2fixed", "nameLocation": "861:11:65", "parameters": { "id": 50467, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50464, "mutability": "mutable", "name": "floatingPoint", "nameLocation": "880:13:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "873:20:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50463, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "873:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50466, "mutability": "mutable", "name": "fixedBits", "nameLocation": "902:9:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "895:16:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50465, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "895:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "src": "872:40:65" }, "returnParameters": { "id": 50470, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50469, "mutability": "mutable", "name": "fixedPoint", "nameLocation": "943:10:65", "nodeType": "VariableDeclaration", "scope": 50577, "src": "936:17:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50468, "name": "int256", "nodeType": "ElementaryTypeName", "src": "936:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "935:19:65" }, "scope": 50578, "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], "abstract": false, "baseContracts": [], "canonicalName": "IEEE754", "contractDependencies": [], "contractKind": "library", "fullyImplemented": true, "linearizedBaseContracts": [ 50578 ], "name": "IEEE754", "nameLocation": "123:7:65", "scope": 50824, "usedErrors": [], "usedEvents": [] }, { "id": 50823, "nodeType": "ContractDefinition", "src": "1962:2165:65", "nodes": [ { "id": 50590, "nodeType": "FunctionDefinition", "src": "1998:81:65", "nodes": [], "body": { "id": 50589, "nodeType": "Block", "src": "2029:50:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "54657374466c6f61742073657475702829", "id": 50586, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2052:19:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1", "typeString": "literal_string \"TestFloat setup()\"" }, "value": "TestFloat setup()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1", "typeString": "literal_string \"TestFloat setup()\"" } ], "expression": { "id": 50583, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2039:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50585, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2048:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "2039:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50587, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2039:33:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50588, "nodeType": "ExpressionStatement", "src": "2039:33:65" } ] }, "functionSelector": "0a9254e4", "implemented": true, "kind": "function", "modifiers": [], "name": "setUp", "nameLocation": "2007:5:65", "parameters": { "id": 50581, "nodeType": "ParameterList", "parameters": [], "src": "2012:2:65" }, "returnParameters": { "id": 50582, "nodeType": "ParameterList", "parameters": [], "src": "2029:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "id": 50593, "nodeType": "VariableDeclaration", "src": "2110:34:65", "nodes": [], "constant": true, "mutability": "constant", "name": "umin", "nameLocation": "2136:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50591, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2110:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "hexValue": "30", "id": 50592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2143:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "visibility": "internal" }, { "id": 50597, "nodeType": "VariableDeclaration", "src": "2150:38:65", "nodes": [], "constant": true, "mutability": "constant", "name": "umax", "nameLocation": "2176:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50594, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2150:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "value": { "id": 50596, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "2183:5:65", "subExpression": { "id": 50595, "name": "umin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50593, "src": "2184:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 50605, "nodeType": "VariableDeclaration", "src": "2215:48:65", "nodes": [], "constant": true, "mutability": "constant", "name": "imax", "nameLocation": "2241:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50598, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2215:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": { "arguments": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50603, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50601, "name": "umax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50597, "src": "2255:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">>", "rightExpression": { "hexValue": "31", "id": 50602, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2261:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2255:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 50600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2248:6:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { "id": 50599, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2248:6:65", "typeDescriptions": {} } }, "id": 50604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2248:15:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "id": 50609, "nodeType": "VariableDeclaration", "src": "2280:38:65", "nodes": [], "constant": true, "mutability": "constant", "name": "imin", "nameLocation": "2306:4:65", "scope": 50823, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50606, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2280:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "value": { "id": 50608, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "~", "prefix": true, "src": "2313:5:65", "subExpression": { "id": 50607, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "2314:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" }, { "id": 50673, "nodeType": "FunctionDefinition", "src": "2408:446:65", "nodes": [], "body": { "id": 50672, "nodeType": "Block", "src": "2455:399:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "73616e69747952657665727473", "id": 50617, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2478:15:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d", "typeString": "literal_string \"sanityReverts\"" }, "value": "sanityReverts" }, { "id": 50618, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2495:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d", "typeString": "literal_string \"sanityReverts\"" }, { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 50614, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2465:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2474:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22297, "src": "2465:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_int256_$returns$__$", "typeString": "function (string memory,int256) pure" } }, "id": 50619, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2465:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50620, "nodeType": "ExpressionStatement", "src": "2465:32:65" }, { "assignments": [ 50622 ], "declarations": [ { "constant": false, "id": 50622, "mutability": "mutable", "name": "u", "nameLocation": "2515:1:65", "nodeType": "VariableDeclaration", "scope": 50672, "src": "2507:9:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50621, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2507:7:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50623, "nodeType": "VariableDeclarationStatement", "src": "2507:9:65" }, { "assignments": [ 50625 ], "declarations": [ { "constant": false, "id": 50625, "mutability": "mutable", "name": "i", "nameLocation": "2533:1:65", "nodeType": "VariableDeclaration", "scope": 50672, "src": "2526:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50624, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2526:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50626, "nodeType": "VariableDeclarationStatement", "src": "2526:8:65" }, { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50627, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2548:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "31", "id": 50628, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2553:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2548:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50637, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2613:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "32", "id": 50638, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2618:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "2613:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50649, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50647, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2679:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "33", "id": 50648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2684:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "2679:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50659, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50657, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50611, "src": "2744:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "34", "id": 50658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2749:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "2744:6:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 50667, "nodeType": "Block", "src": "2806:42:65", "statements": [] }, "id": 50668, "nodeType": "IfStatement", "src": "2740:108:65", "trueBody": { "id": 50666, "nodeType": "Block", "src": "2752:48:65", "statements": [ { "expression": { "id": 50664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50660, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50625, "src": "2766:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50663, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50661, "name": "imin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50609, "src": "2770:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 50662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2775:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2770:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "2766:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50665, "nodeType": "ExpressionStatement", "src": "2766:10:65" } ] } }, "id": 50669, "nodeType": "IfStatement", "src": "2675:173:65", "trueBody": { "id": 50656, "nodeType": "Block", "src": "2687:47:65", "statements": [ { "expression": { "id": 50654, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50650, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50625, "src": "2701:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50653, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50651, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "2705:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50652, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2710:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2705:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "2701:10:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50655, "nodeType": "ExpressionStatement", "src": "2701:10:65" } ] } }, "id": 50670, "nodeType": "IfStatement", "src": "2609:239:65", "trueBody": { "id": 50646, "nodeType": "Block", "src": "2621:48:65", "statements": [ { "expression": { "id": 50644, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50640, "name": "u", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50622, "src": "2635:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50643, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50641, "name": "umin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50593, "src": "2639:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 50642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2644:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2639:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2635:10:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50645, "nodeType": "ExpressionStatement", "src": "2635:10:65" } ] } }, "id": 50671, "nodeType": "IfStatement", "src": "2544:304:65", "trueBody": { "id": 50636, "nodeType": "Block", "src": "2556:47:65", "statements": [ { "expression": { "id": 50634, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50630, "name": "u", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50622, "src": "2570:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50633, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50631, "name": "umax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50597, "src": "2574:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 50632, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2579:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2574:6:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "2570:10:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50635, "nodeType": "ExpressionStatement", "src": "2570:10:65" } ] } } ] }, "functionSelector": "df96063b", "implemented": true, "kind": "function", "modifiers": [], "name": "sanityReverts", "nameLocation": "2417:13:65", "parameters": { "id": 50612, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 50611, "mutability": "mutable", "name": "t", "nameLocation": "2438:1:65", "nodeType": "VariableDeclaration", "scope": 50673, "src": "2431:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50610, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2431:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "src": "2430:10:65" }, "returnParameters": { "id": 50613, "nodeType": "ParameterList", "parameters": [], "src": "2455:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "id": 50721, "nodeType": "FunctionDefinition", "src": "2860:390:65", "nodes": [], "body": { "id": 50720, "nodeType": "Block", "src": "2891:359:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "466c6f61742e7465737453616e6974792829", "id": 50679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2914:20:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0", "typeString": "literal_string \"Float.testSanity()\"" }, "value": "Float.testSanity()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0", "typeString": "literal_string \"Float.testSanity()\"" } ], "expression": { "id": 50676, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "2901:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50678, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2910:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "2901:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50680, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2901:34:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50681, "nodeType": "ExpressionStatement", "src": "2901:34:65" }, { "assignments": [ 50683 ], "declarations": [ { "constant": false, "id": 50683, "mutability": "mutable", "name": "i", "nameLocation": "2952:1:65", "nodeType": "VariableDeclaration", "scope": 50720, "src": "2945:8:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50682, "name": "int256", "nodeType": "ElementaryTypeName", "src": "2945:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "id": 50684, "nodeType": "VariableDeclarationStatement", "src": "2945:8:65" }, { "body": { "id": 50706, "nodeType": "Block", "src": "2984:112:65", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 50695, "name": "vm", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2350, "src": "2998:2:65", "typeDescriptions": { "typeIdentifier": "t_contract$_Vm_$13464", "typeString": "contract Vm" } }, "id": 50697, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3001:12:65", "memberName": "expectRevert", "nodeType": "MemberAccess", "referencedDeclaration": 13126, "src": "2998:15:65", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", "typeString": "function () external" } }, "id": 50698, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2998:17:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50699, "nodeType": "ExpressionStatement", "src": "2998:17:65" }, { "expression": { "arguments": [ { "id": 50703, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3048:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_int256", "typeString": "int256" } ], "expression": { "id": 50700, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -28, "src": "3029:4:65", "typeDescriptions": { "typeIdentifier": "t_contract$_TestIEEE754_$50823", "typeString": "contract TestIEEE754" } }, "id": 50702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3034:13:65", "memberName": "sanityReverts", "nodeType": "MemberAccess", "referencedDeclaration": 50673, "src": "3029:18:65", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$_t_int256_$returns$__$", "typeString": "function (int256) pure external" } }, "id": 50704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3029:21:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50705, "nodeType": "ExpressionStatement", "src": "3029:21:65" } ] }, "condition": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50691, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50689, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2973:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "hexValue": "34", "id": 50690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2976:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "src": "2973:4:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50707, "initializationExpression": { "expression": { "id": 50687, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50685, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2968:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 50686, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2970:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "2968:3:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50688, "nodeType": "ExpressionStatement", "src": "2968:3:65" }, "isSimpleCounterLoop": false, "loopExpression": { "expression": { "id": 50693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "2979:3:65", "subExpression": { "id": 50692, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "2979:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50694, "nodeType": "ExpressionStatement", "src": "2979:3:65" }, "nodeType": "ForStatement", "src": "2963:133:65" }, { "expression": { "id": 50712, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50708, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3105:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50711, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50709, "name": "imax", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50605, "src": "3109:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "31", "id": 50710, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3117:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3109:9:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3105:13:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50713, "nodeType": "ExpressionStatement", "src": "3105:13:65" }, { "expression": { "id": 50718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 50714, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50683, "src": "3179:1:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50715, "name": "imin", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50609, "src": "3183:4:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "31", "id": 50716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3191:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "3183:9:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3179:13:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "id": 50719, "nodeType": "ExpressionStatement", "src": "3179:13:65" } ] }, "functionSelector": "c21e06ec", "implemented": true, "kind": "function", "modifiers": [], "name": "testSanity", "nameLocation": "2869:10:65", "parameters": { "id": 50674, "nodeType": "ParameterList", "parameters": [], "src": "2879:2:65" }, "returnParameters": { "id": 50675, "nodeType": "ParameterList", "parameters": [], "src": "2891:0:65" }, "scope": 50823, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 50728, "nodeType": "StructDefinition", "src": "3256:102:65", "nodes": [], "canonicalName": "TestIEEE754.Item", "members": [ { "constant": false, "id": 50723, "mutability": "mutable", "name": "floatingPoint", "nameLocation": "3285:13:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3278:20:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50722, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3278:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50725, "mutability": "mutable", "name": "fixedBits", "nameLocation": "3315:9:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3308:16:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 50724, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3308:6:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 50727, "mutability": "mutable", "name": "fixedPoint", "nameLocation": "3341:10:65", "nodeType": "VariableDeclaration", "scope": 50728, "src": "3334:17:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" }, "typeName": { "id": 50726, "name": "int256", "nodeType": "ElementaryTypeName", "src": "3334:6:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "visibility": "internal" } ], "name": "Item", "nameLocation": "3263:4:65", "scope": 50823, "visibility": "public" }, { "id": 50822, "nodeType": "FunctionDefinition", "src": "3364:761:65", "nodes": [], "body": { "id": 50821, "nodeType": "Block", "src": "3405:720:65", "nodes": [], "statements": [ { "expression": { "arguments": [ { "hexValue": "54657374494545453735342e74657374466c6f61743266697865642829", "id": 50734, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3428:31:65", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a", "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\"" }, "value": "TestIEEE754.testFloat2fixed()" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a", "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\"" } ], "expression": { "id": 50731, "name": "console2", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29653, "src": "3415:8:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_console2_$29653_$", "typeString": "type(library console2)" } }, "id": 50733, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3424:3:65", "memberName": "log", "nodeType": "MemberAccess", "referencedDeclaration": 22167, "src": "3415:12:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 50735, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3415:45:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50736, "nodeType": "ExpressionStatement", "src": "3415:45:65" }, { "assignments": [ 50742 ], "declarations": [ { "constant": false, "id": 50742, "mutability": "mutable", "name": "items", "nameLocation": "3486:5:65", "nodeType": "VariableDeclaration", "scope": 50821, "src": "3471:20:65", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item[6]" }, "typeName": { "baseType": { "id": 50740, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 50739, "name": "Item", "nameLocations": [ "3471:4:65" ], "nodeType": "IdentifierPath", "referencedDeclaration": 50728, "src": "3471:4:65" }, "referencedDeclaration": 50728, "src": "3471:4:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_storage_ptr", "typeString": "struct TestIEEE754.Item" } }, "id": 50741, "length": { "hexValue": "36", "id": 50738, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3476:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_6_by_1", "typeString": "int_const 6" }, "value": "6" }, "nodeType": "ArrayTypeName", "src": "3471:7:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_storage_$6_storage_ptr", "typeString": "struct TestIEEE754.Item[6]" } }, "visibility": "internal" } ], "id": 50788, "initialValue": { "components": [ { "arguments": [ { "hexValue": "30783366383030303030", "id": 50744, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3513:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "30", "id": 50745, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3525:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, { "commonType": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "id": 50748, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50746, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3528:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "30", "id": 50747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3533:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "3528:6:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 50743, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3508:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3508:27:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783366383030303030", "id": 50751, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3566:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "313238", "id": 50752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3578:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" }, "id": 50755, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3583:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3588:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3583:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", "typeString": "int_const 3402...(31 digits omitted)...1456" } ], "id": 50750, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3561:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50756, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3561:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783366383030303030", "id": 50758, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3619:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, "value": "0x3f800000" }, { "hexValue": "323534", "id": 50759, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3631:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, "value": "254" }, { "commonType": { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" }, "id": 50762, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 50760, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3636:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "323534", "id": 50761, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3641:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, "value": "254" }, "src": "3636:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1065353216_by_1", "typeString": "int_const 1065353216" }, { "typeIdentifier": "t_rational_254_by_1", "typeString": "int_const 254" }, { "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1", "typeString": "int_const 2894...(69 digits omitted)...9984" } ], "id": 50757, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3614:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50763, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3614:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30786266383030303030", "id": 50765, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3672:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_3212836864_by_1", "typeString": "int_const 3212836864" }, "value": "0xbf800000" }, { "hexValue": "313238", "id": 50766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3684:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" }, "id": 50770, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50768, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3689:2:65", "subExpression": { "hexValue": "31", "id": 50767, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3690:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_1_by_1", "typeString": "int_const -1" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50769, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3695:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3689:9:65", "typeDescriptions": { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_3212836864_by_1", "typeString": "int_const 3212836864" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1", "typeString": "int_const -340...(32 digits omitted)...1456" } ], "id": 50764, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3667:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50771, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3667:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30783430303030303030", "id": 50773, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3726:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_1073741824_by_1", "typeString": "int_const 1073741824" }, "value": "0x40000000" }, { "hexValue": "313238", "id": 50774, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3738:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" }, "id": 50777, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "32", "id": 50775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3743:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50776, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3748:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3743:8:65", "typeDescriptions": { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1073741824_by_1", "typeString": "int_const 1073741824" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1", "typeString": "int_const 6805...(31 digits omitted)...2912" } ], "id": 50772, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3721:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50778, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3721:31:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, { "arguments": [ { "hexValue": "30786330303030303030", "id": 50780, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3779:10:65", "typeDescriptions": { "typeIdentifier": "t_rational_3221225472_by_1", "typeString": "int_const 3221225472" }, "value": "0xc0000000" }, { "hexValue": "313238", "id": 50781, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3791:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, { "commonType": { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" }, "id": 50785, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "id": 50783, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "-", "prefix": true, "src": "3796:2:65", "subExpression": { "hexValue": "32", "id": 50782, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3797:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "typeDescriptions": { "typeIdentifier": "t_rational_minus_2_by_1", "typeString": "int_const -2" } }, "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { "hexValue": "313238", "id": 50784, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3802:3:65", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, "src": "3796:9:65", "typeDescriptions": { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_3221225472_by_1", "typeString": "int_const 3221225472" }, { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, { "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1", "typeString": "int_const -680...(32 digits omitted)...2912" } ], "id": 50779, "name": "Item", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50728, "src": "3774:4:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$", "typeString": "type(struct TestIEEE754.Item storage pointer)" } }, "id": 50786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3774:32:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } } ], "id": 50787, "isConstant": false, "isInlineArray": true, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "3494:423:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "3471:446:65" }, { "body": { "id": 50819, "nodeType": "Block", "src": "3964:154:65", "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, "id": 50816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 50801, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "3986:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50803, "indexExpression": { "id": 50802, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3992:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "3986:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50804, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "3995:10:65", "memberName": "fixedPoint", "nodeType": "MemberAccess", "referencedDeclaration": 50727, "src": "3986:19:65", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "expression": { "baseExpression": { "id": 50807, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "4046:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50809, "indexExpression": { "id": 50808, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "4052:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4046:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50810, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4055:13:65", "memberName": "floatingPoint", "nodeType": "MemberAccess", "referencedDeclaration": 50723, "src": "4046:22:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "baseExpression": { "id": 50811, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "4070:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50813, "indexExpression": { "id": 50812, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "4076:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4070:8:65", "typeDescriptions": { "typeIdentifier": "t_struct$_Item_$50728_memory_ptr", "typeString": "struct TestIEEE754.Item memory" } }, "id": 50814, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "4079:9:65", "memberName": "fixedBits", "nodeType": "MemberAccess", "referencedDeclaration": 50725, "src": "4070:18:65", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "expression": { "id": 50805, "name": "IEEE754", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50578, "src": "4009:7:65", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IEEE754_$50578_$", "typeString": "type(library IEEE754)" } }, "id": 50806, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "4017:11:65", "memberName": "float2fixed", "nodeType": "MemberAccess", "referencedDeclaration": 50577, "src": "4009:19:65", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_int256_$", "typeString": "function (uint32,uint32) pure returns (int256)" } }, "id": 50815, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4009:97:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "src": "3986:120:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 50800, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3978:7:65", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, "id": 50817, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3978:129:65", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 50818, "nodeType": "ExpressionStatement", "src": "3978:129:65" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 50796, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 50793, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3943:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 50794, "name": "items", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50742, "src": "3945:5:65", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr", "typeString": "struct TestIEEE754.Item memory[6] memory" } }, "id": 50795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3951:6:65", "memberName": "length", "nodeType": "MemberAccess", "src": "3945:12:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "3943:14:65", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 50820, "initializationExpression": { "assignments": [ 50790 ], "declarations": [ { "constant": false, "id": 50790, "mutability": "mutable", "name": "i", "nameLocation": "3938:1:65", "nodeType": "VariableDeclaration", "scope": 50820, "src": "3933:6:65", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 50789, "name": "uint", "nodeType": "ElementaryTypeName", "src": "3933:4:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 50792, "initialValue": { "hexValue": "30", "id": 50791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3940:1:65", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "3933:8:65" }, "isSimpleCounterLoop": true, "loopExpression": { "expression": { "id": 50798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "3959:3:65", "subExpression": { "id": 50797, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 50790, "src": "3959:1:65", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 50799, "nodeType": "ExpressionStatement", "src": "3959:3:65" }, "nodeType": "ForStatement", "src": "3928:190:65" } ] }, "functionSelector": "b1a3670e", "implemented": true, "kind": "function", "modifiers": [], "name": "testFloat2fixed", "nameLocation": "3373:15:65", "parameters": { "id": 50729, "nodeType": "ParameterList", "parameters": [], "src": "3388:2:65" }, "returnParameters": { "id": 50730, "nodeType": "ParameterList", "parameters": [], "src": "3405:0:65" }, "scope": 50823, "stateMutability": "pure", "virtual": false, "visibility": "external" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 50579, "name": "Test", "nameLocations": [ "1986:4:65" ], "nodeType": "IdentifierPath", "referencedDeclaration": 11937, "src": "1986:4:65" }, "id": 50580, "nodeType": "InheritanceSpecifier", "src": "1986:4:65" } ], "canonicalName": "TestIEEE754", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "internalFunctionIDs": { "21582": 1 }, "linearizedBaseContracts": [ 50823, 11937, 2357, 2354, 11886, 7624, 7334, 6570, 4516, 3823, 2291 ], "name": "TestIEEE754", "nameLocation": "1971:11:65", "scope": 50824, "usedErrors": [], "usedEvents": [ 5, 9, 13, 17, 21, 25, 29, 33, 39, 45, 53, 61, 67, 73, 79, 85, 2418, 2423, 2428, 2435, 2442, 2449 ] } ], "license": "UNLICENSED" }, "id": 65 }