ETH Price: $2,521.77 (+2.92%)

Token

Crypto Landmarks (LANDMARK)
 

Overview

Max Total Supply

98 LANDMARK

Holders

32

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A

Other Info

Filtered by Token Holder
ket.eth
Balance
4 LANDMARK
0xf898f063d22a994ba6943d50a96c2dbc0bd9218c
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoLandmarks

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-02-06
*/

pragma solidity ^0.4.18;

contract AccessControl {
    address public owner;
    address[] public admins;

    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    modifier onlyAdmins {
        bool found = false;

        for (uint i = 0; i < admins.length; i++) {
            if (admins[i] == msg.sender) {
                found = true;
                break;
            }
        }
        require(found);
        _;
    }

    function addAdmin(address _adminAddress) public onlyOwner {
        admins.push(_adminAddress);
    }

    function transferOwnership(address newOwner) public onlyOwner {
        if (newOwner != address(0)) {
            owner = newOwner;
        }
    }

}

contract ERC721 {
    // Required Functions
    function implementsERC721() public pure returns (bool);
    function totalSupply() public view returns (uint256);
    function balanceOf(address _owner) public view returns (uint256);
    function ownerOf(uint256 _tokenId) public view returns (address);
    function transfer(address _to, uint _tokenId) public;
    function approve(address _to, uint256 _tokenId) public;
    function transferFrom(address _from, address _to, uint256 _tokenId) public;

    // Optional Functions
    function name() public pure returns (string);
    function symbol() public pure returns (string);
    // function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256);
    // function tokenMetadata(uint256 _tokenId) public view returns (string infoUrl);

    // Required Events
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);
}


