@josojo/forkonomics-contracts
Version:
realitytoken basic contracts
474 lines • 494 kB
JSON
{
"contractName": "SubChain",
"abi": [
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fundingBranch",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "challenger",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "bond",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_subtractedValue",
"type": "uint256"
}
],
"name": "decreaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"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": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "owner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "isChallenged",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "challengeTime",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "fSystem",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_spender",
"type": "address"
},
{
"name": "_addedValue",
"type": "uint256"
}
],
"name": "increaseApproval",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "collateral",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "collateral_",
"type": "address"
},
{
"name": "fSystem_",
"type": "address"
},
{
"name": "fundingBranch_",
"type": "bytes32"
},
{
"name": "arbitrator_",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "owner",
"type": "address"
},
{
"indexed": true,
"name": "spender",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "from",
"type": "address"
},
{
"indexed": true,
"name": "to",
"type": "address"
},
{
"indexed": false,
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "bond_",
"type": "uint256"
}
],
"name": "providInitialBond",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "amount",
"type": "uint256"
}
],
"name": "deposit",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "amount",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "challengeArbitrator",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "amount",
"type": "uint256"
},
{
"name": "branch",
"type": "bytes32"
}
],
"name": "withdrawAfterChallenge",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
}
],
"name": "withdrawalForArbitrator",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "branch",
"type": "bytes32"
}
],
"name": "withdrawalForChallenger",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x60806040526003805460ff1916905534801561001a57600080fd5b50604051608080611a33833981016040908152815160208301519183015160609093015160048054600160a060020a03938416600160a060020a031991821617909155600380549484166101000261010060a860020a031990951694909417909355600593909355600680549190931691161790556119958061009e6000396000f3006080604052600436106101245763ffffffff60e060020a600035041663095ea7b3811461012957806318160ddd1461016157806323b872dd146101885780632e1a7d4d146101b25780633e33559f146101cc57806342135cb5146101e157806342df9383146101fc578063534db0e2146102115780635f58307d1461024257806364c9ec6f1461025a578063661884631461026f5780636cc6cde11461029357806370a08231146102a85780638da5cb5b146102c95780639df4d0fe146102de578063a4727272146102f3578063a9059cbb14610308578063b6b55f251461032c578063bcca80dd14610344578063d1996f4a1461035c578063d440796e14610374578063d73dd62314610389578063d8dfeb45146103ad578063dd62ed3e146103c2575b600080fd5b34801561013557600080fd5b5061014d600160a060020a03600435166024356103e9565b604080519115158252519081900360200190f35b34801561016d57600080fd5b5061017661044f565b60408051918252519081900360200190f35b34801561019457600080fd5b5061014d600160a060020a0360043581169060243516604435610455565b3480156101be57600080fd5b506101ca6004356105ca565b005b3480156101d857600080fd5b506101ca6106f1565b3480156101ed57600080fd5b506101ca60043560243561082a565b34801561020857600080fd5b50610176610a87565b34801561021d57600080fd5b50610226610a8d565b60408051600160a060020a039092168252519081900360200190f35b34801561024e57600080fd5b506101ca600435610a9c565b34801561026657600080fd5b50610176610eb2565b34801561027b57600080fd5b5061014d600160a060020a0360043516602435610eb8565b34801561029f57600080fd5b50610226610fa7565b3480156102b457600080fd5b50610176600160a060020a0360043516610fb6565b3480156102d557600080fd5b50610226610fd1565b3480156102ea57600080fd5b5061014d610fe0565b3480156102ff57600080fd5b50610176610fe9565b34801561031457600080fd5b5061014d600160a060020a0360043516602435610fef565b34801561033857600080fd5b506101ca6004356110ce565b34801561035057600080fd5b506101ca600435611212565b34801561036857600080fd5b506101ca60043561129a565b34801561038057600080fd5b5061022661185d565b34801561039557600080fd5b5061014d600160a060020a0360043516602435611871565b3480156103b957600080fd5b5061022661190a565b3480156103ce57600080fd5b50610176600160a060020a0360043581169060243516611919565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015490565b600160a060020a03831660009081526020819052604081205482111561047a57600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156104aa57600080fd5b600160a060020a03831615156104bf57600080fd5b600160a060020a0384166000908152602081905260409020546104e8908363ffffffff61194416565b600160a060020a03808616600090815260208190526040808220939093559085168152205461051d908363ffffffff61195616565b600160a060020a0380851660009081526020818152604080832094909455918716815260028252828120338252909152205461055f908363ffffffff61194416565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60035460ff1615610625576040805160e560020a62461bcd02815260206004820152601d60248201527f537562636861696e20697320616c7265616479206368616c656e676564000000604482015290519081900360640190fd5b33600090815260208190526040902054610645908263ffffffff61194416565b336000818152602081815260408083209490945560048054600554865160e160020a632be7f777028152928301959095526024820187905260448201949094529351600160a060020a03909316936357cfeeee9360648083019491928390030190829087803b1580156106b757600080fd5b505af11580156106cb573d6000803e3d6000fd5b505050506040513d60208110156106e157600080fd5b505115156106ee57600080fd5b50565b6003805460ff191660011790556008805473ffffffffffffffffffffffffffffffffffffffff1916339081179091554260095560048054600a54600554604080517f401e336700000000000000000000000000000000000000000000000000000000815294850195909552306024850152604484019190915260648301529151600160a060020a03929092169163401e3367916084808201926020929091908290030181600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b50511515610828576040805160e560020a62461bcd02815260206004820152601d60248201527f7472616e7366657246726f6d20776173206e6f7420706f737369626c65000000604482015290519081900360640190fd5b565b60035460ff161515610886576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b60048054600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152339481019490945260006024850181905260448501869052606485019290925251600160a060020a039092169263cf54a3d39260848083019360209383900390910190829087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050506040513d602081101561093257600080fd5b5051151561093f57600080fd5b600480546040805160e160020a632be7f7770281523393810193909352602483018590526044830184905251600160a060020a03909116916357cfeeee9160648083019260209291908290030181600087803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050506040513d60208110156109c857600080fd5b505115156109d557600080fd5b60048054604080517fa53171a4000000000000000000000000000000000000000000000000000000008152600093810184905260248101869052604481018590529051600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050506040513d6020811015610a7657600080fd5b50511515610a8357600080fd5b5050565b60055481565b600854600160a060020a031681565b60035460ff161515610af8576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b600954600360019054906101000a9004600160a060020a0316600160a060020a031663530230716040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b505050506040513d6020811015610b7857600080fd5b5051600354604080517f0236b81700000000000000000000000000000000000000000000000000000000815260048101869052905163ffffffff90931692610100909204600160a060020a031691630236b817916024808201926020929091908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d6020811015610c1857600080fd5b50510111610c2557600080fd5b600354600654604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051610100909304909116916349469146916044808201926020929091908290030181600087803b158015610c9d57600080fd5b505af1158015610cb1573d6000803e3d6000fd5b505050506040513d6020811015610cc757600080fd5b50511515610cd457600080fd5b60048054600654600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152600160a060020a039384169581019590955260006024860181905260448601879052606486019290925251919092169263cf54a3d39260848083019360209390929083900390910190829087803b158015610d5f57600080fd5b505af1158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b50511515610d9657600080fd5b60048054600654600a546040805160e160020a632be7f777028152600160a060020a03938416958101959095526002909102602485015260448401859052519116916357cfeeee9160648083019260209291908290030181600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050506040513d6020811015610e2957600080fd5b50511515610e3657600080fd5b60048054600a54604080517fa53171a40000000000000000000000000000000000000000000000000000000081526000948101859052600290920260248301526044820185905251600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b1580156106b757600080fd5b600a5481565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610f0c57336000908152600260209081526040808320600160a060020a0388168452909152812055610f41565b610f1c818463ffffffff61194416565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600654600160a060020a031681565b600160a060020a031660009081526020819052604090205490565b600754600160a060020a031681565b60035460ff1681565b60095481565b3360009081526020819052604081205482111561100b57600080fd5b600160a060020a038316151561102057600080fd5b33600090815260208190526040902054611040908363ffffffff61194416565b3360009081526020819052604080822092909255600160a060020a03851681522054611072908363ffffffff61195616565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60035460ff1615611129576040805160e560020a62461bcd02815260206004820152601d60248201527f537562636861696e20697320616c7265616479206368616c656e676564000000604482015290519081900360640190fd5b60048054600554604080517f401e3367000000000000000000000000000000000000000000000000000000008152339481019490945230602485015260448401859052606484019190915251600160a060020a039091169163401e33679160848083019260209291908290030181600087803b1580156111a857600080fd5b505af11580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b505115156111df57600080fd5b336000908152602081905260409020546111ff908263ffffffff61195616565b3360009081526020819052604090205550565b600a81905560048054600654600554604080517f401e3367000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095523060248601526044850186905260648501919091525191169163401e33679160848083019260209291908290030181600087803b1580156106b757600080fd5b60035460ff1615156112f6576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b600954600360019054906101000a9004600160a060020a0316600160a060020a031663530230716040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561134c57600080fd5b505af1158015611360573d6000803e3d6000fd5b505050506040513d602081101561137657600080fd5b5051600354604080517f0236b81700000000000000000000000000000000000000000000000000000000815260048101869052905163ffffffff90931692610100909204600160a060020a031691630236b817916024808201926020929091908290030181600087803b1580156113ec57600080fd5b505af1158015611400573d6000803e3d6000fd5b505050506040513d602081101561141657600080fd5b5051011161146e576040805160e560020a62461bcd02815260206004820152601960248201527f6368616c6c656e67696e6754696d6520746f6f206561726c7900000000000000604482015290519081900360640190fd5b600354600654604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051610100909304909116916349469146916044808201926020929091908290030181600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b505115611567576040805160e560020a62461bcd02815260206004820152601e60248201527f61726269747261746f72206973206e6f742077686974652d6c69737465640000604482015290519081900360640190fd5b60048054600854600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152600160a060020a039384169581019590955260006024860181905260448601879052606486019290925251919092169263cf54a3d39260848083019360209390929083900390910190829087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050506040513d602081101561161c57600080fd5b50511515611674576040805160e560020a62461bcd02815260206004820152601860248201527f686173426f785769746864726177616c203d3d66616c73650000000000000000604482015290519081900360640190fd5b60048054600854600a546040805160e160020a632be7f777028152600160a060020a03938416958101959095526002909102602485015260448401859052519116916357cfeeee9160648083019260209291908290030181600087803b1580156116dd57600080fd5b505af11580156116f1573d6000803e3d6000fd5b505050506040513d602081101561170757600080fd5b5051151561175f576040805160e560020a62461bcd02815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b60048054600a54604080517fa53171a40000000000000000000000000000000000000000000000000000000081526000948101859052600290920260248301526044820185905251600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b1580156117db57600080fd5b505af11580156117ef573d6000803e3d6000fd5b505050506040513d602081101561180557600080fd5b505115156106ee576040805160e560020a62461bcd02815260206004820152601b60248201527f207265636f7264426f785769746864726177616c206661696c65640000000000604482015290519081900360640190fd5b6003546101009004600160a060020a031681565b336000908152600260209081526040808320600160a060020a03861684529091528120546118a5908363ffffffff61195616565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600454600160a060020a031681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561195057fe5b50900390565b8181018281101561196357fe5b929150505600a165627a7a72305820090be7ae5cc364060c44919dcb30af82fbd8c8fea7f42f5b93c2ce5d94fff7530029",
"deployedBytecode": "0x6080604052600436106101245763ffffffff60e060020a600035041663095ea7b3811461012957806318160ddd1461016157806323b872dd146101885780632e1a7d4d146101b25780633e33559f146101cc57806342135cb5146101e157806342df9383146101fc578063534db0e2146102115780635f58307d1461024257806364c9ec6f1461025a578063661884631461026f5780636cc6cde11461029357806370a08231146102a85780638da5cb5b146102c95780639df4d0fe146102de578063a4727272146102f3578063a9059cbb14610308578063b6b55f251461032c578063bcca80dd14610344578063d1996f4a1461035c578063d440796e14610374578063d73dd62314610389578063d8dfeb45146103ad578063dd62ed3e146103c2575b600080fd5b34801561013557600080fd5b5061014d600160a060020a03600435166024356103e9565b604080519115158252519081900360200190f35b34801561016d57600080fd5b5061017661044f565b60408051918252519081900360200190f35b34801561019457600080fd5b5061014d600160a060020a0360043581169060243516604435610455565b3480156101be57600080fd5b506101ca6004356105ca565b005b3480156101d857600080fd5b506101ca6106f1565b3480156101ed57600080fd5b506101ca60043560243561082a565b34801561020857600080fd5b50610176610a87565b34801561021d57600080fd5b50610226610a8d565b60408051600160a060020a039092168252519081900360200190f35b34801561024e57600080fd5b506101ca600435610a9c565b34801561026657600080fd5b50610176610eb2565b34801561027b57600080fd5b5061014d600160a060020a0360043516602435610eb8565b34801561029f57600080fd5b50610226610fa7565b3480156102b457600080fd5b50610176600160a060020a0360043516610fb6565b3480156102d557600080fd5b50610226610fd1565b3480156102ea57600080fd5b5061014d610fe0565b3480156102ff57600080fd5b50610176610fe9565b34801561031457600080fd5b5061014d600160a060020a0360043516602435610fef565b34801561033857600080fd5b506101ca6004356110ce565b34801561035057600080fd5b506101ca600435611212565b34801561036857600080fd5b506101ca60043561129a565b34801561038057600080fd5b5061022661185d565b34801561039557600080fd5b5061014d600160a060020a0360043516602435611871565b3480156103b957600080fd5b5061022661190a565b3480156103ce57600080fd5b50610176600160a060020a0360043581169060243516611919565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60015490565b600160a060020a03831660009081526020819052604081205482111561047a57600080fd5b600160a060020a03841660009081526002602090815260408083203384529091529020548211156104aa57600080fd5b600160a060020a03831615156104bf57600080fd5b600160a060020a0384166000908152602081905260409020546104e8908363ffffffff61194416565b600160a060020a03808616600090815260208190526040808220939093559085168152205461051d908363ffffffff61195616565b600160a060020a0380851660009081526020818152604080832094909455918716815260028252828120338252909152205461055f908363ffffffff61194416565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b60035460ff1615610625576040805160e560020a62461bcd02815260206004820152601d60248201527f537562636861696e20697320616c7265616479206368616c656e676564000000604482015290519081900360640190fd5b33600090815260208190526040902054610645908263ffffffff61194416565b336000818152602081815260408083209490945560048054600554865160e160020a632be7f777028152928301959095526024820187905260448201949094529351600160a060020a03909316936357cfeeee9360648083019491928390030190829087803b1580156106b757600080fd5b505af11580156106cb573d6000803e3d6000fd5b505050506040513d60208110156106e157600080fd5b505115156106ee57600080fd5b50565b6003805460ff191660011790556008805473ffffffffffffffffffffffffffffffffffffffff1916339081179091554260095560048054600a54600554604080517f401e336700000000000000000000000000000000000000000000000000000000815294850195909552306024850152604484019190915260648301529151600160a060020a03929092169163401e3367916084808201926020929091908290030181600087803b1580156107a657600080fd5b505af11580156107ba573d6000803e3d6000fd5b505050506040513d60208110156107d057600080fd5b50511515610828576040805160e560020a62461bcd02815260206004820152601d60248201527f7472616e7366657246726f6d20776173206e6f7420706f737369626c65000000604482015290519081900360640190fd5b565b60035460ff161515610886576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b60048054600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152339481019490945260006024850181905260448501869052606485019290925251600160a060020a039092169263cf54a3d39260848083019360209383900390910190829087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050506040513d602081101561093257600080fd5b5051151561093f57600080fd5b600480546040805160e160020a632be7f7770281523393810193909352602483018590526044830184905251600160a060020a03909116916357cfeeee9160648083019260209291908290030181600087803b15801561099e57600080fd5b505af11580156109b2573d6000803e3d6000fd5b505050506040513d60208110156109c857600080fd5b505115156109d557600080fd5b60048054604080517fa53171a4000000000000000000000000000000000000000000000000000000008152600093810184905260248101869052604481018590529051600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b158015610a4c57600080fd5b505af1158015610a60573d6000803e3d6000fd5b505050506040513d6020811015610a7657600080fd5b50511515610a8357600080fd5b5050565b60055481565b600854600160a060020a031681565b60035460ff161515610af8576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b600954600360019054906101000a9004600160a060020a0316600160a060020a031663530230716040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b505050506040513d6020811015610b7857600080fd5b5051600354604080517f0236b81700000000000000000000000000000000000000000000000000000000815260048101869052905163ffffffff90931692610100909204600160a060020a031691630236b817916024808201926020929091908290030181600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b505050506040513d6020811015610c1857600080fd5b50510111610c2557600080fd5b600354600654604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051610100909304909116916349469146916044808201926020929091908290030181600087803b158015610c9d57600080fd5b505af1158015610cb1573d6000803e3d6000fd5b505050506040513d6020811015610cc757600080fd5b50511515610cd457600080fd5b60048054600654600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152600160a060020a039384169581019590955260006024860181905260448601879052606486019290925251919092169263cf54a3d39260848083019360209390929083900390910190829087803b158015610d5f57600080fd5b505af1158015610d73573d6000803e3d6000fd5b505050506040513d6020811015610d8957600080fd5b50511515610d9657600080fd5b60048054600654600a546040805160e160020a632be7f777028152600160a060020a03938416958101959095526002909102602485015260448401859052519116916357cfeeee9160648083019260209291908290030181600087803b158015610dff57600080fd5b505af1158015610e13573d6000803e3d6000fd5b505050506040513d6020811015610e2957600080fd5b50511515610e3657600080fd5b60048054600a54604080517fa53171a40000000000000000000000000000000000000000000000000000000081526000948101859052600290920260248301526044820185905251600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b1580156106b757600080fd5b600a5481565b336000908152600260209081526040808320600160a060020a0386168452909152812054808310610f0c57336000908152600260209081526040808320600160a060020a0388168452909152812055610f41565b610f1c818463ffffffff61194416565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b600654600160a060020a031681565b600160a060020a031660009081526020819052604090205490565b600754600160a060020a031681565b60035460ff1681565b60095481565b3360009081526020819052604081205482111561100b57600080fd5b600160a060020a038316151561102057600080fd5b33600090815260208190526040902054611040908363ffffffff61194416565b3360009081526020819052604080822092909255600160a060020a03851681522054611072908363ffffffff61195616565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60035460ff1615611129576040805160e560020a62461bcd02815260206004820152601d60248201527f537562636861696e20697320616c7265616479206368616c656e676564000000604482015290519081900360640190fd5b60048054600554604080517f401e3367000000000000000000000000000000000000000000000000000000008152339481019490945230602485015260448401859052606484019190915251600160a060020a039091169163401e33679160848083019260209291908290030181600087803b1580156111a857600080fd5b505af11580156111bc573d6000803e3d6000fd5b505050506040513d60208110156111d257600080fd5b505115156111df57600080fd5b336000908152602081905260409020546111ff908263ffffffff61195616565b3360009081526020819052604090205550565b600a81905560048054600654600554604080517f401e3367000000000000000000000000000000000000000000000000000000008152600160a060020a03938416958101959095523060248601526044850186905260648501919091525191169163401e33679160848083019260209291908290030181600087803b1580156106b757600080fd5b60035460ff1615156112f6576040805160e560020a62461bcd02815260206004820152601260248201527f6e6f7420796574206368616c6c656e6765640000000000000000000000000000604482015290519081900360640190fd5b600954600360019054906101000a9004600160a060020a0316600160a060020a031663530230716040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561134c57600080fd5b505af1158015611360573d6000803e3d6000fd5b505050506040513d602081101561137657600080fd5b5051600354604080517f0236b81700000000000000000000000000000000000000000000000000000000815260048101869052905163ffffffff90931692610100909204600160a060020a031691630236b817916024808201926020929091908290030181600087803b1580156113ec57600080fd5b505af1158015611400573d6000803e3d6000fd5b505050506040513d602081101561141657600080fd5b5051011161146e576040805160e560020a62461bcd02815260206004820152601960248201527f6368616c6c656e67696e6754696d6520746f6f206561726c7900000000000000604482015290519081900360640190fd5b600354600654604080517f49469146000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018590529051610100909304909116916349469146916044808201926020929091908290030181600087803b1580156114e657600080fd5b505af11580156114fa573d6000803e3d6000fd5b505050506040513d602081101561151057600080fd5b505115611567576040805160e560020a62461bcd02815260206004820152601e60248201527f61726269747261746f72206973206e6f742077686974652d6c69737465640000604482015290519081900360640190fd5b60048054600854600554604080517fcf54a3d3000000000000000000000000000000000000000000000000000000008152600160a060020a039384169581019590955260006024860181905260448601879052606486019290925251919092169263cf54a3d39260848083019360209390929083900390910190829087803b1580156115f257600080fd5b505af1158015611606573d6000803e3d6000fd5b505050506040513d602081101561161c57600080fd5b50511515611674576040805160e560020a62461bcd02815260206004820152601860248201527f686173426f785769746864726177616c203d3d66616c73650000000000000000604482015290519081900360640190fd5b60048054600854600a546040805160e160020a632be7f777028152600160a060020a03938416958101959095526002909102602485015260448401859052519116916357cfeeee9160648083019260209291908290030181600087803b1580156116dd57600080fd5b505af11580156116f1573d6000803e3d6000fd5b505050506040513d602081101561170757600080fd5b5051151561175f576040805160e560020a62461bcd02815260206004820152600f60248201527f7472616e73666572206661696c65640000000000000000000000000000000000604482015290519081900360640190fd5b60048054600a54604080517fa53171a40000000000000000000000000000000000000000000000000000000081526000948101859052600290920260248301526044820185905251600160a060020a039092169263a53171a4926064808401936020939083900390910190829087803b1580156117db57600080fd5b505af11580156117ef573d6000803e3d6000fd5b505050506040513d602081101561180557600080fd5b505115156106ee576040805160e560020a62461bcd02815260206004820152601b60248201527f207265636f7264426f785769746864726177616c206661696c65640000000000604482015290519081900360640190fd5b6003546101009004600160a060020a031681565b336000908152600260209081526040808320600160a060020a03861684529091528120546118a5908363ffffffff61195616565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600454600160a060020a031681565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60008282111561195057fe5b50900390565b8181018281101561196357fe5b929150505600a165627a7a72305820090be7ae5cc364060c44919dcb30af82fbd8c8fea7f42f5b93c2ce5d94fff7530029",
"sourceMap": "809:3431:5:-;;;921:32;;;-1:-1:-1;;921:32:5;;;1217:272;5:2:-1;;;;30:1;27;20:12;5:2;1217:272:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1356:10;:24;;-1:-1:-1;;;;;1356:24:5;;;-1:-1:-1;;;;;;1356:24:5;;;;;;;1390:7;:18;;;;;1356:24;1390:18;-1:-1:-1;;;;;;1390:18:5;;;;;;;;;;1418:13;:30;;;;1458:10;:24;;;;;;;;;;;809:3431;;;;;;",
"deployedSourceMap": "809:3431:5:-;;;;;;;;;-1:-1:-1;;;809:3431:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1814:188:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1814:188:14;-1:-1:-1;;;;;1814:188:14;;;;;;;;;;;;;;;;;;;;;;;;;389:83:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:83:11;;;;;;;;;;;;;;;;;;;;726:470:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;726:470:14;-1:-1:-1;;;;;726:470:14;;;;;;;;;;;;1930:249:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1930:249:5;;;;;;;2185:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2185:251:5;;;;2447:363;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2447:363:5;;;;;;;1035:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1035:28:5;;;;1126:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1126:25:5;;;;;;;;-1:-1:-1;;;;;1126:25:5;;;;;;;;;;;;;;2930:513;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2930:513:5;;;;;1191:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1191:19:5;;;;3679:432:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3679:432:14;-1:-1:-1;;;;;3679:432:14;;;;;;;1069:25:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1069:25:5;;;;1149:99:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1149:99:11;-1:-1:-1;;;;;1149:99:11;;;;;1100:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1100:20:5;;;;921:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;921:32:5;;;;1157:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1157:28:5;;;;626:321:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;626:321:11;-1:-1:-1;;;;;626:321:11;;;;;;;1662:258:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1662:258:5;;;;;1495:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1495:157:5;;;;;3583:655;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3583:655:5;;;;;959:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;959:31:5;;;;2926:296:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2926:296:14;-1:-1:-1;;;;;2926:296:14;;;;;;;996:33:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;996:33:5;;;;2321:153:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2321:153:14;-1:-1:-1;;;;;2321:153:14;;;;;;;;;;1814:188;1901:10;1881:4;1893:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;1893:29:14;;;;;;;;;;;:38;;;1942;;;;;;;1881:4;;1893:29;;1901:10;;1942:38;;;;;;;;-1:-1:-1;1993:4:14;1814:188;;;;:::o;389:83:11:-;455:12;;389:83;:::o;726:470:14:-;-1:-1:-1;;;;;864:15:14;;832:4;864:15;;;;;;;;;;;854:25;;;846:34;;;;;;-1:-1:-1;;;;;904:14:14;;;;;;:7;:14;;;;;;;;919:10;904:26;;;;;;;;894:36;;;886:45;;;;;;-1:-1:-1;;;;;945:17:14;;;;937:26;;;;;;-1:-1:-1;;;;;988:15:14;;:8;:15;;;;;;;;;;;:27;;1008:6;988:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;970:15:14;;;:8;:15;;;;;;;;;;;:45;;;;1037:13;;;;;;;:25;;1055:6;1037:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1021:13:14;;;:8;:13;;;;;;;;;;;:41;;;;1097:14;;;;;:7;:14;;;;;1112:10;1097:26;;;;;;;:38;;1128:6;1097:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1068:14:14;;;;;;;:7;:14;;;;;;;;1083:10;1068:26;;;;;;;;:67;;;;1146:28;;;;;;;;;;;1068:14;;1146:28;;;;;;;;;;;-1:-1:-1;1187:4:14;726:470;;;;;:::o;1930:249:5:-;1988:12;;;;1987:13;1979:55;;;;;-1:-1:-1;;;;;1979:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2076:10;2067:8;:20;;;;;;;;;;;:32;;2092:6;2067:32;:24;:32;:::i;:::-;2053:10;2044:8;:20;;;;;;;;;;;:55;;;;2117:10;;;2157:13;;2117:54;;-1:-1:-1;;;;;2117:54:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2117:10:5;;;;:19;;:54;;;;;;;;;;;;;;:10;:54;;;5:2:-1;;;;30:1;27;20:12;5:2;2117:54:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2117:54:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2117:54:5;2109:63;;;;;;;;1930:249;:::o;2185:251::-;2234:12;:19;;-1:-1:-1;;2234:19:5;2249:4;2234:19;;;2263:10;:23;;-1:-1:-1;;2263:23:5;2276:10;2263:23;;;;;;2312:3;2296:13;:19;2333:10;;;2375:4;;2381:13;;2333:62;;;;;;;;;;;;;2369:4;2333:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2333:10:5;;;;;:23;;:62;;;;;;;;;;;;;;;2234:12;2333:10;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;2333:62:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2333:62:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2333:62:5;2325:104;;;;;;;-1:-1:-1;;;;;2325:104:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2185:251::o;2447:363::-;2534:12;;;;2526:43;;;;;;;-1:-1:-1;;;;;2526:43:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;2587:10;;;2646:13;;2587:73;;;;;;2615:10;2587:73;;;;;;;:10;:73;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2587:10:5;;;;:27;;:73;;;;;;;;;;;;;;;;:10;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;2587:73:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2587:73:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2587:73:5;2579:82;;;;;;;;2679:10;;;:47;;;-1:-1:-1;;;;;2679:47:5;;2699:10;2679:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2679:10:5;;;;:19;;:47;;;;;;;;;;;;;;:10;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;2679:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2679:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2679:47:5;2671:56;;;;;;;;2745:10;;;:57;;;;;;:10;:57;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2745:10:5;;;;:30;;:57;;;;;;;;;;;;;;;;;:10;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;2745:57:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2745:57:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2745:57:5;2737:66;;;;;;;;2447:363;;:::o;1035:28::-;;;;:::o;1126:25::-;;;-1:-1:-1;;;;;1126:25:5;;:::o;2930:513::-;3004:12;;;;2996:43;;;;;;;-1:-1:-1;;;;;2996:43:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3118:13;;3091:7;;;;;;;;;-1:-1:-1;;;;;3091:7:5;-1:-1:-1;;;;;3091:22:5;;:24;;;;;-1:-1:-1;;;3091:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3091:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3091:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3091:24:5;3057:7;;:31;;;;;;;;;;;;;;:58;;;;;:7;;;;-1:-1:-1;;;;;3057:7:5;;:23;;:31;;;;;3091:24;;3057:31;;;;;;;;-1:-1:-1;3057:7:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;3057:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3057:31:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3057:31:5;:58;:74;3049:83;;;;;;3150:7;;3182:10;;3150:51;;;;;;-1:-1:-1;;;;;3182:10:5;;;3150:51;;;;;;;;;;;;:7;;;;;;;;:31;;:51;;;;;;;;;;;;;;;-1:-1:-1;3150:7:5;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;3150:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3150:51:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3150:51:5;3142:60;;;;;;;;3220:10;;;3248;;3279:13;;3220:73;;;;;;-1:-1:-1;;;;;3248:10:5;;;3220:73;;;;;;;:10;:73;;;;;;;;;;;;;;;;;;;;:10;;;;;:27;;:73;;;;;;;;;;;;;;;;;;;:10;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;3220:73:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3220:73:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3220:73:5;3212:82;;;;;;;;3312:10;;;3332;;3346:4;;3312:47;;;-1:-1:-1;;;;;3312:47:5;;-1:-1:-1;;;;;3332:10:5;;;3312:47;;;;;;;3344:1;:6;;;3312:47;;;;;;;;;;;:10;;;:19;;:47;;;;;;;;;;;;;;:10;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;3312:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3312:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3312:47:5;3304:56;;;;;;;;3378:10;;;3422:4;;3378:57;;;;;;:10;:57;;;;;;3420:1;:6;;;3378:57;;;;;;;;;;;-1:-1:-1;;;;;3378:10:5;;;;:30;;:57;;;;;;;;;;;;;;;;;:10;:57;;;5:2:-1;;;;30:1;27;20:12;1191:19:5;;;;:::o;3679:432:14:-;3826:10;3785:4;3818:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3818:29:14;;;;;;;;;;3857:28;;;3853:165;;3903:10;3927:1;3895:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3895:29:14;;;;;;;;;:33;3853:165;;;3981:30;:8;3994:16;3981:30;:12;:30;:::i;:::-;3957:10;3949:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3949:29:14;;;;;;;;;:62;3853:165;4037:10;4059:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;4028:61:14;;4059:29;;;;;;;;;;;4028:61;;;;;;;;;4037:10;4028:61;;;;;;;;;;;-1:-1:-1;4102:4:14;;3679:432;-1:-1:-1;;;3679:432:14:o;1069:25:5:-;;;-1:-1:-1;;;;;1069:25:5;;:::o;1149:99:11:-;-1:-1:-1;;;;;1227:16:11;1205:7;1227:16;;;;;;;;;;;;1149:99::o;1100:20:5:-;;;-1:-1:-1;;;;;1100:20:5;;:::o;921:32::-;;;;;;:::o;1157:28::-;;;;:::o;626:321:11:-;728:10;689:4;719:20;;;;;;;;;;;709:30;;;701:39;;;;;;-1:-1:-1;;;;;754:17:11;;;;746:26;;;;;;811:10;802:8;:20;;;;;;;;;;;:32;;827:6;802:32;:24;:32;:::i;:::-;788:10;779:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;856:13:11;;;;;;:25;;874:6;856:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;840:13:11;;:8;:13;;;;;;;;;;;;:41;;;;892:33;;;;;;;840:13;;901:10;;892:33;;;;;;;;;;-1:-1:-1;938:4:11;626:321;;;;:::o;1662:258:5:-;1719:12;;;;1718:13;1710:55;;;;;-1:-1:-1;;;;;1710:55:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1783:10;;;1833:13;;1783:64;;;;;;1807:10;1783:64;;;;;;;1819:4;1783:64;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1783:10:5;;;;:23;;:64;;;;;;;;;;;;;;:10;;:64;;;5:2:-1;;;;30:1;27;20:12;5:2;1783:64:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1783:64:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1783:64:5;1775:73;;;;;;;;1890:10;1881:8;:20;;;;;;;;;;;:32;;1906:6;1881:32;:24;:32;:::i;:::-;1867:10;1858:8;:20;;;;;;;;;;:55;-1:-1:-1;1662:258:5:o;1495:157::-;1552:4;:12;;;1582:10;;;1606;;1630:13;;1582:62;;;;;;-1:-1:-1;;;;;1606:10:5;;;1582:62;;;;;;;1618:4;1582:62;;;;;;;;;;;;;;;;;;:10;;;:23;;:62;;;;;;;;;;;;;;:10;;:62;;;5:2:-1;;;;30:1;27;20:12;3583:655:5;3657:12;;;;3649:43;;;;;;;-1:-1:-1;;;;;3649:43:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3771:13;;3744:7;;;;;;;;;-1:-1:-1;;;;;3744:7:5;-1:-1:-1;;;;;3744:22:5;;:24;;;;;-1:-1:-1;;;3744:24:5;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:24:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:24:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3744:24:5;3710:7;;:31;;;;;;;;;;;;;;:58;;;;;:7;;;;-1:-1:-1;;;;;3710:7:5;;:23;;:31;;;;;3744:24;;3710:31;;;;;;;;-1:-1:-1;3710:7:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;3710:31:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3710:31:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3710:31:5;:58;:74;3702:112;;;;;-1:-1:-1;;;;;3702:112:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3833:7;;3865:10;;3833:51;;;;;;-1:-1:-1;;;;;3865:10:5;;;3833:51;;;;;;;;;;;;:7;;;;;;;;:31;;:51;;;;;;;;;;;;;;;-1:-1:-1;3833:7:5;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;3833:51:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3833:51:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3833:51:5;3832:52;3824:95;;;;;-1:-1:-1;;;;;3824:95:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3937:10;;;3965;;3996:13;;3937:73;;;;;;-1:-1:-1;;;;;3965:10:5;;;3937:73;;;;;;;:10;:73;;;;;;;;;;;;;;;;;;;;:10;;;;;:27;;:73;;;;;;;;;;;;;;;;;;;:10;:73;;;5:2:-1;;;;30:1;27;20:12;5:2;3937:73:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3937:73:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3937:73:5;3929:110;;;;;;;-1:-1:-1;;;;;3929:110:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;4057:10;;;4077;;4091:4;;4057:47;;;-1:-1:-1;;;;;4057:47:5;;-1:-1:-1;;;;;4077:10:5;;;4057:47;;;;;;;4089:1;:6;;;4057:47;;;;;;;;;;;:10;;;:19;;:47;;;;;;;;;;;;;;:10;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;4057:47:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4057:47:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4057:47:5;4049:75;;;;;;;-1:-1:-1;;;;;4049:75:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;4142:10;;;4186:4;;4142:57;;;;;;:10;:57;;;;;;4184:1;:6;;;4142:57;;;;;;;;;;;-1:-1:-1;;;;;4142:10:5;;;;:30;;:57;;;;;;;;;;;;;;;;;:10;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;4142:57:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4142:57:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4142:57:5;4134:97;;;;;;;-1:-1:-1;;;;;4134:97:5;;;;;;;;;;;;;;;;;;;;;;;;;;;959:31;;;;;;-1:-1:-1;;;;;959:31:5;;:::o;2926:296:14:-;3089:10;3027:4;3081:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3081:29:14;;;;;;;;;;:46;;3115:11;3081:46;:33;:46;:::i;:::-;3049:10;3041:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3041:29:14;;;;;;;;;;;;:87;;;3139:61;;;;;;3041:29;;3139:61;;;;;;;;;;;-1:-1:-1;3213:4:14;2926:296;;;;:::o;996:33:5:-;;;-1:-1:-1;;;;;996:33:5;;:::o;2321:153:14:-;-1:-1:-1;;;;;2444:15:14;;;2420:7;2444:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2321:153::o;1060:116:10:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:10;;;1060:116::o;1238:128::-;1319:7;;;1339;;;;1332:15;;;;1238:128;;;;:::o",
"source": "pragma solidity ^0.4.22;\n\nimport \"./ForkonomicToken.sol\";\nimport \"./ForkonomicSystem.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n/* THis contract allows people to use the ERC20 standard for their forkonomicTokens. \nThe ERC20 stnadard can be used and all answers from the abritrator are processedvery quickly,\nuntil he is getting malicious. Then this needs to be reported by challengeing the arbitrator\nin this contracts.\n\nOnce the arbitrator is challenged, eveyone needs to withdraw their funds using the forkonomic \nprotocoll. Smart contracts using this token as collateral should aksi process the tokens\n with the usual forkonomic protcoll and can no longer reley on this quick process.\"\n*/\n\n// bondedWorldView\n\ncontract SubChain is StandardToken {\n using SafeMath for uint256;\n\n bytes32 constant NULL_HASH = \"\";\n\n bool public isChallenged = false;\n ForkonomicSystem public fSystem;\n ForkonomicToken public collateral;\n bytes32 public fundingBranch;\n address public arbitrator;\n address public owner;\n address public challenger;\n uint256 public challengeTime;\n uint256 public bond;\n\n constructor( ForkonomicToken collateral_, ForkonomicSystem fSystem_,\n bytes32 fundingBranch_, address arbitrator_) public {\n collateral = collateral_;\n fSystem = fSystem_;\n fundingBranch = fundingBranch_;\n arbitrator = arbitrator_;\n }\n\n function providInitialBond (uint bond_) public {\n bond = bond_;\n require(collateral.transferFrom(arbitrator, this, bond, fundingBranch));\n }\n \n function deposit (uint amount) public {\n require(!isChallenged, \"Subchain is already chalenged\");\n require(collateral.transferFrom(msg.sender, this, amount, fundingBranch));\n balances[msg.sender] = balances[msg.sender].add(amount);\n }\n \n function withdraw (uint amount) public {\n require(!isChallenged, \"Subchain is already chalenged\");\n balances[msg.sender] = balances[msg.sender].sub(amount);\n require(collateral.transfer(msg.sender, amount, fundingBranch));\n }\n\n function challengeArbitrator () public {\n isChallenged = true;\n challenger = msg.sender;\n challengeTime = now;\n require(collateral.transferFrom(msg.sender, this, bond, fundingBranch), \"transferFrom was not possible\");\n }\n \n function withdrawAfterChallenge (uint amount, bytes32 branch) public {\n require(isChallenged, \"not yet challenged\");\n require(collate