ETH Price: $2,453.10 (-1.40%)

Token

Lucky Block Network (LBN)
 

Overview

Max Total Supply

99,990,000 LBN

Holders

10,416 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5 LBN

Value
$0.00
0xc2a74fa2ac822b83d6ce9eee0b4625475979e105
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Infrastructure for decentralized gaming applications built on random numbers.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LBNToken

Compiler Version
v0.5.7+commit.6da8b019

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-04-23
*/

/**
 * Lucky Block Network Project Smart-Contracts
 * @authors https://grox.solutions
 */

pragma solidity 0.5.7;

library SafeMath {

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }
}

contract MultiOwnable {

    mapping (address => bool) _owner;

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

    function isOwner(address addr) public view returns (bool) {
        return _owner[addr];
    }

}

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title Standard ERC20 token
 *
 * @dev Implementation of the basic standard token.
 * See https://eips.ethereum.org/EIPS/eip-20
 */
contract ERC20 is IERC20 {
    using SafeMath for uint256;

    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowed;

    uint256 private _totalSupply;

    function totalSupply() public view returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address owner) public view returns (uint256) {
        return _balances[owner];
    }

    function allowance(address owner, address spender) public view returns (uint256) {
        return _allowed[owner][spender];
    }

    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function _transfer(address from, address to, uint256 value) internal {
        require(to != address(0));

        _balances[from] = _balances[from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(from, to, value);
    }

    function _mint(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }

    function _burn(address account, uint256 value) internal {
        require(account != address(0));

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(0), value);
    }

    function _approve(address owner, address spender, uint256 value) internal {
        require(spender != address(0));
        require(owner != address(0));

        _allowed[owner][spender] = value;
        emit Approval(owner, spender, value);
    }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!_paused);
        _;
    }

    modifier whenPaused() {
        require(_paused);
        _;
    }

    function pause() public whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    function unpause() public whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
}

/**
 * @title Pausable token
 * @dev ERC20 modified with pausable transfers.
 */
