Contract Overview
Balance:
0.00331252 Ether
EtherValue:
$0.41 (@ $124.15/ETH)
Transactions:
120 txns
TokenTracker:
Latest 25 transactions from a total of 120 transactions
[ Download CSV Export ]
Latest 25 Internal Transaction, Click here to view more Internal Transactions as a result of Contract Execution
[ Download CSV Export ]
Contract Source Code Verified (Exact Match)
Contract Name: | GreenRabbitKingdom |
Compiler Version: | v0.4.25+commit.59dbf8f1 |
Optimization Enabled: | No |
Runs (Optimizer): | 200 |
Contract Source Code
/** * https://GreenRabbit.site * * Welcome to Green Rabbit's smart Kingdom. * * Here you can collect or earn GRC tokens (Green Rabbit's Coins) and sell it for Ethereum. * Send Ethereum to the contract address for buying GRC tokens. * Attention: purchase price more than sale price by 11.1% * * The price of GRC tokens will be increased by 1% per day. * * For create the kingdom, you should to spend GRC tokens for increasing the number of citizens or warriors of your kingdom. * * If you want to be just an investor, don't add citizens or warriors and your kingdom won't be created. * * Each citizen of your Kingdom will pay tribute to you. One citizen pays tribute equal kingdom prosperity, per 7 days. * Your warriors can attack random kingdoms and can pick up their coins. One warrior can pick up number of GRC equal (100 - attacked kingdom defence). * After attack, number of your warriors will be reduced by percent of defence of attacked kingdom. * Send 0.01 ether to the contract 0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966 for attack random kingdom. * Attention: You won't lose warriors, if attacked kingdom have GRC number less than 10000. * * Each kingdom have prosperity and defence levels. Sum of prosperity and defence levels always will be equal 100. * You can increase prosperity and reduce defence level by 10 sending 0.000333 ether to the contract address. Maximum prosperity is 100. * You can increase defence and reduce prosperity level by 10 sending 0.000444 ether to the contract address. Maximum defence is 90. * * Citizens will pay GRC tokens depending on their level of prosperity, the more it is, the more they will pay. * Attention! You can lost part of your coins, if your defence is not high and your kingdom would be under attack. * * Send from 0 to 0.00001 ether to this contract address for sell all your GRC tokens. * Send 0.000111 ether to spend your tokens to add citizens to your kingdom. * Send 0.000222 ether to spend your tokens to add warriors to your kingdom. * Send 0.000333 ether to set +10 prosperity and -10 defence level of your kingdom. * Send 0.000444 ether to set +10 defence and -10 prosperity level of your kingdom. * * Use 200000 of Gas limit for your transactions. * * Admin commissions: 5% from GRC tokens buying. * * Game will be paused for 3 days when balance is null and will be auto restarted, all kingdoms and tokens will be burnt. * */ pragma solidity ^0.4.25; /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { function mul(uint256 _a, uint256 _b) internal pure returns (uint256) { if (_a == 0) { return 0; } uint256 c = _a * _b; require(c / _a == _b); return c; } function div(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b > 0); uint256 c = _a / _b; return c; } function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { require(_b <= _a); uint256 c = _a - _b; return c; } function add(uint256 _a, uint256 _b) internal pure returns (uint256) { uint256 c = _a + _b; require(c >= _a); return c; } } /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address who) external view returns (uint256); function transfer(address to, uint256 value) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } contract Ownable { address private owner; constructor() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } } contract ERC20 is Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; uint256 private _totalSupply; /** * @dev Total number of tokens in existence */ function totalSupply() external view returns (uint256) { return _totalSupply; } /** * @dev Gets the balance of the specified address. * @param owner The address to query the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address owner) public view returns (uint256) { return _balances[owner]; } /** * @dev Transfer token for a specified address * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function transfer(address from, address to, uint256 value) public onlyOwner returns (bool) { _transfer(from, to, value); return true; } /** * @dev Mint token for a specified address * @param account The address to mint to. * @param value The amount to be minted. */ function mint(address account, uint256 value) public onlyOwner returns (bool) { _mint(account, value); return true; } /** * @dev Burn token for a specified address * @param account The address to burn from. * @param value The amount to be burnt. */ function burn(address account, uint256 value) public onlyOwner returns (bool) { _burn(account, value); return true; } /** * @dev Transfer token for a specified addresses * @param from The address to transfer from. * @param to The address to transfer to. * @param value The amount to be transferred. */ function _transfer(address from, address to, uint256 value) internal { require(to != address(0)); _balances[from] = _balances[from].sub(value); _balances[to] = _balances[to].add(value); } /** * @dev Internal function that mints an amount of the token and assigns it to * an account. This encapsulates the modification of balances such that the * proper events are emitted. * @param account The account that will receive the created tokens. * @param value The amount that will be created. */ function _mint(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.add(value); _balances[account] = _balances[account].add(value); } /** * @dev Internal function that burns an amount of the token of a given * account. * @param account The account whose tokens will be burnt. * @param value The amount that will be burnt. */ function _burn(address account, uint256 value) internal { require(account != address(0)); _totalSupply = _totalSupply.sub(value); _balances[account] = _balances[account].sub(value); } } contract KingdomStorage is ERC20 { using SafeMath for uint256; uint private _kingdomsCount; struct Kingdom { uint numberOfCitizens; uint numberOfWarriors; uint prosperity; uint defence; uint lostCoins; //lost tokens in wars uint tributeCheckpoint; } mapping (uint => address) private kingdomAddress; mapping (address => Kingdom) private kingdoms; event War(address indexed _attacked, address indexed _invader, uint _lostCoins, uint _slayedWarriors); function addCitizens(address _address, uint _number, bool _are_warriors) external onlyOwner { if (kingdoms[_address].prosperity == 0) { // create the new kingdom kingdomAddress[_kingdomsCount] = _address; kingdoms[_address].prosperity = 50; kingdoms[_address].defence = 50; _kingdomsCount++; } if (_are_warriors) { // add warriors kingdoms[_address].numberOfWarriors = kingdoms[_address].numberOfWarriors.add(_number); } else { // add citizens kingdoms[_address].numberOfCitizens = kingdoms[_address].numberOfCitizens.add(_number); kingdoms[_address].tributeCheckpoint = block.timestamp; } } function getTribute(address _address) external onlyOwner { uint tributeValue = getTributeValue(_address); if (tributeValue > 0) { mint(_address, tributeValue); kingdoms[_address].tributeCheckpoint = block.timestamp; kingdoms[_address].lostCoins = 0; } } function startWar(address _invader, address _attacked) external onlyOwner { uint invaderWarriorsNumber = getWarriorsNumber(_invader); require (invaderWarriorsNumber >0); uint attackedKingdomBalance = balanceOf(_attacked); uint attackedKingdomWealth = getTributeValue(_attacked).add(attackedKingdomBalance); uint attackedKingdomDefence = getDefence(_attacked); // one warrior picks up number of GRC equal (100 - attacked kingdom defence) uint attackPower = invaderWarriorsNumber.mul(100 - attackedKingdomDefence); if (attackPower > attackedKingdomWealth) attackPower = attackedKingdomWealth; // defence action: slay warriors uint slayedWarriors; // dont slay, if attackedKingdomWealth <= 10000 GRC if (attackedKingdomWealth > 10000) { slayedWarriors = invaderWarriorsNumber.mul(attackedKingdomDefence).div(100); kingdoms[_invader].numberOfWarriors -= slayedWarriors; } // invader action: pick up tokens uint lostCoins; if (attackedKingdomBalance >= attackPower) { transfer(_attacked, _invader, attackPower); lostCoins += attackPower; attackPower = 0; } else if (attackedKingdomBalance > 0) { transfer(_attacked, _invader, attackedKingdomBalance); lostCoins += attackedKingdomBalance; attackPower -= attackedKingdomBalance; } if (attackPower > 0) { kingdoms[_attacked].lostCoins += attackPower; mint(_invader, attackPower); lostCoins += attackPower; } emit War(_attacked, _invader, lostCoins, slayedWarriors); } function warFailed(address _invader) external onlyOwner { emit War(address(0), _invader, 0, 0); } function increaseProsperity(address _address) external onlyOwner { // minimum defence = 0%, maximum prosperity = 100% if (kingdoms[_address].prosperity <= 90) { kingdoms[_address].prosperity += 10; kingdoms[_address].defence -= 10; } } function increaseDefence(address _address) external onlyOwner { // maximum defence = 90%, minimum prosperity = 10% if (kingdoms[_address].defence <= 80) { kingdoms[_address].defence += 10; kingdoms[_address].prosperity -= 10; } } function getTributeValue(address _address) public view returns(uint) { uint numberOfCitizens = getCitizensNumber(_address); if (numberOfCitizens > 0) { // one citizen gives tribute equal kingdom prosperity, per 7 days; return numberOfCitizens.mul(getProsperity(_address)).mul(block.timestamp.sub(getTributeCheckpoint(_address))).div(7 days).sub(getLostCoins(_address)); } return 0; } function getProsperity(address _address) public view returns(uint) { return kingdoms[_address].prosperity; } function getDefence(address _address) public view returns(uint) { return kingdoms[_address].defence; } function getLostCoins(address _address) public view returns(uint) { return kingdoms[_address].lostCoins; } function getCitizensNumber(address _address) public view returns(uint) { return kingdoms[_address].numberOfCitizens; } function getWarriorsNumber(address _address) public view returns(uint) { return kingdoms[_address].numberOfWarriors; } function getTributeCheckpoint(address _address) public view returns(uint) { return kingdoms[_address].tributeCheckpoint; } function getKingdomAddress(uint _kingdomId) external view returns(address) { return kingdomAddress[_kingdomId]; } function kingdomsCount() external view returns(uint) { return _kingdomsCount; } } contract GreenRabbitKingdom is IERC20 { using SafeMath for uint; address admin; uint invested; uint payed; uint startTime; uint tokenStartPrice; string public name = 'GreenRabbitCoin'; string public symbol = 'GRC'; uint public decimals = 0; event LogNewGame(uint _startTime); KingdomStorage private kingdom; modifier notOnPause() { require(startTime <= block.timestamp, "Game paused"); _; } constructor() public { admin = msg.sender; kingdom = new KingdomStorage(); startTime = now; tokenStartPrice = 1 szabo; //0.000001 ETH } function() external payable { if (msg.value == 0 && msg.value <= 0.00001 ether) { sellTokens(); } else if (msg.value == 0.000111 ether) { //add citizens, not warriors addCitizens(false); } else if (msg.value == 0.000222 ether) { //add warriors addCitizens(true); } else if (msg.value == 0.000333 ether) { increaseProsperity(); } else if (msg.value == 0.000444 ether) { increaseDefence(); } else { buyTokens(); } } /** * @dev ERC20 function */ function totalSupply() external view returns (uint256) { return kingdom.totalSupply(); } /** * @dev ERC20 function */ function transfer(address to, uint256 value) external returns (bool) { // get tribute from your citizens before kingdom.getTribute(msg.sender); return kingdom.transfer(msg.sender, to, value); } /** * @dev ERC20 function */ function balanceOf(address owner) public view returns (uint256) { return kingdom.balanceOf(owner); } function buyTokens() notOnPause public payable { require (msg.value >= 0.001 ether); uint tokensValue = msg.value.div(getTokenSellPrice()).mul(90).div(100); kingdom.mint(msg.sender, tokensValue); admin.send(msg.value / 20); //5% emit Transfer(address(0), msg.sender, tokensValue); } function sellTokens() notOnPause public { // get tribute from your citizens before kingdom.getTribute(msg.sender); uint tokensValue = balanceOf(msg.sender); uint payout = tokensValue.mul(getTokenSellPrice()); if (payout > 0) { if (payout > address(this).balance) { msg.sender.transfer(address(this).balance); nextGame(); return; } msg.sender.transfer(payout); kingdom.burn(msg.sender, tokensValue); emit Transfer(msg.sender, address(0), tokensValue); } } function addCitizens(bool _are_warriors) notOnPause public { // get tribute from your citizens before adding new citizens kingdom.getTribute(msg.sender); uint CitizensNumber = balanceOf(msg.sender).div(100); if (CitizensNumber > 0) { kingdom.addCitizens(msg.sender,CitizensNumber,_are_warriors); kingdom.burn(msg.sender, CitizensNumber * 100); } } function attackKingdom(address _invader, uint _random) notOnPause public returns(bool) { // Only for invader's smart contract: // https://etherscan.io/address/0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966 require (msg.sender == 0x76d7aed5ab1c4a5e210d0ccac747d097f9d58966); uint attackedKingdomId = _random % (kingdom.kingdomsCount()); address attackedKingdomAddress = kingdom.getKingdomAddress(attackedKingdomId); if (_invader != attackedKingdomAddress) { kingdom.startWar(_invader, attackedKingdomAddress); } else { // you can't attack youself kingdom.warFailed(_invader); } return true; } function increaseProsperity() notOnPause public { // get tribute from your citizens before kingdom.getTribute(msg.sender); kingdom.increaseProsperity(msg.sender); } function increaseDefence() notOnPause public { // get tribute from your citizens before kingdom.getTribute(msg.sender); kingdom.increaseDefence(msg.sender); } function synchronizeTokensBalance() notOnPause public { // get tribute from your citizens // for release real tokens that you can see them in your ERC-20 wallet kingdom.getTribute(msg.sender); } function getTokenSellPrice() public view returns(uint) { //each day +1% to token price return tokenStartPrice.add( tokenStartPrice.div(100).mul(block.timestamp.sub(startTime).div(1 days)) ); } function getGameAge() external view returns(uint) { if (block.timestamp > startTime) return block.timestamp.sub(startTime).div(1 days).add(1); else return 0; } function getKingdomsCount() external view returns(uint) { return kingdom.kingdomsCount(); } function getKingdomData(address _address) external view returns(uint numberOfCitizens, uint numberOfWarriors, uint prosperity, uint defence, uint balance) { numberOfCitizens = kingdom.getCitizensNumber(_address); numberOfWarriors = kingdom.getWarriorsNumber(_address); prosperity = kingdom.getProsperity(_address); defence = kingdom.getDefence(_address); balance = kingdom.getTributeValue(_address) + balanceOf(_address); } function getBalance() external view returns(uint) { return address(this).balance; } function nextGame() private { kingdom = new KingdomStorage(); startTime = block.timestamp + 3 days; emit LogNewGame(startTime); } }
Contract ABI
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalance","outputs":[{"name":"","type":"uint256"}],"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":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_are_warriors","type":"bool"}],"name":"addCitizens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_address","type":"address"}],"name":"getKingdomData","outputs":[{"name":"numberOfCitizens","type":"uint256"},{"name":"numberOfWarriors","type":"uint256"},{"name":"prosperity","type":"uint256"},{"name":"defence","type":"uint256"},{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sellTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"increaseDefence","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_invader","type":"address"},{"name":"_random","type":"uint256"}],"name":"attackKingdom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTokenSellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getKingdomsCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"getGameAge","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"increaseProsperity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"synchronizeTokensBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_startTime","type":"uint256"}],"name":"LogNewGame","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"}]
Contract Creation Code
60806040526040805190810160405280600f81526020017f477265656e526162626974436f696e0000000000000000000000000000000000815250600590805190602001906200005192919062000174565b506040805190810160405280600381526020017f4752430000000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f92919062000174565b506000600755348015620000b257600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000fd620001fb565b604051809103906000f0801580156200011a573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504260038190555064e8d4a5100060048190555062000234565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001b757805160ff1916838001178555620001e8565b82800160010185558215620001e8579182015b82811115620001e7578251825591602001919060010190620001ca565b5b509050620001f791906200020c565b5090565b604051611a95806200440183390190565b6200023191905b808211156200022d57600081600090555060010162000213565b5090565b90565b6141bd80620002446000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101a557806312065fe01461023557806318160ddd14610260578063313ce5671461028b57806344439040146102b657806370234abf146102e557806370a082311461035857806395d89b41146103af5780639904e1741461043f578063a513b73b14610456578063a9059cbb1461046d578063bde7e1d2146104d2578063c9b3e73614610537578063d021afee14610562578063d0febe4c1461058d578063d9c5042d14610597578063eaf45310146105c2578063f119ebe8146105d9575b60003414801561011257506509184e72a0003411155b156101245761011f6105f0565b6101a3565b6564f43391f0003414156101415761013c60006109b0565b6101a2565b65c9e86723e00034141561015e5761015960016109b0565b6101a1565b66012edc9ab5d00034141561017a57610175610d1a565b6101a0565b660193d0ce47c00034141561019657610191610f40565b61019f565b61019e611166565b5b5b5b5b5b005b3480156101b157600080fd5b506101ba611407565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101fa5780820151818401526020810190506101df565b50505050905090810190601f1680156102275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024157600080fd5b5061024a6114a5565b6040518082815260200191505060405180910390f35b34801561026c57600080fd5b506102756114c4565b6040518082815260200191505060405180910390f35b34801561029757600080fd5b506102a061158c565b6040518082815260200191505060405180910390f35b3480156102c257600080fd5b506102e36004803603810190808035151590602001909291905050506109b0565b005b3480156102f157600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611592565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b34801561036457600080fd5b50610399600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a8f565b6040518082815260200191505060405180910390f35b3480156103bb57600080fd5b506103c4611b90565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104045780820151818401526020810190506103e9565b50505050905090810190601f1680156104315780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561044b57600080fd5b506104546105f0565b005b34801561046257600080fd5b5061046b610f40565b005b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c2e565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b5061051d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e41565b604051808215151515815260200191505060405180910390f35b34801561054357600080fd5b5061054c6122b9565b6040518082815260200191505060405180910390f35b34801561056e57600080fd5b50610577612325565b6040518082815260200191505060405180910390f35b610595611166565b005b3480156105a357600080fd5b506105ac6123ed565b6040518082815260200191505060405180910390f35b3480156105ce57600080fd5b506105d7610d1a565b005b3480156105e557600080fd5b506105ee612445565b005b600080426003541115151561066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561072a57600080fd5b505af115801561073e573d6000803e3d6000fd5b5050505061074b33611a8f565b91506107676107586122b9565b8361259690919063ffffffff16565b905060008111156109ab573073ffffffffffffffffffffffffffffffffffffffff16318111156107fc573373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f193505050501580156107ee573d6000803e3d6000fd5b506107f76125d4565b6109ac565b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610842573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b505050506040513d602081101561093257600080fd5b810190808051906020019092919050505050600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35b5b5050565b60004260035411151515610a2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610ae957600080fd5b505af1158015610afd573d6000803e3d6000fd5b50505050610b1d6064610b0f33611a8f565b61268090919063ffffffff16565b90506000811115610d1657600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663babf87bc3383856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001821515151581526020019350505050600060405180830381600087803b158015610bf957600080fd5b505af1158015610c0d573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac33606484026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610cd957600080fd5b505af1158015610ced573d6000803e3d6000fd5b505050506040513d6020811015610d0357600080fd5b8101908080519060200190929190505050505b5050565b4260035411151515610d94576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610e5157600080fd5b505af1158015610e65573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632a4907b7336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015610f2657600080fd5b505af1158015610f3a573d6000803e3d6000fd5b50505050565b4260035411151515610fba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e7d61952336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b50505050565b600042600354111515156111e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b66038d7ea4c6800034101515156111f857600080fd5b611238606461122a605a61121c61120d6122b9565b3461268090919063ffffffff16565b61259690919063ffffffff16565b61268090919063ffffffff16565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156112ff57600080fd5b505af1158015611313573d6000803e3d6000fd5b505050506040513d602081101561132957600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60143481151561138257fe5b049081150290604051600060405180830381858888f19350505050503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b60058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561149d5780601f106114725761010080835404028352916020019161149d565b820191906000526020600020905b81548152906001019060200180831161148057829003601f168201915b505050505081565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561154c57600080fd5b505af1158015611560573d6000803e3d6000fd5b505050506040513d602081101561157657600080fd5b8101908080519060200190929190505050905090565b60075481565b6000806000806000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166351d655f4876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561165757600080fd5b505af115801561166b573d6000803e3d6000fd5b505050506040513d602081101561168157600080fd5b81019080805190602001909291905050509450600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f53002ab876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561175157600080fd5b505af1158015611765573d6000803e3d6000fd5b505050506040513d602081101561177b57600080fd5b81019080805190602001909291905050509350600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dcadc7e1876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561184b57600080fd5b505af115801561185f573d6000803e3d6000fd5b505050506040513d602081101561187557600080fd5b81019080805190602001909291905050509250600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635af9c59b876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561194557600080fd5b505af1158015611959573d6000803e3d6000fd5b505050506040513d602081101561196f57600080fd5b8101908080519060200190929190505050915061198b86611a8f565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c97ea350886040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611a4857600080fd5b505af1158015611a5c573d6000803e3d6000fd5b505050506040513d6020811015611a7257600080fd5b810190808051906020019092919050505001905091939590929450565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b4e57600080fd5b505af1158015611b62573d6000803e3d6000fd5b505050506040513d6020811015611b7857600080fd5b81019080805190602001909291905050509050919050565b60068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c265780601f10611bfb57610100808354040283529160200191611c26565b820191906000526020600020905b815481529060010190602001808311611c0957829003601f168201915b505050505081565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b158015611ced57600080fd5b505af1158015611d01573d6000803e3d6000fd5b50505050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663beabacc83385856040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b505050506040513d6020811015611e2857600080fd5b8101908080519060200190929190505050905092915050565b60008060004260035411151515611ec0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b7376d7aed5ab1c4a5e210d0ccac747d097f9d589663373ffffffffffffffffffffffffffffffffffffffff16141515611ef857600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc6b5fdb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611f7e57600080fd5b505af1158015611f92573d6000803e3d6000fd5b505050506040513d6020811015611fa857600080fd5b810190808051906020019092919050505084811515611fc357fe5b069150600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663992c462f836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050602060405180830381600087803b15801561205757600080fd5b505af115801561206b573d6000803e3d6000fd5b505050506040513d602081101561208157600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415156121d757600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636125158386836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050600060405180830381600087803b1580156121ba57600080fd5b505af11580156121ce573d6000803e3d6000fd5b505050506122ad565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d6c7584b866040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561229457600080fd5b505af11580156122a8573d6000803e3d6000fd5b505050505b60019250505092915050565b600061232061230f6122eb620151806122dd600354426126aa90919063ffffffff16565b61268090919063ffffffff16565b612301606460045461268090919063ffffffff16565b61259690919063ffffffff16565b6004546126cb90919063ffffffff16565b905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dc6b5fdb6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156123ad57600080fd5b505af11580156123c1573d6000803e3d6000fd5b505050506040513d60208110156123d757600080fd5b8101908080519060200190929190505050905090565b600060035442111561243d5761243660016124286201518061241a600354426126aa90919063ffffffff16565b61268090919063ffffffff16565b6126cb90919063ffffffff16565b9050612442565b600090505b90565b42600354111515156124bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f47616d652070617573656400000000000000000000000000000000000000000081525060200191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f794e123336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561257c57600080fd5b505af1158015612590573d6000803e3d6000fd5b50505050565b60008060008414156125ab57600091506125cd565b82840290508284828115156125bc57fe5b041415156125c957600080fd5b8091505b5092915050565b6125dc6126ec565b604051809103906000f0801580156125f8573d6000803e3d6000fd5b50600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506203f48042016003819055507ffede2690a3b21945c3b745bb5671536d62624318ca0e50ef2ac1d5dc03e4f54e6003546040518082815260200191505060405180910390a1565b60008060008311151561269257600080fd5b828481151561269d57fe5b0490508091505092915050565b6000808383111515156126bc57600080fd5b82840390508091505092915050565b60008082840190508381101515156126e257600080fd5b8091505092915050565b604051611a95806126fd8339019056006080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a42806100536000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd146101175780632a4907b71461014257806340c10f191461018557806351d655f4146101ea5780635af9c59b14610241578063612515831461029857806370a08231146102fb57806391c169f014610352578063992c462f146103a95780639a74f4b5146104165780639dc29fac1461046d578063babf87bc146104d2578063beabacc81461052b578063c97ea350146105b0578063d6c7584b14610607578063dc6b5fdb1461064a578063dcadc7e114610675578063e7d61952146106cc578063f53002ab1461070f578063f794e12314610766575b600080fd5b34801561012357600080fd5b5061012c6107a9565b6040518082815260200191505060405180910390f35b34801561014e57600080fd5b50610183600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107b3565b005b34801561019157600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610900565b604051808215151515815260200191505060405180910390f35b3480156101f657600080fd5b5061022b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b6040518082815260200191505060405180910390f35b34801561024d57600080fd5b50610282600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610393600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd2565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103d460048036038101908080359060200190929190505050610d1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042257600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da7565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b50610529600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610e18565b005b34801561053757600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611143565b604051808215151515815260200191505060405180910390f35b3480156105bc57600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b6565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b50610648600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b34801561065657600080fd5b5061065f611322565b6040518082815260200191505060405180910390f35b34801561068157600080fd5b506106b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132c565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611378565b005b34801561071b57600080fd5b50610750600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c5565b6040518082815260200191505060405180910390f35b34801561077257600080fd5b506107a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611511565b005b6000600254905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080e57600080fd5b605a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115156108fd57600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825403925050819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095d57600080fd5b6109678383611621565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6f57600080fd5b610a78896114c5565b9650600087111515610a8957600080fd5b610a9288610c89565b9550610aaf86610aa18a6111b6565b61171190919063ffffffff16565b9450610aba886109bd565b9350610ad2846064038861173290919063ffffffff16565b925084831115610ae0578492505b612710851115610b6357610b106064610b02868a61173290919063ffffffff16565b61177090919063ffffffff16565b915081600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055505b8286101515610b8657610b77888a85611143565b50828101905060009250610ba7565b6000861115610ba657610b9a888a88611143565b50858101905085830392505b5b6000831115610c115782600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282540192505081905550610c0a8984610900565b5082810190505b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e8385604051808381526020018281526020019250505060405180910390a3505050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0457600080fd5b610e0e838361179a565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e7357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415610fb5578260046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506003600081548092919060010191905055505b801561105b5761101082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061113e565b6110b082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a057600080fd5b6111ab84848461188a565b600190509392505050565b6000806111c283610971565b9050600081111561124a576112436111d984610cd2565b61123562093a806112276111fe6111ef89610d5b565b426119f590919063ffffffff16565b61121961120a8a61132c565b8861173290919063ffffffff16565b61173290919063ffffffff16565b61177090919063ffffffff16565b6119f590919063ffffffff16565b915061124f565b600091505b50919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e600080604051808381526020018281526020019250505060405180910390a350565b6000600354905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d357600080fd5b6050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156114c257600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055505b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156e57600080fd5b611577826111b6565b9050600081111561161d5761158c8282610900565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561165d57600080fd5b6116728160025461171190919063ffffffff16565b6002819055506116ca81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080828401905083811015151561172857600080fd5b8091505092915050565b60008060008414156117475760009150611769565b828402905082848281151561175857fe5b0414151561176557600080fd5b8091505b5092915050565b60008060008311151561178257600080fd5b828481151561178d57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d657600080fd5b6117eb816002546119f590919063ffffffff16565b60028190555061184381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118c657600080fd5b61191881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ad81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080838311151515611a0757600080fd5b828403905080915050929150505600a165627a7a7230582009526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f16940029a165627a7a72305820f4094996d03ffa81455208058ef1bbbab3fd1202be9c25dd0dbcd86cf8eae83500296080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a42806100536000396000f300608060405260043610610112576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806318160ddd146101175780632a4907b71461014257806340c10f191461018557806351d655f4146101ea5780635af9c59b14610241578063612515831461029857806370a08231146102fb57806391c169f014610352578063992c462f146103a95780639a74f4b5146104165780639dc29fac1461046d578063babf87bc146104d2578063beabacc81461052b578063c97ea350146105b0578063d6c7584b14610607578063dc6b5fdb1461064a578063dcadc7e114610675578063e7d61952146106cc578063f53002ab1461070f578063f794e12314610766575b600080fd5b34801561012357600080fd5b5061012c6107a9565b6040518082815260200191505060405180910390f35b34801561014e57600080fd5b50610183600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107b3565b005b34801561019157600080fd5b506101d0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610900565b604051808215151515815260200191505060405180910390f35b3480156101f657600080fd5b5061022b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b6040518082815260200191505060405180910390f35b34801561024d57600080fd5b50610282600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b6040518082815260200191505060405180910390f35b3480156102a457600080fd5b506102f9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b34801561030757600080fd5b5061033c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c89565b6040518082815260200191505060405180910390f35b34801561035e57600080fd5b50610393600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cd2565b6040518082815260200191505060405180910390f35b3480156103b557600080fd5b506103d460048036038101908080359060200190929190505050610d1e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561042257600080fd5b50610457600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d5b565b6040518082815260200191505060405180910390f35b34801561047957600080fd5b506104b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610da7565b604051808215151515815260200191505060405180910390f35b3480156104de57600080fd5b50610529600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803515159060200190929190505050610e18565b005b34801561053757600080fd5b50610596600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611143565b604051808215151515815260200191505060405180910390f35b3480156105bc57600080fd5b506105f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111b6565b6040518082815260200191505060405180910390f35b34801561061357600080fd5b50610648600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b005b34801561065657600080fd5b5061065f611322565b6040518082815260200191505060405180910390f35b34801561068157600080fd5b506106b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132c565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b5061070d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611378565b005b34801561071b57600080fd5b50610750600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c5565b6040518082815260200191505060405180910390f35b34801561077257600080fd5b506107a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611511565b005b6000600254905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561080e57600080fd5b605a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541115156108fd57600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825403925050819055505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561095d57600080fd5b6109678383611621565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301549050919050565b60008060008060008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a6f57600080fd5b610a78896114c5565b9650600087111515610a8957600080fd5b610a9288610c89565b9550610aaf86610aa18a6111b6565b61171190919063ffffffff16565b9450610aba886109bd565b9350610ad2846064038861173290919063ffffffff16565b925084831115610ae0578492505b612710851115610b6357610b106064610b02868a61173290919063ffffffff16565b61177090919063ffffffff16565b915081600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825403925050819055505b8286101515610b8657610b77888a85611143565b50828101905060009250610ba7565b6000861115610ba657610b9a888a88611143565b50858101905085830392505b5b6000831115610c115782600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040160008282540192505081905550610c0a8984610900565b5082810190505b8873ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e8385604051808381526020018281526020019250505060405180910390a3505050505050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401549050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e0457600080fd5b610e0e838361179a565b6001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e7357600080fd5b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201541415610fb5578260046000600354815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201819055506032600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301819055506003600081548092919060010191905055505b801561105b5761101082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018190555061113e565b6110b082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461171190919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055505b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111a057600080fd5b6111ab84848461188a565b600190509392505050565b6000806111c283610971565b9050600081111561124a576112436111d984610cd2565b61123562093a806112276111fe6111ef89610d5b565b426119f590919063ffffffff16565b61121961120a8a61132c565b8861173290919063ffffffff16565b61173290919063ffffffff16565b61177090919063ffffffff16565b6119f590919063ffffffff16565b915061124f565b600091505b50919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b057600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f91f1b5a7a91fbc70a39ec01d78327a29a5377b10b6304785f0fb6baca03bb38e600080604051808381526020018281526020019250505060405180910390a350565b6000600354905090565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113d357600080fd5b6050600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301541115156114c257600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030160008282540192505081905550600a600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825403925050819055505b50565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561156e57600080fd5b611577826111b6565b9050600081111561161d5761158c8282610900565b5042600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600501819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600401819055505b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561165d57600080fd5b6116728160025461171190919063ffffffff16565b6002819055506116ca81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080828401905083811015151561172857600080fd5b8091505092915050565b60008060008414156117475760009150611769565b828402905082848281151561175857fe5b0414151561176557600080fd5b8091505b5092915050565b60008060008311151561178257600080fd5b828481151561178d57fe5b0490508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156117d657600080fd5b6117eb816002546119f590919063ffffffff16565b60028190555061184381600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156118c657600080fd5b61191881600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119f590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119ad81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600080838311151515611a0757600080fd5b828403905080915050929150505600a165627a7a7230582009526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f16940029
Swarm Source:
bzzr://09526377769d0d37f80c2a4c0e700e5e35b5f2ff179c33cb3a3e94e4304f1694
Block | Age | transaction | Difficulty | GasUsed | Reward |
---|
Block | Age | Uncle Number | Difficulty | GasUsed | Reward |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.