contract CryptoLandmarks is AccessControl, ERC721 {
    // Event fired for every new landmark created
    event Creation(uint256 tokenId, string name, address owner);

    // Event fired whenever landmark is sold
    event Purchase(uint256 tokenId, uint256 oldPrice, uint256 newPrice, address prevOwner, address owner, uint256 charityId);

    // Event fired when price of landmark changes
    event PriceChange(uint256 tokenId, uint256 price);

    // Event fired when charities are modified
    event Charity(uint256 charityId, address charity);

    string public constant NAME = "Crypto Landmarks"; 
    string public constant SYMBOL = "LANDMARK"; 

    // Initial price of card
    uint256 private startingPrice = 0.001 ether;

    // Charities enabled in the future
    bool charityEnabled;

    // Landmark card
    struct Landmark {
        // unique name of landmark
        string name;

        // selling price
        uint256 price;

        // maximum price
        uint256 maxPrice;
    }

    Landmark[] public landmarks;

    address[] public charities;
    
    mapping (uint256 => address) public landmarkToOwner;
    mapping (address => uint256) public landmarkOwnershipCount;
    mapping (uint256 => address) public landmarkToApproved;

    function CryptoLandmarks() public {
        owner = msg.sender;
        admins.push(msg.sender);
        charityEnabled = false;
    }

    function implementsERC721() public pure returns (bool) {
        return true;
    }

    function totalSupply() public view returns (uint256) {
        return landmarks.length;
    }

    function balanceOf(address _owner) public view returns (uint256 balance) {
        return landmarkOwnershipCount[_owner];
    }
    function ownerOf(uint256 _tokenId) public view returns (address owner) {
        owner = landmarkToOwner[_tokenId];
        require(owner != address(0));
    }
    function transfer(address _to, uint256 _tokenId) public {
        require(_to != address(0));
        require(landmarkToOwner[_tokenId] == msg.sender);

        _transfer(msg.sender, _to, _tokenId);
    }
    function approve(address _to, uint256 _tokenId) public {
        require(landmarkToOwner[_tokenId] == msg.sender);
        landmarkToApproved[_tokenId] = _to;
        Approval(msg.sender, _to, _tokenId);
    }
    function transferFrom(address _from, address _to, uint256 _tokenId) public {
        require(landmarkToApproved[_tokenId] == _to);
        require(_to != address(0));
        require(landmarkToOwner[_tokenId] == _from);

        _transfer(_from, _to, _tokenId);
    }
    function name() public pure returns (string) {
        return NAME;
    }
    function symbol() public pure returns (string) {
        return SYMBOL;
    }

    function addCharity(address _charity) public onlyAdmins {
        require(_charity != address(0));

        uint256 newCharityId = charities.push(_charity) - 1;

        // emit charity event
        Charity(newCharityId, _charity);
    }

    function deleteCharity(uint256 _charityId) public onlyAdmins {
        delete charities[_charityId];

        // emit charity event
        Charity(_charityId, address(0));
    }

    function getCharity(uint256 _charityId) public view returns (address) {
        return charities[_charityId];
    }

    function createLandmark(string _name, address _owner, uint256 _price) public onlyAdmins {
        if (_price <= 0) {
            _price = startingPrice;
        }
        
        Landmark memory _landmark = Landmark({
            name: _name,
            price: _price,
            maxPrice: _price
        });
        uint256 newLandmarkId = landmarks.push(_landmark) - 1;

        Creation(newLandmarkId, _name, _owner);

        _transfer(address(0), _owner, newLandmarkId);


    }

    function getLandmark(uint256 _tokenId) public view returns (
        string landmarkName,
        uint256 sellingPrice,
        uint256 maxPrice,
        address owner
    ) {
        Landmark storage landmark = landmarks[_tokenId];
        landmarkName = landmark.name;
        sellingPrice = landmark.price;
        maxPrice = landmark.maxPrice;
        owner = landmarkToOwner[_tokenId];
    }

    function purchase(uint256 _tokenId, uint256 _charityId) public payable {
        // seller
        address oldOwner = landmarkToOwner[_tokenId];
        // current price
        uint sellingPrice = landmarks[_tokenId].price;
        // buyer
        address newOwner = msg.sender;
        
        
        require(oldOwner != newOwner);
        require(newOwner != address(0));
        require(msg.value >= sellingPrice);

        uint256 payment = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 95), 100));
        uint256 excess = SafeMath.sub(msg.value, sellingPrice);

        if (charityEnabled == true) {
            
            // address of choosen charity
            address charity = charities[_charityId];

            // check if charity address is not null
            require(charity != address(0));
            
            // 1% of selling price
            uint256 donate = uint256(SafeMath.div(SafeMath.mul(sellingPrice, 1), 100));

            // transfer money to charity
            charity.transfer(donate);
            
        }

        uint priceIncrease = 120;

        // price doubles below 32 finney
        if (sellingPrice <= 32 finney) {
            priceIncrease = 200;
        }

        // set new price
        landmarks[_tokenId].price = SafeMath.div(SafeMath.mul(sellingPrice, priceIncrease), 95);
        
        // set maximum price
        landmarks[_tokenId].maxPrice = SafeMath.div(SafeMath.mul(sellingPrice, priceIncrease), 95);

        // transfer card to buyer
        _transfer(oldOwner, newOwner, _tokenId);

        // transfer money to seller
        if (oldOwner != address(this)) {
            oldOwner.transfer(payment);
        }

        // emit event that landamrk was sold;
        Purchase(_tokenId, sellingPrice, landmarks[_tokenId].price, oldOwner, newOwner, _charityId);
        

        // transfer excess back to buyer
        newOwner.transfer(excess);
    }

    // owner can change price
    function changePrice(uint256 _tokenId, uint256 _price) public {
        // only owner can change price
        require(landmarkToOwner[_tokenId] == msg.sender);

        // price cannot be higher than maximum price
        require(landmarks[_tokenId].maxPrice >= _price);

        // set new price
        landmarks[_tokenId].price = _price;
        
        // emit event
        PriceChange(_tokenId, _price);
    }

    function priceOfLandmark(uint256 _tokenId) public view returns (uint256) {
        return landmarks[_tokenId].price;
    }

    function tokensOfOwner(address _owner) public view returns(uint256[]) {
        uint256 tokenCount = balanceOf(_owner);

        uint256[] memory result = new uint256[](tokenCount);
        uint256 total = totalSupply();
        uint256 resultIndex = 0;

        for(uint256 i = 0; i <= total; i++) {
            if (landmarkToOwner[i] == _owner) {
                result[resultIndex] = i;
                resultIndex++;
            }
        }
        return result;
    }


    function _transfer(address _from, address _to, uint256 _tokenId) private {
        landmarkOwnershipCount[_to]++;
        landmarkToOwner[_tokenId] = _to;

        if (_from != address(0)) {
            landmarkOwnershipCount[_from]--;
            delete landmarkToApproved[_tokenId];
        }
        Transfer(_from, _to, _tokenId);
    }

    function enableCharity() external onlyOwner {
        require(!charityEnabled);
        charityEnabled = true;
    }

    function disableCharity() external onlyOwner {
        require(charityEnabled);
        charityEnabled = false;
    }

    function withdrawBalance() external onlyOwner {
        owner.transfer(this.balance);
    }

}


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
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

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"implementsERC721","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"admins","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarkToApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarks","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"maxPrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_adminAddress","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_charityId","type":"uint256"}],"name":"purchase","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"landmarkOwnershipCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_charity","type":"address"}],"name":"addCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"disableCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"tokensOfOwner","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_owner","type":"address"},{"name":"_price","type":"uint256"}],"name":"createLandmark","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"priceOfLandmark","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enableCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"changePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getLandmark","outputs":[{"name":"landmarkName","type":"string"},{"name":"sellingPrice","type":"uint256"},{"name":"maxPrice","type":"uint256"},{"name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_charityId","type":"uint256"}],"name":"deleteCharity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"landmarkToOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"charities","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_charityId","type":"uint256"}],"name":"getCharity","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"owner","type":"address"}],"name":"Creation","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"},{"indexed":false,"name":"prevOwner","type":"address"},{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"charityId","type":"uint256"}],"name":"Purchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"PriceChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"charityId","type":"uint256"},{"indexed":false,"name":"charity","type":"address"}],"name":"Charity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"approved","type":"address"},{"indexed":true,"name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"}]

