kleros-interaction-2
Version:
Smart contracts interacting with Kleros.
504 lines • 1.47 MB
JSON
{
"contractName": "FundingVault",
"abi": [
{
"constant": true,
"inputs": [],
"name": "funder",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "arbitratorExtraData",
"outputs": [
{
"name": "",
"type": "bytes"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "claimToWithdrawTime",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_disputeID",
"type": "uint256"
},
{
"name": "_ruling",
"type": "uint256"
}
],
"name": "rule",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "arbitrator",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "timeout",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "team",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "additionalTimeToWithdraw",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "milestones",
"outputs": [
{
"name": "amount",
"type": "uint256"
},
{
"name": "amountClaimed",
"type": "uint256"
},
{
"name": "claimTime",
"type": "uint256"
},
{
"name": "disputed",
"type": "bool"
},
{
"name": "feeTeam",
"type": "uint256"
},
{
"name": "feeHolders",
"type": "uint256"
},
{
"name": "voteToken",
"type": "address"
},
{
"name": "disputeID",
"type": "uint256"
},
{
"name": "lastTotalFeePayment",
"type": "uint256"
},
{
"name": "lastTotalFeePaymentIsTeam",
"type": "bool"
},
{
"name": "payerForHolders",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "disputeIDToMilstoneID",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "disputeThreshold",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "token",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_arbitrator",
"type": "address"
},
{
"name": "_arbitratorExtraData",
"type": "bytes"
},
{
"name": "_team",
"type": "address"
},
{
"name": "_token",
"type": "address"
},
{
"name": "_funder",
"type": "address"
},
{
"name": "_disputeThreshold",
"type": "uint256"
},
{
"name": "_claimToWithdrawTime",
"type": "uint256"
},
{
"name": "_additionalTimeToWithdraw",
"type": "uint256"
},
{
"name": "_timeout",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_metaEvidenceID",
"type": "uint256"
},
{
"indexed": false,
"name": "_evidence",
"type": "string"
}
],
"name": "MetaEvidence",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_arbitrator",
"type": "address"
},
{
"indexed": true,
"name": "_disputeID",
"type": "uint256"
},
{
"indexed": false,
"name": "_metaEvidenceID",
"type": "uint256"
}
],
"name": "Dispute",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_arbitrator",
"type": "address"
},
{
"indexed": true,
"name": "_disputeID",
"type": "uint256"
},
{
"indexed": true,
"name": "_party",
"type": "address"
},
{
"indexed": false,
"name": "_evidence",
"type": "string"
}
],
"name": "Evidence",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_arbitrator",
"type": "address"
},
{
"indexed": true,
"name": "_disputeID",
"type": "uint256"
},
{
"indexed": false,
"name": "_ruling",
"type": "uint256"
}
],
"name": "Ruling",
"type": "event"
},
{
"constant": false,
"inputs": [],
"name": "fundMilestone",
"outputs": [
{
"name": "milestoneID",
"type": "uint256"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
},
{
"name": "_amount",
"type": "uint256"
}
],
"name": "claimMilestone",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "makeVoteToken",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "payDisputeFeeByHolders",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "payDisputeFeeByTeam",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "timeoutByTeam",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "timeoutByHolders",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_milestoneID",
"type": "uint256"
}
],
"name": "appeal",
"outputs": [],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newTeam",
"type": "address"
}
],
"name": "changeTeam",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b50604051620028c8380380620028c88339810160409081528151602080840151928401516060850151608086015160a087015160c088015160e08901516101008a015160008054600160a060020a031916600160a060020a038b1617905598909901805197999098959794969395929491939092918a918a916200009c916001919084019062000329565b505060028054600160a060020a0319908116600160a060020a039a8b1617909155600380548216988a169890981790975550600480548716958816959095179094556005929092556006556007556008556040805161016081018252600080825260208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054909a16908b161790985596517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b687015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b786015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b8909401805493519382169415159490941761010060a860020a03191692909516909302179055600b55600c8054909116905550620003ce9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036c57805160ff19168380011785556200039c565b828001600101855582156200039c579182015b828111156200039c5782518255916020019190600101906200037f565b50620003aa929150620003ae565b5090565b620003cb91905b80821115620003aa5760008155600101620003b5565b90565b6124ea80620003de6000396000f30060806040526004361061010e5763ffffffff60e060020a600035041663041ae88081146101135780630c7ac7b61461014457806323a2f561146101ce5780632e1a7d4d146101f5578063311a6c561461020f5780633c804a901461022a57806340d9f30a146102425780635355e2211461024a5780636cc6cde11461026b5780636f75449f1461028057806370dea79a1461028b5780637e69b7b0146102a057806385f2aef2146102ab5780638948b32a146102c0578063a5fcd0f6146102d5578063c266aef7146102ed578063e41eb7d414610308578063e89e4ed614610313578063e8a1814514610396578063f37e7672146103ae578063f55ea75f146103c3578063fc0c546a146103db575b600080fd5b34801561011f57600080fd5b506101286103f0565b60408051600160a060020a039092168252519081900360200190f35b34801561015057600080fd5b506101596103ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101e361048c565b60408051918252519081900360200190f35b34801561020157600080fd5b5061020d600435610492565b005b34801561021b57600080fd5b5061020d600435602435610931565b34801561023657600080fd5b5061020d6004356109fe565b6101e3610bda565b34801561025657600080fd5b5061020d600160a060020a0360043516610e86565b34801561027757600080fd5b50610128610f70565b61020d600435610f7f565b34801561029757600080fd5b506101e36113b1565b61020d6004356113b7565b3480156102b757600080fd5b506101286114dd565b3480156102cc57600080fd5b506101e36114ec565b3480156102e157600080fd5b5061020d6004356114f2565b3480156102f957600080fd5b5061020d600435602435611755565b61020d60043561192f565b34801561031f57600080fd5b5061032b600435611d93565b604080519b8c5260208c019a909a528a8a019890985295151560608a0152608089019490945260a0880192909252600160a060020a0390811660c088015260e08701919091526101008601919091529015156101208501521661014083015251908190036101600190f35b3480156103a257600080fd5b506101e3600435611e0d565b3480156103ba57600080fd5b506101e3611e1f565b3480156103cf57600080fd5b5061020d600435611e25565b3480156103e757600080fd5b50610128611fcb565b600454600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b60065481565b60008180600b5414151515610517576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980548490811061052557fe5b60009182526020909120600254600a909202019250600160a060020a03163314610587576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff16156105e4576040805160e560020a62461bcd02815260206004820152601d60248201527f4d696c6573746f6e652063616e6e6f742062652064697370757465642e000000604482015290519081900360640190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b50516005540281151561068057fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b505110610745576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b8160060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b505160068301546040805160e060020a6370a0823102815230600482015290516103e890930292600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d602081101561084957600080fd5b50516007540281151561085857fe5b0460065401826002015442031115156108bb576040805160e560020a62461bcd02815260206004820152601e60248201527f54696d65206c696d697420686173206e6f7420706173736564207965742e0000604482015290519081900360640190fd5b600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610907573d6000803e3d6000fd5b50506001810180548254038255600090819055600282018190556004820181905560059091015550565b600054600160a060020a031633146109b9576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a36109fa8282611fda565b5050565b6000600982815481101515610a0f57fe5b60009182526020909120600254600a909202019150600160a060020a03163314610a71576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600981015460ff161515610acf576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311610b2e576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600254600582015460048301546001840154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b506001810180548254038255600090819055600282018190556004820181905560058201819055600682018054600160a060020a03191690556008820155600901805474ffffffffffffffffffffffffffffffffffffffffff1916905550565b600454600090600160a060020a03163314610c3f576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b506040805161016081018252348152600060208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054600160a060020a031916600160a060020a0392831617905590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b689015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b788015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b890960180549551959091169515159590951774ffffffffffffffffffffffffffffffffffffffff0019169316029190911790915590565b600454600160a060020a03163314610ee8576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b600c5460ff161515610f44576040805160e560020a62461bcd02815260206004820152601e60248201527f4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e0000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055600c805460ff19169055565b600054600160a060020a031681565b600080600983815481101515610f9157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea99390929182916044909101908490801561105d5780601f106110325761010080835404028352916020019161105d565b820191906000526020600020905b81548152906001019060200180831161104057829003601f168201915b505092505050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b5051600254909150600160a060020a031633146110fc576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff161561117f576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d602081101561120c57600080fd5b50516005540281151561121b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b505050506040513d602081101561129b57600080fd5b505110156112e1576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b6004820154340181111561133f576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b60048201805434019055600582015481116113635761135e8382612317565b6113ac565b600882015415156113885742600883015560098201805460ff191660011790556113ac565b600982015460ff1615156113ac5760098201805460ff191660011790554260088301555b505050565b60085481565b60006009828154811015156113c857fe5b60009182526020822091546007600a90920290920190810154604080517f49912f8800000000000000000000000000000000000000000000000000000000815260048101838152602482019283526001805460026000198284161561010002019091160460448401819052959750600160a060020a03909616956349912f8895349594919360640190849080156114a05780601f10611475576101008083540402835291602001916114a0565b820191906000526020600020905b81548152906001019060200180831161148357829003601f168201915b505093505050506000604051808303818588803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b50505050505050565b600254600160a060020a031681565b60075481565b600060098281548110151561150357fe5b90600052602060002090600a0201905081600b5414151561159f576002810154151561159f576040805160e560020a62461bcd02815260206004820152602a60248201527f546865206d696c6573746f6e65206d75737420626520636c61696d656420627960448201527f20746865207465616d2e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006810154600160a060020a031615611602576040805160e560020a62461bcd02815260206004820181905260248201527f54686520746f6b656e2068617320616c7265616479206265656e206d6164652e604482015290519081900360640190fd5b600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691636638c08791839163313ce567916004808201926020929091908290030181600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d602081101561169457600080fd5b50516040805160e060020a63ffffffff851602815260ff90921660248301524360648301526001608483015260a06004830152600060a4830181905260e0604484015260e483018190529051610124808401936020939083900390910190829087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50516006919091018054600160a060020a031916600160a060020a0390921691909117905550565b60008280600b54141515156117da576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60098054859081106117e857fe5b60009182526020909120600254600a909202019250600160a060020a0316331461184a576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b6002820154156118ca576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e6e6f742062652063616c6c6564207768656e206f7468657220636c616960448201527f6d7320617265206163746976652e000000000000000000000000000000000000606482015290519081900360840190fd5b8154831015611923576040805160e560020a62461bcd02815260206004820152600560248201527f544f444f2e000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50426002909101555050565b60008060098381548110151561194157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea993909291829160449091019084908015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505092505050602060405180830381600087803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b5051600383015490915060ff1615611adf576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015611b4257600080fd5b505af1158015611b56573d6000803e3d6000fd5b505050506040513d6020811015611b6c57600080fd5b505160055402811515611b7b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b158015611bd157600080fd5b505af1158015611be5573d6000803e3d6000fd5b505050506040513d6020811015611bfb57600080fd5b50511015611c41576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b60058201548111611c9c576040805160e560020a62461bcd02815260206004820152601f60248201527f466565732068617665206e6f74206265656e2070616964206265666f72652e00604482015290519081900360640190fd5b60058201543401811115611cfa576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b6005820180543401905560098201546101009004600160a060020a03161515611d445760098201805474ffffffffffffffffffffffffffffffffffffffff00191633610100021790555b60048201548111611d595761135e8382612317565b60088201541515611d6f574260088301556113ac565b600982015460ff16156113ac5760098201805460ff19169055426008830155505050565b6009805482908110611da157fe5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901549799509597949660ff9485169693959294600160a060020a03928316949392908216916101009004168b565b600a6020526000908152604090205481565b60055481565b6000600982815481101515611e3657fe5b60009182526020909120600a90910201600981015490915060ff1615611ea6576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311611f05576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600981015460058201546004830154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015611f52573d6000803e3d6000fd5b50600060018083018290556002830182905560038301805460ff199081169091556004840183905560058401839055600684018054600160a060020a031916905560088401929092556009909201805474ffffffffffffffffffffffffffffffffffffffff0019169055600c8054909116909117905550565b600354600160a060020a031681565b6000828152600a6020526040812054600980548392908110611ff857fe5b90600052602060002090600a020191506103e88260060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b50516005540281151561209957fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156120ef57600080fd5b505af1158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b5051101561215f576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b506000838152600a6020526040902054600183141561223a57600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f193505050501580156121c4573d6000803e3d6000fd5b5060018201805483540383556000908190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055612311565b600283141561231157600982015460058301546004840154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015612290573d6000803e3d6000fd5b506000600183018190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055600b5481141561231157600c805460ff191660011790555b50505050565b600060098381548110151561232857fe5b6000918252602082206003600a90920201908101805460ff191660019081179091556004808301805487900390559254604080517fc13517e100000000000000000000000000000000000000000000000000000000815260029581018681526024820192835284548086161561010002600019011687900460448301819052959750600160a060020a039093169563c13517e195909493929160640190849080156124145780601f106123e957610100808354040283529160200191612414565b820191906000526020600020905b8154815290600101906020018083116123f757829003601f168201915b50509350505050602060405180830381600087803b15801561243557600080fd5b505af1158015612449573d6000803e3d6000fd5b505050506040513d602081101561245f57600080fd5b505160079091018190556000908152600a602052604090209190915550560043616e206f6e6c792062652063616c6c656420627920746865207465616d2e004e6f7420656e6f75676820766f7465732e000000000000000000000000000000a165627a7a7230582005190b6860b154aa4c304afcace9614c3e3a5398c8ce0e0c03388719d2b7507a0029",
"deployedBytecode": "0x60806040526004361061010e5763ffffffff60e060020a600035041663041ae88081146101135780630c7ac7b61461014457806323a2f561146101ce5780632e1a7d4d146101f5578063311a6c561461020f5780633c804a901461022a57806340d9f30a146102425780635355e2211461024a5780636cc6cde11461026b5780636f75449f1461028057806370dea79a1461028b5780637e69b7b0146102a057806385f2aef2146102ab5780638948b32a146102c0578063a5fcd0f6146102d5578063c266aef7146102ed578063e41eb7d414610308578063e89e4ed614610313578063e8a1814514610396578063f37e7672146103ae578063f55ea75f146103c3578063fc0c546a146103db575b600080fd5b34801561011f57600080fd5b506101286103f0565b60408051600160a060020a039092168252519081900360200190f35b34801561015057600080fd5b506101596103ff565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561019357818101518382015260200161017b565b50505050905090810190601f1680156101c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101da57600080fd5b506101e361048c565b60408051918252519081900360200190f35b34801561020157600080fd5b5061020d600435610492565b005b34801561021b57600080fd5b5061020d600435602435610931565b34801561023657600080fd5b5061020d6004356109fe565b6101e3610bda565b34801561025657600080fd5b5061020d600160a060020a0360043516610e86565b34801561027757600080fd5b50610128610f70565b61020d600435610f7f565b34801561029757600080fd5b506101e36113b1565b61020d6004356113b7565b3480156102b757600080fd5b506101286114dd565b3480156102cc57600080fd5b506101e36114ec565b3480156102e157600080fd5b5061020d6004356114f2565b3480156102f957600080fd5b5061020d600435602435611755565b61020d60043561192f565b34801561031f57600080fd5b5061032b600435611d93565b604080519b8c5260208c019a909a528a8a019890985295151560608a0152608089019490945260a0880192909252600160a060020a0390811660c088015260e08701919091526101008601919091529015156101208501521661014083015251908190036101600190f35b3480156103a257600080fd5b506101e3600435611e0d565b3480156103ba57600080fd5b506101e3611e1f565b3480156103cf57600080fd5b5061020d600435611e25565b3480156103e757600080fd5b50610128611fcb565b600454600160a060020a031681565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104845780601f1061045957610100808354040283529160200191610484565b820191906000526020600020905b81548152906001019060200180831161046757829003601f168201915b505050505081565b60065481565b60008180600b5414151515610517576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600980548490811061052557fe5b60009182526020909120600254600a909202019250600160a060020a03163314610587576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff16156105e4576040805160e560020a62461bcd02815260206004820152601d60248201527f4d696c6573746f6e652063616e6e6f742062652064697370757465642e000000604482015290519081900360640190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b15801561064757600080fd5b505af115801561065b573d6000803e3d6000fd5b505050506040513d602081101561067157600080fd5b50516005540281151561068057fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156106d657600080fd5b505af11580156106ea573d6000803e3d6000fd5b505050506040513d602081101561070057600080fd5b505110610745576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b8160060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b505050506040513d60208110156107c457600080fd5b505160068301546040805160e060020a6370a0823102815230600482015290516103e890930292600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561081f57600080fd5b505af1158015610833573d6000803e3d6000fd5b505050506040513d602081101561084957600080fd5b50516007540281151561085857fe5b0460065401826002015442031115156108bb576040805160e560020a62461bcd02815260206004820152601e60248201527f54696d65206c696d697420686173206e6f7420706173736564207965742e0000604482015290519081900360640190fd5b600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610907573d6000803e3d6000fd5b50506001810180548254038255600090819055600282018190556004820181905560059091015550565b600054600160a060020a031633146109b9576040805160e560020a62461bcd02815260206004820152602560248201527f43616e206f6e6c792062652063616c6c6564206279207468652061726269747260448201527f61746f722e000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b604080518281529051839133917f394027a5fa6e098a1191094d1719d6929b9abc535fcc0c8f448d6a4e756222769181900360200190a36109fa8282611fda565b5050565b6000600982815481101515610a0f57fe5b60009182526020909120600254600a909202019150600160a060020a03163314610a71576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600981015460ff161515610acf576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311610b2e576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600254600582015460048301546001840154604051600160a060020a0390941693910190910180156108fc02916000818181858888f19350505050158015610b7a573d6000803e3d6000fd5b506001810180548254038255600090819055600282018190556004820181905560058201819055600682018054600160a060020a03191690556008820155600901805474ffffffffffffffffffffffffffffffffffffffffff1916905550565b600454600090600160a060020a03163314610c3f576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b506040805161016081018252348152600060208201818152928201818152606083018281526080840183815260a0850184815260c0860185815260e087018681526101008089018881526101208a018981526101408b018a8152600980546001810182559b529a517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af600a8c02908101919091559b517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b08d015597517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b18c015595517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b28b01805460ff1990811692151592909217905594517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b38b015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b48a015590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b589018054600160a060020a031916600160a060020a0392831617905590517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b689015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b788015592517f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7b890960180549551959091169515159590951774ffffffffffffffffffffffffffffffffffffffff0019169316029190911790915590565b600454600160a060020a03163314610ee8576040805160e560020a62461bcd02815260206004820152601e60248201527f5468652063616c6c6572206d757374206265207468652066756e6465722e0000604482015290519081900360640190fd5b600c5460ff161515610f44576040805160e560020a62461bcd02815260206004820152601e60248201527f4368616e67696e67207465616d73206973206e6f7420616c6c6f7765642e0000604482015290519081900360640190fd5b60028054600160a060020a031916600160a060020a0392909216919091179055600c805460ff19169055565b600054600160a060020a031681565b600080600983815481101515610f9157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea99390929182916044909101908490801561105d5780601f106110325761010080835404028352916020019161105d565b820191906000526020600020905b81548152906001019060200180831161104057829003601f168201915b505092505050602060405180830381600087803b15801561107d57600080fd5b505af1158015611091573d6000803e3d6000fd5b505050506040513d60208110156110a757600080fd5b5051600254909150600160a060020a031633146110fc576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b600382015460ff161561117f576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506040513d602081101561120c57600080fd5b50516005540281151561121b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b15801561127157600080fd5b505af1158015611285573d6000803e3d6000fd5b505050506040513d602081101561129b57600080fd5b505110156112e1576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b6004820154340181111561133f576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b60048201805434019055600582015481116113635761135e8382612317565b6113ac565b600882015415156113885742600883015560098201805460ff191660011790556113ac565b600982015460ff1615156113ac5760098201805460ff191660011790554260088301555b505050565b60085481565b60006009828154811015156113c857fe5b60009182526020822091546007600a90920290920190810154604080517f49912f8800000000000000000000000000000000000000000000000000000000815260048101838152602482019283526001805460026000198284161561010002019091160460448401819052959750600160a060020a03909616956349912f8895349594919360640190849080156114a05780601f10611475576101008083540402835291602001916114a0565b820191906000526020600020905b81548152906001019060200180831161148357829003601f168201915b505093505050506000604051808303818588803b1580156114c057600080fd5b505af11580156114d4573d6000803e3d6000fd5b50505050505050565b600254600160a060020a031681565b60075481565b600060098281548110151561150357fe5b90600052602060002090600a0201905081600b5414151561159f576002810154151561159f576040805160e560020a62461bcd02815260206004820152602a60248201527f546865206d696c6573746f6e65206d75737420626520636c61696d656420627960448201527f20746865207465616d2e00000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006810154600160a060020a031615611602576040805160e560020a62461bcd02815260206004820181905260248201527f54686520746f6b656e2068617320616c7265616479206265656e206d6164652e604482015290519081900360640190fd5b600354604080517f313ce5670000000000000000000000000000000000000000000000000000000081529051600160a060020a0390921691636638c08791839163313ce567916004808201926020929091908290030181600087803b15801561166a57600080fd5b505af115801561167e573d6000803e3d6000fd5b505050506040513d602081101561169457600080fd5b50516040805160e060020a63ffffffff851602815260ff90921660248301524360648301526001608483015260a06004830152600060a4830181905260e0604484015260e483018190529051610124808401936020939083900390910190829087803b15801561170357600080fd5b505af1158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b50516006919091018054600160a060020a031916600160a060020a0390921691909117905550565b60008280600b54141515156117da576040805160e560020a62461bcd02815260206004820152602960248201527f4d696c6573746f6e652063616e6e6f7420626520746865206f7573746572206d60448201527f696c6573746f6e652e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60098054859081106117e857fe5b60009182526020909120600254600a909202019250600160a060020a0316331461184a576040805160e560020a62461bcd02815260206004820152601f602482015260008051602061247f833981519152604482015290519081900360640190fd5b6002820154156118ca576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e6e6f742062652063616c6c6564207768656e206f7468657220636c616960448201527f6d7320617265206163746976652e000000000000000000000000000000000000606482015290519081900360840190fd5b8154831015611923576040805160e560020a62461bcd02815260206004820152600560248201527f544f444f2e000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b50426002909101555050565b60008060098381548110151561194157fe5b6000918252602080832092546040517ff7434ea9000000000000000000000000000000000000000000000000000000008152600481019283526001805460026000198284161561010002019091160460248301819052600a9095029095019650600160a060020a039091169363f7434ea993909291829160449091019084908015611a0d5780601f106119e257610100808354040283529160200191611a0d565b820191906000526020600020905b8154815290600101906020018083116119f057829003601f168201915b505092505050602060405180830381600087803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b505050506040513d6020811015611a5757600080fd5b5051600383015490915060ff1615611adf576040805160e560020a62461bcd02815260206004820152602960248201527f546865206d696c6573746f6e652063616e6e6f7420626520616c72656164792060448201527f64697370757465642e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6006820154604080517f18160ddd00000000000000000000000000000000000000000000000000000000815290516103e892600160a060020a0316916318160ddd9160048083019260209291908290030181600087803b158015611b4257600080fd5b505af1158015611b56573d6000803e3d6000fd5b505050506040513d6020811015611b6c57600080fd5b505160055402811515611b7b57fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b158015611bd157600080fd5b505af1158015611be5573d6000803e3d6000fd5b505050506040513d6020811015611bfb57600080fd5b50511015611c41576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b60058201548111611c9c576040805160e560020a62461bcd02815260206004820152601f60248201527f466565732068617665206e6f74206265656e2070616964206265666f72652e00604482015290519081900360640190fd5b60058201543401811115611cfa576040805160e560020a62461bcd02815260206004820152601f60248201527f4e6f7420656e6f75676820666565732068617665206265656e20706169642e00604482015290519081900360640190fd5b6005820180543401905560098201546101009004600160a060020a03161515611d445760098201805474ffffffffffffffffffffffffffffffffffffffff00191633610100021790555b60048201548111611d595761135e8382612317565b60088201541515611d6f574260088301556113ac565b600982015460ff16156113ac5760098201805460ff19169055426008830155505050565b6009805482908110611da157fe5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901549799509597949660ff9485169693959294600160a060020a03928316949392908216916101009004168b565b600a6020526000908152604090205481565b60055481565b6000600982815481101515611e3657fe5b60009182526020909120600a90910201600981015490915060ff1615611ea6576040805160e560020a62461bcd02815260206004820152601c60248201527f5465616d207761736e277420746865206c61737420746f207061792e00000000604482015290519081900360640190fd5b6008805490820154420311611f05576040805160e560020a62461bcd02815260206004820152601760248201527f54696d656f757420686173206e6f74207061737365642e000000000000000000604482015290519081900360640190fd5b600981015460058201546004830154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015611f52573d6000803e3d6000fd5b50600060018083018290556002830182905560038301805460ff199081169091556004840183905560058401839055600684018054600160a060020a031916905560088401929092556009909201805474ffffffffffffffffffffffffffffffffffffffff0019169055600c8054909116909117905550565b600354600160a060020a031681565b6000828152600a6020526040812054600980548392908110611ff857fe5b90600052602060002090600a020191506103e88260060160009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561206057600080fd5b505af1158015612074573d6000803e3d6000fd5b505050506040513d602081101561208a57600080fd5b50516005540281151561209957fe5b60068401546040805160e060020a6370a0823102815230600482015290519390920492600160a060020a03909116916370a082319160248083019260209291908290030181600087803b1580156120ef57600080fd5b505af1158015612103573d6000803e3d6000fd5b505050506040513d602081101561211957600080fd5b5051101561215f576040805160e560020a62461bcd028152602060048201526011602482015260008051602061249f833981519152604482015290519081900360640190fd5b506000838152600a6020526040902054600183141561223a57600254600583015460048401546001850154604051600160a060020a0390941693910190910180156108fc02916000818181858888f193505050501580156121c4573d6000803e3d6000fd5b5060018201805483540383556000908190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055612311565b600283141561231157600982015460058301546004840154604051600160a060020a036101009094049390931692910180156108fc02916000818181858888f19350505050158015612290573d6000803e3d6000fd5b506000600183018190556002830181905560038301805460ff191690556004830181905560058301819055600683018054600160a060020a031916905560078301819055600883015560098201805474ffffffffffffffffffffffffffffffffffffffffff19169055600b5481141561231157600c805460ff191660011790555b50505050565b600060098381548110151561232857fe5b6000918252602082206003600a90920201908101805460ff191660019081179091556004808301805487900390559254604080517fc13517e100000000000000000000000000000000000000000000000000000000815260029581018681526024820192835284548086161561010002600019011687900460448301819052959750600160a060020a039093169563c13517e195909493929160640190849080156124145780601f106123e957610100808354040283529160200191612414565b820191906000526020600020905b8154815290600101906020018083116123f757829003601f168201915b50509350505050602060405180830381600087803b15801561243557600080fd5b505af1158015612449573d6000803e3d6000fd5b505050506040513d602081101561245f57600080fd5b505160079091018190556000908152600a602052604090209190915550560043616e206f6e6c792062652063616c6c656420627920746865207465616d2e004e6f7420656e6f75676820766f7465732e000000000000000000000000000000a165627a7a7230582005190b6860b154aa4c304afcace9614c3e3a5398c8ce0e0c03388719d2b7507a0029",
"sourceMap": "1116:16363:5:-;;;3599:1144;8:9:-1;5:2;;;30:1;27;20:12;5:2;3599:1144:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:10:2;:24;;-1:-1:-1;;;;;;2848:24:2;-1:-1:-1;;;;;2848:24:2;;;;;3599:1144:5;;;;2882:42:2;;3599:1144:5;;;;;;;;;;;;;;;;;;;;;288