More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 79 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Redeem | 4426201 | 2681 days ago | IN | 0 ETH | 0.00022704 | ||||
Create | 4425759 | 2681 days ago | IN | 0.005 ETH | 0.00082069 | ||||
Redeem | 4213371 | 2739 days ago | IN | 0 ETH | 0.00147588 | ||||
Redeem | 4167386 | 2750 days ago | IN | 0 ETH | 0.00095907 | ||||
Create | 4140357 | 2757 days ago | IN | 0.02 ETH | 0.00054738 | ||||
Create | 4132590 | 2759 days ago | IN | 0.1 ETH | 0.00287376 | ||||
Redeem | 4131469 | 2759 days ago | IN | 0 ETH | 0.00140432 | ||||
Create | 4131063 | 2759 days ago | IN | 0.01 ETH | 0.00287376 | ||||
Redeem | 4126447 | 2760 days ago | IN | 0 ETH | 0.00147856 | ||||
Create | 4126110 | 2760 days ago | IN | 0.01 ETH | 0.00287376 | ||||
Create | 4126101 | 2760 days ago | IN | 0.01 ETH | 0.0021 | ||||
Redeem | 4121264 | 2762 days ago | IN | 0 ETH | 0.00092352 | ||||
Create | 4120168 | 2762 days ago | IN | 0.01 ETH | 0.00287242 | ||||
Redeem | 4086251 | 2770 days ago | IN | 0 ETH | 0.00094953 | ||||
Create | 4086245 | 2770 days ago | IN | 0.1 ETH | 0.00287376 | ||||
Redeem | 4086228 | 2770 days ago | IN | 0 ETH | 0.00095356 | ||||
Create | 4086224 | 2770 days ago | IN | 0.05 ETH | 0.00287376 | ||||
Redeem | 4073216 | 2773 days ago | IN | 0 ETH | 0.00154756 | ||||
Create | 4067478 | 2774 days ago | IN | 0.025 ETH | 0.00273692 | ||||
Is Owner | 4048045 | 2778 days ago | IN | 0 ETH | 0.00106 | ||||
Execute | 4048029 | 2778 days ago | IN | 0 ETH | 0.00455484 | ||||
Execute | 4048025 | 2778 days ago | IN | 0 ETH | 0.00087122 | ||||
Redeem | 4040683 | 2780 days ago | IN | 0 ETH | 0.00102297 | ||||
Create | 4040648 | 2780 days ago | IN | 0.05 ETH | 0.00287376 | ||||
Create | 4035366 | 2781 days ago | IN | 0.005 ETH | 0.00410538 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
4426201 | 2681 days ago | 0.005 ETH | ||||
4213371 | 2739 days ago | 0.02 ETH | ||||
4167386 | 2750 days ago | 0.1 ETH | ||||
4131469 | 2759 days ago | 0.01 ETH | ||||
4126447 | 2760 days ago | 0.01 ETH | ||||
4121264 | 2762 days ago | 0.01 ETH | ||||
4086251 | 2770 days ago | 0.1 ETH | ||||
4086228 | 2770 days ago | 0.05 ETH | ||||
4073216 | 2773 days ago | 0.025 ETH | ||||
4040683 | 2780 days ago | 0.05 ETH | ||||
4024985 | 2783 days ago | 0.022 ETH | ||||
4024720 | 2783 days ago | 0.03 ETH | ||||
4024598 | 2783 days ago | 0.017 ETH | ||||
4024542 | 2783 days ago | 0.03 ETH | ||||
4021591 | 2784 days ago | 0.005 ETH | ||||
4012046 | 2786 days ago | 0.005 ETH | ||||
3977683 | 2793 days ago | 0.01 ETH | ||||
3968656 | 2795 days ago | 0.005 ETH | ||||
3963563 | 2796 days ago | 0.1 ETH | ||||
3963529 | 2796 days ago | 0.1 ETH | ||||
3952685 | 2798 days ago | 0.02999999 ETH | ||||
3948259 | 2799 days ago | 0.005 ETH | ||||
3944849 | 2800 days ago | 0.001 ETH | ||||
3943636 | 2800 days ago | 0.01 ETH | ||||
3943154 | 2800 days ago | 0.02 ETH |
Loading...
Loading
Contract Name:
EtherCheque
Compiler Version
v0.4.11+commit.68ef5810
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-06-26 */ pragma solidity ^0.4.11; // copyright [email protected] contract EtherCheque { enum Status { NONE, CREATED, LOCKED, EXPIRED, USED} enum ResultCode { SUCCESS, ERROR_MAX, ERROR_MIN, ERROR_EXIST, ERROR_NOT_EXIST, ERROR_INVALID_STATUS, ERROR_LOCKED, ERROR_EXPIRED, ERROR_INVALID_AMOUNT, ERROR_USED } struct Cheque { bytes32 pinHash; // we only save sha3 of cheque signature address creator; Status status; uint value; uint createTime; uint expiringPeriod; // in seconds - optional, 0 mean no expire uint8 attempt; // current attempt account to cash the cheque } address public owner; address[] public moderators; uint public totalCheque = 0; uint public totalChequeValue = 0; uint public totalRedeemedCheque = 0; uint public totalRedeemedValue = 0; uint public commissionRate = 10; // div 1000 uint public minFee = 0.005 ether; uint public minChequeValue = 0.01 ether; uint public maxChequeValue = 0; // optional, 0 mean no limit uint8 public maxAttempt = 3; bool public isMaintaining = false; // hash cheque no -> Cheque info mapping(bytes32 => Cheque) items; // modifier modifier onlyOwner() { require(msg.sender == owner); _; } modifier isActive { if(isMaintaining == true) throw; _; } modifier onlyModerators() { if (msg.sender != owner) { bool found = false; for (uint index = 0; index < moderators.length; index++) { if (moderators[index] == msg.sender) { found = true; break; } } if (!found) throw; } _; } function EtherCheque() { owner = msg.sender; } // event event LogCreate(bytes32 indexed chequeIdHash, uint result, uint amount); event LogRedeem(bytes32 indexed chequeIdHash, ResultCode result, uint amount, address receiver); event LogWithdrawEther(address indexed sendTo, ResultCode result, uint amount); event LogRefundCheque(bytes32 indexed chequeIdHash, ResultCode result); // owner function function ChangeOwner(address _newOwner) onlyOwner { owner = _newOwner; } function Kill() onlyOwner { suicide(owner); } function AddModerator(address _newModerator) onlyOwner { for (uint index = 0; index < moderators.length; index++) { if (moderators[index] == _newModerator) { return; } } moderators.push(_newModerator); } function RemoveModerator(address _oldModerator) onlyOwner { uint foundIndex = 0; for (; foundIndex < moderators.length; foundIndex++) { if (moderators[foundIndex] == _oldModerator) { break; } } if (foundIndex < moderators.length) { moderators[foundIndex] = moderators[moderators.length-1]; delete moderators[moderators.length-1]; moderators.length--; } } // moderator function function SetCommissionRate(uint _commissionRate) onlyModerators { commissionRate = _commissionRate; } function SetMinFee(uint _minFee) onlyModerators { minFee = _minFee; } function SetMinChequeValue(uint _minChequeValue) onlyModerators { minChequeValue = _minChequeValue; } function SetMaxChequeValue(uint _maxChequeValue) onlyModerators { maxChequeValue = _maxChequeValue; } function SetMaxAttempt(uint8 _maxAttempt) onlyModerators { maxAttempt = _maxAttempt; } function UpdateMaintenance(bool _isMaintaining) onlyModerators { isMaintaining = _isMaintaining; } function WithdrawEther(address _sendTo, uint _amount) onlyModerators returns(ResultCode) { // can only can withdraw profit - unable to withdraw cheque value uint currentProfit = this.balance - (totalChequeValue - totalRedeemedValue); if (_amount > currentProfit) { LogWithdrawEther(_sendTo, ResultCode.ERROR_INVALID_AMOUNT, 0); return ResultCode.ERROR_INVALID_AMOUNT; } _sendTo.transfer(_amount); LogWithdrawEther(_sendTo, ResultCode.SUCCESS, _amount); return ResultCode.SUCCESS; } // only when creator wants to get the money back // only can refund back to creator function RefundChequeById(string _chequeId) onlyModerators returns(ResultCode) { bytes32 chequeIdHash = sha3(_chequeId); Cheque cheque = items[chequeIdHash]; if (cheque.status == Status.NONE) { LogRefundCheque(chequeIdHash, ResultCode.ERROR_NOT_EXIST); return ResultCode.ERROR_NOT_EXIST; } if (cheque.status == Status.USED) { LogRefundCheque(chequeIdHash, ResultCode.ERROR_USED); return ResultCode.ERROR_USED; } totalRedeemedCheque += 1; totalRedeemedValue += cheque.value; uint sendAmount = cheque.value; cheque.status = Status.USED; cheque.value = 0; cheque.creator.transfer(sendAmount); LogRefundCheque(chequeIdHash, ResultCode.SUCCESS); return ResultCode.SUCCESS; } function RefundChequeByHash(uint256 _chequeIdHash) onlyModerators returns(ResultCode) { bytes32 chequeIdHash = bytes32(_chequeIdHash); Cheque cheque = items[chequeIdHash]; if (cheque.status == Status.NONE) { LogRefundCheque(chequeIdHash, ResultCode.ERROR_NOT_EXIST); return ResultCode.ERROR_NOT_EXIST; } if (cheque.status == Status.USED) { LogRefundCheque(chequeIdHash, ResultCode.ERROR_USED); return ResultCode.ERROR_USED; } totalRedeemedCheque += 1; totalRedeemedValue += cheque.value; uint sendAmount = cheque.value; cheque.status = Status.USED; cheque.value = 0; cheque.creator.transfer(sendAmount); LogRefundCheque(chequeIdHash, ResultCode.SUCCESS); return ResultCode.SUCCESS; } function GetChequeInfoByHash(uint256 _chequeIdHash) onlyModerators constant returns(Status, uint, uint, uint) { bytes32 chequeIdHash = bytes32(_chequeIdHash); Cheque cheque = items[chequeIdHash]; if (cheque.status == Status.NONE) return (Status.NONE, 0, 0, 0); if (cheque.expiringPeriod > 0) { uint timeGap = now; if (timeGap > cheque.createTime) timeGap = timeGap - cheque.createTime; else timeGap = 0; if (cheque.expiringPeriod > timeGap) return (cheque.status, cheque.value, cheque.attempt, cheque.expiringPeriod - timeGap); else return (Status.EXPIRED, cheque.value, cheque.attempt, 0); } return (cheque.status, cheque.value, cheque.attempt, 0); } function VerifyCheque(string _chequeId, string _pin) onlyModerators constant returns(ResultCode, Status, uint, uint, uint) { bytes32 chequeIdHash = sha3(_chequeId); Cheque cheque = items[chequeIdHash]; if (cheque.status == Status.NONE) { return (ResultCode.ERROR_NOT_EXIST, Status.NONE, 0, 0, 0); } if (cheque.status == Status.USED) { return (ResultCode.ERROR_USED, Status.USED, 0, 0, 0); } if (cheque.pinHash != sha3(_chequeId, _pin)) { return (ResultCode.ERROR_INVALID_STATUS, Status.NONE, 0, 0, 0); } return (ResultCode.SUCCESS, cheque.status, cheque.value, cheque.attempt, 0); } // constant function function GetChequeInfo(string _chequeId) constant returns(Status, uint, uint, uint) { bytes32 hashChequeId = sha3(_chequeId); Cheque cheque = items[hashChequeId]; if (cheque.status == Status.NONE) return (Status.NONE, 0, 0, 0); if (cheque.expiringPeriod > 0) { uint timeGap = now; if (timeGap > cheque.createTime) timeGap = timeGap - cheque.createTime; else timeGap = 0; if (cheque.expiringPeriod > timeGap) return (cheque.status, cheque.value, cheque.attempt, cheque.expiringPeriod - timeGap); else return (Status.EXPIRED, cheque.value, cheque.attempt, 0); } return (cheque.status, cheque.value, cheque.attempt, 0); } // transaction function Create(uint256 _chequeIdHash, uint256 _pinHash, uint32 _expiringPeriod) payable isActive returns(ResultCode) { // condition: // 1. check min value // 2. check _chequeId exist or not bytes32 chequeIdHash = bytes32(_chequeIdHash); bytes32 pinHash = bytes32(_pinHash); uint chequeValue = 0; // deduct commission uint commissionFee = (msg.value / 1000) * commissionRate; if (commissionFee < minFee) { commissionFee = minFee; } if (msg.value < commissionFee) { msg.sender.transfer(msg.value); LogCreate(chequeIdHash, uint(ResultCode.ERROR_INVALID_AMOUNT), chequeValue); return ResultCode.ERROR_INVALID_AMOUNT; } chequeValue = msg.value - commissionFee; if (chequeValue < minChequeValue) { msg.sender.transfer(msg.value); LogCreate(chequeIdHash, uint(ResultCode.ERROR_MIN), chequeValue); return ResultCode.ERROR_MIN; } if (maxChequeValue > 0 && chequeValue > maxChequeValue) { msg.sender.transfer(msg.value); LogCreate(chequeIdHash, uint(ResultCode.ERROR_MAX), chequeValue); return ResultCode.ERROR_MAX; } if (items[chequeIdHash].status != Status.NONE && items[chequeIdHash].status != Status.USED) { msg.sender.transfer(msg.value); LogCreate(chequeIdHash, uint(ResultCode.ERROR_EXIST), chequeValue); return ResultCode.ERROR_EXIST; } totalCheque += 1; totalChequeValue += chequeValue; items[chequeIdHash] = Cheque({ pinHash: pinHash, creator: msg.sender, status: Status.CREATED, value: chequeValue, createTime: now, expiringPeriod: _expiringPeriod, attempt: 0 }); LogCreate(chequeIdHash, uint(ResultCode.SUCCESS), chequeValue); return ResultCode.SUCCESS; } function Redeem(string _chequeId, string _pin, address _sendTo) payable returns (ResultCode){ // condition // 1. cheque status must exist // 2. cheque status must be CREATED status for non-creator // 3. verify attempt and expiry time for non-creator bytes32 chequeIdHash = sha3(_chequeId); Cheque cheque = items[chequeIdHash]; if (cheque.status == Status.NONE) { LogRedeem(chequeIdHash, ResultCode.ERROR_NOT_EXIST, 0, _sendTo); return ResultCode.ERROR_NOT_EXIST; } if (cheque.status == Status.USED) { LogRedeem(chequeIdHash, ResultCode.ERROR_USED, 0, _sendTo); return ResultCode.ERROR_USED; } if (msg.sender != cheque.creator) { if (cheque.status != Status.CREATED) { LogRedeem(chequeIdHash, ResultCode.ERROR_INVALID_STATUS, 0, _sendTo); return ResultCode.ERROR_INVALID_STATUS; } if (cheque.attempt > maxAttempt) { LogRedeem(chequeIdHash, ResultCode.ERROR_LOCKED, 0, _sendTo); return ResultCode.ERROR_LOCKED; } if (cheque.expiringPeriod > 0 && now > (cheque.createTime + cheque.expiringPeriod)) { LogRedeem(chequeIdHash, ResultCode.ERROR_EXPIRED, 0, _sendTo); return ResultCode.ERROR_EXPIRED; } } // check pin if (cheque.pinHash != sha3(_chequeId, _pin)) { cheque.attempt += 1; LogRedeem(chequeIdHash, ResultCode.ERROR_INVALID_STATUS, 0, _sendTo); return ResultCode.ERROR_INVALID_STATUS; } totalRedeemedCheque += 1; totalRedeemedValue += cheque.value; uint sendMount = cheque.value; cheque.status = Status.USED; cheque.value = 0; _sendTo.transfer(sendMount); LogRedeem(chequeIdHash, ResultCode.SUCCESS, sendMount, _sendTo); return ResultCode.SUCCESS; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"maxAttempt","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeId","type":"string"},{"name":"_pin","type":"string"},{"name":"_sendTo","type":"address"}],"name":"Redeem","outputs":[{"name":"","type":"uint8"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"minFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeId","type":"string"}],"name":"GetChequeInfo","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minChequeValue","type":"uint256"}],"name":"SetMinChequeValue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeId","type":"string"},{"name":"_pin","type":"string"}],"name":"VerifyCheque","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"commissionRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newModerator","type":"address"}],"name":"AddModerator","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_minFee","type":"uint256"}],"name":"SetMinFee","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"minChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"maxChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxAttempt","type":"uint8"}],"name":"SetMaxAttempt","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalRedeemedCheque","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_commissionRate","type":"uint256"}],"name":"SetCommissionRate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalChequeValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeId","type":"string"}],"name":"RefundChequeById","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_isMaintaining","type":"bool"}],"name":"UpdateMaintenance","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeIdHash","type":"uint256"},{"name":"_pinHash","type":"uint256"},{"name":"_expiringPeriod","type":"uint32"}],"name":"Create","outputs":[{"name":"","type":"uint8"}],"payable":true,"type":"function"},{"constant":true,"inputs":[],"name":"totalCheque","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalRedeemedValue","outputs":[{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_oldModerator","type":"address"}],"name":"RemoveModerator","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"moderators","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":"Kill","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_chequeIdHash","type":"uint256"}],"name":"RefundChequeByHash","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_sendTo","type":"address"},{"name":"_amount","type":"uint256"}],"name":"WithdrawEther","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_maxChequeValue","type":"uint256"}],"name":"SetMaxChequeValue","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"isMaintaining","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"ChangeOwner","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_chequeIdHash","type":"uint256"}],"name":"GetChequeInfoByHash","outputs":[{"name":"","type":"uint8"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogCreate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"receiver","type":"address"}],"name":"LogRedeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sendTo","type":"address"},{"indexed":false,"name":"result","type":"uint8"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"LogWithdrawEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"chequeIdHash","type":"bytes32"},{"indexed":false,"name":"result","type":"uint8"}],"name":"LogRefundCheque","type":"event"}]
Contract Creation Code
60606040526000600255600060035560006004556000600555600a6006556611c37937e08000600755662386f26fc1000060085560006009556003600a60006101000a81548160ff021916908360ff1602179055506000600a60016101000a81548160ff021916908315150217905550341561007757fe5b5b33600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b61339f806100ca6000396000f3006060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d5e27614610180578063164d3f3a146101ac57806324ec75901461028257806331c33669146102a85780634b57fbaf146103395780635a0024ae146103595780635ea1d6f8146104425780636c81fd6d1461046857806381d2c8711461049e578063879e84ab146104be5780638da5cb5b146104e457806393c573c014610536578063994e52671461055c5780639f351fc01461057f578063a79a416d146105a5578063a9b1ffd9146105c5578063aa2529a2146105eb578063ad7e7cfc14610667578063ad8718c214610689578063b0f239e9146106db578063b4134e6e14610701578063b85d627514610727578063bd842a111461075d578063be26733c146107bd578063cb526229146107cf578063db35132c14610811578063ddca337e14610872578063ee4e441614610892578063f2853292146108bc578063f6c1db4c146108f2575bfe5b341561018857fe5b610190610949565b604051808260ff1660ff16815260200191505060405180910390f35b61025e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095c565b6040518082600981111561026e57fe5b60ff16815260200191505060405180910390f35b341561028a57fe5b6102926110af565b6040518082815260200191505060405180910390f35b34156102b057fe5b610300600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b5565b6040518085600481111561031057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b341561034157fe5b6103576004808035906020019091905050611288565b005b341561036157fe5b6103f4600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061139b565b6040518086600981111561040457fe5b60ff16815260200185600481111561041857fe5b60ff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b341561044a57fe5b61045261170c565b6040518082815260200191505060405180910390f35b341561047057fe5b61049c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611712565b005b34156104a657fe5b6104bc600480803590602001909190505061186f565b005b34156104c657fe5b6104ce611982565b6040518082815260200191505060405180910390f35b34156104ec57fe5b6104f4611988565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053e57fe5b6105466119ae565b6040518082815260200191505060405180910390f35b341561056457fe5b61057d600480803560ff169060200190919050506119b4565b005b341561058757fe5b61058f611adb565b6040518082815260200191505060405180910390f35b34156105ad57fe5b6105c36004808035906020019091905050611ae1565b005b34156105cd57fe5b6105d5611bf4565b6040518082815260200191505060405180910390f35b34156105f357fe5b610643600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bfa565b6040518082600981111561065357fe5b60ff16815260200191505060405180910390f35b341561066f57fe5b61068760048080351515906020019091905050611faa565b005b6106b7600480803590602001909190803590602001909190803563ffffffff169060200190919050506120d0565b604051808260098111156106c757fe5b60ff16815260200191505060405180910390f35b34156106e357fe5b6106eb61261f565b6040518082815260200191505060405180910390f35b341561070957fe5b610711612625565b6040518082815260200191505060405180910390f35b341561072f57fe5b61075b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061262b565b005b341561076557fe5b61077b600480803590602001909190505061282b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107c557fe5b6107cd61286b565b005b34156107d757fe5b6107ed6004808035906020019091905050612906565b604051808260098111156107fd57fe5b60ff16815260200191505060405180910390f35b341561081957fe5b61084e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612c59565b6040518082600981111561085e57fe5b60ff16815260200191505060405180910390f35b341561087a57fe5b6108906004808035906020019091905050612eaf565b005b341561089a57fe5b6108a2612fc2565b604051808215151515815260200191505060405180910390f35b34156108c457fe5b6108f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fd5565b005b34156108fa57fe5b6109106004808035906020019091905050613078565b6040518085600481111561092057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b600a60009054906101000a900460ff1681565b6000600060006000866040518082805190602001908083835b602083106109985780518252602082019150602081019050602083039250610975565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b600084600019166000191681526020019081526020016000209150600060048111156109f157fe5b8260010160149054906101000a900460ff166004811115610a0e57fe5b1415610aa55782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600460008860405180846009811115610a4f57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600493506110a5565b60046004811115610ab257fe5b8260010160149054906101000a900460ff166004811115610acf57fe5b1415610b665782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600960008860405180846009811115610b1057fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600993506110a5565b8160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df45760016004811115610bcc57fe5b8260010160149054906101000a900460ff166004811115610be957fe5b141515610c815782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610c2b57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600a60009054906101000a900460ff1660ff168260050160009054906101000a900460ff1660ff161115610d405782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600660008860405180846009811115610cea57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600693506110a5565b60008260040154118015610d5d5750816004015482600301540142115b15610df35782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600760008860405180846009811115610d9d57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600793506110a5565b5b86866040518083805190602001908083835b60208310610e295780518252602082019150602081019050602083039250610e06565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610e7a5780518252602082019150602081019050602083039250610e57565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051809103902060001916826000015460001916141515610f7d5760018260050160008282829054906101000a900460ff160192506101000a81548160ff021916908360ff16021790555082600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610f2757fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600160046000828254019250508190555081600201546005600082825401925050819055508160020154905060048260010160146101000a81548160ff02191690836004811115610fca57fe5b0217905550600082600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f19350505050151561101957fe5b82600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600083886040518084600981111561105357fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600093505b5050509392505050565b60075481565b6000600060006000600060006000876040518082805190602001908083835b602083106110f757805182526020820191506020810190506020830392506110d4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b6000846000191660001916815260200190815260200160002091506000600481111561115057fe5b8260010160149054906101000a900460ff16600481111561116d57fe5b1415611191576000600060006000829250819150809050965096509650965061127e565b6000826004015411156112415742905081600301548111156111bb578160030154810390506111c0565b600090505b808260040154111561120f578160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff16838560040154038160ff169150965096509650965061127e565b600382600201548360050160009054906101000a900460ff1660008160ff169150809050965096509650965061127e565b5b8160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff1660008160ff16915080905096509650965096505b5050509193509193565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138d5760009150600090505b60018054905081101561137f573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561131f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611371576001915061137f565b5b80806001019150506112ec565b81151561138c5760006000fd5b5b826008819055505b5b505050565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ae5760009150600090505b6001805490508110156114a0573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561144057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561149257600191506114a0565b5b808060010191505061140d565b8115156114ad5760006000fd5b5b8a6040518082805190602001908083835b602083106114e257805182526020820191506020810190506020830392506114bf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600b6000856000191660001916815260200190815260200160002092506000600481111561153b57fe5b8360010160149054906101000a900460ff16600481111561155857fe5b14156115805760046000600060006000829250819150809050985098509850985098506116fd565b6004600481111561158d57fe5b8360010160149054906101000a900460ff1660048111156115aa57fe5b14156115d25760096004600060006000829250819150809050985098509850985098506116fd565b8a8a6040518083805190602001908083835b6020831061160757805182526020820191506020810190506020830392506115e4565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106116585780518252602082019150602081019050602083039250611635565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020600019168360000154600019161415156116bc5760056000600060006000829250819150809050985098509850985098506116fd565b60008360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff169150809050985098509850985098505b5b505050509295509295909350565b60065481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117715760006000fd5b600090505b600180549050811015611805578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156117a957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156117f75761186a565b5b8080600101915050611776565b6001805480600101828161181991906132f6565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119745760009150600090505b600180549050811015611966573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561190657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119585760019150611966565b5b80806001019150506118d3565b8115156119735760006000fd5b5b826007819055505b5b505050565b60085481565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab95760009150600090505b600180549050811015611aab573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a4b57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a9d5760019150611aab565b5b8080600101915050611a18565b811515611ab85760006000fd5b5b82600a60006101000a81548160ff021916908360ff1602179055505b5b505050565b60045481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be65760009150600090505b600180549050811015611bd8573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b7857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bca5760019150611bd8565b5b8080600101915050611b45565b811515611be55760006000fd5b5b826006819055505b5b505050565b60035481565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d075760009150600090505b600180549050811015611cf9573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611c9957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ceb5760019150611cf9565b5b8080600101915050611c66565b811515611d065760006000fd5b5b866040518082805190602001908083835b60208310611d3b5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450600b60008660001916600019168152602001908152602001600020935060006004811115611d9457fe5b8460010160149054906101000a900460ff166004811115611db157fe5b1415611e0b5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115611def57fe5b60ff16815260200191505060405180910390a260049550611f9f565b60046004811115611e1857fe5b8460010160149054906101000a900460ff166004811115611e3557fe5b1415611e8f5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115611e7357fe5b60ff16815260200191505060405180910390a260099550611f9f565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115611edc57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515611f4f57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115611f8757fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120af5760009150600090505b6001805490508110156120a1573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561204157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561209357600191506120a1565b5b808060010191505061200e565b8115156120ae5760006000fd5b5b82600a60016101000a81548160ff0219169083151502179055505b5b505050565b6000600060006000600060011515600a60019054906101000a900460ff16151514156120fc5760006000fd5b876001029350866001029250600091506006546103e83481151561211c57fe5b040290506007548110156121305760075490505b803410156121d1573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561217857fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600860098111156121ab57fe5b84604051808381526020018281526020019250505060405180910390a260089450612613565b8034039150600854821015612279573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561222057fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96002600981111561225357fe5b84604051808381526020018281526020019250505060405180910390a260029450612613565b600060095411801561228c575060095482115b1561232a573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f1935050505015156122d157fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96001600981111561230457fe5b84604051808381526020018281526020019250505060405180910390a260019450612613565b6000600481111561233757fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff16600481111561236e57fe5b141580156123be57506004600481111561238457fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff1660048111156123bb57fe5b14155b1561245c573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561240357fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96003600981111561243657fe5b84604051808381526020018281526020019250505060405180910390a260039450612613565b60016002600082825401925050819055508160036000828254019250508190555060e060405190810160405280846000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600160048111156124bc57fe5b81526020018381526020014281526020018763ffffffff168152602001600060ff16815250600b600086600019166000191681526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083600481111561257757fe5b0217905550606082015181600201556080820151816003015560a0820151816004015560c08201518160050160006101000a81548160ff021916908360ff16021790555090505083600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600060098111156125f157fe5b84604051808381526020018281526020019250505060405180910390a2600094505b5b505050509392505050565b60025481565b60055481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268a5760006000fd5b600090505b60018054905081101561271e578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156126c257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127105761271e565b5b808060010191505061268f565b60018054905081101561282557600160016001805490500381548110151561274257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561277e57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016001600180549050038154811015156127df57fe5b906000526020600020900160005b6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036128239190613322565b505b5b5b5050565b60018181548110151561283a57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c85760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a135760009150600090505b600180549050811015612a05573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156129a557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156129f75760019150612a05565b5b8080600101915050612972565b811515612a125760006000fd5b5b866001029450600b60008660001916600019168152602001908152602001600020935060006004811115612a4357fe5b8460010160149054906101000a900460ff166004811115612a6057fe5b1415612aba5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115612a9e57fe5b60ff16815260200191505060405180910390a260049550612c4e565b60046004811115612ac757fe5b8460010160149054906101000a900460ff166004811115612ae457fe5b1415612b3e5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115612b2257fe5b60ff16815260200191505060405180910390a260099550612c4e565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115612b8b57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515612bfe57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115612c3657fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b6000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d625760009150600090505b600180549050811015612d54573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612cf457fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d465760019150612d54565b5b8080600101915050612cc1565b811515612d615760006000fd5b5b600554600354033073ffffffffffffffffffffffffffffffffffffffff163103925082851115612dfb578573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c46008600060405180836009811115612dd857fe5b60ff1681526020018281526020019250505060405180910390a260089350612ea5565b8573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051809050600060405180830381858888f193505050501515612e3b57fe5b8573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c460008760405180836009811115612e8657fe5b60ff1681526020018281526020019250505060405180910390a2600093505b5b50505092915050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fb45760009150600090505b600180549050811015612fa6573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f4657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f985760019150612fa6565b5b8080600101915050612f13565b811515612fb35760006000fd5b5b826009819055505b5b505050565b600a60019054906101000a900460ff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130325760006000fd5b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318b5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311d57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561316f576001915061317d565b5b80806001019150506130ea565b81151561318a5760006000fd5b5b896001029450600b600086600019166000191681526020019081526020016000209350600060048111156131bb57fe5b8460010160149054906101000a900460ff1660048111156131d857fe5b14156131fc57600060006000600082925081915080905098509850985098506132e9565b6000846004015411156132ac5742925083600301548311156132265783600301548303925061322b565b600092505b828460040154111561327a578360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff16858760040154038160ff16915098509850985098506132e9565b600384600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098506132e9565b5b8360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098505b5b50505050509193509193565b81548183558181151161331d5781836000526020600020918201910161331c919061334e565b5b505050565b81548183558181151161334957818360005260206000209182019101613348919061334e565b5b505050565b61337091905b8082111561336c576000816000905550600101613354565b5090565b905600a165627a7a723058208d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb00029
Deployed Bytecode
0x6060604052361561017e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806310d5e27614610180578063164d3f3a146101ac57806324ec75901461028257806331c33669146102a85780634b57fbaf146103395780635a0024ae146103595780635ea1d6f8146104425780636c81fd6d1461046857806381d2c8711461049e578063879e84ab146104be5780638da5cb5b146104e457806393c573c014610536578063994e52671461055c5780639f351fc01461057f578063a79a416d146105a5578063a9b1ffd9146105c5578063aa2529a2146105eb578063ad7e7cfc14610667578063ad8718c214610689578063b0f239e9146106db578063b4134e6e14610701578063b85d627514610727578063bd842a111461075d578063be26733c146107bd578063cb526229146107cf578063db35132c14610811578063ddca337e14610872578063ee4e441614610892578063f2853292146108bc578063f6c1db4c146108f2575bfe5b341561018857fe5b610190610949565b604051808260ff1660ff16815260200191505060405180910390f35b61025e600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061095c565b6040518082600981111561026e57fe5b60ff16815260200191505060405180910390f35b341561028a57fe5b6102926110af565b6040518082815260200191505060405180910390f35b34156102b057fe5b610300600480803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919050506110b5565b6040518085600481111561031057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b341561034157fe5b6103576004808035906020019091905050611288565b005b341561036157fe5b6103f4600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061139b565b6040518086600981111561040457fe5b60ff16815260200185600481111561041857fe5b60ff1681526020018481526020018381526020018281526020019550505050505060405180910390f35b341561044a57fe5b61045261170c565b6040518082815260200191505060405180910390f35b341561047057fe5b61049c600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611712565b005b34156104a657fe5b6104bc600480803590602001909190505061186f565b005b34156104c657fe5b6104ce611982565b6040518082815260200191505060405180910390f35b34156104ec57fe5b6104f4611988565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053e57fe5b6105466119ae565b6040518082815260200191505060405180910390f35b341561056457fe5b61057d600480803560ff169060200190919050506119b4565b005b341561058757fe5b61058f611adb565b6040518082815260200191505060405180910390f35b34156105ad57fe5b6105c36004808035906020019091905050611ae1565b005b34156105cd57fe5b6105d5611bf4565b6040518082815260200191505060405180910390f35b34156105f357fe5b610643600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611bfa565b6040518082600981111561065357fe5b60ff16815260200191505060405180910390f35b341561066f57fe5b61068760048080351515906020019091905050611faa565b005b6106b7600480803590602001909190803590602001909190803563ffffffff169060200190919050506120d0565b604051808260098111156106c757fe5b60ff16815260200191505060405180910390f35b34156106e357fe5b6106eb61261f565b6040518082815260200191505060405180910390f35b341561070957fe5b610711612625565b6040518082815260200191505060405180910390f35b341561072f57fe5b61075b600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061262b565b005b341561076557fe5b61077b600480803590602001909190505061282b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107c557fe5b6107cd61286b565b005b34156107d757fe5b6107ed6004808035906020019091905050612906565b604051808260098111156107fd57fe5b60ff16815260200191505060405180910390f35b341561081957fe5b61084e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050612c59565b6040518082600981111561085e57fe5b60ff16815260200191505060405180910390f35b341561087a57fe5b6108906004808035906020019091905050612eaf565b005b341561089a57fe5b6108a2612fc2565b604051808215151515815260200191505060405180910390f35b34156108c457fe5b6108f0600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612fd5565b005b34156108fa57fe5b6109106004808035906020019091905050613078565b6040518085600481111561092057fe5b60ff16815260200184815260200183815260200182815260200194505050505060405180910390f35b600a60009054906101000a900460ff1681565b6000600060006000866040518082805190602001908083835b602083106109985780518252602082019150602081019050602083039250610975565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b600084600019166000191681526020019081526020016000209150600060048111156109f157fe5b8260010160149054906101000a900460ff166004811115610a0e57fe5b1415610aa55782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600460008860405180846009811115610a4f57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600493506110a5565b60046004811115610ab257fe5b8260010160149054906101000a900460ff166004811115610acf57fe5b1415610b665782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600960008860405180846009811115610b1057fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600993506110a5565b8160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610df45760016004811115610bcc57fe5b8260010160149054906101000a900460ff166004811115610be957fe5b141515610c815782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610c2b57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600a60009054906101000a900460ff1660ff168260050160009054906101000a900460ff1660ff161115610d405782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600660008860405180846009811115610cea57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600693506110a5565b60008260040154118015610d5d5750816004015482600301540142115b15610df35782600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600760008860405180846009811115610d9d57fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600793506110a5565b5b86866040518083805190602001908083835b60208310610e295780518252602082019150602081019050602083039250610e06565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610e7a5780518252602082019150602081019050602083039250610e57565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051809103902060001916826000015460001916141515610f7d5760018260050160008282829054906101000a900460ff160192506101000a81548160ff021916908360ff16021790555082600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600560008860405180846009811115610f2757fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600593506110a5565b600160046000828254019250508190555081600201546005600082825401925050819055508160020154905060048260010160146101000a81548160ff02191690836004811115610fca57fe5b0217905550600082600201819055508473ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051809050600060405180830381858888f19350505050151561101957fe5b82600019167fba7e30fab7571a4da6e68f453ae892388c8716a5a45b30f163f949945630bb6f600083886040518084600981111561105357fe5b60ff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a2600093505b5050509392505050565b60075481565b6000600060006000600060006000876040518082805190602001908083835b602083106110f757805182526020820191506020810190506020830392506110d4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209250600b6000846000191660001916815260200190815260200160002091506000600481111561115057fe5b8260010160149054906101000a900460ff16600481111561116d57fe5b1415611191576000600060006000829250819150809050965096509650965061127e565b6000826004015411156112415742905081600301548111156111bb578160030154810390506111c0565b600090505b808260040154111561120f578160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff16838560040154038160ff169150965096509650965061127e565b600382600201548360050160009054906101000a900460ff1660008160ff169150809050965096509650965061127e565b5b8160010160149054906101000a900460ff1682600201548360050160009054906101000a900460ff1660008160ff16915080905096509650965096505b5050509193509193565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138d5760009150600090505b60018054905081101561137f573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561131f57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611371576001915061137f565b5b80806001019150506112ec565b81151561138c5760006000fd5b5b826008819055505b5b505050565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ae5760009150600090505b6001805490508110156114a0573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561144057fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561149257600191506114a0565b5b808060010191505061140d565b8115156114ad5760006000fd5b5b8a6040518082805190602001908083835b602083106114e257805182526020820191506020810190506020830392506114bf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600b6000856000191660001916815260200190815260200160002092506000600481111561153b57fe5b8360010160149054906101000a900460ff16600481111561155857fe5b14156115805760046000600060006000829250819150809050985098509850985098506116fd565b6004600481111561158d57fe5b8360010160149054906101000a900460ff1660048111156115aa57fe5b14156115d25760096004600060006000829250819150809050985098509850985098506116fd565b8a8a6040518083805190602001908083835b6020831061160757805182526020820191506020810190506020830392506115e4565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106116585780518252602082019150602081019050602083039250611635565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040518091039020600019168360000154600019161415156116bc5760056000600060006000829250819150809050985098509850985098506116fd565b60008360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff169150809050985098509850985098505b5b505050509295509295909350565b60065481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117715760006000fd5b600090505b600180549050811015611805578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156117a957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156117f75761186a565b5b8080600101915050611776565b6001805480600101828161181991906132f6565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5b5050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119745760009150600090505b600180549050811015611966573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561190657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119585760019150611966565b5b80806001019150506118d3565b8115156119735760006000fd5b5b826007819055505b5b505050565b60085481565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ab95760009150600090505b600180549050811015611aab573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a4b57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a9d5760019150611aab565b5b8080600101915050611a18565b811515611ab85760006000fd5b5b82600a60006101000a81548160ff021916908360ff1602179055505b5b505050565b60045481565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611be65760009150600090505b600180549050811015611bd8573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611b7857fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611bca5760019150611bd8565b5b8080600101915050611b45565b811515611be55760006000fd5b5b826006819055505b5b505050565b60035481565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d075760009150600090505b600180549050811015611cf9573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611c9957fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ceb5760019150611cf9565b5b8080600101915050611c66565b811515611d065760006000fd5b5b866040518082805190602001908083835b60208310611d3b5780518252602082019150602081019050602083039250611d18565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209450600b60008660001916600019168152602001908152602001600020935060006004811115611d9457fe5b8460010160149054906101000a900460ff166004811115611db157fe5b1415611e0b5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115611def57fe5b60ff16815260200191505060405180910390a260049550611f9f565b60046004811115611e1857fe5b8460010160149054906101000a900460ff166004811115611e3557fe5b1415611e8f5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115611e7357fe5b60ff16815260200191505060405180910390a260099550611f9f565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115611edc57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515611f4f57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115611f8757fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120af5760009150600090505b6001805490508110156120a1573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561204157fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561209357600191506120a1565b5b808060010191505061200e565b8115156120ae5760006000fd5b5b82600a60016101000a81548160ff0219169083151502179055505b5b505050565b6000600060006000600060011515600a60019054906101000a900460ff16151514156120fc5760006000fd5b876001029350866001029250600091506006546103e83481151561211c57fe5b040290506007548110156121305760075490505b803410156121d1573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561217857fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600860098111156121ab57fe5b84604051808381526020018281526020019250505060405180910390a260089450612613565b8034039150600854821015612279573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561222057fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96002600981111561225357fe5b84604051808381526020018281526020019250505060405180910390a260029450612613565b600060095411801561228c575060095482115b1561232a573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f1935050505015156122d157fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96001600981111561230457fe5b84604051808381526020018281526020019250505060405180910390a260019450612613565b6000600481111561233757fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff16600481111561236e57fe5b141580156123be57506004600481111561238457fe5b600b6000866000191660001916815260200190815260200160002060010160149054906101000a900460ff1660048111156123bb57fe5b14155b1561245c573373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051809050600060405180830381858888f19350505050151561240357fe5b83600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d96003600981111561243657fe5b84604051808381526020018281526020019250505060405180910390a260039450612613565b60016002600082825401925050819055508160036000828254019250508190555060e060405190810160405280846000191681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600160048111156124bc57fe5b81526020018381526020014281526020018763ffffffff168152602001600060ff16815250600b600086600019166000191681526020019081526020016000206000820151816000019060001916905560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548160ff0219169083600481111561257757fe5b0217905550606082015181600201556080820151816003015560a0820151816004015560c08201518160050160006101000a81548160ff021916908360ff16021790555090505083600019167f3cc246a7bc87fbf1ba761547a23b0fa08da8d0e63018a80b60e793dab78fd4d9600060098111156125f157fe5b84604051808381526020018281526020019250505060405180910390a2600094505b5b505050509392505050565b60025481565b60055481565b6000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561268a5760006000fd5b600090505b60018054905081101561271e578173ffffffffffffffffffffffffffffffffffffffff166001828154811015156126c257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127105761271e565b5b808060010191505061268f565b60018054905081101561282557600160016001805490500381548110151561274257fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018281548110151561277e57fe5b906000526020600020900160005b6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016001600180549050038154811015156127df57fe5b906000526020600020900160005b6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018054809190600190036128239190613322565b505b5b5b5050565b60018181548110151561283a57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c85760006000fd5b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b5b565b600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612a135760009150600090505b600180549050811015612a05573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156129a557fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156129f75760019150612a05565b5b8080600101915050612972565b811515612a125760006000fd5b5b866001029450600b60008660001916600019168152602001908152602001600020935060006004811115612a4357fe5b8460010160149054906101000a900460ff166004811115612a6057fe5b1415612aba5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600460405180826009811115612a9e57fe5b60ff16815260200191505060405180910390a260049550612c4e565b60046004811115612ac757fe5b8460010160149054906101000a900460ff166004811115612ae457fe5b1415612b3e5784600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600960405180826009811115612b2257fe5b60ff16815260200191505060405180910390a260099550612c4e565b600160046000828254019250508190555083600201546005600082825401925050819055508360020154925060048460010160146101000a81548160ff02191690836004811115612b8b57fe5b0217905550600084600201819055508360010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051809050600060405180830381858888f193505050501515612bfe57fe5b84600019167fa2ede2c756e3e3f04176a90f806589d84888e8716fd13c2e0c700adb3dad0046600060405180826009811115612c3657fe5b60ff16815260200191505060405180910390a2600095505b5b5050505050919050565b6000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d625760009150600090505b600180549050811015612d54573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612cf457fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612d465760019150612d54565b5b8080600101915050612cc1565b811515612d615760006000fd5b5b600554600354033073ffffffffffffffffffffffffffffffffffffffff163103925082851115612dfb578573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c46008600060405180836009811115612dd857fe5b60ff1681526020018281526020019250505060405180910390a260089350612ea5565b8573ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051809050600060405180830381858888f193505050501515612e3b57fe5b8573ffffffffffffffffffffffffffffffffffffffff167f1ff2ff382712a755b304cdd3cb404f9fe3c3614c725549cd8c34cd3fac1801c460008760405180836009811115612e8657fe5b60ff1681526020018281526020019250505060405180910390a2600093505b5b50505092915050565b60006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fb45760009150600090505b600180549050811015612fa6573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515612f4657fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612f985760019150612fa6565b5b8080600101915050612f13565b811515612fb35760006000fd5b5b826009819055505b5b505050565b600a60019054906101000a900460ff1681565b600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130325760006000fd5b80600060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b600060006000600060006000600060006000600060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561318b5760009150600090505b60018054905081101561317d573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561311d57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561316f576001915061317d565b5b80806001019150506130ea565b81151561318a5760006000fd5b5b896001029450600b600086600019166000191681526020019081526020016000209350600060048111156131bb57fe5b8460010160149054906101000a900460ff1660048111156131d857fe5b14156131fc57600060006000600082925081915080905098509850985098506132e9565b6000846004015411156132ac5742925083600301548311156132265783600301548303925061322b565b600092505b828460040154111561327a578360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff16858760040154038160ff16915098509850985098506132e9565b600384600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098506132e9565b5b8360010160149054906101000a900460ff1684600201548560050160009054906101000a900460ff1660008160ff16915080905098509850985098505b5b50505050509193509193565b81548183558181151161331d5781836000526020600020918201910161331c919061334e565b5b505050565b81548183558181151161334957818360005260206000209182019101613348919061334e565b5b505050565b61337091905b8082111561336c576000816000905550600101613354565b5090565b905600a165627a7a723058208d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb00029
Swarm Source
bzzr://8d2ba906e03f4420788c8422492556e6cd00cae7d5fe555af0e3a2f4ddb81cb0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,325.2 | 0.195 | $453.41 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.