606060405266038d7ea4c6800060025534156200001b57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018054806001018281620000719190620000e1565b9160005260206000209001600033909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000600360006101000a81548160ff02191690831515021790555062000138565b8154818355818115116200010b578183600052602060002091820191016200010a919062000110565b5b505050565b6200013591905b808211156200013157600081600090555060010162000117565b5090565b90565b61279480620001486000396000f300606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b3146102295780631051db341461026b57806314bfd6d014610298578063161593a3146102fb57806318160ddd1461035e57806323b872dd146103875780632d43573d146103e85780635fd8c710146104af5780636352211e146104c4578063704802751461052757806370876c981461056057806370a082311461058157806373545d44146105ce57806378b14f0a1461061b5780637d534aa0146106545780638462151c146106695780638da5cb5b146106f7578063909544831461074c57806395d89b41146107d15780639c66fe001461085f578063a3f4df7e14610896578063a9059cbb14610924578063ab21d58a14610966578063b3de019c1461097b578063bfa5f1f7146109a7578063cdb532b914610a84578063d666465314610aa7578063f2fde38b14610b0a578063f76f8d7814610b43578063fb709d2e14610bd1578063fd67db8114610c34575b600080fd5b34156101a657600080fd5b6101ae610c97565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b610269600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cda565b005b341561027657600080fd5b61027e610df8565b604051808215151515815260200191505060405180910390f35b34156102a357600080fd5b6102b96004808035906020019091905050610e01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030657600080fd5b61031c6004808035906020019091905050610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561036957600080fd5b610371610e73565b6040518082815260200191505060405180910390f35b341561039257600080fd5b6103e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e80565b005b34156103f357600080fd5b6104096004808035906020019091905050610fa6565b604051808060200184815260200183815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b505094505050505060405180910390f35b34156104ba57600080fd5b6104c2610fde565b005b34156104cf57600080fd5b6104e560048080359060200190919050506110b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053257600080fd5b61055e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112c565b005b61057f60048080359060200190919080359060200190919050506111ed565b005b341561058c57600080fd5b6105b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611618565b6040518082815260200191505060405180910390f35b34156105d957600080fd5b610605600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611661565b6040518082815260200191505060405180910390f35b341561062657600080fd5b610652600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611679565b005b341561065f57600080fd5b610667611837565b005b341561067457600080fd5b6106a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118ca565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e35780820151818401526020810190506106c8565b505050509050019250505060405180910390f35b341561070257600080fd5b61070a6119d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075757600080fd5b6107cf600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119f5565b005b34156107dc57600080fd5b6107e4611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610824578082015181840152602081019050610809565b50505050905090810190601f1680156108515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086a57600080fd5b6108806004808035906020019091905050611c67565b6040518082815260200191505060405180910390f35b34156108a157600080fd5b6108a9611c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e95780820151818401526020810190506108ce565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092f57600080fd5b610964600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cca565b005b341561097157600080fd5b610979611d82565b005b341561098657600080fd5b6109a56004808035906020019091908035906020019091905050611e16565b005b34156109b257600080fd5b6109c86004808035906020019091905050611f1a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015610a46578082015181840152602081019050610a2b565b50505050905090810190601f168015610a735780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a8f57600080fd5b610aa56004808035906020019091905050612032565b005b3415610ab257600080fd5b610ac86004808035906020019091905050612189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1557600080fd5b610b41600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121bc565b005b3415610b4e57600080fd5b610b56612291565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b96578082015181840152602081019050610b7b565b50505050905090810190601f168015610bc35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610bdc57600080fd5b610bf260048080359060200190919050506122ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c3f57600080fd5b610c556004808035906020019091905050612309565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9f61257a565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b7300000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d4757600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006001905090565b600181815481101515610e1057fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600480549050905090565b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f9657600080fd5b610fa183838361234d565b505050565b600481815481101515610fb557fe5b906000526020600020906003020160009150905080600001908060010154908060020154905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156110b157600080fd5b565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561112757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118757600080fd5b6001805480600101828161119b919061258e565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600080600080600080600660008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060048a81548110151561123e57fe5b90600052602060002090600302016001015496503395508573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156112cc57600080fd5b8634101515156112db57600080fd5b6112f06112e988605f61250b565b6064612546565b94506112fc3488612561565b935060011515600360009054906101000a900460ff16151514156113eb5760058981548110151561132957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561139357600080fd5b6113a86113a188600161250b565b6064612546565b91508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156113ea57600080fd5b5b607890506671afd498d00000871115156114045760c890505b611418611411888361250b565b605f612546565b60048b81548110151561142757fe5b906000526020600020906003020160010181905550611450611449888361250b565b605f612546565b60048b81548110151561145f57fe5b90600052602060002090600302016002018190555061147f88878c61234d565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114f5578773ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156114f457600080fd5b5b7f1fe2ee8e4451abcf96271da847481cfe5aa92580b2a2e89aef0a523c9654c31d8a8860048d81548110151561152757fe5b9060005260206000209060030201600101548b8a8e604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050151561160c57600080fd5b50505050505050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60076020528060005260406000206000915090505481565b6000806000809150600090505b600180549050811015611717573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156116b957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561170a5760019150611717565b8080600101915050611686565b81151561172357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561175f57600080fd5b600160058054806001018281611775919061258e565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055500392507fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e8385604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561189257600080fd5b600360009054906101000a900460ff1615156118ad57600080fd5b6000600360006101000a81548160ff021916908315150217905550565b6118d26125ba565b60006118dc6125ba565b60008060006118ea87611618565b9450846040518059106118fa5750595b90808252806020026020018201604052509350611915610e73565b925060009150600090505b82811115156119c3578673ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119b65780848381518110151561199f57fe5b906020019060200201818152505081806001019250505b8080600101915050611920565b8395505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119fd6125ce565b6000806000809150600090505b600180549050811015611a9b573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3d57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8e5760019150611a9b565b8080600101915050611a0a565b811515611aa757600080fd5b600085111515611ab75760025494505b606060405190810160405280888152602001868152602001868152509350600160048054806001018281611aeb91906125f6565b916000526020600020906003020160008790919091506000820151816000019080519060200190611b1d929190612628565b50602082015181600101556040820151816002015550500392507fa987f9da3d7de01ffe86f9d4630ff93856b021b747bfc83589e5c459795643fb83888860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611bd3578082015181840152602081019050611bb8565b50505050905090810190601f168015611c005780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1611c1b6000878561234d565b50505050505050565b611c2c61257a565b6040805190810160405280600881526020017f4c414e444d41524b000000000000000000000000000000000000000000000000815250905090565b6000600482815481101515611c7857fe5b9060005260206000209060030201600101549050919050565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b730000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d7357600080fd5b611d7e33838361234d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ddd57600080fd5b600360009054906101000a900460ff16151515611df957600080fd5b6001600360006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e8357600080fd5b80600483815481101515611e9357fe5b90600052602060002090600302016002015410151515611eb257600080fd5b80600483815481101515611ec257fe5b9060005260206000209060030201600101819055507ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d8282604051808381526020018281526020019250505060405180910390a15050565b611f2261257a565b600080600080600486815481101515611f3757fe5b90600052602060002090600302019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fdf5780601f10611fb457610100808354040283529160200191611fdf565b820191906000526020600020905b815481529060010190602001808311611fc257829003601f168201915b5050505050945080600101549350806002015492506006600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60008060009150600090505b6001805490508110156120cf573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561207157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156120c257600191506120cf565b808060010191505061203e565b8115156120db57600080fd5b6005838154811015156120ea57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e836000604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561228e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6040805190810160405280600881526020017f4c414e444d41524b00000000000000000000000000000000000000000000000081525081565b6005818154811015156122d957fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060058281548110151561231a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156124ab57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000806000841415612520576000915061253f565b828402905082848281151561253157fe5b0414151561253b57fe5b8091505b5092915050565b600080828481151561255457fe5b0490508091505092915050565b600082821115151561256f57fe5b818303905092915050565b602060405190810160405280600081525090565b8154818355818115116125b5578183600052602060002091820191016125b491906126a8565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806125e26126cd565b815260200160008152602001600081525090565b8154818355818115116126235760030281600302836000526020600020918201910161262291906126e1565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061266957805160ff1916838001178555612697565b82800160010185558215612697579182015b8281111561269657825182559160200191906001019061267b565b5b5090506126a491906126a8565b5090565b6126ca91905b808211156126c65760008160009055506001016126ae565b5090565b90565b602060405190810160405280600081525090565b61271d91905b8082111561271957600080820160006127009190612720565b60018201600090556002820160009055506003016126e7565b5090565b90565b50805460018160011615610100020316600290046000825580601f106127465750612765565b601f01602090049060005260206000209081019061276491906126a8565b5b505600a165627a7a72305820dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da46500029

