Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 3,219 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 7008331 | 2140 days ago | IN | 0.01 ETH | 0.00004419 | ||||
Buy Upgrade Card | 6678517 | 2195 days ago | IN | 0 ETH | 0.00007445 | ||||
Buy Upgrade Card | 6678517 | 2195 days ago | IN | 0 ETH | 0.00033285 | ||||
Buy Basic Cards | 6625997 | 2204 days ago | IN | 0 ETH | 0.00020236 | ||||
Buy Basic Cards | 6625986 | 2204 days ago | IN | 0 ETH | 0.00020236 | ||||
Buy Basic Cards | 6625216 | 2204 days ago | IN | 0 ETH | 0.00043589 | ||||
Buy Basic Cards | 6583045 | 2211 days ago | IN | 0 ETH | 0.0005767 | ||||
Buy Basic Cards | 6569564 | 2213 days ago | IN | 0 ETH | 0.00064533 | ||||
Buy Upgrade Card | 6567334 | 2214 days ago | IN | 0 ETH | 0.00044379 | ||||
Buy Upgrade Card | 6567333 | 2214 days ago | IN | 0 ETH | 0.00044238 | ||||
Buy Basic Cards | 6566126 | 2214 days ago | IN | 0 ETH | 0.00042669 | ||||
Buy Basic Cards | 6564187 | 2214 days ago | IN | 0 ETH | 0.00027657 | ||||
Buy Basic Cards | 6563887 | 2214 days ago | IN | 0 ETH | 0.00046095 | ||||
Buy Upgrade Card | 6563875 | 2214 days ago | IN | 0 ETH | 0.00037721 | ||||
Buy Upgrade Card | 6563873 | 2214 days ago | IN | 0 ETH | 0.00037046 | ||||
Buy Upgrade Card | 6563873 | 2214 days ago | IN | 0 ETH | 0.00037728 | ||||
Buy Upgrade Card | 6563871 | 2214 days ago | IN | 0 ETH | 0.00037604 | ||||
Buy Basic Cards | 6563612 | 2214 days ago | IN | 0 ETH | 0.00087379 | ||||
Buy Basic Cards | 6563043 | 2214 days ago | IN | 0 ETH | 0.00081136 | ||||
Buy Basic Cards | 6562940 | 2214 days ago | IN | 0 ETH | 0.000526 | ||||
Buy Upgrade Card | 6562716 | 2214 days ago | IN | 0 ETH | 0.00078921 | ||||
Buy Basic Cards | 6562710 | 2214 days ago | IN | 0 ETH | 0.00087179 | ||||
Buy Basic Cards | 6559959 | 2215 days ago | IN | 0 ETH | 0.00045007 | ||||
Buy Basic Cards | 6559959 | 2215 days ago | IN | 0 ETH | 0.00030106 | ||||
Buy Basic Cards | 6559959 | 2215 days ago | IN | 0 ETH | 0.00030805 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
BitGuildTrade
Compiler Version
v0.4.21+commit.dfe3193c
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-07-25 */ pragma solidity ^0.4.18; /* ==================================================================== */ /* Copyright (c) 2018 The MagicAcademy Project. All rights reserved. /* /* https://www.magicacademy.io One of the world's first idle strategy games of blockchain /* /* authors [email protected]/[email protected] /* /* ==================================================================== */ /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /* * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function Ownable() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract AccessAdmin is Ownable { /// @dev Admin Address mapping (address => bool) adminContracts; /// @dev Trust contract mapping (address => bool) actionContracts; function setAdminContract(address _addr, bool _useful) public onlyOwner { require(_addr != address(0)); adminContracts[_addr] = _useful; } modifier onlyAdmin { require(adminContracts[msg.sender]); _; } function setActionContract(address _actionAddr, bool _useful) public onlyAdmin { actionContracts[_actionAddr] = _useful; } modifier onlyAccess() { require(actionContracts[msg.sender]); _; } } interface BitGuildTokenInterface { // implements ERC20Interface function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } interface CardsInterface { function getGameStarted() external constant returns (bool); function getOwnedCount(address player, uint256 cardId) external view returns (uint256); function getMaxCap(address _addr,uint256 _cardId) external view returns (uint256); function upgradeUnitMultipliers(address player, uint256 upgradeClass, uint256 unitId, uint256 upgradeValue) external; function removeUnitMultipliers(address player, uint256 upgradeClass, uint256 unitId, uint256 upgradeValue) external; function balanceOf(address player) public constant returns(uint256); function coinBalanceOf(address player,uint8 itype) external constant returns(uint256); function updatePlayersCoinByPurchase(address player, uint256 purchaseCost) external; function getUnitsProduction(address player, uint256 unitId, uint256 amount) external constant returns (uint256); function increasePlayersJadeProduction(address player, uint256 increase) public; function setUintCoinProduction(address _address, uint256 cardId, uint256 iValue, bool iflag) external; function getUintsOwnerCount(address _address) external view returns (uint256); function AddPlayers(address _address) external; function setUintsOwnerCount(address _address, uint256 amount, bool iflag) external; function setOwnedCount(address player, uint256 cardId, uint256 amount, bool iflag) external; function setCoinBalance(address player, uint256 eth, uint8 itype, bool iflag) external; function setTotalEtherPool(uint256 inEth, uint8 itype, bool iflag) external; function getUpgradesOwned(address player, uint256 upgradeId) external view returns (uint256); function setUpgradesOwned(address player, uint256 upgradeId) external; function updatePlayersCoinByOut(address player) external; function balanceOfUnclaimed(address player) public constant returns (uint256); function setLastJadeSaveTime(address player) external; function setRoughSupply(uint256 iroughSupply) external; function setJadeCoin(address player, uint256 coin, bool iflag) external; function getUnitsInProduction(address player, uint256 unitId, uint256 amount) external constant returns (uint256); function reducePlayersJadeProduction(address player, uint256 decrease) public; } interface GameConfigInterface { function unitCoinProduction(uint256 cardId) external constant returns (uint256); function unitPLATCost(uint256 cardId) external constant returns (uint256); function getCostForCards(uint256 cardId, uint256 existing, uint256 amount) external constant returns (uint256); function getCostForBattleCards(uint256 cardId, uint256 existing, uint256 amount) external constant returns (uint256); function unitBattlePLATCost(uint256 cardId) external constant returns (uint256); function getUpgradeCardsInfo(uint256 upgradecardId,uint256 existing) external constant returns ( uint256 coinCost, uint256 ethCost, uint256 upgradeClass, uint256 cardId, uint256 upgradeValue, uint256 platCost ); function getCardInfo(uint256 cardId, uint256 existing, uint256 amount) external constant returns (uint256, uint256, uint256, uint256, bool); function getBattleCardInfo(uint256 cardId, uint256 existing, uint256 amount) external constant returns (uint256, uint256, uint256, bool); } interface RareInterface { function getRareItemsOwner(uint256 rareId) external view returns (address); function getRareItemsPrice(uint256 rareId) external view returns (uint256); function getRareItemsPLATPrice(uint256 rareId) external view returns (uint256); function getRarePLATInfo(uint256 _tokenId) external view returns ( uint256 sellingPrice, address owner, uint256 nextPrice, uint256 rareClass, uint256 cardId, uint256 rareValue ); function transferToken(address _from, address _to, uint256 _tokenId) external; function setRarePrice(uint256 _rareId, uint256 _price) external; } /// @notice Purchase on BitGuild /// @author rainysiu [email protected] contract BitGuildTrade is AccessAdmin { BitGuildTokenInterface public tokenContract; //data contract CardsInterface public cards ; GameConfigInterface public schema; RareInterface public rare; function BitGuildTrade() public { setAdminContract(msg.sender,true); setActionContract(msg.sender,true); } event UnitBought(address player, uint256 unitId, uint256 amount); event UpgradeCardBought(address player, uint256 upgradeId); event BuyRareCard(address player, address previous, uint256 rareId,uint256 iPrice); event UnitSold(address player, uint256 unitId, uint256 amount); function() external payable { revert(); } function setBitGuildToken(address _tokenContract) external onlyOwner { tokenContract = BitGuildTokenInterface(_tokenContract); } function setCardsAddress(address _address) external onlyOwner { cards = CardsInterface(_address); } //normal cards function setConfigAddress(address _address) external onlyOwner { schema = GameConfigInterface(_address); } //rare cards function setRareAddress(address _address) external onlyOwner { rare = RareInterface(_address); } function kill() public onlyOwner { tokenContract.transferFrom(this, msg.sender, tokenContract.balanceOf(this)); selfdestruct(msg.sender); //end execution, destroy current contract and send funds to a } /// @notice Returns all the relevant information about a specific tokenId. /// val1:flag,val2:id,val3:amount function _getExtraParam(bytes _extraData) private pure returns(uint256 val1,uint256 val2,uint256 val3) { if (_extraData.length == 2) { val1 = uint256(_extraData[0]); val2 = uint256(_extraData[1]); val3 = 1; } else if (_extraData.length == 3) { val1 = uint256(_extraData[0]); val2 = uint256(_extraData[1]); val3 = uint256(_extraData[2]); } } function receiveApproval(address _player, uint256 _value, address _tokenContractAddr, bytes _extraData) external { require(msg.sender == _tokenContractAddr); require(_extraData.length >=1); require(tokenContract.transferFrom(_player, address(this), _value)); uint256 flag; uint256 unitId; uint256 amount; (flag,unitId,amount) = _getExtraParam(_extraData); if (flag==1) { buyPLATCards(_player, _value, unitId, amount); // 1-39 } else if (flag==3) { buyUpgradeCard(_player, _value, unitId); // >=1 } else if (flag==4) { buyRareItem(_player, _value, unitId); //rarecard } } /// buy normal cards via jade function buyBasicCards(uint256 unitId, uint256 amount) external { require(cards.getGameStarted()); require(amount>=1); uint256 existing = cards.getOwnedCount(msg.sender,unitId); uint256 total = SafeMath.add(existing, amount); if (total > 99) { // Default unit limit require(total <= cards.getMaxCap(msg.sender,unitId)); // Housing upgrades (allow more units) } uint256 coinProduction; uint256 coinCost; uint256 ethCost; if (unitId>=1 && unitId<=39) { (, coinProduction, coinCost, ethCost,) = schema.getCardInfo(unitId, existing, amount); } else if (unitId>=40) { (, coinCost, ethCost,) = schema.getBattleCardInfo(unitId, existing, amount); } require(cards.balanceOf(msg.sender) >= coinCost); require(ethCost == 0); // Free ether unit // Update players jade cards.updatePlayersCoinByPurchase(msg.sender, coinCost); ///****increase production***/ if (coinProduction > 0) { cards.increasePlayersJadeProduction(msg.sender,cards.getUnitsProduction(msg.sender, unitId, amount)); cards.setUintCoinProduction(msg.sender,unitId,cards.getUnitsProduction(msg.sender, unitId, amount),true); } //players if (cards.getUintsOwnerCount(msg.sender)<=0) { cards.AddPlayers(msg.sender); } cards.setUintsOwnerCount(msg.sender,amount,true); cards.setOwnedCount(msg.sender,unitId,amount,true); UnitBought(msg.sender, unitId, amount); } function buyBasicCards_Migrate(address _addr, uint256 _unitId, uint256 _amount) external onlyAdmin { require(cards.getGameStarted()); require(_amount>=1); uint256 existing = cards.getOwnedCount(_addr,_unitId); uint256 total = SafeMath.add(existing, _amount); if (total > 99) { // Default unit limit require(total <= cards.getMaxCap(_addr,_unitId)); // Housing upgrades (allow more units) } require (_unitId == 41); uint256 coinCost; uint256 ethCost; (, coinCost, ethCost,) = schema.getBattleCardInfo(_unitId, existing, _amount); //players if (cards.getUintsOwnerCount(_addr)<=0) { cards.AddPlayers(_addr); } cards.setUintsOwnerCount(_addr,_amount,true); cards.setOwnedCount(_addr,_unitId,_amount,true); UnitBought(_addr, _unitId, _amount); } function buyPLATCards(address _player, uint256 _platValue, uint256 _cardId, uint256 _amount) internal { require(cards.getGameStarted()); require(_amount>=1); uint256 existing = cards.getOwnedCount(_player,_cardId); uint256 total = SafeMath.add(existing, _amount); if (total > 99) { // Default unit limit require(total <= cards.getMaxCap(_player,_cardId)); // Housing upgrades (allow more units) } uint256 coinProduction; uint256 coinCost; uint256 ethCost; if (_cardId>=1 && _cardId<=39) { coinProduction = schema.unitCoinProduction(_cardId); coinCost = schema.getCostForCards(_cardId, existing, _amount); ethCost = SafeMath.mul(schema.unitPLATCost(_cardId),_amount); // get platprice } else if (_cardId>=40) { coinCost = schema.getCostForBattleCards(_cardId, existing, _amount); ethCost = SafeMath.mul(schema.unitBattlePLATCost(_cardId),_amount); // get platprice } require(ethCost>0); require(SafeMath.add(cards.coinBalanceOf(_player,1),_platValue) >= ethCost); require(cards.balanceOf(_player) >= coinCost); // Update players jade cards.updatePlayersCoinByPurchase(_player, coinCost); if (ethCost > _platValue) { cards.setCoinBalance(_player,SafeMath.sub(ethCost,_platValue),1,false); } else if (_platValue > ethCost) { // Store overbid in their balance cards.setCoinBalance(_player,SafeMath.sub(_platValue,ethCost),1,true); } uint256 devFund = uint256(SafeMath.div(ethCost,20)); // 5% fee cards.setTotalEtherPool(uint256(SafeMath.div(ethCost,4)),1,true); // 20% to pool cards.setCoinBalance(owner,devFund,1,true); if (coinProduction > 0) { cards.increasePlayersJadeProduction(_player, cards.getUnitsProduction(_player, _cardId, _amount)); cards.setUintCoinProduction(_player,_cardId,cards.getUnitsProduction(_player, _cardId, _amount),true); } if (cards.getUintsOwnerCount(_player)<=0) { cards.AddPlayers(_player); } cards.setUintsOwnerCount(_player,_amount, true); cards.setOwnedCount(_player,_cardId,_amount,true); //event UnitBought(_player, _cardId, _amount); } /// buy upgrade cards with ether/Jade function buyUpgradeCard(uint256 upgradeId) external payable { require(cards.getGameStarted()); require(upgradeId>=1); uint256 existing = cards.getUpgradesOwned(msg.sender,upgradeId); uint256 coinCost; uint256 ethCost; uint256 upgradeClass; uint256 unitId; uint256 upgradeValue; (coinCost, ethCost, upgradeClass, unitId, upgradeValue,) = schema.getUpgradeCardsInfo(upgradeId,existing); if (upgradeClass<8) { require(existing<=5); } else { require(existing<=2); } require (coinCost>0 && ethCost==0); require(cards.balanceOf(msg.sender) >= coinCost); cards.updatePlayersCoinByPurchase(msg.sender, coinCost); cards.upgradeUnitMultipliers(msg.sender, upgradeClass, unitId, upgradeValue); cards.setUpgradesOwned(msg.sender,upgradeId); //upgrade cards level UpgradeCardBought(msg.sender, upgradeId); } /// upgrade cards-- jade + plat function buyUpgradeCard(address _player, uint256 _platValue,uint256 _upgradeId) internal { require(cards.getGameStarted()); require(_upgradeId>=1); uint256 existing = cards.getUpgradesOwned(_player,_upgradeId); require(existing<=5); // v1 - v6 uint256 coinCost; uint256 ethCost; uint256 upgradeClass; uint256 unitId; uint256 upgradeValue; uint256 platCost; (coinCost, ethCost, upgradeClass, unitId, upgradeValue,platCost) = schema.getUpgradeCardsInfo(_upgradeId,existing); require(platCost>0); if (platCost > 0) { require(SafeMath.add(cards.coinBalanceOf(_player,1),_platValue) >= platCost); if (platCost > _platValue) { // They can use their balance instead cards.setCoinBalance(_player, SafeMath.sub(platCost,_platValue),1,false); } else if (platCost < _platValue) { cards.setCoinBalance(_player,SafeMath.sub(_platValue,platCost),1,true); } // defund 5%,upgrade card can not be sold, uint256 devFund = uint256(SafeMath.div(platCost, 20)); // 5% fee on purchases (marketing, gameplay & maintenance) cards.setTotalEtherPool(SafeMath.sub(platCost,devFund),1,true); // Rest goes to div pool (Can't sell upgrades) cards.setCoinBalance(owner,devFund,1,true); } // Update require(cards.balanceOf(_player) >= coinCost); cards.updatePlayersCoinByPurchase(_player, coinCost); //add weight cards.upgradeUnitMultipliers(_player, upgradeClass, unitId, upgradeValue); cards.setUpgradesOwned(_player,_upgradeId); // upgrade level up //add user to userlist if (cards.getUintsOwnerCount(_player)<=0) { cards.AddPlayers(_player); } UpgradeCardBought(_player, _upgradeId); } // Allows someone to send ether and obtain the token function buyRareItem(address _player, uint256 _platValue,uint256 _rareId) internal { require(cards.getGameStarted()); address previousOwner = rare.getRareItemsOwner(_rareId); // rare card require(previousOwner != 0); require(_player!=previousOwner); // can not buy from itself uint256 ethCost = rare.getRareItemsPLATPrice(_rareId); // get plat cost uint256 totalCost = SafeMath.add(cards.coinBalanceOf(_player,1),_platValue); require(totalCost >= ethCost); // We have to claim buyer/sellder's goo before updating their production values cards.updatePlayersCoinByOut(_player); cards.updatePlayersCoinByOut(previousOwner); uint256 upgradeClass; uint256 unitId; uint256 upgradeValue; (,,,,upgradeClass, unitId, upgradeValue) = rare.getRarePLATInfo(_rareId); // modify weight cards.upgradeUnitMultipliers(_player, upgradeClass, unitId, upgradeValue); cards.removeUnitMultipliers(previousOwner, upgradeClass, unitId, upgradeValue); // Splitbid/Overbid if (ethCost > _platValue) { cards.setCoinBalance(_player,SafeMath.sub(ethCost,_platValue),1,false); } else if (_platValue > ethCost) { // Store overbid in their balance cards.setCoinBalance(_player,SafeMath.sub(_platValue,ethCost),1,true); } // Distribute ethCost uint256 devFund = ethCost / 50; uint256 devFund = uint256(SafeMath.div(ethCost, 20)); // 5% fee on purchases (marketing, gameplay & maintenance) 抽成2% uint256 dividends = uint256(SafeMath.div(ethCost,20)); // 5% goes to pool cards.setTotalEtherPool(dividends,1,true); // 5% to pool cards.setCoinBalance(owner,devFund,1,true); // 5% fee // Transfer / update rare item rare.transferToken(previousOwner,_player,_rareId); rare.setRarePrice(_rareId,SafeMath.div(SafeMath.mul(rare.getRareItemsPrice(_rareId),5),4)); cards.setCoinBalance(previousOwner,SafeMath.sub(ethCost,SafeMath.add(dividends,devFund)),1,true); if (cards.getUintsOwnerCount(_player)<=0) { cards.AddPlayers(_player); } cards.setUintsOwnerCount(_player,1,true); cards.setUintsOwnerCount(previousOwner,1,true); //tell the world BuyRareCard(_player, previousOwner, _rareId, ethCost); } /// refunds 75% since no transfer between bitguild and player,no need to call approveAndCall function sellCards( uint256 _unitId, uint256 _amount) external { require(cards.getGameStarted()); uint256 existing = cards.getOwnedCount(msg.sender,_unitId); require(existing >= _amount && _amount>0); existing = SafeMath.sub(existing,_amount); uint256 coinChange; uint256 decreaseCoin; uint256 schemaUnitId; uint256 coinProduction; uint256 coinCost; uint256 ethCost; bool sellable; if (_unitId>=40) { // upgrade card (schemaUnitId,coinCost,, sellable) = schema.getBattleCardInfo(_unitId, existing, _amount); ethCost = SafeMath.mul(schema.unitBattlePLATCost(_unitId),_amount); } else { (schemaUnitId, coinProduction, coinCost, , sellable) = schema.getCardInfo(_unitId, existing, _amount); ethCost = SafeMath.mul(schema.unitPLATCost(_unitId),_amount); // plat } require(sellable); // can be refunded if (coinCost>0) { coinChange = SafeMath.add(cards.balanceOfUnclaimed(msg.sender), SafeMath.div(SafeMath.mul(coinCost,70),100)); // Claim unsaved goo whilst here } else { coinChange = cards.balanceOfUnclaimed(msg.sender); } cards.setLastJadeSaveTime(msg.sender); cards.setRoughSupply(coinChange); cards.setJadeCoin(msg.sender, coinChange, true); // refund 75% Jadecoin to player decreaseCoin = cards.getUnitsInProduction(msg.sender, _unitId, _amount); if (coinProduction > 0) { cards.reducePlayersJadeProduction(msg.sender, decreaseCoin); //update the speed of jade minning cards.setUintCoinProduction(msg.sender,_unitId,decreaseCoin,false); } if (ethCost > 0) { // Premium units sell for 75% of buy cost cards.setCoinBalance(msg.sender,SafeMath.div(SafeMath.mul(ethCost,70),100),1,true); } cards.setOwnedCount(msg.sender,_unitId,_amount,false); cards.setUintsOwnerCount(msg.sender,_amount,false); //tell the world UnitSold(msg.sender, _unitId, _amount); } //@notice for player withdraw function withdrawEtherFromTrade(uint256 amount) external { require(amount <= cards.coinBalanceOf(msg.sender,1)); cards.setCoinBalance(msg.sender,amount,1,false); tokenContract.transfer(msg.sender,amount); } //@notice withraw all PLAT by dev function withdrawToken(uint256 amount) external onlyOwner { uint256 balance = tokenContract.balanceOf(this); require(balance > 0 && balance >= amount); tokenContract.transfer(msg.sender, amount); } } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_useful","type":"bool"}],"name":"setAdminContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"unitId","type":"uint256"},{"name":"amount","type":"uint256"}],"name":"buyBasicCards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cards","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdrawEtherFromTrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rare","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setCardsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_actionAddr","type":"address"},{"name":"_useful","type":"bool"}],"name":"setActionContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"}],"name":"setBitGuildToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setRareAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address"}],"name":"setConfigAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"},{"name":"_unitId","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"buyBasicCards_Migrate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_player","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tokenContractAddr","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_unitId","type":"uint256"},{"name":"_amount","type":"uint256"}],"name":"sellCards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"upgradeId","type":"uint256"}],"name":"buyUpgradeCard","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"schema","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"unitId","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"UnitBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"upgradeId","type":"uint256"}],"name":"UpgradeCardBought","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"previous","type":"address"},{"indexed":false,"name":"rareId","type":"uint256"},{"indexed":false,"name":"iPrice","type":"uint256"}],"name":"BuyRareCard","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"player","type":"address"},{"indexed":false,"name":"unitId","type":"uint256"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"UnitSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
606060405234156200001057600080fd5b60008054600160a060020a03191633600160a060020a038116919091179091556200004b9060016401000000006200006c8102620003341704565b6200006633600164010000000062000ef1620000c982021704565b6200011c565b60005433600160a060020a039081169116146200008857600080fd5b600160a060020a03821615156200009e57600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b600160a060020a03331660009081526001602052604090205460ff161515620000f157600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b614072806200012c6000396000f3006060604052600436106100f85763ffffffff60e060020a6000350416630865dadc81146100fd5780633702ab031461012357806341c0e1b51461013c57806350baa6221461014f57806355a373d61461016557806358a4903f1461019457806363c78e87146101a75780636bb7b7a4146101bd5780636cdb1b75146101d05780636fb642de146101ef578063727b42761461021357806376f2ccb91461023257806383a12de914610251578063845b6aca146102705780638da5cb5b146102955780638f4ffcb1146102a85780639a5c0abc146102de578063c3059c63146102f7578063f2fde38b14610302578063f8895cc814610321575b600080fd5b341561010857600080fd5b610121600160a060020a03600435166024351515610334565b005b341561012e57600080fd5b61012160043560243561038f565b341561014757600080fd5b610121610b04565b341561015a57600080fd5b610121600435610c00565b341561017057600080fd5b610178610d10565b604051600160a060020a03909116815260200160405180910390f35b341561019f57600080fd5b610178610d1f565b34156101b257600080fd5b610121600435610d2e565b34156101c857600080fd5b610178610e98565b34156101db57600080fd5b610121600160a060020a0360043516610ea7565b34156101fa57600080fd5b610121600160a060020a03600435166024351515610ef1565b341561021e57600080fd5b610121600160a060020a0360043516610f43565b341561023d57600080fd5b610121600160a060020a0360043516610f8d565b341561025c57600080fd5b610121600160a060020a0360043516610fd7565b341561027b57600080fd5b610121600160a060020a0360043516602435604435611021565b34156102a057600080fd5b61017861146c565b34156102b357600080fd5b61012160048035600160a060020a03908116916024803592604435169160643591820191013561147b565b34156102e957600080fd5b6101216004356024356115be565b610121600435611e24565b341561030d57600080fd5b610121600160a060020a03600435166121e9565b341561032c57600080fd5b610178612284565b60005433600160a060020a0390811691161461034f57600080fd5b600160a060020a038216151561036457600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b6004546000908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103d957600080fd5b5af115156103e657600080fd5b5050506040518051905015156103fb57600080fd5b600186101561040957600080fd5b600454600160a060020a031663196ecd25338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561045f57600080fd5b5af1151561046c57600080fd5b5050506040518051905094506104828587612293565b9350606384111561050657600454600160a060020a031663969ddd71338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104e357600080fd5b5af115156104f057600080fd5b5050506040518051851115905061050657600080fd5b60018710158015610518575060278711155b156105b257600554600160a060020a031663ee4827ea88878960405160e060020a63ffffffff861602815260048101939093526024830191909152604482015260640160a060405180830381600087803b151561057457600080fd5b5af1151561058157600080fd5b5050506040518051906020018051906020018051906020018051906020018051509296509094509250610641915050565b6028871061064157600554600160a060020a031663b2570b1c88878960405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561061157600080fd5b5af1151561061e57600080fd5b505050604051805190602001805190602001805190602001805150919450925050505b6004548290600160a060020a03166370a082313360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561069357600080fd5b5af115156106a057600080fd5b50505060405180519050101515156106b757600080fd5b80156106c257600080fd5b600454600160a060020a031663a1c90a11338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561071857600080fd5b5af1151561072557600080fd5b50505060008311156108e557600454600160a060020a03166379c310a63382632d171243828c8c60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561079757600080fd5b5af115156107a457600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107f157600080fd5b5af115156107fe57600080fd5b5050600454600160a060020a0316905063ce29555f338983632d17124383838d60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561086957600080fd5b5af1151561087657600080fd5b50505060405180519050600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b15156108d457600080fd5b5af115156108e157600080fd5b5050505b600454600090600160a060020a031663a436e33b3360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561093857600080fd5b5af1151561094557600080fd5b505050604051805190501115156109b757600454600160a060020a031663f7fb0a4b3360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109a657600080fd5b5af115156109b357600080fd5b5050505b600454600160a060020a031663fc4756df3388600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515610a1957600080fd5b5af11515610a2657600080fd5b5050600454600160a060020a0316905063e7001b84338989600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515610a9257600080fd5b5af11515610a9f57600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b3388886040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050565b60005433600160a060020a03908116911614610b1f57600080fd5b600354600160a060020a03166323b872dd3033836370a082318360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b7757600080fd5b5af11515610b8457600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610bdd57600080fd5b5af11515610bea57600080fd5b50505060405180515050600160a060020a033316ff5b6000805433600160a060020a03908116911614610c1c57600080fd5b600354600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c6c57600080fd5b5af11515610c7957600080fd5b5050506040518051915050600081118015610c945750818110155b1515610c9f57600080fd5b600354600160a060020a031663a9059cbb338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610cf557600080fd5b5af11515610d0257600080fd5b505050604051805150505050565b600354600160a060020a031681565b600454600160a060020a031681565b600454600160a060020a031663e8d320e633600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610d8857600080fd5b5af11515610d9557600080fd5b50505060405180518211159050610dab57600080fd5b600454600160a060020a0316635460554933836001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515610e1757600080fd5b5af11515610e2457600080fd5b5050600354600160a060020a0316905063a9059cbb338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e7e57600080fd5b5af11515610e8b57600080fd5b5050506040518051505050565b600654600160a060020a031681565b60005433600160a060020a03908116911614610ec257600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604090205460ff161515610f1857600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b60005433600160a060020a03908116911614610f5e57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610fa857600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610ff257600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604081205481908190819060ff16151561104e57600080fd5b600454600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561108d57600080fd5b5af1151561109a57600080fd5b5050506040518051905015156110af57600080fd5b60018510156110bd57600080fd5b600454600160a060020a031663196ecd25888860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561111357600080fd5b5af1151561112057600080fd5b5050506040518051905093506111368486612293565b925060638311156111ba57600454600160a060020a031663969ddd71888860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561119757600080fd5b5af115156111a457600080fd5b505050604051805184111590506111ba57600080fd5b602986146111c757600080fd5b600554600160a060020a031663b2570b1c87868860405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561121e57600080fd5b5af1151561122b57600080fd5b50505060405180519060200180519060200180519060200180515050600454919450925060009150600160a060020a031663a436e33b8960405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156112a057600080fd5b5af115156112ad57600080fd5b5050506040518051905011151561131f57600454600160a060020a031663f7fb0a4b8860405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561130e57600080fd5b5af1151561131b57600080fd5b5050505b600454600160a060020a031663fc4756df8887600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b151561138157600080fd5b5af1151561138e57600080fd5b5050600454600160a060020a0316905063e7001b84888888600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b15156113fa57600080fd5b5af1151561140757600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b8787876040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050565b600054600160a060020a031681565b600080600085600160a060020a031633600160a060020a03161415156114a057600080fd5b60018410156114ae57600080fd5b600354600160a060020a03166323b872dd89308a60405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561151157600080fd5b5af1151561151e57600080fd5b50505060405180519050151561153357600080fd5b61156b85858080601f0160208091040260200160405190810160405281815292919060208401838380828437506122ad945050505050565b91945092509050600183141561158c576115878888848461239f565b6115b4565b82600314156115a057611587888884612eb2565b82600414156115b4576115b48888846135df565b5050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561160e57600080fd5b5af1151561161b57600080fd5b50505060405180519050151561163057600080fd5b600454600160a060020a031663196ecd25338c60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561168657600080fd5b5af1151561169357600080fd5b50505060405180519850508888108015906116ae5750600089115b15156116b957600080fd5b6116c3888a613ff2565b975060288a106117c857600554600160a060020a031663b2570b1c8b8a8c60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561172457600080fd5b5af1151561173157600080fd5b50505060405180519060200180519060200180519060200180516005549499509296509193506117c192600160a060020a0316915063b6206e6790508c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156117a457600080fd5b5af115156117b157600080fd5b505050604051805190508a614004565b91506118ab565b600554600160a060020a031663ee4827ea8b8a8c60405160e060020a63ffffffff861602815260048101939093526024830191909152604482015260640160a060405180830381600087803b151561181f57600080fd5b5af1151561182c57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600554959a509398509196509193506118a892600160a060020a0316915063fbe45b4890508c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156117a457600080fd5b91505b8015156118b757600080fd5b600083111561194c5760045461194590600160a060020a0316634676b8973360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561191457600080fd5b5af1151561192157600080fd5b50505060405180519050611940611939866046614004565b606461402f565b612293565b96506119b5565b600454600160a060020a0316634676b8973360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561199c57600080fd5b5af115156119a957600080fd5b50505060405180519750505b600454600160a060020a031663176854f63360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515611a0557600080fd5b5af11515611a1257600080fd5b5050600454600160a060020a0316905063448a0ceb8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611a5e57600080fd5b5af11515611a6b57600080fd5b5050600454600160a060020a0316905063a6678b603389600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515611ad157600080fd5b5af11515611ade57600080fd5b5050600454600160a060020a031690506397ce3a4b338c8c60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611b4157600080fd5b5af11515611b4e57600080fd5b50505060405180519650506000841115611c4257600454600160a060020a031663396e70e0338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611bb857600080fd5b5af11515611bc557600080fd5b5050600454600160a060020a0316905063ce29555f338c89600060405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515611c3157600080fd5b5af11515611c3e57600080fd5b5050505b6000821115611cd457600454600160a060020a0316635460554933611c6b611939866046614004565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515611cc357600080fd5b5af11515611cd057600080fd5b5050505b600454600160a060020a031663e7001b84338c8c600060405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515611d3c57600080fd5b5af11515611d4957600080fd5b5050600454600160a060020a0316905063fc4756df338b600060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515611daf57600080fd5b5af11515611dbc57600080fd5b5050507f9c8076df639d56f1ef3ca3d4d8dc6ed089f8c4756bc5bf5d574f1cec4ef13c54338b8b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050505050565b60045460009081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611e7057600080fd5b5af11515611e7d57600080fd5b505050604051805190501515611e9257600080fd5b6001871015611ea057600080fd5b600454600160a060020a031663e946ad4a338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611ef657600080fd5b5af11515611f0357600080fd5b5050506040518051600554909750600160a060020a031690506373f9421d888860405160e060020a63ffffffff85160281526004810192909252602482015260440160c060405180830381600087803b1515611f5e57600080fd5b5af11515611f6b57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180515094995092975090955093509150506008831015611fbc576005861115611fb757600080fd5b611fca565b6002861115611fca57600080fd5b600085118015611fd8575083155b1515611fe357600080fd5b6004548590600160a060020a03166370a082313360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561203557600080fd5b5af1151561204257600080fd5b505050604051805190501015151561205957600080fd5b600454600160a060020a031663a1c90a11338760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156120af57600080fd5b5af115156120bc57600080fd5b5050600454600160a060020a03169050635edc9bff3385858560405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561212557600080fd5b5af1151561213257600080fd5b5050600454600160a060020a03169050632a288272338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561218c57600080fd5b5af1151561219957600080fd5b5050507f5923958ad0a0f9e2754b81ea1c7483dcdd7481e51b34ee4846bdaa6d5403c3453388604051600160a060020a03909216825260208201526040908101905180910390a150505050505050565b60005433600160a060020a0390811691161461220457600080fd5b600160a060020a038116151561221957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031681565b6000828201838110156122a257fe5b8091505b5092915050565b600080600083516002141561231557836000815181106122c957fe5b016020015160f860020a900460f860020a0260f860020a90049250836001815181106122f157fe5b016020015160f860020a900460f860020a0260f860020a9004915060019050612398565b835160031415612398578360008151811061232c57fe5b016020015160f860020a900460f860020a0260f860020a900492508360018151811061235457fe5b016020015160f860020a900460f860020a0260f860020a900491508360028151811061237c57fe5b016020015160f860020a900460f860020a0260f860020a900490505b9193909250565b60045460009081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123eb57600080fd5b5af115156123f857600080fd5b50505060405180519050151561240d57600080fd5b600187101561241b57600080fd5b600454600160a060020a031663196ecd258b8a60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561247157600080fd5b5af1151561247e57600080fd5b5050506040518051905095506124948688612293565b9450606385111561251857600454600160a060020a031663969ddd718b8a60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156124f557600080fd5b5af1151561250257600080fd5b5050506040518051861115905061251857600080fd5b6001881015801561252a575060278811155b1561267157600554600160a060020a031663702123ae8960405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561257757600080fd5b5af1151561258457600080fd5b5050506040518051600554909550600160a060020a0316905063320cffcd89888a60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b15156125e857600080fd5b5af115156125f557600080fd5b505050604051805160055490945061266a9150600160a060020a031663fbe45b488a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561264d57600080fd5b5af1151561265a57600080fd5b5050506040518051905088614004565b9150612738565b6028881061273857600554600160a060020a031663a8aeecd989888a60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b15156126d057600080fd5b5af115156126dd57600080fd5b50505060405180516005549094506127359150600160a060020a031663b6206e678a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561264d57600080fd5b91505b6000821161274557600080fd5b60045482906127c290600160a060020a031663e8d320e68d600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156127a557600080fd5b5af115156127b257600080fd5b505050604051805190508b612293565b10156127cd57600080fd5b6004548390600160a060020a03166370a082318c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561281f57600080fd5b5af1151561282c57600080fd5b505050604051805190501015151561284357600080fd5b600454600160a060020a031663a1c90a118b8560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561289957600080fd5b5af115156128a657600080fd5b5050508882111561293b57600454600160a060020a031663546055498b6128cd858d613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b151561292657600080fd5b5af1151561293357600080fd5b5050506129c8565b818911156129c857600454600160a060020a031663546055498b61295f8c86613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156129b757600080fd5b5af115156129c457600080fd5b5050505b6129d382601461402f565b60048054919250600160a060020a039091169063358cfa25906129f790859061402f565b60018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b1515612a4157600080fd5b5af11515612a4e57600080fd5b5050600454600054600160a060020a039182169250635460554991168360018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515612ac357600080fd5b5af11515612ad057600080fd5b5050506000841115612c9057600454600160a060020a03166379c310a68b82632d171243828d8d60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612b4257600080fd5b5af11515612b4f57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515612b9c57600080fd5b5af11515612ba957600080fd5b5050600454600160a060020a0316905063ce29555f8b8a83632d17124383838e60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1457600080fd5b5af11515612c2157600080fd5b50505060405180519050600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515612c7f57600080fd5b5af11515612c8c57600080fd5b5050505b600454600090600160a060020a031663a436e33b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612ce357600080fd5b5af11515612cf057600080fd5b50505060405180519050111515612d6257600454600160a060020a031663f7fb0a4b8b60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612d5157600080fd5b5af11515612d5e57600080fd5b5050505b600454600160a060020a031663fc4756df8b89600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515612dc457600080fd5b5af11515612dd157600080fd5b5050600454600160a060020a0316905063e7001b848b8a8a600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515612e3d57600080fd5b5af11515612e4a57600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b8a89896040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612f0257600080fd5b5af11515612f0f57600080fd5b505050604051805190501515612f2457600080fd5b6001891015612f3257600080fd5b600454600160a060020a031663e946ad4a8c8b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612f8857600080fd5b5af11515612f9557600080fd5b50505060405180519850506005881115612fae57600080fd5b600554600160a060020a03166373f9421d8a8a60405160e060020a63ffffffff85160281526004810192909252602482015260440160c060405180830381600087803b1515612ffc57600080fd5b5af1151561300957600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051959c50939a5091985096509450909250506000821161304d57600080fd5b60008211156133035760045482906130d390600160a060020a031663e8d320e68e600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156130b657600080fd5b5af115156130c357600080fd5b505050604051805190508c612293565b10156130de57600080fd5b8982111561317057600454600160a060020a031663546055498c613102858e613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b151561315b57600080fd5b5af1151561316857600080fd5b5050506131fd565b898210156131fd57600454600160a060020a031663546055498c6131948d86613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156131ec57600080fd5b5af115156131f957600080fd5b5050505b61320882601461402f565b600454909150600160a060020a031663358cfa256132268484613ff2565b60018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b151561327057600080fd5b5af1151561327d57600080fd5b5050600454600054600160a060020a039182169250635460554991168360018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156132f257600080fd5b5af115156132ff57600080fd5b5050505b6004548790600160a060020a03166370a082318d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561335557600080fd5b5af1151561336257600080fd5b505050604051805190501015151561337957600080fd5b600454600160a060020a031663a1c90a118c8960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156133cf57600080fd5b5af115156133dc57600080fd5b5050600454600160a060020a03169050635edc9bff8c87878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561344557600080fd5b5af1151561345257600080fd5b5050600454600160a060020a03169050632a2882728c8b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156134ac57600080fd5b5af115156134b957600080fd5b505060045460009150600160a060020a031663a436e33b8d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561350f57600080fd5b5af1151561351c57600080fd5b5050506040518051905011151561358e57600454600160a060020a031663f7fb0a4b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561357d57600080fd5b5af1151561358a57600080fd5b5050505b7f5923958ad0a0f9e2754b81ea1c7483dcdd7481e51b34ee4846bdaa6d5403c3458b8a604051600160a060020a03909216825260208201526040908101905180910390a15050505050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561362f57600080fd5b5af1151561363c57600080fd5b50505060405180519050151561365157600080fd5b600654600160a060020a03166372eefb8a8a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561369957600080fd5b5af115156136a657600080fd5b5050506040518051985050600160a060020a03881615156136c657600080fd5b600160a060020a038b811690891614156136df57600080fd5b600654600160a060020a031663104a5e758a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561372757600080fd5b5af1151561373457600080fd5b505050604051805160045490985061379e9150600160a060020a031663e8d320e68d600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156127a557600080fd5b9550868610156137ad57600080fd5b600454600160a060020a031663e3cbe7448c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156137fd57600080fd5b5af1151561380a57600080fd5b5050600454600160a060020a0316905063e3cbe7448960405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561385e57600080fd5b5af1151561386b57600080fd5b5050600654600160a060020a031690506382a86cda8a60405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156138b757600080fd5b5af115156138c457600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051600454939b5091995090975050600160a060020a03169250635edc9bff91508d905087878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561395f57600080fd5b5af1151561396c57600080fd5b5050600454600160a060020a031690506352d214a78987878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b15156139d557600080fd5b5af115156139e257600080fd5b50505089871115613a7757600454600160a060020a031663546055498c613a098a8e613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613a6257600080fd5b5af11515613a6f57600080fd5b505050613b04565b868a1115613b0457600454600160a060020a031663546055498c613a9b8d8b613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613af357600080fd5b5af11515613b0057600080fd5b5050505b613b0f87601461402f565b9150613b1c87601461402f565b600454909150600160a060020a031663358cfa258260018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b1515613b7b57600080fd5b5af11515613b8857600080fd5b5050600454600054600160a060020a039182169250635460554991168460018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613bfd57600080fd5b5af11515613c0a57600080fd5b5050600654600160a060020a0316905063f5537ede898d8c60405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515613c7157600080fd5b5af11515613c7e57600080fd5b5050600654600160a060020a031690506373a553898a613cfc613cf58463103d26ac8460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515613cd757600080fd5b5af11515613ce457600080fd5b505050604051805190506005614004565b600461402f565b60405160e060020a63ffffffff851602815260048101929092526024820152604401600060405180830381600087803b1515613d3757600080fd5b5af11515613d4457600080fd5b5050600454600160a060020a03169050635460554989613d6d8a613d688688612293565b613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613dc557600080fd5b5af11515613dd257600080fd5b505060045460009150600160a060020a031663a436e33b8d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515613e2857600080fd5b5af11515613e3557600080fd5b50505060405180519050111515613ea757600454600160a060020a031663f7fb0a4b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515613e9657600080fd5b5af11515613ea357600080fd5b5050505b600454600160a060020a031663fc4756df8c60018060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515613f0957600080fd5b5af11515613f1657600080fd5b5050600454600160a060020a0316905063fc4756df8960018060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515613f7c57600080fd5b5af11515613f8957600080fd5b5050507f384a5203a72a9d3dc8f2dd0c78e393c368a78a6dfda91fc33f89bb8609a918d38b898b8a604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050505050505050505050565b600082821115613ffe57fe5b50900390565b60008083151561401757600091506122a6565b5082820282848281151561402757fe5b04146122a257fe5b600080828481151561403d57fe5b049493505050505600a165627a7a7230582037c00b155f0144ea9b3c4f2e04a5f7d5d9adf79618f9026c91eeda8e28ff1fe20029
Deployed Bytecode
0x6060604052600436106100f85763ffffffff60e060020a6000350416630865dadc81146100fd5780633702ab031461012357806341c0e1b51461013c57806350baa6221461014f57806355a373d61461016557806358a4903f1461019457806363c78e87146101a75780636bb7b7a4146101bd5780636cdb1b75146101d05780636fb642de146101ef578063727b42761461021357806376f2ccb91461023257806383a12de914610251578063845b6aca146102705780638da5cb5b146102955780638f4ffcb1146102a85780639a5c0abc146102de578063c3059c63146102f7578063f2fde38b14610302578063f8895cc814610321575b600080fd5b341561010857600080fd5b610121600160a060020a03600435166024351515610334565b005b341561012e57600080fd5b61012160043560243561038f565b341561014757600080fd5b610121610b04565b341561015a57600080fd5b610121600435610c00565b341561017057600080fd5b610178610d10565b604051600160a060020a03909116815260200160405180910390f35b341561019f57600080fd5b610178610d1f565b34156101b257600080fd5b610121600435610d2e565b34156101c857600080fd5b610178610e98565b34156101db57600080fd5b610121600160a060020a0360043516610ea7565b34156101fa57600080fd5b610121600160a060020a03600435166024351515610ef1565b341561021e57600080fd5b610121600160a060020a0360043516610f43565b341561023d57600080fd5b610121600160a060020a0360043516610f8d565b341561025c57600080fd5b610121600160a060020a0360043516610fd7565b341561027b57600080fd5b610121600160a060020a0360043516602435604435611021565b34156102a057600080fd5b61017861146c565b34156102b357600080fd5b61012160048035600160a060020a03908116916024803592604435169160643591820191013561147b565b34156102e957600080fd5b6101216004356024356115be565b610121600435611e24565b341561030d57600080fd5b610121600160a060020a03600435166121e9565b341561032c57600080fd5b610178612284565b60005433600160a060020a0390811691161461034f57600080fd5b600160a060020a038216151561036457600080fd5b600160a060020a03919091166000908152600160205260409020805460ff1916911515919091179055565b6004546000908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103d957600080fd5b5af115156103e657600080fd5b5050506040518051905015156103fb57600080fd5b600186101561040957600080fd5b600454600160a060020a031663196ecd25338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561045f57600080fd5b5af1151561046c57600080fd5b5050506040518051905094506104828587612293565b9350606384111561050657600454600160a060020a031663969ddd71338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156104e357600080fd5b5af115156104f057600080fd5b5050506040518051851115905061050657600080fd5b60018710158015610518575060278711155b156105b257600554600160a060020a031663ee4827ea88878960405160e060020a63ffffffff861602815260048101939093526024830191909152604482015260640160a060405180830381600087803b151561057457600080fd5b5af1151561058157600080fd5b5050506040518051906020018051906020018051906020018051906020018051509296509094509250610641915050565b6028871061064157600554600160a060020a031663b2570b1c88878960405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561061157600080fd5b5af1151561061e57600080fd5b505050604051805190602001805190602001805190602001805150919450925050505b6004548290600160a060020a03166370a082313360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561069357600080fd5b5af115156106a057600080fd5b50505060405180519050101515156106b757600080fd5b80156106c257600080fd5b600454600160a060020a031663a1c90a11338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561071857600080fd5b5af1151561072557600080fd5b50505060008311156108e557600454600160a060020a03166379c310a63382632d171243828c8c60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561079757600080fd5b5af115156107a457600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156107f157600080fd5b5af115156107fe57600080fd5b5050600454600160a060020a0316905063ce29555f338983632d17124383838d60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b151561086957600080fd5b5af1151561087657600080fd5b50505060405180519050600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b15156108d457600080fd5b5af115156108e157600080fd5b5050505b600454600090600160a060020a031663a436e33b3360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561093857600080fd5b5af1151561094557600080fd5b505050604051805190501115156109b757600454600160a060020a031663f7fb0a4b3360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156109a657600080fd5b5af115156109b357600080fd5b5050505b600454600160a060020a031663fc4756df3388600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515610a1957600080fd5b5af11515610a2657600080fd5b5050600454600160a060020a0316905063e7001b84338989600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515610a9257600080fd5b5af11515610a9f57600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b3388886040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050565b60005433600160a060020a03908116911614610b1f57600080fd5b600354600160a060020a03166323b872dd3033836370a082318360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610b7757600080fd5b5af11515610b8457600080fd5b5050506040518051905060405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515610bdd57600080fd5b5af11515610bea57600080fd5b50505060405180515050600160a060020a033316ff5b6000805433600160a060020a03908116911614610c1c57600080fd5b600354600160a060020a03166370a082313060405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610c6c57600080fd5b5af11515610c7957600080fd5b5050506040518051915050600081118015610c945750818110155b1515610c9f57600080fd5b600354600160a060020a031663a9059cbb338460405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610cf557600080fd5b5af11515610d0257600080fd5b505050604051805150505050565b600354600160a060020a031681565b600454600160a060020a031681565b600454600160a060020a031663e8d320e633600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610d8857600080fd5b5af11515610d9557600080fd5b50505060405180518211159050610dab57600080fd5b600454600160a060020a0316635460554933836001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515610e1757600080fd5b5af11515610e2457600080fd5b5050600354600160a060020a0316905063a9059cbb338360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610e7e57600080fd5b5af11515610e8b57600080fd5b5050506040518051505050565b600654600160a060020a031681565b60005433600160a060020a03908116911614610ec257600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604090205460ff161515610f1857600080fd5b600160a060020a03919091166000908152600260205260409020805460ff1916911515919091179055565b60005433600160a060020a03908116911614610f5e57600080fd5b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610fa857600080fd5b6006805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a03908116911614610ff257600080fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03331660009081526001602052604081205481908190819060ff16151561104e57600080fd5b600454600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561108d57600080fd5b5af1151561109a57600080fd5b5050506040518051905015156110af57600080fd5b60018510156110bd57600080fd5b600454600160a060020a031663196ecd25888860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561111357600080fd5b5af1151561112057600080fd5b5050506040518051905093506111368486612293565b925060638311156111ba57600454600160a060020a031663969ddd71888860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561119757600080fd5b5af115156111a457600080fd5b505050604051805184111590506111ba57600080fd5b602986146111c757600080fd5b600554600160a060020a031663b2570b1c87868860405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561121e57600080fd5b5af1151561122b57600080fd5b50505060405180519060200180519060200180519060200180515050600454919450925060009150600160a060020a031663a436e33b8960405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156112a057600080fd5b5af115156112ad57600080fd5b5050506040518051905011151561131f57600454600160a060020a031663f7fb0a4b8860405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561130e57600080fd5b5af1151561131b57600080fd5b5050505b600454600160a060020a031663fc4756df8887600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b151561138157600080fd5b5af1151561138e57600080fd5b5050600454600160a060020a0316905063e7001b84888888600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b15156113fa57600080fd5b5af1151561140757600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b8787876040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050565b600054600160a060020a031681565b600080600085600160a060020a031633600160a060020a03161415156114a057600080fd5b60018410156114ae57600080fd5b600354600160a060020a03166323b872dd89308a60405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561151157600080fd5b5af1151561151e57600080fd5b50505060405180519050151561153357600080fd5b61156b85858080601f0160208091040260200160405190810160405281815292919060208401838380828437506122ad945050505050565b91945092509050600183141561158c576115878888848461239f565b6115b4565b82600314156115a057611587888884612eb2565b82600414156115b4576115b48888846135df565b5050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561160e57600080fd5b5af1151561161b57600080fd5b50505060405180519050151561163057600080fd5b600454600160a060020a031663196ecd25338c60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561168657600080fd5b5af1151561169357600080fd5b50505060405180519850508888108015906116ae5750600089115b15156116b957600080fd5b6116c3888a613ff2565b975060288a106117c857600554600160a060020a031663b2570b1c8b8a8c60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401608060405180830381600087803b151561172457600080fd5b5af1151561173157600080fd5b50505060405180519060200180519060200180519060200180516005549499509296509193506117c192600160a060020a0316915063b6206e6790508c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156117a457600080fd5b5af115156117b157600080fd5b505050604051805190508a614004565b91506118ab565b600554600160a060020a031663ee4827ea8b8a8c60405160e060020a63ffffffff861602815260048101939093526024830191909152604482015260640160a060405180830381600087803b151561181f57600080fd5b5af1151561182c57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600554959a509398509196509193506118a892600160a060020a0316915063fbe45b4890508c60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156117a457600080fd5b91505b8015156118b757600080fd5b600083111561194c5760045461194590600160a060020a0316634676b8973360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561191457600080fd5b5af1151561192157600080fd5b50505060405180519050611940611939866046614004565b606461402f565b612293565b96506119b5565b600454600160a060020a0316634676b8973360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561199c57600080fd5b5af115156119a957600080fd5b50505060405180519750505b600454600160a060020a031663176854f63360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515611a0557600080fd5b5af11515611a1257600080fd5b5050600454600160a060020a0316905063448a0ceb8860405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b1515611a5e57600080fd5b5af11515611a6b57600080fd5b5050600454600160a060020a0316905063a6678b603389600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515611ad157600080fd5b5af11515611ade57600080fd5b5050600454600160a060020a031690506397ce3a4b338c8c60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515611b4157600080fd5b5af11515611b4e57600080fd5b50505060405180519650506000841115611c4257600454600160a060020a031663396e70e0338860405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515611bb857600080fd5b5af11515611bc557600080fd5b5050600454600160a060020a0316905063ce29555f338c89600060405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515611c3157600080fd5b5af11515611c3e57600080fd5b5050505b6000821115611cd457600454600160a060020a0316635460554933611c6b611939866046614004565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515611cc357600080fd5b5af11515611cd057600080fd5b5050505b600454600160a060020a031663e7001b84338c8c600060405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515611d3c57600080fd5b5af11515611d4957600080fd5b5050600454600160a060020a0316905063fc4756df338b600060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515611daf57600080fd5b5af11515611dbc57600080fd5b5050507f9c8076df639d56f1ef3ca3d4d8dc6ed089f8c4756bc5bf5d574f1cec4ef13c54338b8b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050505050565b60045460009081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611e7057600080fd5b5af11515611e7d57600080fd5b505050604051805190501515611e9257600080fd5b6001871015611ea057600080fd5b600454600160a060020a031663e946ad4a338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515611ef657600080fd5b5af11515611f0357600080fd5b5050506040518051600554909750600160a060020a031690506373f9421d888860405160e060020a63ffffffff85160281526004810192909252602482015260440160c060405180830381600087803b1515611f5e57600080fd5b5af11515611f6b57600080fd5b50505060405180519060200180519060200180519060200180519060200180519060200180515094995092975090955093509150506008831015611fbc576005861115611fb757600080fd5b611fca565b6002861115611fca57600080fd5b600085118015611fd8575083155b1515611fe357600080fd5b6004548590600160a060020a03166370a082313360405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561203557600080fd5b5af1151561204257600080fd5b505050604051805190501015151561205957600080fd5b600454600160a060020a031663a1c90a11338760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156120af57600080fd5b5af115156120bc57600080fd5b5050600454600160a060020a03169050635edc9bff3385858560405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561212557600080fd5b5af1151561213257600080fd5b5050600454600160a060020a03169050632a288272338960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561218c57600080fd5b5af1151561219957600080fd5b5050507f5923958ad0a0f9e2754b81ea1c7483dcdd7481e51b34ee4846bdaa6d5403c3453388604051600160a060020a03909216825260208201526040908101905180910390a150505050505050565b60005433600160a060020a0390811691161461220457600080fd5b600160a060020a038116151561221957600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600554600160a060020a031681565b6000828201838110156122a257fe5b8091505b5092915050565b600080600083516002141561231557836000815181106122c957fe5b016020015160f860020a900460f860020a0260f860020a90049250836001815181106122f157fe5b016020015160f860020a900460f860020a0260f860020a9004915060019050612398565b835160031415612398578360008151811061232c57fe5b016020015160f860020a900460f860020a0260f860020a900492508360018151811061235457fe5b016020015160f860020a900460f860020a0260f860020a900491508360028151811061237c57fe5b016020015160f860020a900460f860020a0260f860020a900490505b9193909250565b60045460009081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156123eb57600080fd5b5af115156123f857600080fd5b50505060405180519050151561240d57600080fd5b600187101561241b57600080fd5b600454600160a060020a031663196ecd258b8a60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561247157600080fd5b5af1151561247e57600080fd5b5050506040518051905095506124948688612293565b9450606385111561251857600454600160a060020a031663969ddd718b8a60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156124f557600080fd5b5af1151561250257600080fd5b5050506040518051861115905061251857600080fd5b6001881015801561252a575060278811155b1561267157600554600160a060020a031663702123ae8960405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561257757600080fd5b5af1151561258457600080fd5b5050506040518051600554909550600160a060020a0316905063320cffcd89888a60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b15156125e857600080fd5b5af115156125f557600080fd5b505050604051805160055490945061266a9150600160a060020a031663fbe45b488a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561264d57600080fd5b5af1151561265a57600080fd5b5050506040518051905088614004565b9150612738565b6028881061273857600554600160a060020a031663a8aeecd989888a60405160e060020a63ffffffff8616028152600481019390935260248301919091526044820152606401602060405180830381600087803b15156126d057600080fd5b5af115156126dd57600080fd5b50505060405180516005549094506127359150600160a060020a031663b6206e678a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561264d57600080fd5b91505b6000821161274557600080fd5b60045482906127c290600160a060020a031663e8d320e68d600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156127a557600080fd5b5af115156127b257600080fd5b505050604051805190508b612293565b10156127cd57600080fd5b6004548390600160a060020a03166370a082318c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561281f57600080fd5b5af1151561282c57600080fd5b505050604051805190501015151561284357600080fd5b600454600160a060020a031663a1c90a118b8560405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561289957600080fd5b5af115156128a657600080fd5b5050508882111561293b57600454600160a060020a031663546055498b6128cd858d613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b151561292657600080fd5b5af1151561293357600080fd5b5050506129c8565b818911156129c857600454600160a060020a031663546055498b61295f8c86613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156129b757600080fd5b5af115156129c457600080fd5b5050505b6129d382601461402f565b60048054919250600160a060020a039091169063358cfa25906129f790859061402f565b60018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b1515612a4157600080fd5b5af11515612a4e57600080fd5b5050600454600054600160a060020a039182169250635460554991168360018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515612ac357600080fd5b5af11515612ad057600080fd5b5050506000841115612c9057600454600160a060020a03166379c310a68b82632d171243828d8d60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612b4257600080fd5b5af11515612b4f57600080fd5b5050506040518051905060405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515612b9c57600080fd5b5af11515612ba957600080fd5b5050600454600160a060020a0316905063ce29555f8b8a83632d17124383838e60405160e060020a63ffffffff8616028152600160a060020a03909316600484015260248301919091526044820152606401602060405180830381600087803b1515612c1457600080fd5b5af11515612c2157600080fd5b50505060405180519050600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515612c7f57600080fd5b5af11515612c8c57600080fd5b5050505b600454600090600160a060020a031663a436e33b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515612ce357600080fd5b5af11515612cf057600080fd5b50505060405180519050111515612d6257600454600160a060020a031663f7fb0a4b8b60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515612d5157600080fd5b5af11515612d5e57600080fd5b5050505b600454600160a060020a031663fc4756df8b89600160405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515612dc457600080fd5b5af11515612dd157600080fd5b5050600454600160a060020a0316905063e7001b848b8a8a600160405160e060020a63ffffffff8716028152600160a060020a0390941660048501526024840192909252604483015215156064820152608401600060405180830381600087803b1515612e3d57600080fd5b5af11515612e4a57600080fd5b5050507fb6d35f558a34938047f09ebf800fa2e15ec407c357a8eab97a5dd67b4d015b5b8a89896040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390a150505050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612f0257600080fd5b5af11515612f0f57600080fd5b505050604051805190501515612f2457600080fd5b6001891015612f3257600080fd5b600454600160a060020a031663e946ad4a8c8b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612f8857600080fd5b5af11515612f9557600080fd5b50505060405180519850506005881115612fae57600080fd5b600554600160a060020a03166373f9421d8a8a60405160e060020a63ffffffff85160281526004810192909252602482015260440160c060405180830381600087803b1515612ffc57600080fd5b5af1151561300957600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051959c50939a5091985096509450909250506000821161304d57600080fd5b60008211156133035760045482906130d390600160a060020a031663e8d320e68e600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156130b657600080fd5b5af115156130c357600080fd5b505050604051805190508c612293565b10156130de57600080fd5b8982111561317057600454600160a060020a031663546055498c613102858e613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b151561315b57600080fd5b5af1151561316857600080fd5b5050506131fd565b898210156131fd57600454600160a060020a031663546055498c6131948d86613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156131ec57600080fd5b5af115156131f957600080fd5b5050505b61320882601461402f565b600454909150600160a060020a031663358cfa256132268484613ff2565b60018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b151561327057600080fd5b5af1151561327d57600080fd5b5050600454600054600160a060020a039182169250635460554991168360018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b15156132f257600080fd5b5af115156132ff57600080fd5b5050505b6004548790600160a060020a03166370a082318d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561335557600080fd5b5af1151561336257600080fd5b505050604051805190501015151561337957600080fd5b600454600160a060020a031663a1c90a118c8960405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156133cf57600080fd5b5af115156133dc57600080fd5b5050600454600160a060020a03169050635edc9bff8c87878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561344557600080fd5b5af1151561345257600080fd5b5050600454600160a060020a03169050632a2882728c8b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156134ac57600080fd5b5af115156134b957600080fd5b505060045460009150600160a060020a031663a436e33b8d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561350f57600080fd5b5af1151561351c57600080fd5b5050506040518051905011151561358e57600454600160a060020a031663f7fb0a4b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561357d57600080fd5b5af1151561358a57600080fd5b5050505b7f5923958ad0a0f9e2754b81ea1c7483dcdd7481e51b34ee4846bdaa6d5403c3458b8a604051600160a060020a03909216825260208201526040908101905180910390a15050505050505050505050565b6004546000908190819081908190819081908190600160a060020a0316639267b2916040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561362f57600080fd5b5af1151561363c57600080fd5b50505060405180519050151561365157600080fd5b600654600160a060020a03166372eefb8a8a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561369957600080fd5b5af115156136a657600080fd5b5050506040518051985050600160a060020a03881615156136c657600080fd5b600160a060020a038b811690891614156136df57600080fd5b600654600160a060020a031663104a5e758a60405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b151561372757600080fd5b5af1151561373457600080fd5b505050604051805160045490985061379e9150600160a060020a031663e8d320e68d600160405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b15156127a557600080fd5b9550868610156137ad57600080fd5b600454600160a060020a031663e3cbe7448c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b15156137fd57600080fd5b5af1151561380a57600080fd5b5050600454600160a060020a0316905063e3cbe7448960405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561385e57600080fd5b5af1151561386b57600080fd5b5050600654600160a060020a031690506382a86cda8a60405160e060020a63ffffffff8416028152600481019190915260240160c060405180830381600087803b15156138b757600080fd5b5af115156138c457600080fd5b5050506040518051906020018051906020018051906020018051906020018051906020018051600454939b5091995090975050600160a060020a03169250635edc9bff91508d905087878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b151561395f57600080fd5b5af1151561396c57600080fd5b5050600454600160a060020a031690506352d214a78987878760405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260448301526064820152608401600060405180830381600087803b15156139d557600080fd5b5af115156139e257600080fd5b50505089871115613a7757600454600160a060020a031663546055498c613a098a8e613ff2565b6001600060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613a6257600080fd5b5af11515613a6f57600080fd5b505050613b04565b868a1115613b0457600454600160a060020a031663546055498c613a9b8d8b613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613af357600080fd5b5af11515613b0057600080fd5b5050505b613b0f87601461402f565b9150613b1c87601461402f565b600454909150600160a060020a031663358cfa258260018060405160e060020a63ffffffff8616028152600481019390935260ff909116602483015215156044820152606401600060405180830381600087803b1515613b7b57600080fd5b5af11515613b8857600080fd5b5050600454600054600160a060020a039182169250635460554991168460018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613bfd57600080fd5b5af11515613c0a57600080fd5b5050600654600160a060020a0316905063f5537ede898d8c60405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b1515613c7157600080fd5b5af11515613c7e57600080fd5b5050600654600160a060020a031690506373a553898a613cfc613cf58463103d26ac8460405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b1515613cd757600080fd5b5af11515613ce457600080fd5b505050604051805190506005614004565b600461402f565b60405160e060020a63ffffffff851602815260048101929092526024820152604401600060405180830381600087803b1515613d3757600080fd5b5af11515613d4457600080fd5b5050600454600160a060020a03169050635460554989613d6d8a613d688688612293565b613ff2565b60018060405160e060020a63ffffffff8716028152600160a060020a039094166004850152602484019290925260ff16604483015215156064820152608401600060405180830381600087803b1515613dc557600080fd5b5af11515613dd257600080fd5b505060045460009150600160a060020a031663a436e33b8d60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515613e2857600080fd5b5af11515613e3557600080fd5b50505060405180519050111515613ea757600454600160a060020a031663f7fb0a4b8c60405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b1515613e9657600080fd5b5af11515613ea357600080fd5b5050505b600454600160a060020a031663fc4756df8c60018060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515613f0957600080fd5b5af11515613f1657600080fd5b5050600454600160a060020a0316905063fc4756df8960018060405160e060020a63ffffffff8616028152600160a060020a039093166004840152602483019190915215156044820152606401600060405180830381600087803b1515613f7c57600080fd5b5af11515613f8957600080fd5b5050507f384a5203a72a9d3dc8f2dd0c78e393c368a78a6dfda91fc33f89bb8609a918d38b898b8a604051600160a060020a0394851681529290931660208301526040808301919091526060820192909252608001905180910390a15050505050505050505050565b600082821115613ffe57fe5b50900390565b60008083151561401757600091506122a6565b5082820282848281151561402757fe5b04146122a257fe5b600080828481151561403d57fe5b049493505050505600a165627a7a7230582037c00b155f0144ea9b3c4f2e04a5f7d5d9adf79618f9026c91eeda8e28ff1fe20029
Swarm Source
bzzr://37c00b155f0144ea9b3c4f2e04a5f7d5d9adf79618f9026c91eeda8e28ff1fe2
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.