witnet-solidity-bridge
Version:
Witnet Solidity Bridge contracts for EVM-compatible chains
541 lines • 2.75 MB
JSON
{
"contractName": "WitOracleTrustlessDataLib",
"abi": [
{
"inputs": [],
"name": "EmptyBuffer",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "range",
"type": "uint256"
}
],
"name": "IndexOutOfBounds",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "length",
"type": "uint256"
}
],
"name": "InvalidLengthEncoding",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "read",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "expected",
"type": "uint256"
}
],
"name": "UnexpectedMajorType",
"type": "error"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "unexpected",
"type": "uint256"
}
],
"name": "UnsupportedMajorType",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Burnt",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Received",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "uint32",
"name": "index",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "prevIndex",
"type": "uint32"
},
{
"internalType": "bytes24",
"name": "prevRoot",
"type": "bytes24"
},
{
"internalType": "bytes16",
"name": "ddrTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "bytes16",
"name": "droTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "uint256[4]",
"name": "nextCommitteeAggPubkey",
"type": "uint256[4]"
}
],
"indexed": false,
"internalType": "struct Witnet.Beacon",
"name": "head",
"type": "tuple"
}
],
"name": "Rollup",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Slashed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Staked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Unstaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "Witnet.QueryId",
"name": "queryId",
"type": "uint64"
},
{
"indexed": false,
"internalType": "address",
"name": "evmDisputer",
"type": "address"
}
],
"name": "WitOracleQueryReportDispute",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Withdrawn",
"type": "event"
},
{
"inputs": [
{
"components": [
{
"components": [
{
"internalType": "uint32",
"name": "index",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "prevIndex",
"type": "uint32"
},
{
"internalType": "bytes24",
"name": "prevRoot",
"type": "bytes24"
},
{
"internalType": "bytes16",
"name": "ddrTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "bytes16",
"name": "droTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "uint256[4]",
"name": "nextCommitteeAggPubkey",
"type": "uint256[4]"
}
],
"internalType": "struct Witnet.Beacon",
"name": "beacon",
"type": "tuple"
},
{
"internalType": "uint256[2]",
"name": "committeeAggSignature",
"type": "uint256[2]"
},
{
"internalType": "uint256[4][]",
"name": "committeeMissingPubkeys",
"type": "uint256[4][]"
}
],
"internalType": "struct Witnet.FastForward[]",
"name": "rollup",
"type": "tuple[]"
}
],
"name": "verifyBeacons",
"outputs": [
{
"components": [
{
"internalType": "uint32",
"name": "index",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "prevIndex",
"type": "uint32"
},
{
"internalType": "bytes24",
"name": "prevRoot",
"type": "bytes24"
},
{
"internalType": "bytes16",
"name": "ddrTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "bytes16",
"name": "droTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "uint256[4]",
"name": "nextCommitteeAggPubkey",
"type": "uint256[4]"
}
],
"internalType": "struct Witnet.Beacon",
"name": "head",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "Witnet.TransactionHash",
"name": "witDrTxHash",
"type": "bytes32"
},
{
"internalType": "Witnet.RadonHash",
"name": "queryRadHash",
"type": "bytes32"
},
{
"components": [
{
"internalType": "uint16",
"name": "witResultMaxSize",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "witCommitteeSize",
"type": "uint16"
},
{
"internalType": "uint64",
"name": "witUnitaryReward",
"type": "uint64"
}
],
"internalType": "struct Witnet.QuerySLA",
"name": "queryParams",
"type": "tuple"
},
{
"internalType": "Witnet.Timestamp",
"name": "resultTimestamp",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "resultCborBytes",
"type": "bytes"
}
],
"internalType": "struct Witnet.DataPushReport",
"name": "report",
"type": "tuple"
},
{
"components": [
{
"components": [
{
"internalType": "uint32",
"name": "index",
"type": "uint32"
},
{
"internalType": "uint32",
"name": "prevIndex",
"type": "uint32"
},
{
"internalType": "bytes24",
"name": "prevRoot",
"type": "bytes24"
},
{
"internalType": "bytes16",
"name": "ddrTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "bytes16",
"name": "droTalliesMerkleRoot",
"type": "bytes16"
},
{
"internalType": "uint256[4]",
"name": "nextCommitteeAggPubkey",
"type": "uint256[4]"
}
],
"internalType": "struct Witnet.Beacon",
"name": "beacon",
"type": "tuple"
},
{
"internalType": "uint256[2]",
"name": "committeeAggSignature",
"type": "uint256[2]"
},
{
"internalType": "uint256[4][]",
"name": "committeeMissingPubkeys",
"type": "uint256[4][]"
}
],
"internalType": "struct Witnet.FastForward[]",
"name": "rollup",
"type": "tuple[]"
},
{
"internalType": "bytes32[]",
"name": "droMerkleTrie",
"type": "bytes32[]"
}
],
"name": "parseDataPushReport",
"outputs": [
{
"components": [
{
"internalType": "enum Witnet.ResultStatus",
"name": "status",
"type": "Witnet.ResultStatus"
},
{
"internalType": "enum Witnet.RadonDataTypes",
"name": "dataType",
"type": "Witnet.RadonDataTypes"
},
{
"internalType": "Witnet.TransactionHash",
"name": "drTxHash",
"type": "bytes32"
},
{
"internalType": "uint256",
"name": "finality",
"type": "uint256"
},
{
"internalType": "Witnet.Timestamp",
"name": "timestamp",
"type": "uint64"
},
{
"components": [
{
"components": [
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "cursor",
"type": "uint256"
}
],
"internalType": "struct WitnetBuffer.Buffer",
"name": "buffer",
"type": "tuple"
},
{
"internalType": "uint8",
"name": "initialByte",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "majorType",
"type": "uint8"
},
{
"internalType": "uint8",
"name": "additionalInformation",
"type": "uint8"
},
{
"internalType": "uint64",
"name": "len",
"type": "uint64"
},
{
"internalType": "uint64",
"name": "tag",
"type": "uint64"
}
],
"internalType": "struct WitnetCBOR.CBOR",
"name": "value",
"type": "tuple"
}
],
"internalType": "struct Witnet.DataResult",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyBuffer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"range\",\"type\":\"uint256\"}],\"name\":\"IndexOutOfBounds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"InvalidLengthEncoding\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"read\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"}],\"name\":\"UnexpectedMajorType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"unexpected\",\"type\":\"uint256\"}],\"name\":\"UnsupportedMajorType\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Burnt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Received\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"indexed\":false,\"internalType\":\"struct Witnet.Beacon\",\"name\":\"head\",\"type\":\"tuple\"}],\"name\":\"Rollup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Slashed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Staked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Unstaked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"Witnet.QueryId\",\"name\":\"queryId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"evmDisputer\",\"type\":\"address\"}],\"name\":\"WitOracleQueryReportDispute\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"witDrTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"Witnet.RadonHash\",\"name\":\"queryRadHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"witResultMaxSize\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"witCommitteeSize\",\"type\":\"uint16\"},{\"internalType\":\"uint64\",\"name\":\"witUnitaryReward\",\"type\":\"uint64\"}],\"internalType\":\"struct Witnet.QuerySLA\",\"name\":\"queryParams\",\"type\":\"tuple\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"resultTimestamp\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"resultCborBytes\",\"type\":\"bytes\"}],\"internalType\":\"struct Witnet.DataPushReport\",\"name\":\"report\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"beacon\",\"type\":\"tuple\"},{\"internalType\":\"uint256[2]\",\"name\":\"committeeAggSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4][]\",\"name\":\"committeeMissingPubkeys\",\"type\":\"uint256[4][]\"}],\"internalType\":\"struct Witnet.FastForward[]\",\"name\":\"rollup\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"droMerkleTrie\",\"type\":\"bytes32[]\"}],\"name\":\"parseDataPushReport\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Witnet.ResultStatus\",\"name\":\"status\",\"type\":\"Witnet.ResultStatus\"},{\"internalType\":\"enum Witnet.RadonDataTypes\",\"name\":\"dataType\",\"type\":\"Witnet.RadonDataTypes\"},{\"internalType\":\"Witnet.TransactionHash\",\"name\":\"drTxHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"finality\",\"type\":\"uint256\"},{\"internalType\":\"Witnet.Timestamp\",\"name\":\"timestamp\",\"type\":\"uint64\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"cursor\",\"type\":\"uint256\"}],\"internalType\":\"struct WitnetBuffer.Buffer\",\"name\":\"buffer\",\"type\":\"tuple\"},{\"internalType\":\"uint8\",\"name\":\"initialByte\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"majorType\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"additionalInformation\",\"type\":\"uint8\"},{\"internalType\":\"uint64\",\"name\":\"len\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"tag\",\"type\":\"uint64\"}],\"internalType\":\"struct WitnetCBOR.CBOR\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct Witnet.DataResult\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"beacon\",\"type\":\"tuple\"},{\"internalType\":\"uint256[2]\",\"name\":\"committeeAggSignature\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[4][]\",\"name\":\"committeeMissingPubkeys\",\"type\":\"uint256[4][]\"}],\"internalType\":\"struct Witnet.FastForward[]\",\"name\":\"rollup\",\"type\":\"tuple[]\"}],\"name\":\"verifyBeacons\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"index\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"prevIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes24\",\"name\":\"prevRoot\",\"type\":\"bytes24\"},{\"internalType\":\"bytes16\",\"name\":\"ddrTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"bytes16\",\"name\":\"droTalliesMerkleRoot\",\"type\":\"bytes16\"},{\"internalType\":\"uint256[4]\",\"name\":\"nextCommitteeAggPubkey\",\"type\":\"uint256[4]\"}],\"internalType\":\"struct Witnet.Beacon\",\"name\":\"head\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"The Witnet Foundation.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Trustless Witnet Request Board data library extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(address,uint256)\":{\"notice\":\"======================================================================= --- Escrowable --------------------------------------------------------\"},\"claimQueryReward(uint256,uint256,uint256)\":{\"notice\":\"======================================================================= --- IWitOracleQueriableTrustlessReporter ---------------------------------------\"},\"deleteQueryTrustlessly(uint256,uint256,uint256)\":{\"notice\":\"======================================================================= --- IWitOracle --------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/data/WitOracleTrustlessDataLib.sol\":\"WitOracleTrustlessDataLib\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"project:/contracts/data/WitOracleDataLib.sol\":{\"keccak256\":\"0x879c513c3cac839300e954d5ffe61c14eaec3052b39898ec2402068169fddd55\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f58f4aa26e2a174fb5cee2fd9c06a10c337e6766b804e38bb4bbb3c3d4682d\",\"dweb:/ipfs/QmTjS8hws4VAd3S8dpNmX3zyV7oCF7xJ7AZTRJwrmbhSmi\"]},\"project:/contracts/data/WitOracleTrustlessDataLib.sol\":{\"keccak256\":\"0xe8a7bc0ec65380336ceb381c56afa6a3aff93bca34b4380a6c6d6faaeab16ae2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0a4f80c9cae5ba779b8baa9a85feb2a948dd6d945002859405fd1fada34f809\",\"dweb:/ipfs/QmWGYMduHTbuvNE4p7JuVEBQXPzi8fHs1x7Gvqse2Upssa\"]},\"project:/contracts/interfaces/IWitOracleQueriable.sol\":{\"keccak256\":\"0xdb0da1e377a35a7d620f43cb583a876750a52d91da2b888f48042483ad9c4910\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://edfcdf3e96ec3c5de7438f82e3d5a1dc9af9eb29080044213dccb26ff978354c\",\"dweb:/ipfs/Qmap2FzSysh2fug88eortbsTM7itFygRzKc9HfV43ePMik\"]},\"project:/contracts/interfaces/IWitOracleQueriableConsumer.sol\":{\"keccak256\":\"0xe8143d2387d674022f453b57652998f53cbe4c21fe35e59421428142355c8ebf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e6c3e3d3e7168a3fb75b1eca23d078d5240e5b02dac8a449d1ddf79256a34d8\",\"dweb:/ipfs/QmbGk4tQzTogTBVYiT8t3Gqtk6qDs5nyp9Z53GryTjKAm5\"]},\"project:/contracts/interfaces/IWitOracleQueriableEvents.sol\":{\"keccak256\":\"0x47c283e931006d35bd2599524f86724e45eae6fad2fdd9cdecd1c85a90ff3f8c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ad0520f99ec9298536ae9434f58caeb470c10dd3eaab1e4c7ed4cae9a97e2a2\",\"dweb:/ipfs/QmSuYCsSPweZfQc5Fbf9jYDdx4u7gwYCUdjhpcrrxmWZy6\"]},\"project:/contracts/interfaces/IWitOracleQueriableExperimental.sol\":{\"keccak256\":\"0x57c0007d813ed3e6dd3e0bb128e6ca7a0324214962823c6456e2e37d78ab4070\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5edc498ccc728327f1f3c80d2decd7ca64920a3aee4faaba08dd354f1256b66\",\"dweb:/ipfs/QmdEJWUtQqTVdFLCiNKUPSe3NwXzuHmG6XzA1VbHHHgdPy\"]},\"project:/contracts/interfaces/IWitOracleQueriableTrustableReporter.sol\":{\"keccak256\":\"0x043a719845d75dccc3c7c046fdd214bb252ab2b85400fbd139ed5cea9469becc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b1be7cbf990ff4d383b1c0695626af794442f9a48f02e13435793c4316ff011\",\"dweb:/ipfs/QmX3Lq17FMsN2T9K4fAYg6CRTYjwHd6hT1XKjEA2T7QeM5\"]},\"project:/contracts/interfaces/IWitOracleRadonRegistry.sol\":{\"keccak256\":\"0x437bbb89129311bd1cc8f6becd333df46109ec53b24d3159be942b225614071f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef9bcdf4a73cb126885478c994821b7fe2b87d9221b767b4c9342b89b0d6550a\",\"dweb:/ipfs/QmXzZXPMxjSiFpcEnhg6CjLFNxGCpDZt22xpUh7VHxNTGd\"]},\"project:/contracts/interfaces/IWitOracleTrustableAdmin.sol\":{\"keccak256\":\"0x94b69b5a460d1407746ac70d32a0c5d4fca564b16cbd1940b822dd0ecb5336e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a773b9d963647a5591b95c8fb359efd461dc494d1e3a1754cc83343310e07605\",\"dweb:/ipfs/QmU77Zre43r5sVj4DK2FjTda31zWgNDr9sGPug1dRv4ih6\"]},\"project:/contracts/interfaces/IWitOracleTrustless.sol\":{\"keccak256\":\"0x9220a2dd4736b37d909af59603b3d125758deb5d1845650aaa7c92cabd75f75b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d224d9c72e077605427b87c1fa1b47de53b1835dd148a27c13e9eb5a620e6d\",\"dweb:/ipfs/Qmaz8y5E4c73Zw4y4Siy2J3oNuhw9M7v2s7uC9XLi6dZaw\"]},\"project:/contracts/interfaces/legacy/IWitOracleLegacy.sol\":{\"keccak256\":\"0xd2929c9aa5a02d261d6d1a068a6b7231ae58d8f81f081ba89f2d3267a31fbbb5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://956b26323a02cf400c32012586954fc5dbc98b4d5b7a8b0533401cbda8619059\",\"dweb:/ipfs/QmSWdCRwL5t3atFM8osdaohLTqEEmY1FbnR6xrRCmw1GDM\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequest.sol\":{\"keccak256\":\"0x0fb3f0ba03f4f7a0214ecb36df26525564cf51a8a2176cba92c185af8a1d419e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://340b7bdb92c3259519fe120eb3061b393e7a5e9c1b576a2fe4eab020af466b64\",\"dweb:/ipfs/QmRt4wMX9WdxFwfdFMUZ3zKMAW1grS7qLk1x1PDMJdEAVU\"]},\"project:/contracts/interfaces/legacy/IWitOracleRequestTemplate.sol\":{\"keccak256\":\"0x9e065ef5880c64eefff5fcfb1347fde6684e0e311f8c2350a6aefdbd1f8b0f22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://817de760c7cce9d00dcd4312aea6434d88abddf1c0e68ea7e8fb1e6c5165a445\",\"dweb:/ipfs/QmUNmtn85nFXbje2nRJQY2h65KJCVinDMMU6P2jQmo1Nij\"]},\"project:/contracts/libs/Bech32.sol\":{\"keccak256\":\"0x14618323a0efe7586c20906a2e9cee7ad63baa976ff231c57f7f2d7d3707fb8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a19f05fe84047a7a6d3d6fc39972b432e6e536aa70472386a9d7a6d9aab64a64\",\"dweb:/ipfs/QmcHwUY66yjiotRH4Q3kbRvSzcHyLQ1yHL3KbtQKiMhtZE\"]},\"project:/contracts/libs/Secp256k1.sol\":{\"keccak256\":\"0xbe686002da5004ff39dd70709f3820eba2afe9323ae9cb894009c161e4b1a666\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://18fab91775216de0707cea9ad285b10be09127461a13432fea358bf9cb2a0c2e\",\"dweb:/ipfs/QmeRUGsgstnM4hxM9hpkBf3L6cE5btirEaowcMxmuw3utj\"]},\"project:/contracts/libs/Witnet.sol\":{\"keccak256\":\"0x1d446c3e534e40e676d1763bfb2897fadfac8afed904ab757843d7d6770b0a6c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://338fb1073f17d64e8d31bfe492d9475ce906788ee08e6489ce30413f91dc1328\",\"dweb:/ipfs/QmPe5QX2AGTnQFjse1Xttq4ZYWwYAiXoySb5VUui3PqPhk\"]},\"project:/contracts/libs/WitnetBuffer.sol\":{\"keccak256\":\"0x8e07aebe2954ab3e6f2d8eceedb12db7cf915c1f3e8630f4fa9999cecb1c78ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed6c54cc901183d61546e8fd15bd5ea8ef238ebc915642946071d435dd7481ea\",\"dweb:/ipfs/Qmcaqta7YjUSBbBUGqoh44bsCS6UqqoyHjBuz4qnKBShXM\"]},\"project:/contracts/libs/WitnetCBOR.sol\":{\"keccak256\":\"0xd99308373575cc10fb7f2ceb0f6a8625f3911275c1fa27811fae498d98d03d97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b4909a999d7b660a2dc54ca957b6eccfa523e2765fc4d6a2574dee7d5cd67b43\",\"dweb:/ipfs/QmWGQT4KDcfSFe1hcHVoWx6E4PhYMaod5iLpJCWBEeShzh\"]},\"project:/contracts/patterns/Escrowable.sol\":{\"keccak256\":\"0xf0fdb82142f66323a1d419839ddcf67b51ac2faa418a2b364e0b2e4b5fdfbc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5123dc63b3d2f501eec6b9616db46833c155c1dca416bb58dbeb924558f8020\",\"dweb:/ipfs/QmakA3u4rqWpzeiKkUZxhnQotReaybCCDMkkJZFHyZVb1U\"]},\"project:/contracts/patterns/Payable.sol\":{\"keccak256\":\"0x29ce79b9329cc854ddb0ee546e5a17f3cedafa91c7d614f43e8d6537680b1734\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00d5ce85f66c3c32b8b69bfed2f07f40d14ac72c2f67d2de6601de0be16b5af1\",\"dweb:/ipfs/QmZogwLRBjFUJVSzR8YuMfo3mKg8WvYVbn2QvWXsCVP92V\"]}},\"version\":1}",
"bytecode": "0x613f56610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061011c575f3560e01c806355caae04116100a9578063adc9772e11610079578063adc9772e146102ee578063bd75eadb1461030d578063c2a672e014610320578063e74f82391461033f578063f308da0f1461035e575f5ffd5b806355caae041461025f578063653ac7bc1461027e57806385783377146102b05780639dc29fac146102cf575f5ffd5b806345ac7f3f116100ef57806345ac7f3f146101b65780634656a450146101ed57806347e7ef241461020057806351cff8d9146102215780635386690814610240575f5ffd5b80631ac07503146101205780633317044f1461014957806334c20ee3146101695780633962372d14610196575b5f5ffd5b61013361012e366004612fee565b61037d565b6040516101409190613166565b60405180910390f35b61015c6101573660046131e8565b6105cd565b6040516101409190613226565b818015610174575f5ffd5b506101886101833660046132c7565b6106ed565b604051908152602001610140565b6101a96101a436600461336c565b610bf0565b604051610140919061339c565b8180156101c1575f5ffd5b506101d56101d03660046133af565b610cca565b6040516001600160481b039091168152602001610140565b6101336101fb36600461336c565b610e67565b81801561020b575f5ffd5b5061021f61021a3660046133ee565b610e8e565b005b81801561022c575f5ffd5b5061018861023b366004613416565b610f09565b81801561024b575f5ffd5b5061018861025a3660046133af565b610f70565b81801561026a575f5ffd5b506101886102793660046133af565b611096565b818015610289575f5ffd5b5061029d61029836600461342f565b611256565b6040516101409796959493929190613478565b8180156102bb575f5ffd5b506101336102ca366004612fee565b6113f6565b8180156102da575f5ffd5b5061021f6102e93660046133ee565b6114b0565b8180156102f9575f5ffd5b5061021f6103083660046133ee565b611596565b6101a961031b36600461336c565b61167f565b81801561032b575f5ffd5b5061021f61033a3660046133ee565b6117e4565b81801561034a575f5ffd5b5061021f6103593660046134de565b611896565b818015610369575f5ffd5b5061015c6103783660046131e8565b61199f565b610385612e49565b6020860135158015906103a557505f6103a160c0880188613518565b9050115b80156103ce57506103cc6103bf60c0880160a0890161356e565b6001600160401b03161590565b155b80156103da5750853515155b80156103fb57506103fb6103f6368890038801604089016135f8565b611ad8565b6104435760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995c1bdc9d60621b60448201526064015b60405180910390fd5b5f61044e86866105cd565b905061046861046360c0890160a08a0161356e565b611b13565b610473906001613679565b6001600160401b0316815f015163ffffffff1610156104cd5760405162461bcd60e51b815260206004820152601660248201527536b4b9b632b0b234b733903432b0b2103132b0b1b7b760511b604482015260640161043a565b6104e084846104db8a611b20565b611ba9565b60808201516001600160801b031916146105335760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015260640161043a565b6040805160c080820183525f80835260208301526105c29282019061055d908b0160a08c0161356e565b6001600160401b031681528935602082015260400161057f60c08b018b613518565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250938552505050602090910152600343611be8565b979650505050505050565b6105d5612e89565b61066f83835f8181106105ea576105ea613698565b90506020028101906105fc91906136ac565b7ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1015f8686828161062e5761062e613698565b905060200281019061064091906136ac565b61064e9060208101906136de565b63ffffffff1681526020019081526020015f20611e7d90919063ffffffff16565b6106ca5760405162461bcd60e51b815260206004820152602660248201527f666173742d666f7277617264696e672066726f6d20756e6d61746368696e67206044820152653132b0b1b7b760d11b606482015260840161043a565b6106d48383611eae565b8036038101906106e49190613726565b90505b92915050565b5f8061070d6106ff602089018961356e565b6001600160401b03166120d0565b90505f5f61071b838a6120ff565b9150915081819061073f5760405162461bcd60e51b815260040161043a91906137e4565b505f61074b8c8c61199f565b905061076561076060808c0160608d0161356e565b612217565b610770906001613679565b6001600160401b0316815f015163ffffffff16146107c95760405162461bcd60e51b815260206004820152601660248201527536b4b9b632b0b234b733903432b0b2103132b0b1b7b760511b604482015260640161043a565b6107d789896104db8d612223565b60608201516001600160801b0319161461082a5760405162461bcd60e51b815260206004820152601460248201527334b73b30b634b21036b2b935b63290383937b7b360611b604482015260640161043a565b5f6108358589610bf0565b9050600281600681111561084b5761084b613089565b036109ed576005850154600486015461087390600160c01b90046001600160401b0316612279565b6040516108899291906006890190602001613828565b60408051601f19818403018152919052805160209091012060a08c01356108b660808e0160608f0161356e565b6108c360808f018f613518565b6040516020016108d694939291906138ee565b60405160208183030381529060405280519060200120036109325760405162461bcd60e51b81526020600482015260166024820152751c1c9bdd9a5b99c81b9bc819985ad9481c995c1bdc9d60521b604482015260640161043a565b600485015461094b906001600160a01b03163389611896565b600985015461096b903390600160781b90046001600160481b0316610e8e565b6004850180546001600160a01b0319163317905561098c60808c018c613518565b600687019161099c91908361396c565b5060a08b013560058601556109bf6109ba60808d0160608e0161356e565b6122da565b6004860180546001600160401b0392909216600160c01b026001600160c01b03909216919091179055610b93565b6006816006811115610a0157610a01613089565b03610b545760058501546004860154610a2990600160c01b90046001600160401b0316612279565b604051610a3f9291906006890190602001613828565b60408051601f19818403018152919052805160209091012060a08c0135610a6c60808e0160608f0161356e565b610a7960808f018f613518565b604051602001610a8c94939291906138ee565b6040516020818303038152906040528051906020012014610aef5760405162461bcd60e51b815260206004820152601c60248201527f70726f76696e672064697370757465642066616b65207265706f727400000000604482015260640161043a565b60078501546004860154610b10916001600160a01b03908116911689611896565b60048501546009860154610b3d916001600160a01b031690600160781b90046001600160481b0316610e8e565b6007850180546001600160a01b0319169055610b93565b610b5d816122f0565b604051602001610b6d9190613a3c565b60408051601f198184030181529082905262461bcd60e51b825261043a916004016137e4565b6009850154610bb3908890600160781b90046001600160481b0316613a66565b60099590950180546effffffffffffffffffffffffffffff16600160c01b436001600160401b03160217905550929b9a5050505050505050505050565b60048201545f90600160c01b90046001600160401b031615610c52576009830154600160c01b90046001600160401b03164310610c4a5760078301546001600160a01b031615610c42575060066106e7565b5060036106e7565b5060026106e7565b6009830154600160c01b90046001600160401b03165f819003610c78575f9150506106e7565b610c83836002613a79565b610c8d9082613a66565b431115610c9e5760059150506106e7565b610ca88382613a66565b431115610cb95760049150506106e7565b60019150506106e7565b5092915050565b5f5f610cd5856120d0565b80549091506001600160a01b03163314610d015760405162461bcd60e51b815260040161043a90613a90565b6009810154600160781b90046001600160481b031691505f610d238286610bf0565b90506005816006811115610d3957610d39613089565b03610d9e576001600160481b03831615610d995760078201546001600160a01b031615610d995760048201546007830154610d81916001600160a01b03908116911686611896565b6007820154610d99906001600160a01b0316856117e4565b610dc0565b6003816006811115610db257610db2613089565b14610dc057610b5d816122f0565b5f8681527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e18460205260408120818155908181610dff6001830182612ebf565b505f600282018190556003909101819055600483018181556005840182905590610e2c6006850182612ebf565b5060030180546001600160a01b0319169055506008810180546bffffffffffffffffffffffff191690555f6009909101555090949350505050565b610e6f612e49565b5f610e7a8484610bf0565b9050610e868482612480565b949350505050565b6001600160a01b0382165f9081525f516020613f015f395f51905f52602052604081208054839290610ec1908490613a66565b90915550506040518181526001600160a01b038316907f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874906020015b60405180910390a25050565b6001600160a01b0381165f8181525f516020613f015f395f51905f5260209081526040808320805493815590518381529293909290917f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5910160405180910390a250919050565b5f5f610f7b856120d0565b90506002610f898286610bf0565b6006811115610f9a57610f9a613089565b14610fe05760405162461bcd60e51b81526020600482015260166024820152756e6f7420696e205265706f727465642073746174757360501b604482015260640161043a565b610fea3384611596565b610ff48443613a66565b6009820180546001600160c01b0316600160c01b6001600160401b0393841602179055600782018054336001600160a01b0319909116811790915560408051928816835260208301919091527f0c659cb9cb62e341db66980f799f14edbc937a08725319a4cd26d77b077e3b7d910160405180910390a1600981015461108b908490600160781b90046001600160481b0316613a66565b9150505b9392505050565b5f5f6110a1856120d0565b60098101805468ffffffffffffffffff60781b198116909155600160781b90046001600160481b0316925090508161110d5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e4818db185a5b5959608a1b604482015260640161043a565b6111173383610e8e565b5f6111228286610bf0565b9050600381600681111561113857611138613089565b036111755781546001600160a01b031633146111665760405162461bcd60e51b815260040161043a90613a90565b61117033856117e4565b61124d565b600581600681111561118957611189613089565b03610b545760078201546001600160a01b0316156112245760078201546001600160a01b031633146111f05760405162461bcd60e51b815260206004820152601060248201526f3737ba103a3432903234b9b83aba32b960811b604482015260640161043a565b6004820154611209906001600160a01b03163386611896565b61121333856117e4565b61121d8484613a66565b925061124d565b81546001600160a01b031633146111705760405162461bcd60e51b815260040161043a90613a90565b50509392505050565b5f808080808060608161126f6106ff60208d018d61356e565b90505f5f61127d838e6120ff565b915091508181906112a15760405162461bcd60e51b815260040161043a91906137e4565b505f6112ad848e610bf0565b905060018160068111156112c3576112c3613089565b03611330576112d18e6125a1565b9a506001600160a01b038b16331461132b5760405162461bcd60e51b815260206004820152601b60248201527f756e617574686f72697a6564207175657279207265706f727465720000000000604482015260640161043a565b61134d565b600481600681111561134457611344613089565b03610b5457339a505b611357338d611596565b3a99506113648d43613a66565b985061137360208f018f61356e565b975061138b8e60600160208101906109ba919061356e565b965060a08e013595506113a160808f018f613518565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f820116905080830192505050505050509450505050509397509397509397909450565b6113fe612e49565b60208601351580159061141e57505f61141a60c0880188613518565b9050115b801561143a57506114386103bf60c0880160a0890161356e565b155b80156114465750853515155b801561146257506114626103f6368890038801604089016135f8565b6114a55760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995c1bdc9d60621b604482015260640161043a565b5f61044e868661199f565b6001600160a01b0382165f9081525f516020613f015f395f51905f5260205260409020548111156115235760405162461bcd60e51b815260206004820181905260248201527f457363726f7761626c653a20696e73756666696369656e742062616c616e6365604482015260640161043a565b6001600160a01b0382165f9081525f516020613f015f395f51905f52602052604081208054839290611556908490613abb565b90915550506040518181526001600160a01b038316907f919f7e2092ffcc9d09f599be18d8152860b0c054df788a33bc549cdd9d0f15b190602001610efd565b6001600160a01b0382165f9081525f516020613f015f395f51905f5260205260409020805482111561160a5760405162461bcd60e51b815260206004820181905260248201527f457363726f7761626c653a20696e73756666696369656e742062616c616e6365604482015260640161043a565b81815f015f82825461161c9190613abb565b9250508190555081816001015f8282546116369190613a66565b90915550506040518281526001600160a01b038416907f9e71bc8eea02a63969f509818f2dafb9254532904319f9dbda79b67bd34a5f3d906020015b60405180910390a2505050565b5f5f61168b8484610bf0565b905060038160068111156116a1576116a1613089565b03611738576006840180545f9082906116b9906137f6565b9050111561172d578054601b60fb1b9082905f906116d6906137f6565b81106116e4576116e4613698565b81546001161561170157905f5260205f2090602091828204019190065b9054901a600160f81b026001600160f81b03191614611721576002611724565b60035b925050506106e7565b6005925050506106e7565b600281600681111561174c5761174c613089565b0361175b5760049150506106e7565b600181600681111561176f5761176f613089565b148061178c5750600481600681111561178a5761178a613089565b145b1561179b5760019150506106e7565b60058160068111156117af576117af613089565b14806117cc575060068160068111156117ca576117ca613089565b145b156117db5760069150506106e7565b5f9150506106e7565b6001600160a01b0382165f9081525f516020613f015f395f51905f5260205260409020600181015482111561182b5760405162461bcd60e51b815260040161043a90613ace565b81816001015f82825461183e9190613abb565b90915550508054829082905f90611856908490613a66565b90915550506040518281526001600160a01b038416907f0f5bb82176feb1b5e747e28471aa92156a04d9f3ab9f45f28e2d704232b93f7590602001611672565b6001600160a01b038381165f9081525f516020613f015f395f51905f5260205260408082209285168252902060018201548311156118e65760405162461bcd60e51b815260040161043a90613ace565b82815f015f8282546118f89190613a66565b9250508190555082826001015f8282546119129190613abb565b90915550506040518381526001600160a01b038616907f4ed05e9673c26d2ed44f7ef6a7f2942df0ee3b5e1e17db4b99f9dcd261a339cd9060200160405180910390a2836001600160a01b03167f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f885258748460405161199091815260200190565b60405180910390a25050505050565b6119a7612e89565b6119b183836105cd565b9050807ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e100825163ffffffff9081165f9081526001928301602090815260409182902085518154928701518785015190941c600160401b026001600160401b039486166401000000000267ffffffffffffffff19909416919095161791909117919091169190911781556060830151608080850151811c600160801b0291901c179181019190915560a0820151611a6d9060028301906004612ef9565b5050815163ffffffff167ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e10055506040517fa6c87e90e325ce88c911f114881deb39dabb89e1ba9bf11a1a8e0ca8de94798a90611aca908390613226565b60405180910390a192915050565b5f5f826020015161ffff16118015611af95750607f826020015161ffff1611155b80156106e7575050604001516001600160401b0316151590565b5f6106e761076083612279565b5f81356020830135611b386060850160408601613b11565b611b486080860160608701613b11565b611b5860a087016080880161356e565b611b6860c0880160a0890161356e565b611b7560c0890189613518565b604051602001611b8c989796959493929190613b2a565b604051602081830303815290604052805190602001209050919050565b805f5b83811015611be057611bd682868684818110611bca57611bca613698565b90506020020135612604565b9150600101611bac565b509392505050565b611bf0612e49565b60608401516040820152602084015163ffffffff1615611c415760408401805160208087015191811b67ffffffff000000001663ffffffff928316176060850152915190911c166080820152611c5d565b6001600160401b03808316606083015260408501511660808201525b60808401515115611cb257611c758460800151612630565b60a08201819052611c8590612654565b81602001906013811115611c9b57611c9b613089565b90816013811115611cae57611cae613089565b9052505b6003836006811115611cc657611cc6613089565b03611dd55760808401515115611dcd5760808401518051601b60fb1b91905f90611cf257611cf2613698565b01602001516001600160f81b03191603611dcd57600181602001516013811115611d1e57611d1e613089565b148015611d4b575060a08101518051606090910151600191611d3f91612716565b6001600160401b031610155b15611dc4576004611d5f8260a00151612654565b6013811115611d7057611d70613089565b03611dc457611d828160a001516127dd565b60070b60ff811115611d9657611d96613089565b819060ff811115611da957611da9613089565b908160ff811115611dbc57611dbc613089565b90525061108f565b60ff8181611dbc565b5f8181611dbc565b6002836006811115611de957611de9613089565b03611df6578060f1611da9565b6001836006811115611e0a57611e0a613089565b1480611e2757506004836006811115611e2557611e25613089565b145b15611e34578060f0611da9565b6005836006811115611e4857611e48613089565b1480611e6557506006836006811115611e6357611e63613089565b145b15611e72578060f9611da9565b60ff81529392505050565b5f611e878261284c565b67ffffffffffffffff1916611e9b846128b3565b67ffffffffffffffff1916149392505050565b3660015b828110156120a1578383611ec7600184613abb565b818110611ed657611ed6613698565b9050602002810190611ee891906136ac565b611ef69060208101906136de565b63ffffffff16848483818110611f0e57611f0e613698565b9050602002810190611f2091906136ac565b611f319060408101906020016136de565b63ffffffff16148015611fc25750611f758484611f4f600185613abb565b818110611f5e57611f5e613698565b9050602002810190611f7091906136ac565b61284c565b67ffffffffffffffff1916848483818110611f9257611f92613698565b9050602002810190611fa491906136ac565b611fb5906060810190604001613b89565b67ffffffffffffffff1916145b611fcb82612901565b604051602001611fdb9190613ba2565b604051602081830303815290604052906120085760405162461bcd60e51b815260040161043a91906137e4565b5061201560036040613bfa565b63ffffffff1684848381811061202d5761202d613698565b905060200281019061203f91906136ac565b61204e90610160810190613c21565b9050111561205b82612901565b60405160200161206b9190613c66565b604051602081830303815290604052906120985760405162461bcd60e51b815260040161043a91906137e4565b50600101611eb2565b5082826120af600182613abb565b8181106120be576120be613698565b90506020028101906106e491906136ac565b5f9081527ff595240b351bc8f951c2f53b26f4e78c32cb62122cf76c19b7fdda7d4968e1846020526040902090565b60098201545f9060609060881b6001600160881b0319166121266040850160208601613caf565b6001600160881b031916146121675750506040805180820190915260128152710d2dcecc2d8d2c840e2eacae4f240d0c2e6d60731b60208201525f90612210565b61217a6103bf608085016060860161356e565b156121b35750506040805180820190915260148152730d2dcecc2d8d2c840e4cae6ead8e840cae0dec6d60631b60208201525f90612210565b6121c06080840184613518565b90505f036121fc5750506040805180820190915260148152731a5b9d985b1a5908195b5c1d1e481c995cdd5b1d60621b60208201525f90612210565b5050604080515f8152602081019091526001905b9250929050565b5f6106e7600a83613cd6565b5f6122346040830160208401613caf565b6122416040840184613518565b60a0850135612256608087016060880161356e565b6122636080880188613518565b604051602001611b8c9796959493929190613d03565b5f6001600160401b038216156122a95760146122955f84613d58565b61229f9190613cd6565b6106e7905f613679565b6001600160401b038216156122ce57602d6122c45f84613d58565b6106e79190613cd6565b505f919050565b919050565b5f6122e55f83613d58565b61229f906014613d77565b6060600182600681111561230657612306613089565b0361232d575050604080518082019091526006815265141bdcdd195960d21b602082015290565b600282600681111561234157612341613089565b0361236a57505060408051808201909152600881526714995c1bdc9d195960c21b602082015290565b600382600681111561237e5761237e613089565b036123a8575050604080518082019091526009815268119a5b985b1a5e995960ba1b602082015290565b60048260068111156123bc576123bc613089565b036123e457505060408051808201909152600781526611195b185e595960ca1b602082015290565b60058260068111156123f8576123f8613089565b03612420575050604080518082019091526007815266115e1c1a5c995960ca1b602082015290565b600682600681111561243457612434613089565b0361245d575050604080518082019091526008815267111a5cdc1d5d195960c21b602082015290565b50506040805180820190915260078152662ab735b737bbb760c91b602082015290565b612488612e49565b6040805160c0810182526004850180546001600160a01b0381168352600160a01b810463ffffffff166020840152600160c01b90046001600160401b031692820192909252600585015460608201526006850180546106e4939160808401916124f0906137f6565b80601f016020809104026020016040519081016040528092919081815260200182805461251c906137f6565b80156125675780601f1061253e57610100808354040283529160200191612567565b820191905f5260205f20905b81548152906001019060200180831161254a57829003601f168201915b5050509183525050600391909101546001600160a01b031660209091015260098501548490600160c01b90046001600160401b0316611be8565b5f6106e76125b26040840184613518565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506125ff92506125fa9150506040860160208701613caf565b612a55565b612a71565b5f81831061261e575f8281526020849052604090206106e4565b5f8381526020839052604090206106e4565b612638612f37565b604080518082019091528281525f602082015261108f81612b53565b5f6126688251805151602090910151101590565b6122d5576006826040015160ff16116126b05760408201516502020183808360d11b9060ff166007811061269e5761269e613698565b1a60138111156106e7576106e7613089565b816040015160ff166007036122d557816060015160ff16601414806126dc5750816060015160ff166015145b156126e957506002919050565b6019826060015160ff16101580156127095750601b826060015160ff1611155b156122d557506005919050565b5f60188260ff16101561272d575060ff81166106e7565b8160ff1660180361274b5761274183612c73565b60ff1690506106e7565b8160ff1660190361276a5761275f83612cd3565b61ffff1690506106e7565b8160ff16601a0361278b5761277e83612d3e565b63ffffffff1690506106e7