Deployed Bytecode

0x606060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461019b578063095ea7b3146102295780631051db341461026b57806314bfd6d014610298578063161593a3146102fb57806318160ddd1461035e57806323b872dd146103875780632d43573d146103e85780635fd8c710146104af5780636352211e146104c4578063704802751461052757806370876c981461056057806370a082311461058157806373545d44146105ce57806378b14f0a1461061b5780637d534aa0146106545780638462151c146106695780638da5cb5b146106f7578063909544831461074c57806395d89b41146107d15780639c66fe001461085f578063a3f4df7e14610896578063a9059cbb14610924578063ab21d58a14610966578063b3de019c1461097b578063bfa5f1f7146109a7578063cdb532b914610a84578063d666465314610aa7578063f2fde38b14610b0a578063f76f8d7814610b43578063fb709d2e14610bd1578063fd67db8114610c34575b600080fd5b34156101a657600080fd5b6101ae610c97565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ee5780820151818401526020810190506101d3565b50505050905090810190601f16801561021b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561023457600080fd5b610269600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cda565b005b341561027657600080fd5b61027e610df8565b604051808215151515815260200191505060405180910390f35b34156102a357600080fd5b6102b96004808035906020019091905050610e01565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561030657600080fd5b61031c6004808035906020019091905050610e40565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561036957600080fd5b610371610e73565b6040518082815260200191505060405180910390f35b341561039257600080fd5b6103e6600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610e80565b005b34156103f357600080fd5b6104096004808035906020019091905050610fa6565b604051808060200184815260200183815260200182810382528581815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561049e5780601f106104735761010080835404028352916020019161049e565b820191906000526020600020905b81548152906001019060200180831161048157829003601f168201915b505094505050505060405180910390f35b34156104ba57600080fd5b6104c2610fde565b005b34156104cf57600080fd5b6104e560048080359060200190919050506110b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561053257600080fd5b61055e600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061112c565b005b61057f60048080359060200190919080359060200190919050506111ed565b005b341561058c57600080fd5b6105b8600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611618565b6040518082815260200191505060405180910390f35b34156105d957600080fd5b610605600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611661565b6040518082815260200191505060405180910390f35b341561062657600080fd5b610652600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611679565b005b341561065f57600080fd5b610667611837565b005b341561067457600080fd5b6106a0600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506118ca565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106e35780820151818401526020810190506106c8565b505050509050019250505060405180910390f35b341561070257600080fd5b61070a6119d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561075757600080fd5b6107cf600480803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506119f5565b005b34156107dc57600080fd5b6107e4611c24565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610824578082015181840152602081019050610809565b50505050905090810190601f1680156108515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561086a57600080fd5b6108806004808035906020019091905050611c67565b6040518082815260200191505060405180910390f35b34156108a157600080fd5b6108a9611c91565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108e95780820151818401526020810190506108ce565b50505050905090810190601f1680156109165780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092f57600080fd5b610964600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611cca565b005b341561097157600080fd5b610979611d82565b005b341561098657600080fd5b6109a56004808035906020019091908035906020019091905050611e16565b005b34156109b257600080fd5b6109c86004808035906020019091905050611f1a565b60405180806020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825286818151815260200191508051906020019080838360005b83811015610a46578082015181840152602081019050610a2b565b50505050905090810190601f168015610a735780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3415610a8f57600080fd5b610aa56004808035906020019091905050612032565b005b3415610ab257600080fd5b610ac86004808035906020019091905050612189565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610b1557600080fd5b610b41600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506121bc565b005b3415610b4e57600080fd5b610b56612291565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b96578082015181840152602081019050610b7b565b50505050905090810190601f168015610bc35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610bdc57600080fd5b610bf260048080359060200190919050506122ca565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610c3f57600080fd5b610c556004808035906020019091905050612309565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610c9f61257a565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b7300000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d4757600080fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006001905090565b600181815481101515610e1057fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600480549050905090565b8173ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610eed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f2957600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f9657600080fd5b610fa183838361234d565b505050565b600481815481101515610fb557fe5b906000526020600020906003020160009150905080600001908060010154908060020154905083565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561103957600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156110b157600080fd5b565b60006006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561112757600080fd5b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118757600080fd5b6001805480600101828161119b919061258e565b9160005260206000209001600083909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600080600080600080600080600660008b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16975060048a81548110151561123e57fe5b90600052602060002090600302016001015496503395508573ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415151561129057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156112cc57600080fd5b8634101515156112db57600080fd5b6112f06112e988605f61250b565b6064612546565b94506112fc3488612561565b935060011515600360009054906101000a900460ff16151514156113eb5760058981548110151561132957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561139357600080fd5b6113a86113a188600161250b565b6064612546565b91508273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015156113ea57600080fd5b5b607890506671afd498d00000871115156114045760c890505b611418611411888361250b565b605f612546565b60048b81548110151561142757fe5b906000526020600020906003020160010181905550611450611449888361250b565b605f612546565b60048b81548110151561145f57fe5b90600052602060002090600302016002018190555061147f88878c61234d565b3073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415156114f5578773ffffffffffffffffffffffffffffffffffffffff166108fc869081150290604051600060405180830381858888f1935050505015156114f457600080fd5b5b7f1fe2ee8e4451abcf96271da847481cfe5aa92580b2a2e89aef0a523c9654c31d8a8860048d81548110151561152757fe5b9060005260206000209060030201600101548b8a8e604051808781526020018681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001965050505050505060405180910390a18573ffffffffffffffffffffffffffffffffffffffff166108fc859081150290604051600060405180830381858888f19350505050151561160c57600080fd5b50505050505050505050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60076020528060005260406000206000915090505481565b6000806000809150600090505b600180549050811015611717573373ffffffffffffffffffffffffffffffffffffffff166001828154811015156116b957fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561170a5760019150611717565b8080600101915050611686565b81151561172357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561175f57600080fd5b600160058054806001018281611775919061258e565b9160005260206000209001600087909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055500392507fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e8385604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a150505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561189257600080fd5b600360009054906101000a900460ff1615156118ad57600080fd5b6000600360006101000a81548160ff021916908315150217905550565b6118d26125ba565b60006118dc6125ba565b60008060006118ea87611618565b9450846040518059106118fa5750595b90808252806020026020018201604052509350611915610e73565b925060009150600090505b82811115156119c3578673ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156119b65780848381518110151561199f57fe5b906020019060200201818152505081806001019250505b8080600101915050611920565b8395505050505050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119fd6125ce565b6000806000809150600090505b600180549050811015611a9b573373ffffffffffffffffffffffffffffffffffffffff16600182815481101515611a3d57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611a8e5760019150611a9b565b8080600101915050611a0a565b811515611aa757600080fd5b600085111515611ab75760025494505b606060405190810160405280888152602001868152602001868152509350600160048054806001018281611aeb91906125f6565b916000526020600020906003020160008790919091506000820151816000019080519060200190611b1d929190612628565b50602082015181600101556040820151816002015550500392507fa987f9da3d7de01ffe86f9d4630ff93856b021b747bfc83589e5c459795643fb83888860405180848152602001806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825284818151815260200191508051906020019080838360005b83811015611bd3578082015181840152602081019050611bb8565b50505050905090810190601f168015611c005780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1611c1b6000878561234d565b50505050505050565b611c2c61257a565b6040805190810160405280600881526020017f4c414e444d41524b000000000000000000000000000000000000000000000000815250905090565b6000600482815481101515611c7857fe5b9060005260206000209060030201600101549050919050565b6040805190810160405280601081526020017f43727970746f204c616e646d61726b730000000000000000000000000000000081525081565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515611d0657600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d7357600080fd5b611d7e33838361234d565b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ddd57600080fd5b600360009054906101000a900460ff16151515611df957600080fd5b6001600360006101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166006600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e8357600080fd5b80600483815481101515611e9357fe5b90600052602060002090600302016002015410151515611eb257600080fd5b80600483815481101515611ec257fe5b9060005260206000209060030201600101819055507ffe6b606ca0477592b5740a0eb00c8e91570a5d0eb736abfa1a6309bd081b4a4d8282604051808381526020018281526020019250505060405180910390a15050565b611f2261257a565b600080600080600486815481101515611f3757fe5b90600052602060002090600302019050806000018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611fdf5780601f10611fb457610100808354040283529160200191611fdf565b820191906000526020600020905b815481529060010190602001808311611fc257829003601f168201915b5050505050945080600101549350806002015492506006600087815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150509193509193565b60008060009150600090505b6001805490508110156120cf573373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561207157fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156120c257600191506120cf565b808060010191505061203e565b8115156120db57600080fd5b6005838154811015156120ea57fe5b906000526020600020900160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fdbcf6cb4a0e88eb9d5c92b77ed99c7a0372bcd05d876763305c8b23d5a128b0e836000604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1505050565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561228e57806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b50565b6040805190810160405280600881526020017f4c414e444d41524b00000000000000000000000000000000000000000000000081525081565b6005818154811015156122d957fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060058281548110151561231a57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550816006600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415156124ab57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001900391905055506008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000806000841415612520576000915061253f565b828402905082848281151561253157fe5b0414151561253b57fe5b8091505b5092915050565b600080828481151561255457fe5b0490508091505092915050565b600082821115151561256f57fe5b818303905092915050565b602060405190810160405280600081525090565b8154818355818115116125b5578183600052602060002091820191016125b491906126a8565b5b505050565b602060405190810160405280600081525090565b6060604051908101604052806125e26126cd565b815260200160008152602001600081525090565b8154818355818115116126235760030281600302836000526020600020918201910161262291906126e1565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061266957805160ff1916838001178555612697565b82800160010185558215612697579182015b8281111561269657825182559160200191906001019061267b565b5b5090506126a491906126a8565b5090565b6126ca91905b808211156126c65760008160009055506001016126ae565b5090565b90565b602060405190810160405280600081525090565b61271d91905b8082111561271957600080820160006127009190612720565b60018201600090556002820160009055506003016126e7565b5090565b90565b50805460018160011615610100020316600290046000825580601f106127465750612765565b601f01602090049060005260206000209081019061276491906126a8565b5b505600a165627a7a72305820dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da46500029

Swarm Source

bzzr://dae25c0ca3d7f1a1049dfff10cb7767181de773f5960ce05b5a4c94a65da4650
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.