ERC-20
Travel
Overview
Max Total Supply
200,000 TRV
Holders
327 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 16 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TravelCoinToken
Compiler Version
v0.4.16+commit.d7661dd9
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2017-08-26 */ //ERC20 Token customised for travelcoins pragma solidity ^0.4.2; contract owned { address public owner; function owned() { owner = msg.sender; } modifier onlyOwner { if (msg.sender != owner) throw; _; } function transferOwnership(address newOwner) onlyOwner { owner = newOwner; } } contract tokenRecipient { function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData); } contract token { /* Public variables of the token */ string public standard = 'TRV 0.1'; string public name; string public symbol; uint8 public decimals; uint256 public totalSupply; /* This creates an array with all balances */ mapping (address => uint256) public balanceOf; mapping (address => mapping (address => uint256)) public allowance; /* This generates a public event on the blockchain that will notify clients */ event Transfer(address indexed from, address indexed to, uint256 value); event Allocate(address from,address to, uint value,uint price,bool equals); /* Initializes contract with initial supply tokens to the creator of the contract */ function token( uint256 initialSupply, string tokenName, uint8 decimalUnits, string tokenSymbol ) { balanceOf[msg.sender] = initialSupply; // Give the creator all initial tokens totalSupply = initialSupply; // Update total supply name = tokenName; // Set the name for display purposes symbol = tokenSymbol; // Set the symbol for display purposes decimals = decimalUnits; // Amount of decimals for display purposes } /* Send coins */ function transfer(address _to, uint256 _value) { if (balanceOf[msg.sender] < _value) throw; // Check if the sender has enough if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows balanceOf[msg.sender] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient Transfer(msg.sender, _to, _value); // Notify anyone listening that this transfer took place } /* Allow another contract to spend some tokens in your behalf */ function approve(address _spender, uint256 _value) returns (bool success) { allowance[msg.sender][_spender] = _value; return true; } /* Approve and then communicate the approved contract in a single tx */ function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) { tokenRecipient spender = tokenRecipient(_spender); if (approve(_spender, _value)) { spender.receiveApproval(msg.sender, _value, this, _extraData); return true; } } /* A contract attempts _ to get the coins */ function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (balanceOf[_from] < _value) throw; // Check if the sender has enough if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows if (_value > allowance[_from][msg.sender]) throw; // Check allowance balanceOf[_from] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient allowance[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } /* This unnamed function is called whenever someone tries to send ether to it */ function () { throw; // Prevents accidental sending of ether } } contract TravelCoinToken is owned, token { uint256 public sellPrice; uint256 public buyPrice; mapping(address=>bool) public frozenAccount; mapping(address=>uint) public rewardPoints; mapping(address=>bool) public oneTimeTickets; mapping (address => bool) public oneTimeSold; address[] public ONETIMESOLD; /* This generates a public event on the blockchain that will notify clients */ event FrozenFunds(address target, bool frozen); /* Initializes contract with initial supply tokens to the creator of the contract */ uint256 public constant initialSupply = 200000 * 10**16; uint8 public constant decimalUnits = 16; string public tokenName = "TravelCoin"; string public tokenSymbol = "TRV"; function TravelCoinToken() token (initialSupply, tokenName, decimalUnits, tokenSymbol) {} /* Send coins */ function transfer(address _to, uint256 _value) { if (balanceOf[msg.sender] < _value) throw; // Check if the sender has enough if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows if (frozenAccount[msg.sender]) throw; // Check if frozen balanceOf[msg.sender] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient Transfer(msg.sender, _to, _value); // Notify anyone listening that this transfer took place if(ticket_address_added[_to]){ if(_value>=tickets[_to].price){ if(oneTimeSold[_to]) throw; if(oneTimeTickets[_to]){ oneTimeSold[_to] = true; ONETIMESOLD.push(_to); } allocateTicket(msg.sender,_to); rewardPoints[msg.sender]+=tickets[_to].reward_pts; Allocate(msg.sender,_to,_value,tickets[_to].price,_value>=tickets[_to].price); //this Allocate event is a customised test } } } /* A contract attempts to get the coins */ function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (frozenAccount[_from]) throw; // Check if frozen if (balanceOf[_from] < _value) throw; // Check if the sender has enough if (balanceOf[_to] + _value < balanceOf[_to]) throw; // Check for overflows if (_value > allowance[_from][msg.sender]) throw; // Check allowance balanceOf[_from] -= _value; // Subtract from the sender balanceOf[_to] += _value; // Add the same to the recipient allowance[_from][msg.sender] -= _value; Transfer(_from, _to, _value); return true; } function mintToken(address target, uint256 mintedAmount) onlyOwner { balanceOf[target] += mintedAmount; totalSupply += mintedAmount; Transfer(0, this, mintedAmount); Transfer(this, target, mintedAmount); } function freezeAccount(address target, bool freeze) onlyOwner { frozenAccount[target] = freeze; FrozenFunds(target, freeze); } function setPrices(uint256 newSellPrice, uint256 newBuyPrice) onlyOwner { sellPrice = newSellPrice; buyPrice = newBuyPrice; } function buy() payable { uint amount = msg.value / buyPrice; // calculates the amount if (balanceOf[this] < amount) throw; // checks if it has enough to sell balanceOf[msg.sender] += amount; // adds the amount to buyer's balance balanceOf[this] -= amount; // subtracts amount from seller's balance Transfer(this, msg.sender, amount); // execute an event reflecting the change } function sell(uint256 amount) { if (balanceOf[msg.sender] < amount ) throw; // checks if the sender has enough to sell balanceOf[this] += amount; // adds the amount to owner's balance balanceOf[msg.sender] -= amount; // subtracts the amount from seller's balance if (!msg.sender.send(amount * sellPrice)) { // sends ether to the seller. It's important throw; // to do this last to avoid recursion attacks } else { Transfer(msg.sender, this, amount); // executes an event reflecting on the change } } //Lavi's additional dApp code start struct ticket{ uint price; // bytes32 destination; // bytes32 starting_point; address _company_addr; // uint ticket_no; // bytes32 ticket_name; // bytes32 times; // uint land_time; // uint topup; uint reward_pts; // uint expriration_time; // bytes32 promo_no; // bytes32 insurance_no; // bytes32 category; } mapping(address=>ticket) public tickets; mapping(address=>bool) public ticket_address_added; mapping(address=>address[]) public customer_tickets; address[] public ticket_addresses; function addNewTicket( // bytes32 category, address ticket_address, uint price, // bytes32 to, // bytes32 from, // uint ticket_no, // bytes32 ticket_name, // bytes32 times, // uint land_time, // uint topup, uint reward_pts, bool oneTime // uint expriration_time, // bytes32 promo_no, // bytes32 insurance_no ) { if(ticket_address_added[ticket_address]) throw; ticket memory newTicket; // newTicket.category = category; newTicket.price = price; // newTicket.destination = to; // newTicket.starting_point = from; newTicket._company_addr = ticket_address; // newTicket.ticket_no = ticket_no; // newTicket.ticket_name = ticket_name; // newTicket.times = times; // newTicket.land_time = land_time; // newTicket.topup = topup; newTicket.reward_pts = reward_pts; if(oneTime) oneTimeTickets[ticket_address] = true; // newTicket.expriration_time = expriration_time; // newTicket.promo_no = promo_no; // newTicket.insurance_no = insurance_no; tickets[ticket_address] = newTicket; ticket_address_added[ticket_address] = true; ticket_addresses.push(ticket_address); } function allocateTicket(address customer_addr,address ticket_addr) internal { customer_tickets[customer_addr].push(ticket_addr); } function getAllTickets() constant returns (address[],uint[],uint[],bool[]) { address[] memory tcks = ticket_addresses; uint length = tcks.length; address[] memory addrs = new address[](length); uint[] memory prices = new uint[](length); uint[] memory points = new uint[](length); bool[] memory OT = new bool[](length); for(uint i = 0;i<length;i++){ addrs[i] = tcks[i]; prices[i] = tickets[tcks[i]].price; points[i] = tickets[tcks[i]].reward_pts; OT[i] = oneTimeTickets[tcks[i]]; } return (addrs,prices,points,OT); } function getONETIMESOLD() constant returns (address[]){ return ONETIMESOLD; } function getMyTicketAddresses(address c) constant returns (address[]){ return (customer_tickets[c]); } function transferTicket(address _to,address _t){ address[] memory myTickets = new address[](customer_tickets[msg.sender].length); bool done_once = false; for(uint i = 0; i < customer_tickets[msg.sender].length;i++){ if(customer_tickets[msg.sender][i]==_t&&!done_once){ done_once = true; allocateTicket(_to,_t); continue; } myTickets[i] = (customer_tickets[msg.sender][i]); } customer_tickets[msg.sender] = myTickets; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":true,"inputs":[],"name":"getAllTickets","outputs":[{"name":"","type":"address[]"},{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"},{"name":"","type":"bool[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSellPrice","type":"uint256"},{"name":"newBuyPrice","type":"uint256"}],"name":"setPrices","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"c","type":"address"}],"name":"getMyTicketAddresses","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimalUnits","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getONETIMESOLD","outputs":[{"name":"","type":"address[]"}],"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":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ticket_addresses","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_t","type":"address"}],"name":"transferTicket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"customer_tickets","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"standard","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenName","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tickets","outputs":[{"name":"price","type":"uint256"},{"name":"_company_addr","type":"address"},{"name":"reward_pts","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"mintedAmount","type":"uint256"}],"name":"mintToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenSymbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"rewardPoints","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"oneTimeSold","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","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":"","type":"address"}],"name":"ticket_address_added","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ticket_address","type":"address"},{"name":"price","type":"uint256"},{"name":"reward_pts","type":"uint256"},{"name":"oneTime","type":"bool"}],"name":"addNewTicket","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"frozenAccount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"ONETIMESOLD","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"oneTimeTickets","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"target","type":"address"},{"name":"freeze","type":"bool"}],"name":"freezeAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"target","type":"address"},{"indexed":false,"name":"frozen","type":"bool"}],"name":"FrozenFunds","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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"from","type":"address"},{"indexed":false,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"equals","type":"bool"}],"name":"Allocate","type":"event"}]
Contract Creation Code
60606040526040805190810160405280600781526020017f54525620302e310000000000000000000000000000000000000000000000000081525060019080519060200190620000519291906200032b565b506040805190810160405280600a81526020017f54726176656c436f696e00000000000000000000000000000000000000000000815250600f90805190602001906200009f9291906200032b565b506040805190810160405280600381526020017f545256000000000000000000000000000000000000000000000000000000000081525060109080519060200190620000ed9291906200032b565b503415620000fa57600080fd5b5b686c6b935b8bbd400000600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156200019f5780601f1062000173576101008083540402835291602001916200019f565b820191906000526020600020905b8154815290600101906020018083116200018157829003601f168201915b50505050506010808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156200023f5780601f1062000213576101008083540402835291602001916200023f565b820191906000526020600020905b8154815290600101906020018083116200022157829003601f168201915b50505050505b5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b83600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550836005819055508260029080519060200190620002ea9291906200032b565b508060039080519060200190620003039291906200032b565b5081600460006101000a81548160ff021916908360ff1602179055505b505050505b620003da565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200036e57805160ff19168380011785556200039f565b828001600101855582156200039f579182015b828111156200039e57825182559160200191906001019062000381565b5b509050620003ae9190620003b2565b5090565b620003d791905b80821115620003d3576000816000905550600101620003b9565b5090565b90565b61339e80620003ea6000396000f300606060405236156101d6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303e96fe3146101e957806305fefda71461032f57806306fdde031461035b578063095ea7b3146103ea5780630c44ba401461044457806318160ddd146104d35780631caba41f146104fc5780632215fc821461052b57806323b872dd1461059657806329d729ac1461060f578063313ce56714610672578063378dc3dc146106a1578063411f93d1146106ca5780634b750334146107225780634c2941881461074b5780635a3b7e42146107cd5780636c02a9311461085c5780636dcbf2a3146108eb57806370a082311461097257806379c65068146109bf5780637b61c32014610a015780637bd95a8514610a9057806384a014d814610add5780638620410b14610b2e5780638da5cb5b14610b5757806391548ccf14610bac57806395d89b4114610bfd5780639e8ee59a14610c8c578063a6f2ae3a14610ce2578063a9059cbb14610cec578063b414d4b614610d2e578063c0e1857914610d7f578063cae9ca5114610de2578063dc40af1f14610e7f578063dd62ed3e14610ed0578063e4849b3214610f3c578063e724529c14610f5f578063f2fde38b14610fa3575b34156101e157600080fd5b5b600080fd5b005b34156101f457600080fd5b6101fc610fdc565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561024c5780820151818401525b602081019050610230565b50505050905001858103845288818151815260200191508051906020019060200280838360005b8381101561028f5780820151818401525b602081019050610273565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156102d25780820151818401525b6020810190506102b6565b50505050905001858103825286818151815260200191508051906020019060200280838360005b838110156103155780820151818401525b6020810190506102f9565b505050509050019850505050505050505060405180910390f35b341561033a57600080fd5b6103596004808035906020019091908035906020019091905050611346565b005b341561036657600080fd5b61036e6113b5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103af5780820151818401525b602081019050610393565b50505050905090810190601f1680156103dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103f557600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611453565b604051808215151515815260200191505060405180910390f35b341561044f57600080fd5b61047b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114e1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104bf5780820151818401525b6020810190506104a3565b505050509050019250505060405180910390f35b34156104de57600080fd5b6104e66115b5565b6040518082815260200191505060405180910390f35b341561050757600080fd5b61050f6115bb565b604051808260ff1660ff16815260200191505060405180910390f35b341561053657600080fd5b61053e6115c0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105825780820151818401525b602081019050610566565b505050509050019250505060405180910390f35b34156105a157600080fd5b6105f5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611655565b604051808215151515815260200191505060405180910390f35b341561061a57600080fd5b61063060048080359060200190919050506119a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067d57600080fd5b6106856119e5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106ac57600080fd5b6106b46119f8565b6040518082815260200191505060405180910390f35b34156106d557600080fd5b610720600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a05565b005b341561072d57600080fd5b610735611cbd565b6040518082815260200191505060405180910390f35b341561075657600080fd5b61078b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cc3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107d857600080fd5b6107e0611d12565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108215780820151818401525b602081019050610805565b50505050905090810190601f16801561084e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086757600080fd5b61086f611db0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b05780820151818401525b602081019050610894565b50505050905090810190601f1680156108dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108f657600080fd5b610922600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e4e565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b341561097d57600080fd5b6109a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e98565b6040518082815260200191505060405180910390f35b34156109ca57600080fd5b6109ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611eb0565b005b3415610a0c57600080fd5b610a14612023565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a555780820151818401525b602081019050610a39565b50505050905090810190601f168015610a825780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a9b57600080fd5b610ac7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120c1565b6040518082815260200191505060405180910390f35b3415610ae857600080fd5b610b14600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120d9565b604051808215151515815260200191505060405180910390f35b3415610b3957600080fd5b610b416120f9565b6040518082815260200191505060405180910390f35b3415610b6257600080fd5b610b6a6120ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bb757600080fd5b610be3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612124565b604051808215151515815260200191505060405180910390f35b3415610c0857600080fd5b610c10612144565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c515780820151818401525b602081019050610c35565b50505050905090810190601f168015610c7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610c9757600080fd5b610ce0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506121e2565b005b610cea61244e565b005b3415610cf757600080fd5b610d2c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506125af565b005b3415610d3957600080fd5b610d65600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612bbb565b604051808215151515815260200191505060405180910390f35b3415610d8a57600080fd5b610da06004808035906020019091905050612bdb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ded57600080fd5b610e65600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612c1b565b604051808215151515815260200191505060405180910390f35b3415610e8a57600080fd5b610eb6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d9a565b604051808215151515815260200191505060405180910390f35b3415610edb57600080fd5b610f26600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612dba565b6040518082815260200191505060405180910390f35b3415610f4757600080fd5b610f5d6004808035906020019091905050612ddf565b005b3415610f6a57600080fd5b610fa1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050612f73565b005b3415610fae57600080fd5b610fda600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061309a565b005b610fe46131e0565b610fec6131f4565b610ff46131f4565b610ffc613208565b6110046131e0565b600061100e6131e0565b6110166131f4565b61101e6131f4565b611026613208565b600060148054806020026020016040519081016040528092919081815260200182805480156110aa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611060575b5050505050965086519550856040518059106110c35750595b908082528060200260200182016040525b509450856040518059106110e55750595b908082528060200260200182016040525b509350856040518059106111075750595b908082528060200260200182016040525b509250856040518059106111295750595b908082528060200260200182016040525b509150600090505b8581101561132c57868181518110151561115857fe5b90602001906020020151858281518110151561117057fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506011600088838151811015156111be57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154848281518110151561121457fe5b906020019060200201818152505060116000888381518110151561123457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154838281518110151561128a57fe5b9060200190602002018181525050600c600088838151811015156112aa57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16828281518110151561130a57fe5b90602001906020020190151590811515815250505b8080600101915050611142565b848484849a509a509a509a505b5050505050505090919293565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113a157600080fd5b81600881905550806009819055505b5b5050565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561144b5780601f106114205761010080835404028352916020019161144b565b820191906000526020600020905b81548152906001019060200180831161142e57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190505b92915050565b6114e96131e0565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115a857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161155e575b505050505090505b919050565b60055481565b601081565b6115c86131e0565b600e80548060200260200160405190810160405280929190818152602001828054801561164a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611600575b505050505090505b90565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116ae57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156116fa57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561178757600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561181057600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b6014818154811015156119b457fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff1681565b686c6b935b8bbd40000081565b611a0d6131e0565b600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050604051805910611a605750595b908082528060200260200182016040525b50925060009150600090505b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611c61578373ffffffffffffffffffffffffffffffffffffffff16601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611b2a57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015611b78575081155b15611b905760019150611b8b858561313a565b611c54565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611bdc57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181101515611c1757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8080600101915050611a7d565b82601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611cb492919061321c565b505b5050505050565b60085481565b601360205281600052604060002081815481101515611cde57fe5b906000526020600020900160005b915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611da85780601f10611d7d57610100808354040283529160200191611da8565b820191906000526020600020905b815481529060010190602001808311611d8b57829003601f168201915b505050505081565b600f8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e465780601f10611e1b57610100808354040283529160200191611e46565b820191906000526020600020905b815481529060010190602001808311611e2957829003601f168201915b505050505081565b60116020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f0b57600080fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806005600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5050565b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120b95780601f1061208e576101008083540402835291602001916120b9565b820191906000526020600020905b81548152906001019060200180831161209c57829003601f168201915b505050505081565b600b6020528060005260406000206000915090505481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121da5780601f106121af576101008083540402835291602001916121da565b820191906000526020600020905b8154815290600101906020018083116121bd57829003601f168201915b505050505081565b6121ea6132a6565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224157600080fd5b8381600001818152505084816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281604001818152505081156122ec576001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201559050506001601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601480548060010182816123f691906132de565b916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050505050565b60006009543481151561245d57fe5b04905080600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124ac57600080fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156125fb57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561268857600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126df57600080fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bb657601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015481101515612bb557600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128d257600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156129e1576001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e805480600101828161299091906132de565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6129eb338361313a565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f94b8e72a2728bf037dcc8d5415b8c7f0aafeabf6d577f5bc4990301b4f31474b338383601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154861015604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001821515151581526020019550505050505060405180910390a15b5b5b5050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e81815481101515612bea57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080849050612c2b8585611453565b15612d91578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612d265780820151818401525b602081019050612d0a565b50505050905090810190601f168015612d535780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515612d7457600080fd5b6102c65a03f11515612d8557600080fd5b50505060019150612d92565b5b509392505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612e2b57600080fd5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc60085483029081150290604051600060405180830381858888f193505050501515612f0957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fce57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130f557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161318b91906132de565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054828255906000526020600020908101928215613295579160200282015b828111156132945782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061323c565b5b5090506132a2919061330a565b5090565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b81548183558181151161330557818360005260206000209182019101613304919061334d565b5b505050565b61334a91905b8082111561334657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613310565b5090565b90565b61336f91905b8082111561336b576000816000905550600101613353565b5090565b905600a165627a7a723058203f288b26028eea64ed7e453932fcd6fddb52820254225742cc0b6ec7984b0b2f0029
Deployed Bytecode
0x606060405236156101d6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806303e96fe3146101e957806305fefda71461032f57806306fdde031461035b578063095ea7b3146103ea5780630c44ba401461044457806318160ddd146104d35780631caba41f146104fc5780632215fc821461052b57806323b872dd1461059657806329d729ac1461060f578063313ce56714610672578063378dc3dc146106a1578063411f93d1146106ca5780634b750334146107225780634c2941881461074b5780635a3b7e42146107cd5780636c02a9311461085c5780636dcbf2a3146108eb57806370a082311461097257806379c65068146109bf5780637b61c32014610a015780637bd95a8514610a9057806384a014d814610add5780638620410b14610b2e5780638da5cb5b14610b5757806391548ccf14610bac57806395d89b4114610bfd5780639e8ee59a14610c8c578063a6f2ae3a14610ce2578063a9059cbb14610cec578063b414d4b614610d2e578063c0e1857914610d7f578063cae9ca5114610de2578063dc40af1f14610e7f578063dd62ed3e14610ed0578063e4849b3214610f3c578063e724529c14610f5f578063f2fde38b14610fa3575b34156101e157600080fd5b5b600080fd5b005b34156101f457600080fd5b6101fc610fdc565b6040518080602001806020018060200180602001858103855289818151815260200191508051906020019060200280838360005b8381101561024c5780820151818401525b602081019050610230565b50505050905001858103845288818151815260200191508051906020019060200280838360005b8381101561028f5780820151818401525b602081019050610273565b50505050905001858103835287818151815260200191508051906020019060200280838360005b838110156102d25780820151818401525b6020810190506102b6565b50505050905001858103825286818151815260200191508051906020019060200280838360005b838110156103155780820151818401525b6020810190506102f9565b505050509050019850505050505050505060405180910390f35b341561033a57600080fd5b6103596004808035906020019091908035906020019091905050611346565b005b341561036657600080fd5b61036e6113b5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103af5780820151818401525b602081019050610393565b50505050905090810190601f1680156103dc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103f557600080fd5b61042a600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611453565b604051808215151515815260200191505060405180910390f35b341561044f57600080fd5b61047b600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506114e1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156104bf5780820151818401525b6020810190506104a3565b505050509050019250505060405180910390f35b34156104de57600080fd5b6104e66115b5565b6040518082815260200191505060405180910390f35b341561050757600080fd5b61050f6115bb565b604051808260ff1660ff16815260200191505060405180910390f35b341561053657600080fd5b61053e6115c0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156105825780820151818401525b602081019050610566565b505050509050019250505060405180910390f35b34156105a157600080fd5b6105f5600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611655565b604051808215151515815260200191505060405180910390f35b341561061a57600080fd5b61063060048080359060200190919050506119a5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561067d57600080fd5b6106856119e5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106ac57600080fd5b6106b46119f8565b6040518082815260200191505060405180910390f35b34156106d557600080fd5b610720600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a05565b005b341561072d57600080fd5b610735611cbd565b6040518082815260200191505060405180910390f35b341561075657600080fd5b61078b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cc3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107d857600080fd5b6107e0611d12565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108215780820151818401525b602081019050610805565b50505050905090810190601f16801561084e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086757600080fd5b61086f611db0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108b05780820151818401525b602081019050610894565b50505050905090810190601f1680156108dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156108f657600080fd5b610922600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e4e565b604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390f35b341561097d57600080fd5b6109a9600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611e98565b6040518082815260200191505060405180910390f35b34156109ca57600080fd5b6109ff600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611eb0565b005b3415610a0c57600080fd5b610a14612023565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a555780820151818401525b602081019050610a39565b50505050905090810190601f168015610a825780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610a9b57600080fd5b610ac7600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120c1565b6040518082815260200191505060405180910390f35b3415610ae857600080fd5b610b14600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506120d9565b604051808215151515815260200191505060405180910390f35b3415610b3957600080fd5b610b416120f9565b6040518082815260200191505060405180910390f35b3415610b6257600080fd5b610b6a6120ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610bb757600080fd5b610be3600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612124565b604051808215151515815260200191505060405180910390f35b3415610c0857600080fd5b610c10612144565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c515780820151818401525b602081019050610c35565b50505050905090810190601f168015610c7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610c9757600080fd5b610ce0600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803515159060200190919050506121e2565b005b610cea61244e565b005b3415610cf757600080fd5b610d2c600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506125af565b005b3415610d3957600080fd5b610d65600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612bbb565b604051808215151515815260200191505060405180910390f35b3415610d8a57600080fd5b610da06004808035906020019091905050612bdb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610ded57600080fd5b610e65600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050612c1b565b604051808215151515815260200191505060405180910390f35b3415610e8a57600080fd5b610eb6600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d9a565b604051808215151515815260200191505060405180910390f35b3415610edb57600080fd5b610f26600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612dba565b6040518082815260200191505060405180910390f35b3415610f4757600080fd5b610f5d6004808035906020019091905050612ddf565b005b3415610f6a57600080fd5b610fa1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050612f73565b005b3415610fae57600080fd5b610fda600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061309a565b005b610fe46131e0565b610fec6131f4565b610ff46131f4565b610ffc613208565b6110046131e0565b600061100e6131e0565b6110166131f4565b61101e6131f4565b611026613208565b600060148054806020026020016040519081016040528092919081815260200182805480156110aa57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611060575b5050505050965086519550856040518059106110c35750595b908082528060200260200182016040525b509450856040518059106110e55750595b908082528060200260200182016040525b509350856040518059106111075750595b908082528060200260200182016040525b509250856040518059106111295750595b908082528060200260200182016040525b509150600090505b8581101561132c57868181518110151561115857fe5b90602001906020020151858281518110151561117057fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506011600088838151811015156111be57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154848281518110151561121457fe5b906020019060200201818152505060116000888381518110151561123457fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154838281518110151561128a57fe5b9060200190602002018181525050600c600088838151811015156112aa57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16828281518110151561130a57fe5b90602001906020020190151590811515815250505b8080600101915050611142565b848484849a509a509a509a505b5050505050505090919293565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113a157600080fd5b81600881905550806009819055505b5b5050565b60028054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561144b5780601f106114205761010080835404028352916020019161144b565b820191906000526020600020905b81548152906001019060200180831161142e57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190505b92915050565b6114e96131e0565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156115a857602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161155e575b505050505090505b919050565b60055481565b601081565b6115c86131e0565b600e80548060200260200160405190810160405280929190818152602001828054801561164a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611600575b505050505090505b90565b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156116ae57600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156116fa57600080fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561178757600080fd5b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561181057600080fd5b81600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190505b9392505050565b6014818154811015156119b457fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900460ff1681565b686c6b935b8bbd40000081565b611a0d6131e0565b600080601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050604051805910611a605750595b908082528060200260200182016040525b50925060009150600090505b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050811015611c61578373ffffffffffffffffffffffffffffffffffffffff16601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515611b2a57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015611b78575081155b15611b905760019150611b8b858561313a565b611c54565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481101515611bdc57fe5b906000526020600020900160005b9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181101515611c1757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b8080600101915050611a7d565b82601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190611cb492919061321c565b505b5050505050565b60085481565b601360205281600052604060002081815481101515611cde57fe5b906000526020600020900160005b915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611da85780601f10611d7d57610100808354040283529160200191611da8565b820191906000526020600020905b815481529060010190602001808311611d8b57829003601f168201915b505050505081565b600f8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611e465780601f10611e1b57610100808354040283529160200191611e46565b820191906000526020600020905b815481529060010190602001808311611e2957829003601f168201915b505050505081565b60116020528060005260406000206000915090508060000154908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154905083565b60066020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f0b57600080fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550806005600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b5050565b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120b95780601f1061208e576101008083540402835291602001916120b9565b820191906000526020600020905b81548152906001019060200180831161209c57829003601f168201915b505050505081565b600b6020528060005260406000206000915090505481565b600d6020528060005260406000206000915054906101000a900460ff1681565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60126020528060005260406000206000915054906101000a900460ff1681565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121da5780601f106121af576101008083540402835291602001916121da565b820191906000526020600020905b8154815290600101906020018083116121bd57829003601f168201915b505050505081565b6121ea6132a6565b601260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561224157600080fd5b8381600001818152505084816020019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281604001818152505081156122ec576001600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604082015181600201559050506001601260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601480548060010182816123f691906132de565b916000526020600020900160005b87909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050505050565b60006009543481151561245d57fe5b04905080600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124ac57600080fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b50565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156125fb57600080fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401101561268857600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156126df57600080fd5b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612bb657601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015481101515612bb557600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156128d257600080fd5b600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156129e1576001600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600e805480600101828161299091906132de565b916000526020600020900160005b84909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b6129eb338361313a565b601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f94b8e72a2728bf037dcc8d5415b8c7f0aafeabf6d577f5bc4990301b4f31474b338383601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154601160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154861015604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001848152602001838152602001821515151581526020019550505050505060405180910390a15b5b5b5050565b600a6020528060005260406000206000915054906101000a900460ff1681565b600e81815481101515612bea57fe5b906000526020600020900160005b915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080849050612c2b8585611453565b15612d91578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612d265780820151818401525b602081019050612d0a565b50505050905090810190601f168015612d535780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515612d7457600080fd5b6102c65a03f11515612d8557600080fd5b50505060019150612d92565b5b509392505050565b600c6020528060005260406000206000915054906101000a900460ff1681565b6007602052816000526040600020602052806000526040600020600091509150505481565b80600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612e2b57600080fd5b80600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055503373ffffffffffffffffffffffffffffffffffffffff166108fc60085483029081150290604051600060405180830381858888f193505050501515612f0957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35b5b50565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fce57600080fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a15b5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130f557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5b50565b601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480600101828161318b91906132de565b916000526020600020900160005b83909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b5050565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b602060405190810160405280600081525090565b828054828255906000526020600020908101928215613295579160200282015b828111156132945782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019061323c565b5b5090506132a2919061330a565b5090565b60606040519081016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b81548183558181151161330557818360005260206000209182019101613304919061334d565b5b505050565b61334a91905b8082111561334657600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101613310565b5090565b90565b61336f91905b8082111561336b576000816000905550600101613353565b5090565b905600a165627a7a723058203f288b26028eea64ed7e453932fcd6fddb52820254225742cc0b6ec7984b0b2f0029
Swarm Source
bzzr://3f288b26028eea64ed7e453932fcd6fddb52820254225742cc0b6ec7984b0b2f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.