contract ERC20Pausable is ERC20, Pausable {
    function transfer(address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transfer(to, value);
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    function increaseAllowance(address spender, uint256 addedValue) public whenNotPaused returns (bool) {
        return super.increaseAllowance(spender, addedValue);
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public whenNotPaused returns (bool) {
        return super.decreaseAllowance(spender, subtractedValue);
    }
}

/**
 * @title ApproveAndCall Interface.
 * @dev ApproveAndCall system hepls to communicate with smart-contracts.
 */
contract ApproveAndCallFallBack {
    function receiveApproval(address from, uint256 amount, address token, bytes calldata extraData) external;
}

/**
 * @title The main project contract.
 * @author https://grox.solutions
 */
contract LBNToken is ERC20Pausable, MultiOwnable {

    // name of the token
    string private _name = "Lucky Block Network";
    // symbol of the token
    string private _symbol = "LBN";
    // decimals of the token
    uint8 private _decimals = 18;

    // initial supply
    uint256 public constant INITIAL_SUPPLY = 99990000 * (10 ** 18);

    // an amount of votes required to process an action
    uint8 public consensusValue = 1;

    // struct for proposals
    struct Proposal {
        // amount of votes
        uint8 votes;
        // count of proposals
        uint256 count;
        // double mapping to prevent the error of repeating the same proposal
        mapping (uint256 => mapping (address => bool)) voted;
    }

    // mapping to implement muptiple owners
    mapping (address => bool) _owner;

    // boolean value if minting is finished of not
    bool public mintingIsFinished;

    /**
     * @dev Throws if called while minting is finished.
     */
    modifier isNotFinished {
        require(!mintingIsFinished);
        _;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender));
        _;
    }

    // events
    event LogProposal(string indexed method, address param1, address param2, uint256 param3, string param4, address indexed voter, uint8 votes, uint8 consensusValue);
    event LogAction(string indexed method, address param1, address param2, uint256 param3, string param4);

    /**
      * @dev constructor function that is called once at deployment of the contract.
      * @param owners 5 initial owners to set.
      * @param recipient Address to receive initial supply.
      */
    constructor(address[] memory owners, address recipient) public {

        for (uint8 i = 0; i < 5; i++) {
            _owner[owners[i]] = true;
        }

        _mint(recipient, INITIAL_SUPPLY);

    }

    /**
      * @dev Internal function that process voting in a given proposal, returns `true` if the voting has succesfully ended.
      * @param props The proposal storage.
      * @notice Every next parameter is given only to emit events.
      * @param method Name of the called method.
      * @param param1 First address parameter.
      * @param param2 Second address parameter.
      * @param param3 uint256 parameter.
      * @param param4 string parameter.
      */
    function _vote(Proposal storage props, string memory method, address param1, address param2, uint256 param3, string memory param4) internal returns(bool) {

        // if that is the new proposal add a number to count to prevent the error of repeating the same proposal
        if (props.votes == 0) {
            props.count++;
        }

        // if msg.sender hasn't voted yet, do this
        if (!props.voted[props.count][msg.sender]) {
            props.votes++;
            props.voted[props.count][msg.sender] = true;
            emit LogProposal(method, param1, param2, param3, param4, msg.sender, props.votes, consensusValue);
        }

        // if an amount of votes is equal or more than consensusValue renew the proposal and return `true` to process the action
        if (props.votes >= consensusValue) {
            props.votes = 0;
            emit LogAction(method, param1, param2, param3, param4);
            return true;
        }

    }

    /**
     * @dev Storage for owner proposals.
     */
    mapping (address => mapping(address => Proposal)) public ownerProp;

    /**
     * @dev Vote to transfer control of the contract from one account to another.
     * @param previousOwner The address to remove ownership from.
     * @param newOwner The address to transfer ownership to.
     * @notice There are only 5 owners of this contract
     */
    function changeOwner(address previousOwner, address newOwner) public onlyOwner {
        require(isOwner(previousOwner) && !isOwner(newOwner));

        if (_vote(ownerProp[previousOwner][newOwner], "changeOwner", previousOwner, newOwner, 0, "")) {
            _owner[previousOwner] = false;
            _owner[newOwner] = true;
        }

    }

    /**
     * @dev Storage for consensus proposals.
     */
    mapping (uint8 => Proposal) public consProp;

    /**
     * @dev Vote to change the consensusValue.
     * @param newConsensusValue new value.
     */
    function setConsensusValue(uint8 newConsensusValue) public onlyOwner {

        if (_vote(consProp[newConsensusValue], "setConsensusValue", address(0), address(0), newConsensusValue, "")) {
            consensusValue = newConsensusValue;
        }

    }

    /**
     * @dev Storage for minting finalize proposal.
     */
    Proposal public finMintProp;

    /**
     * @dev Vote to stop minting of tokens forever.
     */
    function finalizeMinting() public onlyOwner {

        if (_vote(finMintProp, "finalizeMinting", address(0), address(0), 0, "")) {
            mintingIsFinished = true;
        }

    }

    /**
     * @dev Storage for mint proposals.
     */
    mapping (address => mapping (uint256 => mapping (string => Proposal))) public mintProp;

    /**
     * @dev Vote to mint an amount of the token and assigns it to
     * an account.
     * @param to The account that will receive the created tokens.
     * @param value The amount that will be created.
     */
    function mint(address to, uint256 value) public isNotFinished onlyOwner returns (bool) {

        if (_vote(mintProp[to][value]["mint"], "mint", to, address(0), value, "")) {
            _mint(to, value);
        }

    }

    /**
     * @dev Storage for burn proposals.
     */
    mapping (address => mapping (uint256 => mapping (string => Proposal))) public burnProp;


    /**
     * @dev Vote to burn an amount of the token of a given
     * account.
     * @param from The account whose tokens will be burnt.
     * @param value The amount that will be burnt.
     */
    function burnFrom(address from, uint256 value) public onlyOwner {

        if (_vote(burnProp[from][value]["burnFrom"], "burnFrom", from, address(0), value, "")) {
            _burn(from, value);
        }

    }

    /**
     * @dev Storage for pause proposals.
     */
    Proposal public pauseProp;

    /**
     * @dev Vote to pause any transfer of tokens.
     * Called by a owner to pause, triggers stopped state.
     */
    function pause() public onlyOwner {

        if (_vote(pauseProp, "pause", address(0), address(0), 0, "")) {
            super.pause();
        }

    }

    /**
     * @dev Storage for unpause proposals.
     */
    Proposal public unpauseProp;

    /**
     * @dev Vote to pause any transfer of tokens.
     * Called by a owner to unpause, triggers normal state.
     */
    function unpause() public onlyOwner {

        if (_vote(unpauseProp, "unpause", address(0), address(0), 0, "")) {
            super.unpause();
        }

    }

    /**
     * @dev Storage for name proposals.
     */
    mapping (string => mapping (string => Proposal)) public nameProp;

    /**
    * @dev Change the name of the token.
    * @param newName New name of the token.
    */
    function changeName(string memory newName) public onlyOwner {

        if (_vote(nameProp[newName]["name"], "changeName", address(0), address(0), 0, newName)) {
            _name = newName;
        }

    }

    /**
     * @dev Storage for symbol proposals.
     */
    mapping (string => mapping (string => Proposal)) public symbolProp;

    /**
    * @dev Change the symbol of the token.
    * @param newSymbol New symbol of the token.
    */
    function changeSymbol(string memory newSymbol) public onlyOwner {

        if (_vote(symbolProp[newSymbol]["symbol"], "changeSymbol", address(0), address(0), 0, newSymbol)) {
            _symbol = newSymbol;
        }

    }

    /**
    * @dev Allows to send tokens (via Approve and TransferFrom) to other smart contract.
    * @param spender Address of smart contracts to work with.
    * @param amount Amount of tokens to send.
    * @param extraData Any extra data.
    */
    function approveAndCall(address spender, uint256 amount, bytes calldata extraData) external returns (bool) {
        require(approve(spender, amount));

        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, amount, address(this), extraData);

        return true;
    }

    /**
    * @dev Allows to any owner of the contract withdraw needed ERC20 token from this contract (promo or bounties for example).
    * @param ERC20Token Address of ERC20 token.
    * @param recipient Account to receive tokens.
    */
    function withdrawERC20(address ERC20Token, address recipient) external onlyOwner {

        uint256 amount = IERC20(ERC20Token).balanceOf(address(this));
        IERC20(ERC20Token).transfer(recipient, amount);

    }

    /**
    * @return true if `addr` is the owner of the contract.
    */
    function isOwner(address addr) public view returns (bool) {
        return _owner[addr];
    }

    /**
     * @return the name of the token.
     */
    function name() public view returns (string memory) {
        return _name;
    }

    /**
     * @return the symbol of the token.
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @return the number of decimals of the token.
     */
    function decimals() public view returns (uint8) {
        return _decimals;
    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"string"},{"name":"","type":"string"}],"name":"nameProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"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":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pauseProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalizeMinting","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"INITIAL_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintingIsFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"string"}],"name":"mintProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newName","type":"string"}],"name":"changeName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unpauseProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"ERC20Token","type":"address"},{"name":"recipient","type":"address"}],"name":"withdrawERC20","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":"string"},{"name":"","type":"string"}],"name":"symbolProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"finMintProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"consensusValue","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"ownerProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newSymbol","type":"string"}],"name":"changeSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"string"}],"name":"burnProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"amount","type":"uint256"},{"name":"extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newConsensusValue","type":"uint8"}],"name":"setConsensusValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint8"}],"name":"consProp","outputs":[{"name":"votes","type":"uint8"},{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"previousOwner","type":"address"},{"name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"owners","type":"address[]"},{"name":"recipient","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"method","type":"string"},{"indexed":false,"name":"param1","type":"address"},{"indexed":false,"name":"param2","type":"address"},{"indexed":false,"name":"param3","type":"uint256"},{"indexed":false,"name":"param4","type":"string"},{"indexed":true,"name":"voter","type":"address"},{"indexed":false,"name":"votes","type":"uint8"},{"indexed":false,"name":"consensusValue","type":"uint8"}],"name":"LogProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"method","type":"string"},{"indexed":false,"name":"param1","type":"address"},{"indexed":false,"name":"param2","type":"address"},{"indexed":false,"name":"param3","type":"uint256"},{"indexed":false,"name":"param4","type":"string"}],"name":"LogAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526040518060400160405280601381526020017f4c75636b7920426c6f636b204e6574776f726b000000000000000000000000008152506005908051906020019062000051929190620003c0565b506040518060400160405280600381526020017f4c424e0000000000000000000000000000000000000000000000000000000000815250600690805190602001906200009f929190620003c0565b506012600760006101000a81548160ff021916908360ff1602179055506001600760016101000a81548160ff021916908360ff160217905550348015620000e557600080fd5b506040516200361638038062003616833981018060405260408110156200010b57600080fd5b8101908080516401000000008111156200012457600080fd5b828101905060208101848111156200013b57600080fd5b81518560208202830111640100000000821117156200015957600080fd5b5050929190602001805190602001909291905050506000600360006101000a81548160ff02191690831515021790555060008090505b60058160ff1610156200021957600160086000858460ff1681518110620001b257fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506200018f565b5062000237816a52b5b4c2e7431831c000006200023f60201b60201c565b50506200046f565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200027a57600080fd5b6200029681600254620003a060201b620030a71790919060201c565b600281905550620002f4816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003a060201b620030a71790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080828401905083811015620003b657600080fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200040357805160ff191683800117855562000434565b8280016001018555821562000434579182015b828111156200043357825182559160200191906001019062000416565b5b50905062000443919062000447565b5090565b6200046c91905b80821115620004685760008160009055506001016200044e565b5090565b90565b613197806200047f6000396000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806370a0823111610125578063a3895fff116100ad578063cae9ca511161007c578063cae9ca5114610f65578063d3f7f7af14611020578063d908287914611051578063dd62ed3e146110a3578063f00d4b5d1461111b5761021c565b8063a3895fff14610cd8578063a457c2d714610d93578063a9059cbb14610df9578063b464e26a14610e5f5761021c565b806395d89b41116100f457806395d89b4114610a0e5780639b300d5714610a915780639dcbe8d214610c045780639fe49f1d14610c2f578063a0e3dfff14610c535761021c565b806370a08231146108fa57806379cc6790146109525780638456cb59146109a05780639456fbcc146109aa5761021c565b8063313ce567116101a857806340c10f191161017757806340c10f19146106865780634664f4c5146106ec5780635353a2d8146107f25780635c975abb146108ad5780636c619c31146108cf5761021c565b8063313ce567146105d057806337c75992146105f457806339509351146106165780633f4ba83a1461067c5761021c565b806323b872dd116101ef57806323b872dd1461049b57806326508269146105215780632c1c86d01461054c5780632f54bf6e146105565780632ff2e9dc146105b25761021c565b806306fdde0314610221578063095ea7b3146102a45780630ae006e91461030a57806318160ddd1461047d575b600080fd5b61022961117f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611221565b604051808215151515815260200191505060405180910390f35b61045a6004803603604081101561032057600080fd5b810190808035906020019064010000000081111561033d57600080fd5b82018360208201111561034f57600080fd5b8035906020019184600183028401116401000000008311171561037157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061124f565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b6104856112b9565b6040518082815260200191505060405180910390f35b610507600480360360608110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c3565b604051808215151515815260200191505060405180910390f35b6105296112f3565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610554611312565b005b6105986004803603602081101561056c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b604051808215151515815260200191505060405180910390f35b6105ba6113f2565b6040518082815260200191505060405180910390f35b6105d8611401565b604051808260ff1660ff16815260200191505060405180910390f35b6105fc611418565b604051808215151515815260200191505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061142b565b604051808215151515815260200191505060405180910390f35b610684611459565b005b6106d26004803603604081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d0565b604051808215151515815260200191505060405180910390f35b6107cf6004803603606081101561070257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561074957600080fd5b82018360208201111561075b57600080fd5b8035906020019184600183028401116401000000008311171561077d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115f2565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b6108ab6004803603602081101561080857600080fd5b810190808035906020019064010000000081111561082557600080fd5b82018360208201111561083757600080fd5b8035906020019184600183028401116401000000008311171561085957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611653565b005b6108b561176e565b604051808215151515815260200191505060405180910390f35b6108d7611785565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b61093c6004803603602081101561091057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a4565b6040518082815260200191505060405180910390f35b61099e6004803603604081101561096857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ec565b005b6109a86118f0565b005b610a0c600480360360408110156109c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611967565b005b610a16611afd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a56578082015181840152602081019050610a3b565b50505050905090810190601f168015610a835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610be160048036036040811015610aa757600080fd5b8101908080359060200190640100000000811115610ac457600080fd5b820183602082011115610ad657600080fd5b80359060200191846001830284011164010000000083111715610af857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b5b57600080fd5b820183602082011115610b6d57600080fd5b80359060200191846001830284011164010000000083111715610b8f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b9f565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610c0c611c09565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610c37611c28565b604051808260ff1660ff16815260200191505060405180910390f35b610cb560048036036040811015610c6957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c3b565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610d9160048036036020811015610cee57600080fd5b8101908080359060200190640100000000811115610d0b57600080fd5b820183602082011115610d1d57600080fd5b80359060200191846001830284011164010000000083111715610d3f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c79565b005b610ddf60048036036040811015610da957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d94565b604051808215151515815260200191505060405180910390f35b610e4560048036036040811015610e0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc2565b604051808215151515815260200191505060405180910390f35b610f4260048036036060811015610e7557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ebc57600080fd5b820183602082011115610ece57600080fd5b80359060200191846001830284011164010000000083111715610ef057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611df0565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b61100660048036036060811015610f7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610fc257600080fd5b820183602082011115610fd457600080fd5b80359060200191846001830284011164010000000083111715610ff657600080fd5b9091929391929390505050611e51565b604051808215151515815260200191505060405180910390f35b61104f6004803603602081101561103657600080fd5b81019080803560ff169060200190929190505050611f79565b005b6110806004803603602081101561106757600080fd5b81019080803560ff16906020019092919050505061201d565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b611105600480360360408110156110b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061204e565b6040518082815260200191505060405180910390f35b61117d6004803603604081101561113157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120d5565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112175780601f106111ec57610100808354040283529160200191611217565b820191906000526020600020905b8154815290600101906020018083116111fa57829003601f168201915b5050505050905090565b6000600360009054906101000a900460ff161561123d57600080fd5b6112478383612293565b905092915050565b60178280516020810182018051848252602083016020850120818352809550505050505081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000160009054906101000a900460ff16908060010154905082565b6000600254905090565b6000600360009054906101000a900460ff16156112df57600080fd5b6112ea8484846122aa565b90509392505050565b60118060000160009054906101000a900460ff16908060010154905082565b61131b3361139c565b61132457600080fd5b611379600c6040518060400160405280600f81526020017f66696e616c697a654d696e74696e67000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b1561139a576001600960006101000a81548160ff0219169083151502179055505b565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6a52b5b4c2e7431831c0000081565b6000600760009054906101000a900460ff16905090565b600960009054906101000a900460ff1681565b6000600360009054906101000a900460ff161561144757600080fd5b6114518383612826565b905092915050565b6114623361139c565b61146b57600080fd5b6114c060146040518060400160405280600781526020017f756e70617573650000000000000000000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b156114ce576114cd6128cb565b5b565b6000600960009054906101000a900460ff16156114ec57600080fd5b6114f53361139c565b6114fe57600080fd5b6115dc600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060405180807f6d696e7400000000000000000000000000000000000000000000000000000000815250600401905090815260200160405180910390206040518060400160405280600481526020017f6d696e7400000000000000000000000000000000000000000000000000000000815250856000866040518060200160405280600081525061235b565b156115ec576115eb8383612964565b5b92915050565b600f6020528260005260406000206020528160005260406000208180516020810182018051848252602083016020850120818352809550505050505060009250925050508060000160009054906101000a900460ff16908060010154905082565b61165c3361139c565b61166557600080fd5b61174e6017826040518082805190602001908083835b6020831061169e578051825260208201915060208101905060208303925061167b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060405180807f6e616d6500000000000000000000000000000000000000000000000000000000815250600401905090815260200160405180910390206040518060400160405280600a81526020017f6368616e67654e616d650000000000000000000000000000000000000000000081525060008060008661235b565b1561176b5780600590805190602001906117699291906130c6565b505b50565b6000600360009054906101000a900460ff16905090565b60148060000160009054906101000a900460ff16908060010154905082565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117f53361139c565b6117fe57600080fd5b6118dc601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060405180807f6275726e46726f6d000000000000000000000000000000000000000000000000815250600801905090815260200160405180910390206040518060400160405280600881526020017f6275726e46726f6d000000000000000000000000000000000000000000000000815250846000856040518060200160405280600081525061235b565b156118ec576118eb8282612ab6565b5b5050565b6118f93361139c565b61190257600080fd5b61195760116040518060400160405280600581526020017f706175736500000000000000000000000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b1561196557611964612c08565b5b565b6119703361139c565b61197957600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119f857600080fd5b505afa158015611a0c573d6000803e3d6000fd5b505050506040513d6020811015611a2257600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611abc57600080fd5b505af1158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b810190808051906020019092919050505050505050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b955780601f10611b6a57610100808354040283529160200191611b95565b820191906000526020600020905b815481529060010190602001808311611b7857829003601f168201915b5050505050905090565b60188280516020810182018051848252602083016020850120818352809550505050505081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000160009054906101000a900460ff16908060010154905082565b600c8060000160009054906101000a900460ff16908060010154905082565b600760019054906101000a900460ff1681565b600a602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900460ff16908060010154905082565b611c823361139c565b611c8b57600080fd5b611d746018826040518082805190602001908083835b60208310611cc45780518252602082019150602081019050602083039250611ca1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060405180807f73796d626f6c0000000000000000000000000000000000000000000000000000815250600601905090815260200160405180910390206040518060400160405280600c81526020017f6368616e676553796d626f6c000000000000000000000000000000000000000081525060008060008661235b565b15611d91578060069080519060200190611d8f9291906130c6565b505b50565b6000600360009054906101000a900460ff1615611db057600080fd5b611dba8383612ca2565b905092915050565b6000600360009054906101000a900460ff1615611dde57600080fd5b611de88383612d47565b905092915050565b60106020528260005260406000206020528160005260406000208180516020810182018051848252602083016020850120818352809550505050505060009250925050508060000160009054906101000a900460ff16908060010154905082565b6000611e5d8585611221565b611e6657600080fd5b8473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b5050505060019050949350505050565b611f823361139c565b611f8b57600080fd5b611ff9600b60008360ff1660ff1681526020019081526020016000206040518060400160405280601181526020017f736574436f6e73656e73757356616c75650000000000000000000000000000008152506000808560ff166040518060200160405280600081525061235b565b1561201a5780600760016101000a81548160ff021916908360ff1602179055505b50565b600b6020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120de3361139c565b6120e757600080fd5b6120f08261139c565b801561210257506121008161139c565b155b61210b57600080fd5b6121d9600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280600b81526020017f6368616e67654f776e6572000000000000000000000000000000000000000000815250848460006040518060200160405280600081525061235b565b1561228f576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60006122a0338484612d5e565b6001905092915050565b60006122b7848484612ebd565b612350843361234b85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b612d5e565b600190509392505050565b6000808760000160009054906101000a900460ff1660ff16141561238e5786600101600081548092919060010191905055505b8660020160008860010154815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661265a5786600001600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff1602179055505060018760020160008960010154815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16866040518082805190602001908083835b602083106124e457805182526020820191506020810190506020830392506124c1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207fd44eb5e87f140d3d695aa20a03ed89578190ce0aa623897e8bf6c0a6f161a29e878787878d60000160009054906101000a900460ff16600760019054906101000a900460ff16604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001806020018460ff1660ff1681526020018360ff1660ff168152602001828103825285818151815260200191508051906020019080838360005b8381101561261a5780820151818401526020810190506125ff565b50505050905090810190601f1680156126475780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a35b600760019054906101000a900460ff1660ff168760000160009054906101000a900460ff1660ff161061281b5760008760000160006101000a81548160ff021916908360ff160217905550856040518082805190602001908083835b602083106126d957805182526020820191506020810190506020830392506126b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207f92956ea3c1dec66827036296e407e7986c13523738f99ffc31392d8bc3de545c86868686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127d55780820151818401526020810190506127ba565b50505050905090810190601f1680156128025780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a26001905061281c565b5b9695505050505050565b60006128c133846128bc85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b612d5e565b6001905092915050565b600360009054906101000a900460ff166128e457600080fd5b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561299e57600080fd5b6129b3816002546130a790919063ffffffff16565b600281905550612a0a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612af057600080fd5b612b058160025461308790919063ffffffff16565b600281905550612b5c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900460ff1615612c2257600080fd5b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000612d3d3384612d3885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b612d5e565b6001905092915050565b6000612d54338484612ebd565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d9857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612dd257600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ef757600080fd5b612f48816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fdb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561309657600080fd5b600082840390508091505092915050565b6000808284019050838110156130bc57600080fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061310757805160ff1916838001178555613135565b82800160010185558215613135579182015b82811115613134578251825591602001919060010190613119565b5b5090506131429190613146565b5090565b61316891905b8082111561316457600081600090555060010161314c565b5090565b9056fea165627a7a72305820af0231a5f5f9428004db6f73d38e7dc0a16b9476624d4223dd60ad11ef0689e6002900000000000000000000000000000000000000000000000000000000000000400000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a26100000000000000000000000000000000000000000000000000000000000000050000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a26100000000000000000000000018a18c95daab159c22867ef554a5ed97aa9d5db00000000000000000000000006f5edb5944b8d11ea2291c523024329f0ca70fe9000000000000000000000000b86c3ed4560cf526c93e74c468ed52b24b0c666b0000000000000000000000003324453dc460dd61cba31df1de7fd1f578aa0bbb

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061021c5760003560e01c806370a0823111610125578063a3895fff116100ad578063cae9ca511161007c578063cae9ca5114610f65578063d3f7f7af14611020578063d908287914611051578063dd62ed3e146110a3578063f00d4b5d1461111b5761021c565b8063a3895fff14610cd8578063a457c2d714610d93578063a9059cbb14610df9578063b464e26a14610e5f5761021c565b806395d89b41116100f457806395d89b4114610a0e5780639b300d5714610a915780639dcbe8d214610c045780639fe49f1d14610c2f578063a0e3dfff14610c535761021c565b806370a08231146108fa57806379cc6790146109525780638456cb59146109a05780639456fbcc146109aa5761021c565b8063313ce567116101a857806340c10f191161017757806340c10f19146106865780634664f4c5146106ec5780635353a2d8146107f25780635c975abb146108ad5780636c619c31146108cf5761021c565b8063313ce567146105d057806337c75992146105f457806339509351146106165780633f4ba83a1461067c5761021c565b806323b872dd116101ef57806323b872dd1461049b57806326508269146105215780632c1c86d01461054c5780632f54bf6e146105565780632ff2e9dc146105b25761021c565b806306fdde0314610221578063095ea7b3146102a45780630ae006e91461030a57806318160ddd1461047d575b600080fd5b61022961117f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561026957808201518184015260208101905061024e565b50505050905090810190601f1680156102965780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102f0600480360360408110156102ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611221565b604051808215151515815260200191505060405180910390f35b61045a6004803603604081101561032057600080fd5b810190808035906020019064010000000081111561033d57600080fd5b82018360208201111561034f57600080fd5b8035906020019184600183028401116401000000008311171561037157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156103d457600080fd5b8201836020820111156103e657600080fd5b8035906020019184600183028401116401000000008311171561040857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061124f565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b6104856112b9565b6040518082815260200191505060405180910390f35b610507600480360360608110156104b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112c3565b604051808215151515815260200191505060405180910390f35b6105296112f3565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610554611312565b005b6105986004803603602081101561056c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061139c565b604051808215151515815260200191505060405180910390f35b6105ba6113f2565b6040518082815260200191505060405180910390f35b6105d8611401565b604051808260ff1660ff16815260200191505060405180910390f35b6105fc611418565b604051808215151515815260200191505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061142b565b604051808215151515815260200191505060405180910390f35b610684611459565b005b6106d26004803603604081101561069c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d0565b604051808215151515815260200191505060405180910390f35b6107cf6004803603606081101561070257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561074957600080fd5b82018360208201111561075b57600080fd5b8035906020019184600183028401116401000000008311171561077d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506115f2565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b6108ab6004803603602081101561080857600080fd5b810190808035906020019064010000000081111561082557600080fd5b82018360208201111561083757600080fd5b8035906020019184600183028401116401000000008311171561085957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611653565b005b6108b561176e565b604051808215151515815260200191505060405180910390f35b6108d7611785565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b61093c6004803603602081101561091057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117a4565b6040518082815260200191505060405180910390f35b61099e6004803603604081101561096857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117ec565b005b6109a86118f0565b005b610a0c600480360360408110156109c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611967565b005b610a16611afd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a56578082015181840152602081019050610a3b565b50505050905090810190601f168015610a835780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610be160048036036040811015610aa757600080fd5b8101908080359060200190640100000000811115610ac457600080fd5b820183602082011115610ad657600080fd5b80359060200191846001830284011164010000000083111715610af857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b5b57600080fd5b820183602082011115610b6d57600080fd5b80359060200191846001830284011164010000000083111715610b8f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611b9f565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610c0c611c09565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610c37611c28565b604051808260ff1660ff16815260200191505060405180910390f35b610cb560048036036040811015610c6957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c3b565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b610d9160048036036020811015610cee57600080fd5b8101908080359060200190640100000000811115610d0b57600080fd5b820183602082011115610d1d57600080fd5b80359060200191846001830284011164010000000083111715610d3f57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611c79565b005b610ddf60048036036040811015610da957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d94565b604051808215151515815260200191505060405180910390f35b610e4560048036036040811015610e0f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc2565b604051808215151515815260200191505060405180910390f35b610f4260048036036060811015610e7557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610ebc57600080fd5b820183602082011115610ece57600080fd5b80359060200191846001830284011164010000000083111715610ef057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611df0565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b61100660048036036060811015610f7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610fc257600080fd5b820183602082011115610fd457600080fd5b80359060200191846001830284011164010000000083111715610ff657600080fd5b9091929391929390505050611e51565b604051808215151515815260200191505060405180910390f35b61104f6004803603602081101561103657600080fd5b81019080803560ff169060200190929190505050611f79565b005b6110806004803603602081101561106757600080fd5b81019080803560ff16906020019092919050505061201d565b604051808360ff1660ff1681526020018281526020019250505060405180910390f35b611105600480360360408110156110b957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061204e565b6040518082815260200191505060405180910390f35b61117d6004803603604081101561113157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120d5565b005b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112175780601f106111ec57610100808354040283529160200191611217565b820191906000526020600020905b8154815290600101906020018083116111fa57829003601f168201915b5050505050905090565b6000600360009054906101000a900460ff161561123d57600080fd5b6112478383612293565b905092915050565b60178280516020810182018051848252602083016020850120818352809550505050505081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000160009054906101000a900460ff16908060010154905082565b6000600254905090565b6000600360009054906101000a900460ff16156112df57600080fd5b6112ea8484846122aa565b90509392505050565b60118060000160009054906101000a900460ff16908060010154905082565b61131b3361139c565b61132457600080fd5b611379600c6040518060400160405280600f81526020017f66696e616c697a654d696e74696e67000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b1561139a576001600960006101000a81548160ff0219169083151502179055505b565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6a52b5b4c2e7431831c0000081565b6000600760009054906101000a900460ff16905090565b600960009054906101000a900460ff1681565b6000600360009054906101000a900460ff161561144757600080fd5b6114518383612826565b905092915050565b6114623361139c565b61146b57600080fd5b6114c060146040518060400160405280600781526020017f756e70617573650000000000000000000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b156114ce576114cd6128cb565b5b565b6000600960009054906101000a900460ff16156114ec57600080fd5b6114f53361139c565b6114fe57600080fd5b6115dc600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060405180807f6d696e7400000000000000000000000000000000000000000000000000000000815250600401905090815260200160405180910390206040518060400160405280600481526020017f6d696e7400000000000000000000000000000000000000000000000000000000815250856000866040518060200160405280600081525061235b565b156115ec576115eb8383612964565b5b92915050565b600f6020528260005260406000206020528160005260406000208180516020810182018051848252602083016020850120818352809550505050505060009250925050508060000160009054906101000a900460ff16908060010154905082565b61165c3361139c565b61166557600080fd5b61174e6017826040518082805190602001908083835b6020831061169e578051825260208201915060208101905060208303925061167b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060405180807f6e616d6500000000000000000000000000000000000000000000000000000000815250600401905090815260200160405180910390206040518060400160405280600a81526020017f6368616e67654e616d650000000000000000000000000000000000000000000081525060008060008661235b565b1561176b5780600590805190602001906117699291906130c6565b505b50565b6000600360009054906101000a900460ff16905090565b60148060000160009054906101000a900460ff16908060010154905082565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6117f53361139c565b6117fe57600080fd5b6118dc601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060405180807f6275726e46726f6d000000000000000000000000000000000000000000000000815250600801905090815260200160405180910390206040518060400160405280600881526020017f6275726e46726f6d000000000000000000000000000000000000000000000000815250846000856040518060200160405280600081525061235b565b156118ec576118eb8282612ab6565b5b5050565b6118f93361139c565b61190257600080fd5b61195760116040518060400160405280600581526020017f706175736500000000000000000000000000000000000000000000000000000081525060008060006040518060200160405280600081525061235b565b1561196557611964612c08565b5b565b6119703361139c565b61197957600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156119f857600080fd5b505afa158015611a0c573d6000803e3d6000fd5b505050506040513d6020811015611a2257600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611abc57600080fd5b505af1158015611ad0573d6000803e3d6000fd5b505050506040513d6020811015611ae657600080fd5b810190808051906020019092919050505050505050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611b955780601f10611b6a57610100808354040283529160200191611b95565b820191906000526020600020905b815481529060010190602001808311611b7857829003601f168201915b5050505050905090565b60188280516020810182018051848252602083016020850120818352809550505050505081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000160009054906101000a900460ff16908060010154905082565b600c8060000160009054906101000a900460ff16908060010154905082565b600760019054906101000a900460ff1681565b600a602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900460ff16908060010154905082565b611c823361139c565b611c8b57600080fd5b611d746018826040518082805190602001908083835b60208310611cc45780518252602082019150602081019050602083039250611ca1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060405180807f73796d626f6c0000000000000000000000000000000000000000000000000000815250600601905090815260200160405180910390206040518060400160405280600c81526020017f6368616e676553796d626f6c000000000000000000000000000000000000000081525060008060008661235b565b15611d91578060069080519060200190611d8f9291906130c6565b505b50565b6000600360009054906101000a900460ff1615611db057600080fd5b611dba8383612ca2565b905092915050565b6000600360009054906101000a900460ff1615611dde57600080fd5b611de88383612d47565b905092915050565b60106020528260005260406000206020528160005260406000208180516020810182018051848252602083016020850120818352809550505050505060009250925050508060000160009054906101000a900460ff16908060010154905082565b6000611e5d8585611221565b611e6657600080fd5b8473ffffffffffffffffffffffffffffffffffffffff16638f4ffcb133863087876040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001806020018281038252848482818152602001925080828437600081840152601f19601f8201169050808301925050509650505050505050600060405180830381600087803b158015611f5557600080fd5b505af1158015611f69573d6000803e3d6000fd5b5050505060019050949350505050565b611f823361139c565b611f8b57600080fd5b611ff9600b60008360ff1660ff1681526020019081526020016000206040518060400160405280601181526020017f736574436f6e73656e73757356616c75650000000000000000000000000000008152506000808560ff166040518060200160405280600081525061235b565b1561201a5780600760016101000a81548160ff021916908360ff1602179055505b50565b600b6020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6120de3361139c565b6120e757600080fd5b6120f08261139c565b801561210257506121008161139c565b155b61210b57600080fd5b6121d9600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280600b81526020017f6368616e67654f776e6572000000000000000000000000000000000000000000815250848460006040518060200160405280600081525061235b565b1561228f576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b60006122a0338484612d5e565b6001905092915050565b60006122b7848484612ebd565b612350843361234b85600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b612d5e565b600190509392505050565b6000808760000160009054906101000a900460ff1660ff16141561238e5786600101600081548092919060010191905055505b8660020160008860010154815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661265a5786600001600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff1602179055505060018760020160008960010154815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16866040518082805190602001908083835b602083106124e457805182526020820191506020810190506020830392506124c1565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207fd44eb5e87f140d3d695aa20a03ed89578190ce0aa623897e8bf6c0a6f161a29e878787878d60000160009054906101000a900460ff16600760019054906101000a900460ff16604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001858152602001806020018460ff1660ff1681526020018360ff1660ff168152602001828103825285818151815260200191508051906020019080838360005b8381101561261a5780820151818401526020810190506125ff565b50505050905090810190601f1680156126475780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a35b600760019054906101000a900460ff1660ff168760000160009054906101000a900460ff1660ff161061281b5760008760000160006101000a81548160ff021916908360ff160217905550856040518082805190602001908083835b602083106126d957805182526020820191506020810190506020830392506126b6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390207f92956ea3c1dec66827036296e407e7986c13523738f99ffc31392d8bc3de545c86868686604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156127d55780820151818401526020810190506127ba565b50505050905090810190601f1680156128025780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a26001905061281c565b5b9695505050505050565b60006128c133846128bc85600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b612d5e565b6001905092915050565b600360009054906101000a900460ff166128e457600080fd5b6000600360006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561299e57600080fd5b6129b3816002546130a790919063ffffffff16565b600281905550612a0a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612af057600080fd5b612b058160025461308790919063ffffffff16565b600281905550612b5c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900460ff1615612c2257600080fd5b6001600360006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000612d3d3384612d3885600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b612d5e565b6001905092915050565b6000612d54338484612ebd565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d9857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612dd257600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612ef757600080fd5b612f48816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461308790919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fdb816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546130a790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008282111561309657600080fd5b600082840390508091505092915050565b6000808284019050838110156130bc57600080fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061310757805160ff1916838001178555613135565b82800160010185558215613135579182015b82811115613134578251825591602001919060010190613119565b5b5090506131429190613146565b5090565b61316891905b8082111561316457600081600090555060010161314c565b5090565b9056fea165627a7a72305820af0231a5f5f9428004db6f73d38e7dc0a16b9476624d4223dd60ad11ef0689e60029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a26100000000000000000000000000000000000000000000000000000000000000050000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a26100000000000000000000000018a18c95daab159c22867ef554a5ed97aa9d5db00000000000000000000000006f5edb5944b8d11ea2291c523024329f0ca70fe9000000000000000000000000b86c3ed4560cf526c93e74c468ed52b24b0c666b0000000000000000000000003324453dc460dd61cba31df1de7fd1f578aa0bbb

-----Decoded View---------------
Arg [0] : owners (address[]): 0x2e5D809aD8FA173e509d67e2cf30a52aD604A261,0x18a18c95DaAB159c22867EF554a5Ed97Aa9d5db0,0x6f5EDB5944b8D11EA2291C523024329f0CA70Fe9,0xb86C3Ed4560CF526C93E74c468ed52b24B0c666b,0x3324453dC460dD61Cba31Df1De7fD1F578aA0bbB
Arg [1] : recipient (address): 0x2e5D809aD8FA173e509d67e2cf30a52aD604A261

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a261
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [3] : 0000000000000000000000002e5d809ad8fa173e509d67e2cf30a52ad604a261
Arg [4] : 00000000000000000000000018a18c95daab159c22867ef554a5ed97aa9d5db0
Arg [5] : 0000000000000000000000006f5edb5944b8d11ea2291c523024329f0ca70fe9
Arg [6] : 000000000000000000000000b86c3ed4560cf526c93e74c468ed52b24b0c666b
Arg [7] : 0000000000000000000000003324453dc460dd61cba31df1de7fd1f578aa0bbb


Swarm Source

bzzr://af0231a5f5f9428004db6f73d38e7dc0a16b9476624d4223dd60ad11ef0689e6
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.