{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","failed()":"ba414fa6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/forge-std/src/StdAssertions.sol\":\"StdAssertions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":3000},\"remappings\":[\":@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/\",\":@latticexyz/=node_modules/@latticexyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":base/=src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/ds-test/src/test.sol\":{\"keccak256\":\"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5\",\"dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr\"]},\"node_modules/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf5ee6ffdf800ff79b630415dec6257dd930ee8a9b5b17996a2ee2e841d3afcc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978647b43acaf65a9c1c1c583c028fc534c42a219d5f8857c146fba6682aa90c\",\"dweb:/ipfs/QmNNkThmMkjtw8ArYJRTqy2h6axfsZPE67XZe5zRnWViur\"]},\"node_modules/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"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":"nonpayable","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@dk1a/solidity-stringutils/=node_modules/@dk1a/solidity-stringutils/","@latticexyz/=node_modules/@latticexyz/","@openzeppelin/=node_modules/@openzeppelin/","base/=src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":3000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"node_modules/forge-std/src/StdAssertions.sol":"StdAssertions"},"evmVersion":"paris","libraries":{}},"sources":{"node_modules/ds-test/src/test.sol":{"keccak256":"0xb39cd1d5220cb474947b131e15a4538334b7e886af244b440ae5c9c6bba96a54","urls":["bzz-raw://3101520221449ac0070bda3881311a71d9aa87e5210765e875246922cb5cb5f5","dweb:/ipfs/Qmbg6kAHNoG7ox9N9Xqd9Ere2H2XixMFWFqvyPwFCzB3Gr"],"license":"GPL-3.0-or-later"},"node_modules/forge-std/src/StdAssertions.sol":{"keccak256":"0xf5ee6ffdf800ff79b630415dec6257dd930ee8a9b5b17996a2ee2e841d3afcc9","urls":["bzz-raw://978647b43acaf65a9c1c1c583c028fc534c42a219d5f8857c146fba6682aa90c","dweb:/ipfs/QmNNkThmMkjtw8ArYJRTqy2h6axfsZPE67XZe5zRnWViur"],"license":"MIT"},"node_modules/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"node_modules/forge-std/src/StdAssertions.sol","id":62540,"exportedSymbols":{"DSTest":[61196],"StdAssertions":[62539],"stdMath":[66263]},"nodeType":"SourceUnit","src":"32:11793:151","nodes":[{"id":61307,"nodeType":"PragmaDirective","src":"32:31:151","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":61309,"nodeType":"ImportDirective","src":"65:40:151","nodes":[],"absolutePath":"node_modules/ds-test/src/test.sol","file":"ds-test/test.sol","nameLocation":"-1:-1:-1","scope":62540,"sourceUnit":61197,"symbolAliases":[{"foreign":{"id":61308,"name":"DSTest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61196,"src":"73:6:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61311,"nodeType":"ImportDirective","src":"106:38:151","nodes":[],"absolutePath":"node_modules/forge-std/src/StdMath.sol","file":"./StdMath.sol","nameLocation":"-1:-1:-1","scope":62540,"sourceUnit":66264,"symbolAliases":[{"foreign":{"id":61310,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"114:7:151","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62539,"nodeType":"ContractDefinition","src":"146:11678:151","nodes":[{"id":61318,"nodeType":"EventDefinition","src":"194:31:151","nodes":[],"anonymous":false,"eventSelector":"fb102865d50addddf69da9b5aa1bced66c80cf869a5c8d0471a467e18ce9cab1","name":"log_array","nameLocation":"200:9:151","parameters":{"id":61317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61316,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"220:3:151","nodeType":"VariableDeclaration","scope":61318,"src":"210:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61314,"name":"uint256","nodeType":"ElementaryTypeName","src":"210:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61315,"nodeType":"ArrayTypeName","src":"210:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"209:15:151"}},{"id":61323,"nodeType":"EventDefinition","src":"230:30:151","nodes":[],"anonymous":false,"eventSelector":"890a82679b470f2bd82816ed9b161f97d8b967f37fa3647c21d5bf39749e2dd5","name":"log_array","nameLocation":"236:9:151","parameters":{"id":61322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61321,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"255:3:151","nodeType":"VariableDeclaration","scope":61323,"src":"246:12:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61319,"name":"int256","nodeType":"ElementaryTypeName","src":"246:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61320,"nodeType":"ArrayTypeName","src":"246:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"245:14:151"}},{"id":61328,"nodeType":"EventDefinition","src":"265:31:151","nodes":[],"anonymous":false,"eventSelector":"40e1840f5769073d61bd01372d9b75baa9842d5629a0c99ff103be1178a8e9e2","name":"log_array","nameLocation":"271:9:151","parameters":{"id":61327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61326,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"291:3:151","nodeType":"VariableDeclaration","scope":61328,"src":"281:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61324,"name":"address","nodeType":"ElementaryTypeName","src":"281:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61325,"nodeType":"ArrayTypeName","src":"281:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"280:15:151"}},{"id":61335,"nodeType":"EventDefinition","src":"301:49:151","nodes":[],"anonymous":false,"eventSelector":"00aaa39c9ffb5f567a4534380c737075702e1f7f14107fc95328e3b56c0325fb","name":"log_named_array","nameLocation":"307:15:151","parameters":{"id":61334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61330,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"330:3:151","nodeType":"VariableDeclaration","scope":61335,"src":"323:10:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61329,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61333,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"345:3:151","nodeType":"VariableDeclaration","scope":61335,"src":"335:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61331,"name":"uint256","nodeType":"ElementaryTypeName","src":"335:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61332,"nodeType":"ArrayTypeName","src":"335:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"322:27:151"}},{"id":61342,"nodeType":"EventDefinition","src":"355:48:151","nodes":[],"anonymous":false,"eventSelector":"a73eda09662f46dde729be4611385ff34fe6c44fbbc6f7e17b042b59a3445b57","name":"log_named_array","nameLocation":"361:15:151","parameters":{"id":61341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61337,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"384:3:151","nodeType":"VariableDeclaration","scope":61342,"src":"377:10:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61336,"name":"string","nodeType":"ElementaryTypeName","src":"377:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61340,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"398:3:151","nodeType":"VariableDeclaration","scope":61342,"src":"389:12:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61338,"name":"int256","nodeType":"ElementaryTypeName","src":"389:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61339,"nodeType":"ArrayTypeName","src":"389:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"376:26:151"}},{"id":61349,"nodeType":"EventDefinition","src":"408:49:151","nodes":[],"anonymous":false,"eventSelector":"3bcfb2ae2e8d132dd1fce7cf278a9a19756a9fceabe470df3bdabb4bc577d1bd","name":"log_named_array","nameLocation":"414:15:151","parameters":{"id":61348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61344,"indexed":false,"mutability":"mutable","name":"key","nameLocation":"437:3:151","nodeType":"VariableDeclaration","scope":61349,"src":"430:10:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61343,"name":"string","nodeType":"ElementaryTypeName","src":"430:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61347,"indexed":false,"mutability":"mutable","name":"val","nameLocation":"452:3:151","nodeType":"VariableDeclaration","scope":61349,"src":"442:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61345,"name":"address","nodeType":"ElementaryTypeName","src":"442:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61346,"nodeType":"ArrayTypeName","src":"442:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"429:27:151"}},{"id":61363,"nodeType":"FunctionDefinition","src":"463:118:151","nodes":[],"body":{"id":61362,"nodeType":"Block","src":"513:68:151","nodes":[],"statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"545:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61356,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61351,"src":"554:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61354,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"528:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"528:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61358,"nodeType":"EmitStatement","src":"523:35:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61359,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"568:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"568:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61361,"nodeType":"ExpressionStatement","src":"568:6:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fail","nameLocation":"472:4:151","parameters":{"id":61352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61351,"mutability":"mutable","name":"err","nameLocation":"491:3:151","nodeType":"VariableDeclaration","scope":61363,"src":"477:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61350,"name":"string","nodeType":"ElementaryTypeName","src":"477:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"476:19:151"},"returnParameters":{"id":61353,"nodeType":"ParameterList","parameters":[],"src":"513:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61374,"nodeType":"FunctionDefinition","src":"587:83:151","nodes":[],"body":{"id":61373,"nodeType":"Block","src":"636:34:151","nodes":[],"statements":[{"expression":{"arguments":[{"id":61370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"657:5:151","subExpression":{"id":61369,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61365,"src":"658:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61368,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[59679,59700],"referencedDeclaration":59679,"src":"646:10:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":61371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"646:17:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61372,"nodeType":"ExpressionStatement","src":"646:17:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"596:11:151","parameters":{"id":61366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61365,"mutability":"mutable","name":"data","nameLocation":"613:4:151","nodeType":"VariableDeclaration","scope":61374,"src":"608:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61364,"name":"bool","nodeType":"ElementaryTypeName","src":"608:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"607:11:151"},"returnParameters":{"id":61367,"nodeType":"ParameterList","parameters":[],"src":"636:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61388,"nodeType":"FunctionDefinition","src":"676:107:151","nodes":[],"body":{"id":61387,"nodeType":"Block","src":"744:39:151","nodes":[],"statements":[{"expression":{"arguments":[{"id":61383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"765:5:151","subExpression":{"id":61382,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61376,"src":"766:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":61384,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61378,"src":"772:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61381,"name":"assertTrue","nodeType":"Identifier","overloadedDeclarations":[59679,59700],"referencedDeclaration":59700,"src":"754:10:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory)"}},"id":61385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"754:22:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61386,"nodeType":"ExpressionStatement","src":"754:22:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertFalse","nameLocation":"685:11:151","parameters":{"id":61379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61376,"mutability":"mutable","name":"data","nameLocation":"702:4:151","nodeType":"VariableDeclaration","scope":61388,"src":"697:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61375,"name":"bool","nodeType":"ElementaryTypeName","src":"697:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":61378,"mutability":"mutable","name":"err","nameLocation":"722:3:151","nodeType":"VariableDeclaration","scope":61388,"src":"708:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61377,"name":"string","nodeType":"ElementaryTypeName","src":"708:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"696:30:151"},"returnParameters":{"id":61380,"nodeType":"ParameterList","parameters":[],"src":"744:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61424,"nodeType":"FunctionDefinition","src":"789:312:151","nodes":[],"body":{"id":61423,"nodeType":"Block","src":"840:261:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":61397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61395,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61390,"src":"854:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":61396,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61392,"src":"859:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"854:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61422,"nodeType":"IfStatement","src":"850:245:151","trueBody":{"id":61421,"nodeType":"Block","src":"862:233:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b626f6f6c5d","id":61399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"885:36:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2","typeString":"literal_string \"Error: a == b not satisfied [bool]\""},"value":"Error: a == b not satisfied [bool]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b48ec9ac4dc7123ad32509232067c63ebae61bff18d5e06bf4dea2a25240ed2","typeString":"literal_string \"Error: a == b not satisfied [bool]\""}],"id":61398,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"881:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"881:41:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61401,"nodeType":"EmitStatement","src":"876:46:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"958:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"condition":{"id":61404,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61392,"src":"972:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":61406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"985:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a","typeString":"literal_string \"false\""},"value":"false"},"id":61407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"972:20:151","trueExpression":{"hexValue":"74727565","id":61405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"976:6:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034","typeString":"literal_string \"true\""},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61402,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"941:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:52:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61409,"nodeType":"EmitStatement","src":"936:57:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1029:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"condition":{"id":61412,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61390,"src":"1043:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"66616c7365","id":61414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1056:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba9154e0baa69c78e0ca563b867df81bae9d177c4ea1452c35c84386a70f0f7a","typeString":"literal_string \"false\""},"value":"false"},"id":61415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1043:20:151","trueExpression":{"hexValue":"74727565","id":61413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1047:6:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_6273151f959616268004b58dbb21e5c851b7b8d04498b4aabee12291d22fc034","typeString":"literal_string \"true\""},"value":"true"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61410,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"1012:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1012:52:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61417,"nodeType":"EmitStatement","src":"1007:57:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61418,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"1078:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61420,"nodeType":"ExpressionStatement","src":"1078:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"798:8:151","parameters":{"id":61393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61390,"mutability":"mutable","name":"a","nameLocation":"812:1:151","nodeType":"VariableDeclaration","scope":61424,"src":"807:6:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61389,"name":"bool","nodeType":"ElementaryTypeName","src":"807:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":61392,"mutability":"mutable","name":"b","nameLocation":"820:1:151","nodeType":"VariableDeclaration","scope":61424,"src":"815:6:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61391,"name":"bool","nodeType":"ElementaryTypeName","src":"815:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"806:16:151"},"returnParameters":{"id":61394,"nodeType":"ParameterList","parameters":[],"src":"840:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61449,"nodeType":"FunctionDefinition","src":"1107:186:151","nodes":[],"body":{"id":61448,"nodeType":"Block","src":"1177:116:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":61435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61433,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61426,"src":"1191:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":61434,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61428,"src":"1196:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1191:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61447,"nodeType":"IfStatement","src":"1187:100:151","trueBody":{"id":61446,"nodeType":"Block","src":"1199:88:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1235:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61438,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61430,"src":"1244:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61436,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"1218:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1218:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61440,"nodeType":"EmitStatement","src":"1213:35:151"},{"expression":{"arguments":[{"id":61442,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61426,"src":"1271:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":61443,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61428,"src":"1274:1:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":61441,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":61424,"src":"1262:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$_t_bool_$returns$__$","typeString":"function (bool,bool)"}},"id":61444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61445,"nodeType":"ExpressionStatement","src":"1262:14:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1116:8:151","parameters":{"id":61431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61426,"mutability":"mutable","name":"a","nameLocation":"1130:1:151","nodeType":"VariableDeclaration","scope":61449,"src":"1125:6:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61425,"name":"bool","nodeType":"ElementaryTypeName","src":"1125:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":61428,"mutability":"mutable","name":"b","nameLocation":"1138:1:151","nodeType":"VariableDeclaration","scope":61449,"src":"1133:6:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61427,"name":"bool","nodeType":"ElementaryTypeName","src":"1133:4:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":61430,"mutability":"mutable","name":"err","nameLocation":"1155:3:151","nodeType":"VariableDeclaration","scope":61449,"src":"1141:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61429,"name":"string","nodeType":"ElementaryTypeName","src":"1141:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1124:35:151"},"returnParameters":{"id":61432,"nodeType":"ParameterList","parameters":[],"src":"1177:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61462,"nodeType":"FunctionDefinition","src":"1299:99:151","nodes":[],"body":{"id":61461,"nodeType":"Block","src":"1366:32:151","nodes":[],"statements":[{"expression":{"arguments":[{"id":61457,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61451,"src":"1386:1:151","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61458,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61453,"src":"1389:1:151","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61456,"name":"assertEq0","nodeType":"Identifier","overloadedDeclarations":[61168,61195],"referencedDeclaration":61168,"src":"1376:9:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory)"}},"id":61459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1376:15:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61460,"nodeType":"ExpressionStatement","src":"1376:15:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1308:8:151","parameters":{"id":61454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61451,"mutability":"mutable","name":"a","nameLocation":"1330:1:151","nodeType":"VariableDeclaration","scope":61462,"src":"1317:14:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61450,"name":"bytes","nodeType":"ElementaryTypeName","src":"1317:5:151","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61453,"mutability":"mutable","name":"b","nameLocation":"1346:1:151","nodeType":"VariableDeclaration","scope":61462,"src":"1333:14:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61452,"name":"bytes","nodeType":"ElementaryTypeName","src":"1333:5:151","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1316:32:151"},"returnParameters":{"id":61455,"nodeType":"ParameterList","parameters":[],"src":"1366:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61478,"nodeType":"FunctionDefinition","src":"1404:123:151","nodes":[],"body":{"id":61477,"nodeType":"Block","src":"1490:37:151","nodes":[],"statements":[{"expression":{"arguments":[{"id":61472,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61464,"src":"1510:1:151","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61473,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61466,"src":"1513:1:151","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61474,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61468,"src":"1516:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61471,"name":"assertEq0","nodeType":"Identifier","overloadedDeclarations":[61168,61195],"referencedDeclaration":61195,"src":"1500:9:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory,string memory)"}},"id":61475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1500:20:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61476,"nodeType":"ExpressionStatement","src":"1500:20:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1413:8:151","parameters":{"id":61469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61464,"mutability":"mutable","name":"a","nameLocation":"1435:1:151","nodeType":"VariableDeclaration","scope":61478,"src":"1422:14:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61463,"name":"bytes","nodeType":"ElementaryTypeName","src":"1422:5:151","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61466,"mutability":"mutable","name":"b","nameLocation":"1451:1:151","nodeType":"VariableDeclaration","scope":61478,"src":"1438:14:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61465,"name":"bytes","nodeType":"ElementaryTypeName","src":"1438:5:151","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61468,"mutability":"mutable","name":"err","nameLocation":"1468:3:151","nodeType":"VariableDeclaration","scope":61478,"src":"1454:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61467,"name":"string","nodeType":"ElementaryTypeName","src":"1454:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1421:51:151"},"returnParameters":{"id":61470,"nodeType":"ParameterList","parameters":[],"src":"1490:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61520,"nodeType":"FunctionDefinition","src":"1533:344:151","nodes":[],"body":{"id":61519,"nodeType":"Block","src":"1608:269:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61490,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61481,"src":"1643:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":61488,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1632:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1636:6:151","memberName":"encode","nodeType":"MemberAccess","src":"1632:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1632:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61487,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1622:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1622:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61496,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61484,"src":"1671:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":61494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:6:151","memberName":"encode","nodeType":"MemberAccess","src":"1660:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61493,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1650:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1650:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1622:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61518,"nodeType":"IfStatement","src":"1618:253:151","trueBody":{"id":61517,"nodeType":"Block","src":"1676:195:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b75696e745b5d5d","id":61501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1699:38:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb","typeString":"literal_string \"Error: a == b not satisfied [uint[]]\""},"value":"Error: a == b not satisfied [uint[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_521d63632bd73b6c06245b96e4e8f1b767ee309607c65899b409e5c9e6c384eb","typeString":"literal_string \"Error: a == b not satisfied [uint[]]\""}],"id":61500,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"1695:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1695:43:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61503,"nodeType":"EmitStatement","src":"1690:48:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1773:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61506,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61484,"src":"1787:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":61504,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61335,"src":"1757:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,uint256[] memory)"}},"id":61507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1757:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61508,"nodeType":"EmitStatement","src":"1752:37:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1824:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61511,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61481,"src":"1838:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":61509,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61335,"src":"1808:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,uint256[] memory)"}},"id":61512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1808:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61513,"nodeType":"EmitStatement","src":"1803:37:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61514,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"1854:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1854:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61516,"nodeType":"ExpressionStatement","src":"1854:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1542:8:151","parameters":{"id":61485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61481,"mutability":"mutable","name":"a","nameLocation":"1568:1:151","nodeType":"VariableDeclaration","scope":61520,"src":"1551:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61479,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61480,"nodeType":"ArrayTypeName","src":"1551:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":61484,"mutability":"mutable","name":"b","nameLocation":"1588:1:151","nodeType":"VariableDeclaration","scope":61520,"src":"1571:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61482,"name":"uint256","nodeType":"ElementaryTypeName","src":"1571:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61483,"nodeType":"ArrayTypeName","src":"1571:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"1550:40:151"},"returnParameters":{"id":61486,"nodeType":"ParameterList","parameters":[],"src":"1608:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61562,"nodeType":"FunctionDefinition","src":"1883:341:151","nodes":[],"body":{"id":61561,"nodeType":"Block","src":"1956:268:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61532,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61523,"src":"1991:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":61530,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1980:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1984:6:151","memberName":"encode","nodeType":"MemberAccess","src":"1980:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1980:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61529,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1970:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1970:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61538,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61526,"src":"2019:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":61536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2008:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2012:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2008:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2008:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61535,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1998:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1998:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1970:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61560,"nodeType":"IfStatement","src":"1966:252:151","trueBody":{"id":61559,"nodeType":"Block","src":"2024:194:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b696e745b5d5d","id":61543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2047:37:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5","typeString":"literal_string \"Error: a == b not satisfied [int[]]\""},"value":"Error: a == b not satisfied [int[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c8a6638f7c95c9ee18ffcfc37ffe04d6270c2db7493e9b7a14add834054a5f5","typeString":"literal_string \"Error: a == b not satisfied [int[]]\""}],"id":61542,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"2043:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61545,"nodeType":"EmitStatement","src":"2038:47:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2120:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61548,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61526,"src":"2134:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":61546,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61342,"src":"2104:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,int256[] memory)"}},"id":61549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2104:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61550,"nodeType":"EmitStatement","src":"2099:37:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2171:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61553,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61523,"src":"2185:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":61551,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61342,"src":"2155:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,int256[] memory)"}},"id":61554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61555,"nodeType":"EmitStatement","src":"2150:37:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61556,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"2201:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2201:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61558,"nodeType":"ExpressionStatement","src":"2201:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"1892:8:151","parameters":{"id":61527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61523,"mutability":"mutable","name":"a","nameLocation":"1917:1:151","nodeType":"VariableDeclaration","scope":61562,"src":"1901:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61521,"name":"int256","nodeType":"ElementaryTypeName","src":"1901:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61522,"nodeType":"ArrayTypeName","src":"1901:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":61526,"mutability":"mutable","name":"b","nameLocation":"1936:1:151","nodeType":"VariableDeclaration","scope":61562,"src":"1920:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61524,"name":"int256","nodeType":"ElementaryTypeName","src":"1920:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61525,"nodeType":"ArrayTypeName","src":"1920:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"}],"src":"1900:38:151"},"returnParameters":{"id":61528,"nodeType":"ParameterList","parameters":[],"src":"1956:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61604,"nodeType":"FunctionDefinition","src":"2230:347:151","nodes":[],"body":{"id":61603,"nodeType":"Block","src":"2305:272:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61574,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61565,"src":"2340:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":61572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2329:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2333:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2329:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2329:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61571,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2319:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2319:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61580,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61568,"src":"2368:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":61578,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2357:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2361:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2357:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2357:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61577,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2347:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2347:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2319:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61602,"nodeType":"IfStatement","src":"2315:256:151","trueBody":{"id":61601,"nodeType":"Block","src":"2373:198:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061203d3d2062206e6f7420736174697366696564205b616464726573735b5d5d","id":61585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2396:41:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8","typeString":"literal_string \"Error: a == b not satisfied [address[]]\""},"value":"Error: a == b not satisfied [address[]]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18b6dc04296758144a4e9b271bd3d79214335bb195df00f93d1706586d5041f8","typeString":"literal_string \"Error: a == b not satisfied [address[]]\""}],"id":61584,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"2392:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2392:46:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61587,"nodeType":"EmitStatement","src":"2387:51:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2473:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61590,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61568,"src":"2487:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":61588,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61349,"src":"2457:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address[] memory)"}},"id":61591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2457:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61592,"nodeType":"EmitStatement","src":"2452:37:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2524:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61595,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61565,"src":"2538:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":61593,"name":"log_named_array","nodeType":"Identifier","overloadedDeclarations":[61335,61342,61349],"referencedDeclaration":61349,"src":"2508:15:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,address[] memory)"}},"id":61596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2508:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61597,"nodeType":"EmitStatement","src":"2503:37:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61598,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"2554:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2554:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61600,"nodeType":"ExpressionStatement","src":"2554:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2239:8:151","parameters":{"id":61569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61565,"mutability":"mutable","name":"a","nameLocation":"2265:1:151","nodeType":"VariableDeclaration","scope":61604,"src":"2248:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61563,"name":"address","nodeType":"ElementaryTypeName","src":"2248:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61564,"nodeType":"ArrayTypeName","src":"2248:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":61568,"mutability":"mutable","name":"b","nameLocation":"2285:1:151","nodeType":"VariableDeclaration","scope":61604,"src":"2268:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61566,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61567,"nodeType":"ArrayTypeName","src":"2268:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2247:40:151"},"returnParameters":{"id":61570,"nodeType":"ParameterList","parameters":[],"src":"2305:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61641,"nodeType":"FunctionDefinition","src":"2583:256:151","nodes":[],"body":{"id":61640,"nodeType":"Block","src":"2677:162:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61618,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61607,"src":"2712:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":61616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2701:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2705:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2701:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61615,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2691:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2691:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61624,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61610,"src":"2740:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"expression":{"id":61622,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2729:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61623,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2733:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2729:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2729:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61621,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2719:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2719:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2691:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61639,"nodeType":"IfStatement","src":"2687:146:151","trueBody":{"id":61638,"nodeType":"Block","src":"2745:88:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2781:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61630,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61612,"src":"2790:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61628,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"2764:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2764:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61632,"nodeType":"EmitStatement","src":"2759:35:151"},{"expression":{"arguments":[{"id":61634,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61607,"src":"2817:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},{"id":61635,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61610,"src":"2820:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"},{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}],"id":61633,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":61520,"src":"2808:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$","typeString":"function (uint256[] memory,uint256[] memory)"}},"id":61636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2808:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61637,"nodeType":"ExpressionStatement","src":"2808:14:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2592:8:151","parameters":{"id":61613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61607,"mutability":"mutable","name":"a","nameLocation":"2618:1:151","nodeType":"VariableDeclaration","scope":61641,"src":"2601:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61605,"name":"uint256","nodeType":"ElementaryTypeName","src":"2601:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61606,"nodeType":"ArrayTypeName","src":"2601:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":61610,"mutability":"mutable","name":"b","nameLocation":"2638:1:151","nodeType":"VariableDeclaration","scope":61641,"src":"2621:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":61608,"name":"uint256","nodeType":"ElementaryTypeName","src":"2621:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61609,"nodeType":"ArrayTypeName","src":"2621:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":61612,"mutability":"mutable","name":"err","nameLocation":"2655:3:151","nodeType":"VariableDeclaration","scope":61641,"src":"2641:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61611,"name":"string","nodeType":"ElementaryTypeName","src":"2641:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2600:59:151"},"returnParameters":{"id":61614,"nodeType":"ParameterList","parameters":[],"src":"2677:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61678,"nodeType":"FunctionDefinition","src":"2845:254:151","nodes":[],"body":{"id":61677,"nodeType":"Block","src":"2937:162:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61655,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61644,"src":"2972:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":61653,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2961:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61654,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2965:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2961:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2961:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61652,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2951:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2951:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61661,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61647,"src":"3000:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"expression":{"id":61659,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2989:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2993:6:151","memberName":"encode","nodeType":"MemberAccess","src":"2989:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2989:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61658,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2979:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2979:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2951:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61676,"nodeType":"IfStatement","src":"2947:146:151","trueBody":{"id":61675,"nodeType":"Block","src":"3005:88:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3041:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61667,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61649,"src":"3050:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61665,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"3024:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3024:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61669,"nodeType":"EmitStatement","src":"3019:35:151"},{"expression":{"arguments":[{"id":61671,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61644,"src":"3077:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}},{"id":61672,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61647,"src":"3080:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"},{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[] memory"}],"id":61670,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":61562,"src":"3068:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_int256_$dyn_memory_ptr_$_t_array$_t_int256_$dyn_memory_ptr_$returns$__$","typeString":"function (int256[] memory,int256[] memory)"}},"id":61673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3068:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61674,"nodeType":"ExpressionStatement","src":"3068:14:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"2854:8:151","parameters":{"id":61650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61644,"mutability":"mutable","name":"a","nameLocation":"2879:1:151","nodeType":"VariableDeclaration","scope":61678,"src":"2863:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61642,"name":"int256","nodeType":"ElementaryTypeName","src":"2863:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61643,"nodeType":"ArrayTypeName","src":"2863:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":61647,"mutability":"mutable","name":"b","nameLocation":"2898:1:151","nodeType":"VariableDeclaration","scope":61678,"src":"2882:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_memory_ptr","typeString":"int256[]"},"typeName":{"baseType":{"id":61645,"name":"int256","nodeType":"ElementaryTypeName","src":"2882:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":61646,"nodeType":"ArrayTypeName","src":"2882:8:151","typeDescriptions":{"typeIdentifier":"t_array$_t_int256_$dyn_storage_ptr","typeString":"int256[]"}},"visibility":"internal"},{"constant":false,"id":61649,"mutability":"mutable","name":"err","nameLocation":"2915:3:151","nodeType":"VariableDeclaration","scope":61678,"src":"2901:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61648,"name":"string","nodeType":"ElementaryTypeName","src":"2901:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2862:57:151"},"returnParameters":{"id":61651,"nodeType":"ParameterList","parameters":[],"src":"2937:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61715,"nodeType":"FunctionDefinition","src":"3105:256:151","nodes":[],"body":{"id":61714,"nodeType":"Block","src":"3199:162:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":61701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":61692,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61681,"src":"3234:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":61690,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3223:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3227:6:151","memberName":"encode","nodeType":"MemberAccess","src":"3223:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3223:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61689,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3213:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3213:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"arguments":[{"id":61698,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61684,"src":"3262:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":61696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3251:3:151","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3255:6:151","memberName":"encode","nodeType":"MemberAccess","src":"3251:10:151","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3251:13:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61695,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3241:9:151","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":61700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3241:24:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3213:52:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61713,"nodeType":"IfStatement","src":"3209:146:151","trueBody":{"id":61712,"nodeType":"Block","src":"3267:88:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3303:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61704,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61686,"src":"3312:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61702,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"3286:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3286:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61706,"nodeType":"EmitStatement","src":"3281:35:151"},{"expression":{"arguments":[{"id":61708,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61681,"src":"3339:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":61709,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61684,"src":"3342:1:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":61707,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":61604,"src":"3330:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$","typeString":"function (address[] memory,address[] memory)"}},"id":61710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3330:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61711,"nodeType":"ExpressionStatement","src":"3330:14:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEq","nameLocation":"3114:8:151","parameters":{"id":61687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61681,"mutability":"mutable","name":"a","nameLocation":"3140:1:151","nodeType":"VariableDeclaration","scope":61715,"src":"3123:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61679,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61680,"nodeType":"ArrayTypeName","src":"3123:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":61684,"mutability":"mutable","name":"b","nameLocation":"3160:1:151","nodeType":"VariableDeclaration","scope":61715,"src":"3143:18:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":61682,"name":"address","nodeType":"ElementaryTypeName","src":"3143:7:151","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61683,"nodeType":"ArrayTypeName","src":"3143:9:151","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":61686,"mutability":"mutable","name":"err","nameLocation":"3177:3:151","nodeType":"VariableDeclaration","scope":61715,"src":"3163:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61685,"name":"string","nodeType":"ElementaryTypeName","src":"3163:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3122:59:151"},"returnParameters":{"id":61688,"nodeType":"ParameterList","parameters":[],"src":"3199:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61734,"nodeType":"FunctionDefinition","src":"3388:110:151","nodes":[],"body":{"id":61733,"nodeType":"Block","src":"3449:49:151","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":61725,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61717,"src":"3476:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3468:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":61723,"name":"uint256","nodeType":"ElementaryTypeName","src":"3468:7:151","typeDescriptions":{}}},"id":61726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3468:10:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":61729,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61719,"src":"3488:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3480:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":61727,"name":"uint256","nodeType":"ElementaryTypeName","src":"3480:7:151","typeDescriptions":{}}},"id":61730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3480:10:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61722,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59924,"src":"3459:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":61731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61732,"nodeType":"ExpressionStatement","src":"3459:32:151"}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertEqUint","nameLocation":"3397:12:151","parameters":{"id":61720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61717,"mutability":"mutable","name":"a","nameLocation":"3418:1:151","nodeType":"VariableDeclaration","scope":61734,"src":"3410:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61716,"name":"uint256","nodeType":"ElementaryTypeName","src":"3410:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61719,"mutability":"mutable","name":"b","nameLocation":"3429:1:151","nodeType":"VariableDeclaration","scope":61734,"src":"3421:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61718,"name":"uint256","nodeType":"ElementaryTypeName","src":"3421:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3409:22:151"},"returnParameters":{"id":61721,"nodeType":"ParameterList","parameters":[],"src":"3449:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61784,"nodeType":"FunctionDefinition","src":"3504:470:151","nodes":[],"body":{"id":61783,"nodeType":"Block","src":"3588:386:151","nodes":[],"statements":[{"assignments":[61744],"declarations":[{"constant":false,"id":61744,"mutability":"mutable","name":"delta","nameLocation":"3606:5:151","nodeType":"VariableDeclaration","scope":61783,"src":"3598:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61743,"name":"uint256","nodeType":"ElementaryTypeName","src":"3598:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61750,"initialValue":{"arguments":[{"id":61747,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61736,"src":"3628:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61748,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61738,"src":"3631:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61745,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"3614:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3622:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66174,"src":"3614:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":61749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3614:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3598:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61751,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61744,"src":"3648:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61752,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61740,"src":"3656:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3648:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61782,"nodeType":"IfStatement","src":"3644:324:151","trueBody":{"id":61781,"nodeType":"Block","src":"3666:302:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":61755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3689:36:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":61754,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"3685:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3685:41:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61757,"nodeType":"EmitStatement","src":"3680:46:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3760:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61760,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61738,"src":"3774:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61758,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"3745:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3745:31:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61762,"nodeType":"EmitStatement","src":"3740:36:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3810:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61765,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61736,"src":"3824:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61763,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"3795:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3795:31:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61767,"nodeType":"EmitStatement","src":"3790:36:151"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":61769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3860:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":61770,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61740,"src":"3874:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61768,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"3845:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:38:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61772,"nodeType":"EmitStatement","src":"3840:43:151"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":61774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3917:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},"value":"     Delta"},{"id":61775,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61744,"src":"3931:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61773,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"3902:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3902:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61777,"nodeType":"EmitStatement","src":"3897:40:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61778,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"3951:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61780,"nodeType":"ExpressionStatement","src":"3951:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"3513:17:151","parameters":{"id":61741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61736,"mutability":"mutable","name":"a","nameLocation":"3539:1:151","nodeType":"VariableDeclaration","scope":61784,"src":"3531:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61735,"name":"uint256","nodeType":"ElementaryTypeName","src":"3531:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61738,"mutability":"mutable","name":"b","nameLocation":"3550:1:151","nodeType":"VariableDeclaration","scope":61784,"src":"3542:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61737,"name":"uint256","nodeType":"ElementaryTypeName","src":"3542:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61740,"mutability":"mutable","name":"maxDelta","nameLocation":"3561:8:151","nodeType":"VariableDeclaration","scope":61784,"src":"3553:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61739,"name":"uint256","nodeType":"ElementaryTypeName","src":"3553:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3530:40:151"},"returnParameters":{"id":61742,"nodeType":"ParameterList","parameters":[],"src":"3588:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61820,"nodeType":"FunctionDefinition","src":"3980:294:151","nodes":[],"body":{"id":61819,"nodeType":"Block","src":"4083:191:151","nodes":[],"statements":[{"assignments":[61796],"declarations":[{"constant":false,"id":61796,"mutability":"mutable","name":"delta","nameLocation":"4101:5:151","nodeType":"VariableDeclaration","scope":61819,"src":"4093:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61795,"name":"uint256","nodeType":"ElementaryTypeName","src":"4093:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61802,"initialValue":{"arguments":[{"id":61799,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61786,"src":"4123:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61800,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61788,"src":"4126:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61797,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"4109:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4117:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66174,"src":"4109:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":61801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4109:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4093:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61803,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61796,"src":"4143:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61804,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61790,"src":"4151:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4143:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61818,"nodeType":"IfStatement","src":"4139:129:151","trueBody":{"id":61817,"nodeType":"Block","src":"4161:107:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4197:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61808,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61792,"src":"4206:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61806,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"4180:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4180:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61810,"nodeType":"EmitStatement","src":"4175:35:151"},{"expression":{"arguments":[{"id":61812,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61786,"src":"4242:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61813,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61788,"src":"4245:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61814,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61790,"src":"4248:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61811,"name":"assertApproxEqAbs","nodeType":"Identifier","overloadedDeclarations":[61784,61820,61965,62001],"referencedDeclaration":61784,"src":"4224:17:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":61815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4224:33:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61816,"nodeType":"ExpressionStatement","src":"4224:33:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"3989:17:151","parameters":{"id":61793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61786,"mutability":"mutable","name":"a","nameLocation":"4015:1:151","nodeType":"VariableDeclaration","scope":61820,"src":"4007:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61785,"name":"uint256","nodeType":"ElementaryTypeName","src":"4007:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61788,"mutability":"mutable","name":"b","nameLocation":"4026:1:151","nodeType":"VariableDeclaration","scope":61820,"src":"4018:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4018:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61790,"mutability":"mutable","name":"maxDelta","nameLocation":"4037:8:151","nodeType":"VariableDeclaration","scope":61820,"src":"4029:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61789,"name":"uint256","nodeType":"ElementaryTypeName","src":"4029:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61792,"mutability":"mutable","name":"err","nameLocation":"4061:3:151","nodeType":"VariableDeclaration","scope":61820,"src":"4047:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61791,"name":"string","nodeType":"ElementaryTypeName","src":"4047:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4006:59:151"},"returnParameters":{"id":61794,"nodeType":"ParameterList","parameters":[],"src":"4083:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61876,"nodeType":"FunctionDefinition","src":"4280:567:151","nodes":[],"body":{"id":61875,"nodeType":"Block","src":"4389:458:151","nodes":[],"statements":[{"assignments":[61832],"declarations":[{"constant":false,"id":61832,"mutability":"mutable","name":"delta","nameLocation":"4407:5:151","nodeType":"VariableDeclaration","scope":61875,"src":"4399:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61831,"name":"uint256","nodeType":"ElementaryTypeName","src":"4399:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61838,"initialValue":{"arguments":[{"id":61835,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61822,"src":"4429:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61836,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61824,"src":"4432:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61833,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"4415:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4423:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66174,"src":"4415:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":61837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4415:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4399:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61839,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61832,"src":"4449:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61840,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61826,"src":"4457:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4449:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61874,"nodeType":"IfStatement","src":"4445:396:151","trueBody":{"id":61873,"nodeType":"Block","src":"4467:374:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":61843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4490:36:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":61842,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"4486:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4486:41:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61845,"nodeType":"EmitStatement","src":"4481:46:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4569:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61848,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61824,"src":"4583:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61849,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61828,"src":"4586:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61846,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"4546:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":61850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4546:49:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61851,"nodeType":"EmitStatement","src":"4541:54:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4637:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61854,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61822,"src":"4651:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61855,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61828,"src":"4654:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61852,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"4614:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":61856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4614:49:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61857,"nodeType":"EmitStatement","src":"4609:54:151"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":61859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":61860,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61826,"src":"4719:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61861,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61828,"src":"4729:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61858,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"4682:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":61862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61863,"nodeType":"EmitStatement","src":"4677:61:151"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":61865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4780:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},"value":"     Delta"},{"id":61866,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61832,"src":"4794:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61867,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61828,"src":"4801:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61864,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"4757:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":61868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4757:53:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61869,"nodeType":"EmitStatement","src":"4752:58:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61870,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"4824:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4824:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61872,"nodeType":"ExpressionStatement","src":"4824:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"4289:24:151","parameters":{"id":61829,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61822,"mutability":"mutable","name":"a","nameLocation":"4322:1:151","nodeType":"VariableDeclaration","scope":61876,"src":"4314:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61821,"name":"uint256","nodeType":"ElementaryTypeName","src":"4314:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61824,"mutability":"mutable","name":"b","nameLocation":"4333:1:151","nodeType":"VariableDeclaration","scope":61876,"src":"4325:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61823,"name":"uint256","nodeType":"ElementaryTypeName","src":"4325:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61826,"mutability":"mutable","name":"maxDelta","nameLocation":"4344:8:151","nodeType":"VariableDeclaration","scope":61876,"src":"4336:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61825,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61828,"mutability":"mutable","name":"decimals","nameLocation":"4362:8:151","nodeType":"VariableDeclaration","scope":61876,"src":"4354:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61827,"name":"uint256","nodeType":"ElementaryTypeName","src":"4354:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4313:58:151"},"returnParameters":{"id":61830,"nodeType":"ParameterList","parameters":[],"src":"4389:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61915,"nodeType":"FunctionDefinition","src":"4853:356:151","nodes":[],"body":{"id":61914,"nodeType":"Block","src":"5001:208:151","nodes":[],"statements":[{"assignments":[61890],"declarations":[{"constant":false,"id":61890,"mutability":"mutable","name":"delta","nameLocation":"5019:5:151","nodeType":"VariableDeclaration","scope":61914,"src":"5011:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61889,"name":"uint256","nodeType":"ElementaryTypeName","src":"5011:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61896,"initialValue":{"arguments":[{"id":61893,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61878,"src":"5041:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61894,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61880,"src":"5044:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61891,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"5027:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5035:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66174,"src":"5027:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":61895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5027:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5011:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61897,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61890,"src":"5061:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61898,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61882,"src":"5069:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5061:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61913,"nodeType":"IfStatement","src":"5057:146:151","trueBody":{"id":61912,"nodeType":"Block","src":"5079:124:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5115:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61902,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61886,"src":"5124:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61900,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"5098:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5098:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61904,"nodeType":"EmitStatement","src":"5093:35:151"},{"expression":{"arguments":[{"id":61906,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61878,"src":"5167:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61907,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61880,"src":"5170:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61908,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61882,"src":"5173:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61909,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61884,"src":"5183:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61905,"name":"assertApproxEqAbsDecimal","nodeType":"Identifier","overloadedDeclarations":[61876,61915,62057,62096],"referencedDeclaration":61876,"src":"5142:24:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":61910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:50:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61911,"nodeType":"ExpressionStatement","src":"5142:50:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"4862:24:151","parameters":{"id":61887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61878,"mutability":"mutable","name":"a","nameLocation":"4895:1:151","nodeType":"VariableDeclaration","scope":61915,"src":"4887:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61877,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61880,"mutability":"mutable","name":"b","nameLocation":"4906:1:151","nodeType":"VariableDeclaration","scope":61915,"src":"4898:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61879,"name":"uint256","nodeType":"ElementaryTypeName","src":"4898:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61882,"mutability":"mutable","name":"maxDelta","nameLocation":"4917:8:151","nodeType":"VariableDeclaration","scope":61915,"src":"4909:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61881,"name":"uint256","nodeType":"ElementaryTypeName","src":"4909:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61884,"mutability":"mutable","name":"decimals","nameLocation":"4935:8:151","nodeType":"VariableDeclaration","scope":61915,"src":"4927:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61883,"name":"uint256","nodeType":"ElementaryTypeName","src":"4927:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61886,"mutability":"mutable","name":"err","nameLocation":"4959:3:151","nodeType":"VariableDeclaration","scope":61915,"src":"4945:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61885,"name":"string","nodeType":"ElementaryTypeName","src":"4945:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4886:77:151"},"returnParameters":{"id":61888,"nodeType":"ParameterList","parameters":[],"src":"5001:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":61965,"nodeType":"FunctionDefinition","src":"5215:465:151","nodes":[],"body":{"id":61964,"nodeType":"Block","src":"5297:383:151","nodes":[],"statements":[{"assignments":[61925],"declarations":[{"constant":false,"id":61925,"mutability":"mutable","name":"delta","nameLocation":"5315:5:151","nodeType":"VariableDeclaration","scope":61964,"src":"5307:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61924,"name":"uint256","nodeType":"ElementaryTypeName","src":"5307:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61931,"initialValue":{"arguments":[{"id":61928,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61917,"src":"5337:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":61929,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61919,"src":"5340:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":61926,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"5323:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5331:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66210,"src":"5323:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":61930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5323:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5307:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61932,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61925,"src":"5357:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61933,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61921,"src":"5365:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5357:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61963,"nodeType":"IfStatement","src":"5353:321:151","trueBody":{"id":61962,"nodeType":"Block","src":"5375:299:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":61936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5398:35:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":61935,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"5394:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":61937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5394:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61938,"nodeType":"EmitStatement","src":"5389:45:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":61940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5467:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":61941,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61919,"src":"5481:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":61939,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59477,"src":"5453:13:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":61942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5453:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61943,"nodeType":"EmitStatement","src":"5448:35:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":61945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5516:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":61946,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61917,"src":"5530:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":61944,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59477,"src":"5502:13:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":61947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5502:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61948,"nodeType":"EmitStatement","src":"5497:35:151"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":61950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5566:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":61951,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61921,"src":"5580:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61949,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"5551:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5551:38:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61953,"nodeType":"EmitStatement","src":"5546:43:151"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":61955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5623:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},"value":"     Delta"},{"id":61956,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61925,"src":"5637:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61954,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"5608:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":61957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5608:35:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61958,"nodeType":"EmitStatement","src":"5603:40:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":61959,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"5657:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":61960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5657:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61961,"nodeType":"ExpressionStatement","src":"5657:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"5224:17:151","parameters":{"id":61922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61917,"mutability":"mutable","name":"a","nameLocation":"5249:1:151","nodeType":"VariableDeclaration","scope":61965,"src":"5242:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":61916,"name":"int256","nodeType":"ElementaryTypeName","src":"5242:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":61919,"mutability":"mutable","name":"b","nameLocation":"5259:1:151","nodeType":"VariableDeclaration","scope":61965,"src":"5252:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":61918,"name":"int256","nodeType":"ElementaryTypeName","src":"5252:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":61921,"mutability":"mutable","name":"maxDelta","nameLocation":"5270:8:151","nodeType":"VariableDeclaration","scope":61965,"src":"5262:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61920,"name":"uint256","nodeType":"ElementaryTypeName","src":"5262:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5241:38:151"},"returnParameters":{"id":61923,"nodeType":"ParameterList","parameters":[],"src":"5297:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62001,"nodeType":"FunctionDefinition","src":"5686:292:151","nodes":[],"body":{"id":62000,"nodeType":"Block","src":"5787:191:151","nodes":[],"statements":[{"assignments":[61977],"declarations":[{"constant":false,"id":61977,"mutability":"mutable","name":"delta","nameLocation":"5805:5:151","nodeType":"VariableDeclaration","scope":62000,"src":"5797:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61976,"name":"uint256","nodeType":"ElementaryTypeName","src":"5797:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61983,"initialValue":{"arguments":[{"id":61980,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61967,"src":"5827:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":61981,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61969,"src":"5830:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":61978,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"5813:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":61979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5821:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66210,"src":"5813:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":61982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5813:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5797:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61984,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61977,"src":"5847:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":61985,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61971,"src":"5855:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5847:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61999,"nodeType":"IfStatement","src":"5843:129:151","trueBody":{"id":61998,"nodeType":"Block","src":"5865:107:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":61988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5901:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":61989,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61973,"src":"5910:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":61987,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"5884:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":61990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5884:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61991,"nodeType":"EmitStatement","src":"5879:35:151"},{"expression":{"arguments":[{"id":61993,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61967,"src":"5946:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":61994,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61969,"src":"5949:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":61995,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61971,"src":"5952:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61992,"name":"assertApproxEqAbs","nodeType":"Identifier","overloadedDeclarations":[61784,61820,61965,62001],"referencedDeclaration":61965,"src":"5928:17:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":61996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5928:33:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61997,"nodeType":"ExpressionStatement","src":"5928:33:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbs","nameLocation":"5695:17:151","parameters":{"id":61974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61967,"mutability":"mutable","name":"a","nameLocation":"5720:1:151","nodeType":"VariableDeclaration","scope":62001,"src":"5713:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":61966,"name":"int256","nodeType":"ElementaryTypeName","src":"5713:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":61969,"mutability":"mutable","name":"b","nameLocation":"5730:1:151","nodeType":"VariableDeclaration","scope":62001,"src":"5723:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":61968,"name":"int256","nodeType":"ElementaryTypeName","src":"5723:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":61971,"mutability":"mutable","name":"maxDelta","nameLocation":"5741:8:151","nodeType":"VariableDeclaration","scope":62001,"src":"5733:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61970,"name":"uint256","nodeType":"ElementaryTypeName","src":"5733:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61973,"mutability":"mutable","name":"err","nameLocation":"5765:3:151","nodeType":"VariableDeclaration","scope":62001,"src":"5751:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61972,"name":"string","nodeType":"ElementaryTypeName","src":"5751:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5712:57:151"},"returnParameters":{"id":61975,"nodeType":"ParameterList","parameters":[],"src":"5787:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62057,"nodeType":"FunctionDefinition","src":"5984:562:151","nodes":[],"body":{"id":62056,"nodeType":"Block","src":"6091:455:151","nodes":[],"statements":[{"assignments":[62013],"declarations":[{"constant":false,"id":62013,"mutability":"mutable","name":"delta","nameLocation":"6109:5:151","nodeType":"VariableDeclaration","scope":62056,"src":"6101:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62012,"name":"uint256","nodeType":"ElementaryTypeName","src":"6101:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62019,"initialValue":{"arguments":[{"id":62016,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62003,"src":"6131:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62017,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62005,"src":"6134:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62014,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"6117:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6125:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66210,"src":"6117:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6117:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6101:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62020,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62013,"src":"6151:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62021,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62007,"src":"6159:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6151:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62055,"nodeType":"IfStatement","src":"6147:393:151","trueBody":{"id":62054,"nodeType":"Block","src":"6169:371:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":62024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6192:35:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":62023,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"6188:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":62025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6188:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62026,"nodeType":"EmitStatement","src":"6183:45:151"},{"eventCall":{"arguments":[{"hexValue":"20204578706563746564","id":62028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6269:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},"value":"  Expected"},{"id":62029,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62005,"src":"6283:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62030,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62009,"src":"6286:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42fa07d7c51ce5de92a0fc65dbf7e7800814fd01c258dc50e84d5be59184bf0b","typeString":"literal_string \"  Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62027,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59463,"src":"6247:21:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":62031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:48:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62032,"nodeType":"EmitStatement","src":"6242:53:151"},{"eventCall":{"arguments":[{"hexValue":"2020202041637475616c","id":62034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6336:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},"value":"    Actual"},{"id":62035,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62003,"src":"6350:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62036,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62009,"src":"6353:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7896f3f645b3ba89da46bf231a5df16e525e587a84bc9b284dfb39958fb219b","typeString":"literal_string \"    Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62033,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59463,"src":"6314:21:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":62037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6314:48:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62038,"nodeType":"EmitStatement","src":"6309:53:151"},{"eventCall":{"arguments":[{"hexValue":"204d61782044656c7461","id":62040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6404:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},"value":" Max Delta"},{"id":62041,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62007,"src":"6418:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62042,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62009,"src":"6428:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cd2884c74a25327f5cafe8471ed73da28ba1991b65dde72feb1cd4f78f5dc2a5","typeString":"literal_string \" Max Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62039,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"6381:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6381:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62044,"nodeType":"EmitStatement","src":"6376:61:151"},{"eventCall":{"arguments":[{"hexValue":"202020202044656c7461","id":62046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6479:12:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},"value":"     Delta"},{"id":62047,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62013,"src":"6493:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62048,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62009,"src":"6500:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_39d8d5e74991bbc141eb1ca770e60e69523d5c43706b72685708d217b293c55f","typeString":"literal_string \"     Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62045,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"6456:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6456:53:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62050,"nodeType":"EmitStatement","src":"6451:58:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":62051,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"6523:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":62052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6523:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62053,"nodeType":"ExpressionStatement","src":"6523:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"5993:24:151","parameters":{"id":62010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62003,"mutability":"mutable","name":"a","nameLocation":"6025:1:151","nodeType":"VariableDeclaration","scope":62057,"src":"6018:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62002,"name":"int256","nodeType":"ElementaryTypeName","src":"6018:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62005,"mutability":"mutable","name":"b","nameLocation":"6035:1:151","nodeType":"VariableDeclaration","scope":62057,"src":"6028:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62004,"name":"int256","nodeType":"ElementaryTypeName","src":"6028:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62007,"mutability":"mutable","name":"maxDelta","nameLocation":"6046:8:151","nodeType":"VariableDeclaration","scope":62057,"src":"6038:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62006,"name":"uint256","nodeType":"ElementaryTypeName","src":"6038:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62009,"mutability":"mutable","name":"decimals","nameLocation":"6064:8:151","nodeType":"VariableDeclaration","scope":62057,"src":"6056:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62008,"name":"uint256","nodeType":"ElementaryTypeName","src":"6056:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6017:56:151"},"returnParameters":{"id":62011,"nodeType":"ParameterList","parameters":[],"src":"6091:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62096,"nodeType":"FunctionDefinition","src":"6552:354:151","nodes":[],"body":{"id":62095,"nodeType":"Block","src":"6698:208:151","nodes":[],"statements":[{"assignments":[62071],"declarations":[{"constant":false,"id":62071,"mutability":"mutable","name":"delta","nameLocation":"6716:5:151","nodeType":"VariableDeclaration","scope":62095,"src":"6708:13:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6708:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62077,"initialValue":{"arguments":[{"id":62074,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62059,"src":"6738:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62075,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62061,"src":"6741:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62072,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"6724:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6732:5:151","memberName":"delta","nodeType":"MemberAccess","referencedDeclaration":66210,"src":"6724:13:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6724:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6708:35:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62078,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62071,"src":"6758:5:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62079,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62063,"src":"6766:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6758:16:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62094,"nodeType":"IfStatement","src":"6754:146:151","trueBody":{"id":62093,"nodeType":"Block","src":"6776:124:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":62082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6812:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":62083,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62067,"src":"6821:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62081,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"6795:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":62084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6795:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62085,"nodeType":"EmitStatement","src":"6790:35:151"},{"expression":{"arguments":[{"id":62087,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62059,"src":"6864:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62088,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62061,"src":"6867:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62089,"name":"maxDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62063,"src":"6870:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62090,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62065,"src":"6880:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62086,"name":"assertApproxEqAbsDecimal","nodeType":"Identifier","overloadedDeclarations":[61876,61915,62057,62096],"referencedDeclaration":62057,"src":"6839:24:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256,uint256)"}},"id":62091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6839:50:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62092,"nodeType":"ExpressionStatement","src":"6839:50:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqAbsDecimal","nameLocation":"6561:24:151","parameters":{"id":62068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62059,"mutability":"mutable","name":"a","nameLocation":"6593:1:151","nodeType":"VariableDeclaration","scope":62096,"src":"6586:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62058,"name":"int256","nodeType":"ElementaryTypeName","src":"6586:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62061,"mutability":"mutable","name":"b","nameLocation":"6603:1:151","nodeType":"VariableDeclaration","scope":62096,"src":"6596:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62060,"name":"int256","nodeType":"ElementaryTypeName","src":"6596:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62063,"mutability":"mutable","name":"maxDelta","nameLocation":"6614:8:151","nodeType":"VariableDeclaration","scope":62096,"src":"6606:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62062,"name":"uint256","nodeType":"ElementaryTypeName","src":"6606:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62065,"mutability":"mutable","name":"decimals","nameLocation":"6632:8:151","nodeType":"VariableDeclaration","scope":62096,"src":"6624:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6624:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62067,"mutability":"mutable","name":"err","nameLocation":"6656:3:151","nodeType":"VariableDeclaration","scope":62096,"src":"6642:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62066,"name":"string","nodeType":"ElementaryTypeName","src":"6642:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6585:75:151"},"returnParameters":{"id":62069,"nodeType":"ParameterList","parameters":[],"src":"6698:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62157,"nodeType":"FunctionDefinition","src":"6912:726:151","nodes":[],"body":{"id":62156,"nodeType":"Block","src":"7089:549:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62105,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62100,"src":"7103:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7108:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7103:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62113,"nodeType":"IfStatement","src":"7099:33:151","trueBody":{"expression":{"arguments":[{"id":62109,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62098,"src":"7127:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62110,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62100,"src":"7130:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62108,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59924,"src":"7118:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":62111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7118:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62104,"id":62112,"nodeType":"Return","src":"7111:21:151"}},{"assignments":[62115],"declarations":[{"constant":false,"id":62115,"mutability":"mutable","name":"percentDelta","nameLocation":"7196:12:151","nodeType":"VariableDeclaration","scope":62156,"src":"7188:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62114,"name":"uint256","nodeType":"ElementaryTypeName","src":"7188:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62121,"initialValue":{"arguments":[{"id":62118,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62098,"src":"7232:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62119,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62100,"src":"7235:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62116,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"7211:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7219:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66233,"src":"7211:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":62120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7211:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7188:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62122,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62115,"src":"7252:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62123,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62102,"src":"7267:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7252:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62155,"nodeType":"IfStatement","src":"7248:384:151","trueBody":{"id":62154,"nodeType":"Block","src":"7284:348:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":62126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7307:36:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":62125,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"7303:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":62127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7303:41:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62128,"nodeType":"EmitStatement","src":"7298:46:151"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":62130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7378:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},"value":"    Expected"},{"id":62131,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62100,"src":"7394:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62129,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"7363:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":62132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7363:33:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62133,"nodeType":"EmitStatement","src":"7358:38:151"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":62135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7430:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},"value":"      Actual"},{"id":62136,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62098,"src":"7446:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62134,"name":"log_named_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59483,"src":"7415:14:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":62137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7415:33:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62138,"nodeType":"EmitStatement","src":"7410:38:151"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":62140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7490:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":62141,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62102,"src":"7506:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7523:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62139,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"7467:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7467:59:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62144,"nodeType":"EmitStatement","src":"7462:64:151"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":62146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7568:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},"value":"     % Delta"},{"id":62147,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62115,"src":"7584:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7598:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62145,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"7545:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7545:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62150,"nodeType":"EmitStatement","src":"7540:61:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":62151,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"7615:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":62152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7615:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62153,"nodeType":"ExpressionStatement","src":"7615:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"6921:17:151","parameters":{"id":62103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62098,"mutability":"mutable","name":"a","nameLocation":"6956:1:151","nodeType":"VariableDeclaration","scope":62157,"src":"6948:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62097,"name":"uint256","nodeType":"ElementaryTypeName","src":"6948:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62100,"mutability":"mutable","name":"b","nameLocation":"6975:1:151","nodeType":"VariableDeclaration","scope":62157,"src":"6967:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62099,"name":"uint256","nodeType":"ElementaryTypeName","src":"6967:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62102,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"6994:15:151","nodeType":"VariableDeclaration","scope":62157,"src":"6986:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62101,"name":"uint256","nodeType":"ElementaryTypeName","src":"6986:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6938:133:151"},"returnParameters":{"id":62104,"nodeType":"ParameterList","parameters":[],"src":"7089:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62203,"nodeType":"FunctionDefinition","src":"7644:524:151","nodes":[],"body":{"id":62202,"nodeType":"Block","src":"7848:320:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62168,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62161,"src":"7862:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7867:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7862:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62177,"nodeType":"IfStatement","src":"7858:38:151","trueBody":{"expression":{"arguments":[{"id":62172,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62159,"src":"7886:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62173,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62161,"src":"7889:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62174,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62165,"src":"7892:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62171,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59949,"src":"7877:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":62175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7877:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62167,"id":62176,"nodeType":"Return","src":"7870:26:151"}},{"assignments":[62179],"declarations":[{"constant":false,"id":62179,"mutability":"mutable","name":"percentDelta","nameLocation":"7960:12:151","nodeType":"VariableDeclaration","scope":62202,"src":"7952:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62178,"name":"uint256","nodeType":"ElementaryTypeName","src":"7952:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62185,"initialValue":{"arguments":[{"id":62182,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62159,"src":"7996:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62183,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62161,"src":"7999:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62180,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"7975:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7983:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66233,"src":"7975:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":62184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7975:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7952:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62186,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62179,"src":"8016:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62187,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62163,"src":"8031:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8016:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62201,"nodeType":"IfStatement","src":"8012:150:151","trueBody":{"id":62200,"nodeType":"Block","src":"8048:114:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":62190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8084:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":62191,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62165,"src":"8093:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62189,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"8067:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":62192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8067:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62193,"nodeType":"EmitStatement","src":"8062:35:151"},{"expression":{"arguments":[{"id":62195,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62159,"src":"8129:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62196,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62161,"src":"8132:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62197,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62163,"src":"8135:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62194,"name":"assertApproxEqRel","nodeType":"Identifier","overloadedDeclarations":[62157,62203,62378,62424],"referencedDeclaration":62157,"src":"8111:17:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":62198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8111:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62199,"nodeType":"ExpressionStatement","src":"8111:40:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"7653:17:151","parameters":{"id":62166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62159,"mutability":"mutable","name":"a","nameLocation":"7688:1:151","nodeType":"VariableDeclaration","scope":62203,"src":"7680:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62158,"name":"uint256","nodeType":"ElementaryTypeName","src":"7680:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62161,"mutability":"mutable","name":"b","nameLocation":"7707:1:151","nodeType":"VariableDeclaration","scope":62203,"src":"7699:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62160,"name":"uint256","nodeType":"ElementaryTypeName","src":"7699:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62163,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"7726:15:151","nodeType":"VariableDeclaration","scope":62203,"src":"7718:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62162,"name":"uint256","nodeType":"ElementaryTypeName","src":"7718:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62165,"mutability":"mutable","name":"err","nameLocation":"7821:3:151","nodeType":"VariableDeclaration","scope":62203,"src":"7807:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62164,"name":"string","nodeType":"ElementaryTypeName","src":"7807:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7670:160:151"},"returnParameters":{"id":62167,"nodeType":"ParameterList","parameters":[],"src":"7848:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62268,"nodeType":"FunctionDefinition","src":"8174:795:151","nodes":[],"body":{"id":62267,"nodeType":"Block","src":"8384:585:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62214,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62207,"src":"8398:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8403:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8398:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62222,"nodeType":"IfStatement","src":"8394:33:151","trueBody":{"expression":{"arguments":[{"id":62218,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62205,"src":"8422:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62219,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62207,"src":"8425:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62217,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59924,"src":"8413:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":62220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8413:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62213,"id":62221,"nodeType":"Return","src":"8406:21:151"}},{"assignments":[62224],"declarations":[{"constant":false,"id":62224,"mutability":"mutable","name":"percentDelta","nameLocation":"8491:12:151","nodeType":"VariableDeclaration","scope":62267,"src":"8483:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62223,"name":"uint256","nodeType":"ElementaryTypeName","src":"8483:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62230,"initialValue":{"arguments":[{"id":62227,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62205,"src":"8527:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62228,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62207,"src":"8530:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62225,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"8506:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8514:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66233,"src":"8506:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":62229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8506:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8483:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62231,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62224,"src":"8547:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62232,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62209,"src":"8562:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8547:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62266,"nodeType":"IfStatement","src":"8543:420:151","trueBody":{"id":62265,"nodeType":"Block","src":"8579:384:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b75696e745d","id":62235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8602:36:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""},"value":"Error: a ~= b not satisfied [uint]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3cfa1421f120a399b6064fcc8d5188a4e28bcc717972b37d8e8a5e5cc07c7fe","typeString":"literal_string \"Error: a ~= b not satisfied [uint]\""}],"id":62234,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"8598:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":62236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8598:41:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62237,"nodeType":"EmitStatement","src":"8593:46:151"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":62239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8681:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},"value":"    Expected"},{"id":62240,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62207,"src":"8697:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62241,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62211,"src":"8700:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62238,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"8658:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8658:51:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62243,"nodeType":"EmitStatement","src":"8653:56:151"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":62245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8751:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},"value":"      Actual"},{"id":62246,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62205,"src":"8767:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62247,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62211,"src":"8770:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62244,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"8728:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8728:51:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62249,"nodeType":"EmitStatement","src":"8723:56:151"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":62251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8821:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":62252,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62209,"src":"8837:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8854:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62250,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"8798:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8798:59:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62255,"nodeType":"EmitStatement","src":"8793:64:151"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":62257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8899:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},"value":"     % Delta"},{"id":62258,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62224,"src":"8915:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8929:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62256,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"8876:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8876:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62261,"nodeType":"EmitStatement","src":"8871:61:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":62262,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"8946:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":62263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8946:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62264,"nodeType":"ExpressionStatement","src":"8946:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"8183:24:151","parameters":{"id":62212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62205,"mutability":"mutable","name":"a","nameLocation":"8225:1:151","nodeType":"VariableDeclaration","scope":62268,"src":"8217:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62204,"name":"uint256","nodeType":"ElementaryTypeName","src":"8217:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62207,"mutability":"mutable","name":"b","nameLocation":"8244:1:151","nodeType":"VariableDeclaration","scope":62268,"src":"8236:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62206,"name":"uint256","nodeType":"ElementaryTypeName","src":"8236:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62209,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"8263:15:151","nodeType":"VariableDeclaration","scope":62268,"src":"8255:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62208,"name":"uint256","nodeType":"ElementaryTypeName","src":"8255:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62211,"mutability":"mutable","name":"decimals","nameLocation":"8352:8:151","nodeType":"VariableDeclaration","scope":62268,"src":"8344:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62210,"name":"uint256","nodeType":"ElementaryTypeName","src":"8344:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8207:159:151"},"returnParameters":{"id":62213,"nodeType":"ParameterList","parameters":[],"src":"8384:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62317,"nodeType":"FunctionDefinition","src":"8975:574:151","nodes":[],"body":{"id":62316,"nodeType":"Block","src":"9212:337:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62281,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"9226:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9231:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9226:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62290,"nodeType":"IfStatement","src":"9222:38:151","trueBody":{"expression":{"arguments":[{"id":62285,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62270,"src":"9250:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62286,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"9253:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62287,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62278,"src":"9256:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62284,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59949,"src":"9241:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,uint256,string memory)"}},"id":62288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9241:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62280,"id":62289,"nodeType":"Return","src":"9234:26:151"}},{"assignments":[62292],"declarations":[{"constant":false,"id":62292,"mutability":"mutable","name":"percentDelta","nameLocation":"9324:12:151","nodeType":"VariableDeclaration","scope":62316,"src":"9316:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62291,"name":"uint256","nodeType":"ElementaryTypeName","src":"9316:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62298,"initialValue":{"arguments":[{"id":62295,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62270,"src":"9360:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62296,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"9363:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62293,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"9339:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9347:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66233,"src":"9339:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":62297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9339:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9316:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62299,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62292,"src":"9380:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62300,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62274,"src":"9395:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9380:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62315,"nodeType":"IfStatement","src":"9376:167:151","trueBody":{"id":62314,"nodeType":"Block","src":"9412:131:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":62303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9448:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":62304,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62278,"src":"9457:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62302,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"9431:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":62305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9431:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62306,"nodeType":"EmitStatement","src":"9426:35:151"},{"expression":{"arguments":[{"id":62308,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62270,"src":"9500:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62309,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62272,"src":"9503:1:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62310,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62274,"src":"9506:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62311,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62276,"src":"9523:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62307,"name":"assertApproxEqRelDecimal","nodeType":"Identifier","overloadedDeclarations":[62268,62317,62489,62538],"referencedDeclaration":62268,"src":"9475:24:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256,uint256)"}},"id":62312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9475:57:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62313,"nodeType":"ExpressionStatement","src":"9475:57:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"8984:24:151","parameters":{"id":62279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62270,"mutability":"mutable","name":"a","nameLocation":"9026:1:151","nodeType":"VariableDeclaration","scope":62317,"src":"9018:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62269,"name":"uint256","nodeType":"ElementaryTypeName","src":"9018:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62272,"mutability":"mutable","name":"b","nameLocation":"9045:1:151","nodeType":"VariableDeclaration","scope":62317,"src":"9037:9:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62271,"name":"uint256","nodeType":"ElementaryTypeName","src":"9037:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62274,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"9064:15:151","nodeType":"VariableDeclaration","scope":62317,"src":"9056:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62273,"name":"uint256","nodeType":"ElementaryTypeName","src":"9056:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62276,"mutability":"mutable","name":"decimals","nameLocation":"9153:8:151","nodeType":"VariableDeclaration","scope":62317,"src":"9145:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62275,"name":"uint256","nodeType":"ElementaryTypeName","src":"9145:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62278,"mutability":"mutable","name":"err","nameLocation":"9185:3:151","nodeType":"VariableDeclaration","scope":62317,"src":"9171:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62277,"name":"string","nodeType":"ElementaryTypeName","src":"9171:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9008:186:151"},"returnParameters":{"id":62280,"nodeType":"ParameterList","parameters":[],"src":"9212:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62378,"nodeType":"FunctionDefinition","src":"9555:635:151","nodes":[],"body":{"id":62377,"nodeType":"Block","src":"9644:546:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":62328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62326,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62321,"src":"9658:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9663:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9658:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62334,"nodeType":"IfStatement","src":"9654:33:151","trueBody":{"expression":{"arguments":[{"id":62330,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62319,"src":"9682:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62331,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62321,"src":"9685:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":62329,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59869,"src":"9673:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":62332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9673:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62325,"id":62333,"nodeType":"Return","src":"9666:21:151"}},{"assignments":[62336],"declarations":[{"constant":false,"id":62336,"mutability":"mutable","name":"percentDelta","nameLocation":"9751:12:151","nodeType":"VariableDeclaration","scope":62377,"src":"9743:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62335,"name":"uint256","nodeType":"ElementaryTypeName","src":"9743:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62342,"initialValue":{"arguments":[{"id":62339,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62319,"src":"9787:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62340,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62321,"src":"9790:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62337,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"9766:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9774:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66262,"src":"9766:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9766:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9743:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62343,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62336,"src":"9807:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62344,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62323,"src":"9822:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9807:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62376,"nodeType":"IfStatement","src":"9803:381:151","trueBody":{"id":62375,"nodeType":"Block","src":"9839:345:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":62347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9862:35:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":62346,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"9858:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":62348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9858:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62349,"nodeType":"EmitStatement","src":"9853:45:151"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":62351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9931:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},"value":"    Expected"},{"id":62352,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62321,"src":"9947:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":62350,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59477,"src":"9917:13:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":62353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9917:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62354,"nodeType":"EmitStatement","src":"9912:37:151"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":62356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9982:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},"value":"      Actual"},{"id":62357,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62319,"src":"9998:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":62355,"name":"log_named_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59477,"src":"9968:13:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$returns$__$","typeString":"function (string memory,int256)"}},"id":62358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9968:32:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62359,"nodeType":"EmitStatement","src":"9963:37:151"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":62361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10042:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":62362,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62323,"src":"10058:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10075:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62360,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"10019:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10019:59:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62365,"nodeType":"EmitStatement","src":"10014:64:151"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":62367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10120:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},"value":"     % Delta"},{"id":62368,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62336,"src":"10136:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10150:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62366,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"10097:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10097:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62371,"nodeType":"EmitStatement","src":"10092:61:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":62372,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"10167:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":62373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10167:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62374,"nodeType":"ExpressionStatement","src":"10167:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"9564:17:151","parameters":{"id":62324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62319,"mutability":"mutable","name":"a","nameLocation":"9589:1:151","nodeType":"VariableDeclaration","scope":62378,"src":"9582:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62318,"name":"int256","nodeType":"ElementaryTypeName","src":"9582:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62321,"mutability":"mutable","name":"b","nameLocation":"9599:1:151","nodeType":"VariableDeclaration","scope":62378,"src":"9592:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62320,"name":"int256","nodeType":"ElementaryTypeName","src":"9592:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62323,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"9610:15:151","nodeType":"VariableDeclaration","scope":62378,"src":"9602:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62322,"name":"uint256","nodeType":"ElementaryTypeName","src":"9602:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9581:45:151"},"returnParameters":{"id":62325,"nodeType":"ParameterList","parameters":[],"src":"9644:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62424,"nodeType":"FunctionDefinition","src":"10196:428:151","nodes":[],"body":{"id":62423,"nodeType":"Block","src":"10304:320:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":62391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62389,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62382,"src":"10318:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10323:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10318:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62398,"nodeType":"IfStatement","src":"10314:38:151","trueBody":{"expression":{"arguments":[{"id":62393,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62380,"src":"10342:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62394,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62382,"src":"10345:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62395,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"10348:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62392,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59894,"src":"10333:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory)"}},"id":62396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10333:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62388,"id":62397,"nodeType":"Return","src":"10326:26:151"}},{"assignments":[62400],"declarations":[{"constant":false,"id":62400,"mutability":"mutable","name":"percentDelta","nameLocation":"10416:12:151","nodeType":"VariableDeclaration","scope":62423,"src":"10408:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62399,"name":"uint256","nodeType":"ElementaryTypeName","src":"10408:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62406,"initialValue":{"arguments":[{"id":62403,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62380,"src":"10452:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62404,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62382,"src":"10455:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62401,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"10431:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10439:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66262,"src":"10431:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10431:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10408:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62407,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62400,"src":"10472:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62408,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62384,"src":"10487:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10472:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62422,"nodeType":"IfStatement","src":"10468:150:151","trueBody":{"id":62421,"nodeType":"Block","src":"10504:114:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":62411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10540:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":62412,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62386,"src":"10549:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62410,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"10523:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":62413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10523:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62414,"nodeType":"EmitStatement","src":"10518:35:151"},{"expression":{"arguments":[{"id":62416,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62380,"src":"10585:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62417,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62382,"src":"10588:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62418,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62384,"src":"10591:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62415,"name":"assertApproxEqRel","nodeType":"Identifier","overloadedDeclarations":[62157,62203,62378,62424],"referencedDeclaration":62378,"src":"10567:17:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256)"}},"id":62419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62420,"nodeType":"ExpressionStatement","src":"10567:40:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRel","nameLocation":"10205:17:151","parameters":{"id":62387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62380,"mutability":"mutable","name":"a","nameLocation":"10230:1:151","nodeType":"VariableDeclaration","scope":62424,"src":"10223:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62379,"name":"int256","nodeType":"ElementaryTypeName","src":"10223:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62382,"mutability":"mutable","name":"b","nameLocation":"10240:1:151","nodeType":"VariableDeclaration","scope":62424,"src":"10233:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62381,"name":"int256","nodeType":"ElementaryTypeName","src":"10233:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62384,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"10251:15:151","nodeType":"VariableDeclaration","scope":62424,"src":"10243:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62383,"name":"uint256","nodeType":"ElementaryTypeName","src":"10243:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62386,"mutability":"mutable","name":"err","nameLocation":"10282:3:151","nodeType":"VariableDeclaration","scope":62424,"src":"10268:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62385,"name":"string","nodeType":"ElementaryTypeName","src":"10268:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10222:64:151"},"returnParameters":{"id":62388,"nodeType":"ParameterList","parameters":[],"src":"10304:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62489,"nodeType":"FunctionDefinition","src":"10630:696:151","nodes":[],"body":{"id":62488,"nodeType":"Block","src":"10744:582:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":62437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62435,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62428,"src":"10758:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10763:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10758:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62443,"nodeType":"IfStatement","src":"10754:33:151","trueBody":{"expression":{"arguments":[{"id":62439,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62426,"src":"10782:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62440,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62428,"src":"10785:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":62438,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59869,"src":"10773:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$returns$__$","typeString":"function (int256,int256)"}},"id":62441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10773:14:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62434,"id":62442,"nodeType":"Return","src":"10766:21:151"}},{"assignments":[62445],"declarations":[{"constant":false,"id":62445,"mutability":"mutable","name":"percentDelta","nameLocation":"10851:12:151","nodeType":"VariableDeclaration","scope":62488,"src":"10843:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62444,"name":"uint256","nodeType":"ElementaryTypeName","src":"10843:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62451,"initialValue":{"arguments":[{"id":62448,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62426,"src":"10887:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62449,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62428,"src":"10890:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62446,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"10866:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10874:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66262,"src":"10866:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10866:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10843:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62452,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62445,"src":"10907:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62453,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62430,"src":"10922:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10907:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62487,"nodeType":"IfStatement","src":"10903:417:151","trueBody":{"id":62486,"nodeType":"Block","src":"10939:381:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f723a2061207e3d2062206e6f7420736174697366696564205b696e745d","id":62456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10962:35:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""},"value":"Error: a ~= b not satisfied [int]"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_11d61c8cdd58caffa5994831eb66eb6db7a7b4d13b2c9d187ffbe992d75f810d","typeString":"literal_string \"Error: a ~= b not satisfied [int]\""}],"id":62455,"name":"log","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59415,"src":"10958:3:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":62457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10958:40:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62458,"nodeType":"EmitStatement","src":"10953:45:151"},{"eventCall":{"arguments":[{"hexValue":"202020204578706563746564","id":62460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11039:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},"value":"    Expected"},{"id":62461,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62428,"src":"11055:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62462,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62432,"src":"11058:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e33bb6058f2c6cccd03674115e231a9d0cfe482a7efa638b81035808613e7d3","typeString":"literal_string \"    Expected\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62459,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59463,"src":"11017:21:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":62463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11017:50:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62464,"nodeType":"EmitStatement","src":"11012:55:151"},{"eventCall":{"arguments":[{"hexValue":"20202020202041637475616c","id":62466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11108:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},"value":"      Actual"},{"id":62467,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62426,"src":"11124:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62468,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62432,"src":"11127:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c86931dadd9b7dcb5fe0132c9f180edb774e714bd6d32d0fc56d5f9258e30e9","typeString":"literal_string \"      Actual\""},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62465,"name":"log_named_decimal_int","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59463,"src":"11086:21:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_uint256_$returns$__$","typeString":"function (string memory,int256,uint256)"}},"id":62469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11086:50:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62470,"nodeType":"EmitStatement","src":"11081:55:151"},{"eventCall":{"arguments":[{"hexValue":"204d617820252044656c7461","id":62472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11178:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},"value":" Max % Delta"},{"id":62473,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62430,"src":"11194:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11211:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_476fe8c6eb42275e4a879ea3f97d4c8aa2f38a65ce8511d323ad7a22579f732d","typeString":"literal_string \" Max % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62471,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"11155:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:59:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62476,"nodeType":"EmitStatement","src":"11150:64:151"},{"eventCall":{"arguments":[{"hexValue":"2020202020252044656c7461","id":62478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11256:14:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},"value":"     % Delta"},{"id":62479,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62445,"src":"11272:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3138","id":62480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11286:2:151","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a4ade1e1607945ca481fbcd7c0ca5baa7e21e413316ae3997404f04177b03d7","typeString":"literal_string \"     % Delta\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"}],"id":62477,"name":"log_named_decimal_uint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59471,"src":"11233:22:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256,uint256)"}},"id":62481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11233:56:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62482,"nodeType":"EmitStatement","src":"11228:61:151"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":62483,"name":"fail","nodeType":"Identifier","overloadedDeclarations":[61363,59626],"referencedDeclaration":59626,"src":"11303:4:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":62484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11303:6:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62485,"nodeType":"ExpressionStatement","src":"11303:6:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"10639:24:151","parameters":{"id":62433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62426,"mutability":"mutable","name":"a","nameLocation":"10671:1:151","nodeType":"VariableDeclaration","scope":62489,"src":"10664:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62425,"name":"int256","nodeType":"ElementaryTypeName","src":"10664:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62428,"mutability":"mutable","name":"b","nameLocation":"10681:1:151","nodeType":"VariableDeclaration","scope":62489,"src":"10674:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62427,"name":"int256","nodeType":"ElementaryTypeName","src":"10674:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62430,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"10692:15:151","nodeType":"VariableDeclaration","scope":62489,"src":"10684:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62429,"name":"uint256","nodeType":"ElementaryTypeName","src":"10684:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62432,"mutability":"mutable","name":"decimals","nameLocation":"10717:8:151","nodeType":"VariableDeclaration","scope":62489,"src":"10709:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62431,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10663:63:151"},"returnParameters":{"id":62434,"nodeType":"ParameterList","parameters":[],"src":"10744:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":62538,"nodeType":"FunctionDefinition","src":"11332:490:151","nodes":[],"body":{"id":62537,"nodeType":"Block","src":"11485:337:151","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":62504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62502,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62493,"src":"11499:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":62503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11504:1:151","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11499:6:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62511,"nodeType":"IfStatement","src":"11495:38:151","trueBody":{"expression":{"arguments":[{"id":62506,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62491,"src":"11523:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62507,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62493,"src":"11526:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62508,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62499,"src":"11529:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62505,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[61424,61449,61462,61478,61520,61562,61604,61641,61678,61715,59730,59755,59785,59810,59869,59894,59924,59949,61049,61084],"referencedDeclaration":59894,"src":"11514:8:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_string_memory_ptr_$returns$__$","typeString":"function (int256,int256,string memory)"}},"id":62509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11514:19:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"functionReturnParameters":62501,"id":62510,"nodeType":"Return","src":"11507:26:151"}},{"assignments":[62513],"declarations":[{"constant":false,"id":62513,"mutability":"mutable","name":"percentDelta","nameLocation":"11597:12:151","nodeType":"VariableDeclaration","scope":62537,"src":"11589:20:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62512,"name":"uint256","nodeType":"ElementaryTypeName","src":"11589:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":62519,"initialValue":{"arguments":[{"id":62516,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62491,"src":"11633:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62517,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62493,"src":"11636:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":62514,"name":"stdMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66263,"src":"11612:7:151","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_stdMath_$66263_$","typeString":"type(library stdMath)"}},"id":62515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11620:12:151","memberName":"percentDelta","nodeType":"MemberAccess","referencedDeclaration":66262,"src":"11612:20:151","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_uint256_$","typeString":"function (int256,int256) pure returns (uint256)"}},"id":62518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11612:26:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11589:49:151"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":62522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":62520,"name":"percentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62513,"src":"11653:12:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":62521,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62495,"src":"11668:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11653:30:151","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62536,"nodeType":"IfStatement","src":"11649:167:151","trueBody":{"id":62535,"nodeType":"Block","src":"11685:131:151","statements":[{"eventCall":{"arguments":[{"hexValue":"4572726f72","id":62524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11721:7:151","typeDescriptions":{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},"value":"Error"},{"id":62525,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62499,"src":"11730:3:151","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e342daa49723ff3485f4ff5f755a17b8bc9c3c33bbd312ceee37c94eebfe45c1","typeString":"literal_string \"Error\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":62523,"name":"log_named_string","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59495,"src":"11704:16:151","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":62526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11704:30:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62527,"nodeType":"EmitStatement","src":"11699:35:151"},{"expression":{"arguments":[{"id":62529,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62491,"src":"11773:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62530,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62493,"src":"11776:1:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":62531,"name":"maxPercentDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62495,"src":"11779:15:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62532,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62497,"src":"11796:8:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":62528,"name":"assertApproxEqRelDecimal","nodeType":"Identifier","overloadedDeclarations":[62268,62317,62489,62538],"referencedDeclaration":62489,"src":"11748:24:151","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_int256_$_t_int256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (int256,int256,uint256,uint256)"}},"id":62533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11748:57:151","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62534,"nodeType":"ExpressionStatement","src":"11748:57:151"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"assertApproxEqRelDecimal","nameLocation":"11341:24:151","parameters":{"id":62500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62491,"mutability":"mutable","name":"a","nameLocation":"11373:1:151","nodeType":"VariableDeclaration","scope":62538,"src":"11366:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62490,"name":"int256","nodeType":"ElementaryTypeName","src":"11366:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62493,"mutability":"mutable","name":"b","nameLocation":"11383:1:151","nodeType":"VariableDeclaration","scope":62538,"src":"11376:8:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":62492,"name":"int256","nodeType":"ElementaryTypeName","src":"11376:6:151","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":62495,"mutability":"mutable","name":"maxPercentDelta","nameLocation":"11394:15:151","nodeType":"VariableDeclaration","scope":62538,"src":"11386:23:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62494,"name":"uint256","nodeType":"ElementaryTypeName","src":"11386:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62497,"mutability":"mutable","name":"decimals","nameLocation":"11419:8:151","nodeType":"VariableDeclaration","scope":62538,"src":"11411:16:151","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62496,"name":"uint256","nodeType":"ElementaryTypeName","src":"11411:7:151","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62499,"mutability":"mutable","name":"err","nameLocation":"11443:3:151","nodeType":"VariableDeclaration","scope":62538,"src":"11429:17:151","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":62498,"name":"string","nodeType":"ElementaryTypeName","src":"11429:6:151","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11365:82:151"},"returnParameters":{"id":62501,"nodeType":"ParameterList","parameters":[],"src":"11485:0:151"},"scope":62539,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":true,"baseContracts":[{"baseName":{"id":61312,"name":"DSTest","nameLocations":["181:6:151"],"nodeType":"IdentifierPath","referencedDeclaration":61196,"src":"181:6:151"},"id":61313,"nodeType":"InheritanceSpecifier","src":"181:6:151"}],"canonicalName":"StdAssertions","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62539,61196],"name":"StdAssertions","nameLocation":"164:13:151","scope":62540,"usedErrors":[],"usedEvents":[59415,59419,59423,59427,59431,59435,59439,59443,59449,59455,59463,59471,59477,59483,59489,59495,61318,61323,61328,61335,61342,61349]}],"license":"MIT"},"id":151}