MATIC Price: $0.534579 (-1.51%)
Gas: 30.1 GWei
 

Overview

Max Total Supply

30,900,000,000 RARE

Holders

844

Market

Price

$0.00 @ 0.000000 MATIC

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14.517269998137687584 RARE

Value
$0.00
0x590276423fc3fcf6b008929cf1a65ccfa5ff4dc8
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x346b090c...B4184961F
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
CoinToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-03-11
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.4.24;

library SafeMath {
    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;
    }

    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;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

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

contract Ownable {
    address public owner;
    address private _previousOwner;
    uint256 private _lockTime;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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


    function waiveOwnership() public onlyOwner {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }

    function getUnlockTime() public view returns (uint256) {
        return _lockTime;
    }

    function getTime() public view returns (uint256) {
        return block.timestamp;
    }


    function lock(uint256 time) public onlyOwner {
        _previousOwner = owner;
        owner = address(0);
        _lockTime = block.timestamp + time;
        emit OwnershipTransferred(owner, address(0));
    }

    function unlock() public {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(block.timestamp > _lockTime , "Contract is locked Time is not up");
        emit OwnershipTransferred(owner, _previousOwner);
        owner = _previousOwner;
    }
    /**
     * @dev Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        emit Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20Basic {
    uint256 public totalSupply;
    function balanceOf(address who) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

contract ERC20 is ERC20Basic {
    function allowance(address owner, address spender) public view returns (uint256);
    function transferFrom(address from, address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}


contract StandardToken is ERC20 {
    using SafeMath for uint256;
    uint256 public txFee;
    uint256 public burnFee;
    address public FeeAddress;

    mapping (address => mapping (address => uint256)) internal allowed;
    mapping(address => bool) tokenBlacklist;
    event Blacklist(address indexed blackListed, bool value);


    mapping(address => uint256) balances;


    function transfer(address _to, uint256 _value) public returns (bool) {
        require(tokenBlacklist[msg.sender] == false);
        require(tokenBlacklist[_to] == false);
        require(_to != address(0));
        require(_value <= balances[msg.sender]);
        balances[msg.sender] = balances[msg.sender].sub(_value);
        uint256 tempValue = _value;
        if(txFee > 0 && msg.sender != FeeAddress){
            uint256 DenverDeflaionaryDecay = tempValue.div(uint256(100 / txFee));
            balances[FeeAddress] = balances[FeeAddress].add(DenverDeflaionaryDecay);
            emit Transfer(msg.sender, FeeAddress, DenverDeflaionaryDecay);
            _value =  _value.sub(DenverDeflaionaryDecay);
        }

        if(burnFee > 0 && msg.sender != FeeAddress){
            uint256 Burnvalue = tempValue.div(uint256(100 / burnFee));
            totalSupply = totalSupply.sub(Burnvalue);
            emit Transfer(msg.sender, address(0), Burnvalue);
            _value =  _value.sub(Burnvalue);
        }

        // SafeMath.sub will throw if there is not enough balance.


        balances[_to] = balances[_to].add(_value);
        emit Transfer(msg.sender, _to, _value);
        return true;
    }


    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(tokenBlacklist[msg.sender] == false);
        require(tokenBlacklist[_from] == false);
        require(tokenBlacklist[_to] == false);
        require(_to != address(0));
        require(_value <= balances[_from]);
        require(_value <= allowed[_from][msg.sender]);
        balances[_from] = balances[_from].sub(_value);
        uint256 tempValue = _value;
        if(txFee > 0 && _from != FeeAddress){
            uint256 DenverDeflaionaryDecay = tempValue.div(uint256(100 / txFee));
            balances[FeeAddress] = balances[FeeAddress].add(DenverDeflaionaryDecay);
            emit Transfer(_from, FeeAddress, DenverDeflaionaryDecay);
            _value =  _value.sub(DenverDeflaionaryDecay);
        }

        if(burnFee > 0 && _from != FeeAddress){
            uint256 Burnvalue = tempValue.div(uint256(100 / burnFee));
            totalSupply = totalSupply.sub(Burnvalue);
            emit Transfer(_from, address(0), Burnvalue);
            _value =  _value.sub(Burnvalue);
        }

        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }


    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }


    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }


    function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
        allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }

    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
        uint oldValue = allowed[msg.sender][_spender];
        if (_subtractedValue > oldValue) {
            allowed[msg.sender][_spender] = 0;
        } else {
            allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
        }
        emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
        return true;
    }



    function _blackList(address _address, bool _isBlackListed) internal returns (bool) {
        require(tokenBlacklist[_address] != _isBlackListed);
        tokenBlacklist[_address] = _isBlackListed;
        emit Blacklist(_address, _isBlackListed);
        return true;
    }



}

contract PausableToken is StandardToken, 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 increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
        return super.increaseApproval(_spender, _addedValue);
    }

    function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
        return super.decreaseApproval(_spender, _subtractedValue);
    }

    function blackListAddress(address listAddress,  bool isBlackListed) public whenNotPaused onlyOwner  returns (bool success) {
        return super._blackList(listAddress, isBlackListed);
    }

}

contract CoinToken is PausableToken {
    string public name;
    string public symbol;
    uint public decimals;
    event Mint(address indexed from, address indexed to, uint256 value);
    event Burn(address indexed burner, uint256 value);


    constructor(string memory _name, string memory _symbol, uint256 _decimals, uint256 _supply, uint256 _txFee,uint256 _burnFee,address _FeeAddress,address tokenOwner,address service) public payable {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        totalSupply = _supply * 10**_decimals;
        balances[tokenOwner] = totalSupply;
        owner = tokenOwner;
        txFee = _txFee;
        burnFee = _burnFee;
        FeeAddress = _FeeAddress;
        // service.transfer(msg.value);
        (bool success) = service.call.value(msg.value)();
        require(success, "Transfer failed.");
        emit Transfer(address(0), tokenOwner, totalSupply);
    }

    function burn(uint256 _value) public{
        _burn(msg.sender, _value);
    }

    function updateFee(uint256 _txFee,uint256 _burnFee,address _FeeAddress) onlyOwner public{
        txFee = _txFee;
        burnFee = _burnFee;
        FeeAddress = _FeeAddress;
    }


    function _burn(address _who, uint256 _value) internal {
        require(_value <= balances[_who]);
        balances[_who] = balances[_who].sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_who, _value);
        emit Transfer(_who, address(0), _value);
    }

    function mint(address account, uint256 amount) onlyOwner public {

        totalSupply = totalSupply.add(amount);
        balances[account] = balances[account].add(amount);
        emit Mint(address(0), account, amount);
        emit Transfer(address(0), account, amount);
    }


}

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":"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":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getUnlockTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"listAddress","type":"address"},{"name":"isBlackListed","type":"bool"}],"name":"blackListAddress","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"FeeAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_txFee","type":"uint256"},{"name":"_burnFee","type":"uint256"},{"name":"_FeeAddress","type":"address"}],"name":"updateFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"waiveOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"txFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"time","type":"uint256"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint256"},{"name":"_supply","type":"uint256"},{"name":"_txFee","type":"uint256"},{"name":"_burnFee","type":"uint256"},{"name":"_FeeAddress","type":"address"},{"name":"tokenOwner","type":"address"},{"name":"service","type":"address"}],"payable":true,"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"blackListed","type":"address"},{"indexed":false,"name":"value","type":"bool"}],"name":"Blacklist","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"},{"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"}]

60806040526000600a60006101000a81548160ff0219169083151502179055506040516200327538038062003275833981018060405281019080805182019291906020018051820192919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190505050600089600b9080519060200190620000b0929190620002cf565b5088600c9080519060200190620000c9929190620002cf565b5087600d8190555087600a0a8702600081905550600054600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550856001819055508460028190555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff163460405160006040518083038185875af192505050905080151562000257576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5472616e73666572206661696c65642e0000000000000000000000000000000081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000546040518082815260200191505060405180910390a3505050505050505050506200037e565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031257805160ff191683800117855562000343565b8280016001018555821562000343579182015b828111156200034257825182559160200191906001019062000325565b5b50905062000352919062000356565b5090565b6200037b91905b80821115620003775760008160009055506001016200035d565b5090565b90565b612ee7806200038e6000396000f30060806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f578063313ce567146103145780633f4ba83a1461033f57806340c10f191461035657806342966c68146103a3578063557ed1ba146103d05780635c975abb146103fb578063602bc62b1461042a578063661884631461045557806370a08231146104ba578063794be707146105115780637b7e8bac146105785780638456cb59146105cf578063875ae990146105e65780638da5cb5b1461063d578063914eb66a1461069457806395d89b41146106ab578063a69df4b51461073b578063a9059cbb14610752578063cf820461146107b7578063d73dd623146107e2578063dd46706414610847578063dd62ed3e14610874578063f2fde38b146108eb578063fce589d81461092e575b600080fd5b34801561017b57600080fd5b50610184610959565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f7565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610a27565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2d565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610a5f565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610a65565b005b34801561036257600080fd5b506103a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b25565b005b3480156103af57600080fd5b506103ce60048036038101908080359060200190929190505050610d01565b005b3480156103dc57600080fd5b506103e5610d0e565b6040518082815260200191505060405180910390f35b34801561040757600080fd5b50610410610d16565b604051808215151515815260200191505060405180910390f35b34801561043657600080fd5b5061043f610d29565b6040518082815260200191505060405180910390f35b34801561046157600080fd5b506104a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d33565b604051808215151515815260200191505060405180910390f35b3480156104c657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d63565b6040518082815260200191505060405180910390f35b34801561051d57600080fd5b5061055e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610dac565b604051808215151515815260200191505060405180910390f35b34801561058457600080fd5b5061058d610e38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105db57600080fd5b506105e4610e5e565b005b3480156105f257600080fd5b5061063b6004803603810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f1f565b005b34801561064957600080fd5b50610652610fcf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a057600080fd5b506106a9610ff5565b005b3480156106b757600080fd5b506106c0611112565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107005780820151818401526020810190506106e5565b50505050905090810190601f16801561072d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074757600080fd5b506107506111b0565b005b34801561075e57600080fd5b5061079d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061143d565b604051808215151515815260200191505060405180910390f35b3480156107c357600080fd5b506107cc61146d565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b5061082d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b34801561085357600080fd5b50610872600480360381019080803590602001909291905050506114a3565b005b34801561088057600080fd5b506108d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b4565b005b34801561093a57600080fd5b5061094361180c565b6040518082815260200191505060405180910390f35b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109ef5780601f106109c4576101008083540402835291602001916109ef565b820191906000526020600020905b8154815290600101906020018083116109d257829003601f168201915b505050505081565b6000600a60009054906101000a900460ff16151515610a1557600080fd5b610a1f8383611812565b905092915050565b60005481565b6000600a60009054906101000a900460ff16151515610a4b57600080fd5b610a56848484611904565b90509392505050565b600d5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ac157600080fd5b600a60009054906101000a900460ff161515610adc57600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8157600080fd5b610b968160005461210890919063ffffffff16565b600081905550610bee81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b610d0b3382612126565b50565b600042905090565b600a60009054906101000a900460ff1681565b6000600954905090565b6000600a60009054906101000a900460ff16151515610d5157600080fd5b610d5b83836122dc565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600a60009054906101000a900460ff16151515610dca57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2657600080fd5b610e30838361256d565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eba57600080fd5b600a60009054906101000a900460ff16151515610ed657600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f7b57600080fd5b826001819055508160028190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a85780601f1061117d576101008083540402835291602001916111a8565b820191906000526020600020905b81548152906001019060200180831161118b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c81526020017f6f636b000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6009544211151561133a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6e7472616374206973206c6f636b65642054696d65206973206e6f74207581526020017f700000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900460ff1615151561145b57600080fd5b6114658383612681565b905092915050565b60015481565b6000600a60009054906101000a900460ff1615151561149157600080fd5b61149b8383612c8b565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600981905550600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561174c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060001515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196957600080fd5b60001515600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156119c857600080fd5b60001515600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611a2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515611a6357600080fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515611ab157600080fd5b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515611b3c57600080fd5b611b8e85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508492506000600154118015611c345750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15611dd257611c5a6001546064811515611c4a57fe5b0484612ea090919063ffffffff16565b9150611cd08260066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3611dcf8286612e8790919063ffffffff16565b94505b6000600254118015611e325750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15611ef157611e586002546064811515611e4857fe5b0484612ea090919063ffffffff16565b9050611e6f81600054612e8790919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3611eee8186612e8790919063ffffffff16565b94505b611f4385600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061201585600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600193505050509392505050565b600080828401905083811015151561211c57fe5b8091505092915050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561217457600080fd5b6121c681600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e81600054612e8790919063ffffffff16565b6000819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156123ed576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612481565b6124008382612e8790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000811515600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515156125ce57600080fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167ff7e58a63a036e3a7ef7921f83b6ae47930cf5c293dd3bfe7a857c6863409046d83604051808215151515815260200191505060405180910390a26001905092915050565b60008060008060001515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156126e657600080fd5b60001515600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561274557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561278157600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156127cf57600080fd5b61282185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084925060006001541180156128c75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612a65576128ed60015460648115156128dd57fe5b0484612ea090919063ffffffff16565b91506129638260066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612a628286612e8790919063ffffffff16565b94505b6000600254118015612ac55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612b8457612aeb6002546064811515612adb57fe5b0484612ea090919063ffffffff16565b9050612b0281600054612e8790919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612b818186612e8790919063ffffffff16565b94505b612bd685600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b6000612d1c82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000828211151515612e9557fe5b818303905092915050565b6000808284811515612eae57fe5b04905080915050929150505600a165627a7a7230582015d9e5fbeb00978f8fad46ac6e91fa043a596fd04f691156081540889670c3cb00290000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000005f5e10000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dc21427b2480b6f0642574a33ff185dbbc6fa1da000000000000000000000000dc21427b2480b6f0642574a33ff185dbbc6fa1da0000000000000000000000000932baa4c3fb90b785e7979aa844a31d7fbe06cf000000000000000000000000000000000000000000000000000000000000000759534b2044414f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000359534b0000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061016a576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461016f578063095ea7b3146101ff57806318160ddd1461026457806323b872dd1461028f578063313ce567146103145780633f4ba83a1461033f57806340c10f191461035657806342966c68146103a3578063557ed1ba146103d05780635c975abb146103fb578063602bc62b1461042a578063661884631461045557806370a08231146104ba578063794be707146105115780637b7e8bac146105785780638456cb59146105cf578063875ae990146105e65780638da5cb5b1461063d578063914eb66a1461069457806395d89b41146106ab578063a69df4b51461073b578063a9059cbb14610752578063cf820461146107b7578063d73dd623146107e2578063dd46706414610847578063dd62ed3e14610874578063f2fde38b146108eb578063fce589d81461092e575b600080fd5b34801561017b57600080fd5b50610184610959565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101c45780820151818401526020810190506101a9565b50505050905090810190601f1680156101f15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020b57600080fd5b5061024a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f7565b604051808215151515815260200191505060405180910390f35b34801561027057600080fd5b50610279610a27565b6040518082815260200191505060405180910390f35b34801561029b57600080fd5b506102fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a2d565b604051808215151515815260200191505060405180910390f35b34801561032057600080fd5b50610329610a5f565b6040518082815260200191505060405180910390f35b34801561034b57600080fd5b50610354610a65565b005b34801561036257600080fd5b506103a1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b25565b005b3480156103af57600080fd5b506103ce60048036038101908080359060200190929190505050610d01565b005b3480156103dc57600080fd5b506103e5610d0e565b6040518082815260200191505060405180910390f35b34801561040757600080fd5b50610410610d16565b604051808215151515815260200191505060405180910390f35b34801561043657600080fd5b5061043f610d29565b6040518082815260200191505060405180910390f35b34801561046157600080fd5b506104a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d33565b604051808215151515815260200191505060405180910390f35b3480156104c657600080fd5b506104fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d63565b6040518082815260200191505060405180910390f35b34801561051d57600080fd5b5061055e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610dac565b604051808215151515815260200191505060405180910390f35b34801561058457600080fd5b5061058d610e38565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105db57600080fd5b506105e4610e5e565b005b3480156105f257600080fd5b5061063b6004803603810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f1f565b005b34801561064957600080fd5b50610652610fcf565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a057600080fd5b506106a9610ff5565b005b3480156106b757600080fd5b506106c0611112565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107005780820151818401526020810190506106e5565b50505050905090810190601f16801561072d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561074757600080fd5b506107506111b0565b005b34801561075e57600080fd5b5061079d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061143d565b604051808215151515815260200191505060405180910390f35b3480156107c357600080fd5b506107cc61146d565b6040518082815260200191505060405180910390f35b3480156107ee57600080fd5b5061082d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611473565b604051808215151515815260200191505060405180910390f35b34801561085357600080fd5b50610872600480360381019080803590602001909291905050506114a3565b005b34801561088057600080fd5b506108d5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061162d565b6040518082815260200191505060405180910390f35b3480156108f757600080fd5b5061092c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116b4565b005b34801561093a57600080fd5b5061094361180c565b6040518082815260200191505060405180910390f35b600b8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109ef5780601f106109c4576101008083540402835291602001916109ef565b820191906000526020600020905b8154815290600101906020018083116109d257829003601f168201915b505050505081565b6000600a60009054906101000a900460ff16151515610a1557600080fd5b610a1f8383611812565b905092915050565b60005481565b6000600a60009054906101000a900460ff16151515610a4b57600080fd5b610a56848484611904565b90509392505050565b600d5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ac157600080fd5b600a60009054906101000a900460ff161515610adc57600080fd5b6000600a60006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8157600080fd5b610b968160005461210890919063ffffffff16565b600081905550610bee81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f8836040518082815260200191505060405180910390a38173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b610d0b3382612126565b50565b600042905090565b600a60009054906101000a900460ff1681565b6000600954905090565b6000600a60009054906101000a900460ff16151515610d5157600080fd5b610d5b83836122dc565b905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600a60009054906101000a900460ff16151515610dca57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e2657600080fd5b610e30838361256d565b905092915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610eba57600080fd5b600a60009054906101000a900460ff16151515610ed657600080fd5b6001600a60006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f7b57600080fd5b826001819055508160028190555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111a85780601f1061117d576101008083540402835291602001916111a8565b820191906000526020600020905b81548152906001019060200180831161118b57829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c81526020017f6f636b000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6009544211151561133a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f436f6e7472616374206973206c6f636b65642054696d65206973206e6f74207581526020017f700000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600a60009054906101000a900460ff1615151561145b57600080fd5b6114658383612681565b905092915050565b60015481565b6000600a60009054906101000a900460ff1615151561149157600080fd5b61149b8383612c8b565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114ff57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600981905550600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561171057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561174c57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60025481565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060001515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561196957600080fd5b60001515600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156119c857600080fd5b60001515600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611a2757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614151515611a6357600080fd5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515611ab157600080fd5b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548511151515611b3c57600080fd5b611b8e85600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508492506000600154118015611c345750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15611dd257611c5a6001546064811515611c4a57fe5b0484612ea090919063ffffffff16565b9150611cd08260066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3611dcf8286612e8790919063ffffffff16565b94505b6000600254118015611e325750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15611ef157611e586002546064811515611e4857fe5b0484612ea090919063ffffffff16565b9050611e6f81600054612e8790919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3611eee8186612e8790919063ffffffff16565b94505b611f4385600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061201585600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a3600193505050509392505050565b600080828401905083811015151561211c57fe5b8091505092915050565b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811115151561217457600080fd5b6121c681600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061221e81600054612e8790919063ffffffff16565b6000819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808311156123ed576000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612481565b6124008382612e8790919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b6000811515600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515156125ce57600080fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167ff7e58a63a036e3a7ef7921f83b6ae47930cf5c293dd3bfe7a857c6863409046d83604051808215151515815260200191505060405180910390a26001905092915050565b60008060008060001515600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156126e657600080fd5b60001515600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561274557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415151561278157600080fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485111515156127cf57600080fd5b61282185600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e8790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555084925060006001541180156128c75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612a65576128ed60015460648115156128dd57fe5b0484612ea090919063ffffffff16565b91506129638260066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b60066000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3612a628286612e8790919063ffffffff16565b94505b6000600254118015612ac55750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15612b8457612aeb6002546064811515612adb57fe5b0484612ea090919063ffffffff16565b9050612b0281600054612e8790919063ffffffff16565b600081905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3612b818186612e8790919063ffffffff16565b94505b612bd685600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b6000612d1c82600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210890919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000828211151515612e9557fe5b818303905092915050565b6000808284811515612eae57fe5b04905080915050929150505600a165627a7a7230582015d9e5fbeb00978f8fad46ac6e91fa043a596fd04f691156081540889670c3cb0029

Deployed Bytecode Sourcemap

9658:1841:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9701:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9701:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9701:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8924:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8924:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3412:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3412:26:0;;;;;;;;;;;;;;;;;;;;;;;8750:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8750:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9753:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9753:20:0;;;;;;;;;;;;;;;;;;;;;;;3273:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3273:105:0;;;;;;11208:284;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11208:284:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10625:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10625:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;1514:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:90:0;;;;;;;;;;;;;;;;;;;;;;;2590:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2590:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1416:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1416:90:0;;;;;;;;;;;;;;;;;;;;;;;9261:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9261:187:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5685:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5685:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9456:193;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9456:193:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4171:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4171:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3075:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3075:103:0;;;;;;10713:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10713:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;908:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;908:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1273:135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1273:135:0;;;;;;9726:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9726:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9726:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1837:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1837:297:0;;;;;;8606:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8606:136:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4115:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4115:20:0;;;;;;;;;;;;;;;;;;;;;;;9076:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9076:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1614:215;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1614:215:0;;;;;;;;;;;;;;;;;;;;;;;;;;7362:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7362:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2309:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2309:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4142:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4142:22:0;;;;;;;;;;;;;;;;;;;;;;;9701:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8924:144::-;9005:4;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;9029:31;9043:8;9053:6;9029:13;:31::i;:::-;9022:38;;8924:144;;;;:::o;3412:26::-;;;;:::o;8750:166::-;8846:4;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;8870:38;8889:5;8896:3;8901:6;8870:18;:38::i;:::-;8863:45;;8750:166;;;;;:::o;9753:20::-;;;;:::o;3273:105::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;2956:6;;;;;;;;;;;2948:15;;;;;;;;3340:5;3331:6;;:14;;;;;;;;;;;;;;;;;;3361:9;;;;;;;;;;3273:105::o;11208:284::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;11299:23;11315:6;11299:11;;:15;;:23;;;;:::i;:::-;11285:11;:37;;;;11353:29;11375:6;11353:8;:17;11362:7;11353:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;11333:8;:17;11342:7;11333:17;;;;;;;;;;;;;;;:49;;;;11415:7;11398:33;;11411:1;11398:33;;;11424:6;11398:33;;;;;;;;;;;;;;;;;;11468:7;11447:37;;11464:1;11447:37;;;11477:6;11447:37;;;;;;;;;;;;;;;;;;11208:284;;:::o;10625:80::-;10672:25;10678:10;10690:6;10672:5;:25::i;:::-;10625:80;:::o;1514:90::-;1554:7;1581:15;1574:22;;1514:90;:::o;2590:26::-;;;;;;;;;;;;;:::o;1416:90::-;1462:7;1489:9;;1482:16;;1416:90;:::o;9261:187::-;9358:12;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;9390:50;9413:8;9423:16;9390:22;:50::i;:::-;9383:57;;9261:187;;;;:::o;5685:115::-;5741:15;5776:8;:16;5785:6;5776:16;;;;;;;;;;;;;;;;5769:23;;5685:115;;;:::o;9456:193::-;9565:12;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;9597:44;9614:11;9627:13;9597:16;:44::i;:::-;9590:51;;9456:193;;;;:::o;4171:25::-;;;;;;;;;;;;;:::o;3075:103::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;3143:4;3134:6;;:13;;;;;;;;;;;;;;;;;;3163:7;;;;;;;;;;3075:103::o;10713:185::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;10820:6;10812:5;:14;;;;10847:8;10837:7;:18;;;;10879:11;10866:10;;:24;;;;;;;;;;;;;;;;;;10713:185;;;:::o;908:20::-;;;;;;;;;;;;;:::o;1273:135::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;1368:1;1332:39;;1353:5;;;;;;;;;;;1332:39;;;;;;;;;;;;1398:1;1382:5;;:18;;;;;;;;;;;;;;;;;;1273:135::o;9726:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1837:297::-;1899:10;1881:28;;:14;;;;;;;;;;;:28;;;1873:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1986:9;;1968:15;:27;1960:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2078:14;;;;;;;;;;;2050:43;;2071:5;;;;;;;;;;;2050:43;;;;;;;;;;;;2112:14;;;;;;;;;;;2104:5;;:22;;;;;;;;;;;;;;;;;;1837:297::o;8606:136::-;8683:4;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;8707:27;8722:3;8727:6;8707:14;:27::i;:::-;8700:34;;8606:136;;;;:::o;4115:20::-;;;;:::o;9076:177::-;9168:12;2778:6;;;;;;;;;;;2777:7;2769:16;;;;;;;;9200:45;9223:8;9233:11;9200:22;:45::i;:::-;9193:52;;9076:177;;;;:::o;1614:215::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;1687:5;;;;;;;;;;;1670:14;;:22;;;;;;;;;;;;;;;;;;1719:1;1703:5;;:18;;;;;;;;;;;;;;;;;;1762:4;1744:15;:22;1732:9;:34;;;;1818:1;1782:39;;1803:5;;;;;;;;;;;1782:39;;;;;;;;;;;;1614:215;:::o;7362:134::-;7436:7;7463;:15;7471:6;7463:15;;;;;;;;;;;;;;;:25;7479:8;7463:25;;;;;;;;;;;;;;;;7456:32;;7362:134;;;;:::o;2309:192::-;1237:5;;;;;;;;;;;1223:19;;:10;:19;;;1215:28;;;;;;;;2410:1;2390:22;;:8;:22;;;;2382:31;;;;;;;;2457:8;2429:37;;2450:5;;;;;;;;;;;2429:37;;;;;;;;;;;;2485:8;2477:5;;:16;;;;;;;;;;;;;;;;;;2309:192;:::o;4142:22::-;;;;:::o;7146:206::-;7213:4;7262:6;7230:7;:19;7238:10;7230:19;;;;;;;;;;;;;;;:29;7250:8;7230:29;;;;;;;;;;;;;;;:38;;;;7305:8;7284:38;;7293:10;7284:38;;;7315:6;7284:38;;;;;;;;;;;;;;;;;;7340:4;7333:11;;7146:206;;;;:::o;5808:1328::-;5890:4;6254:17;6342:30;6703:17;5945:5;5915:35;;:14;:26;5930:10;5915:26;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;5907:44;;;;;;;;5995:5;5970:30;;:14;:21;5985:5;5970:21;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;5962:39;;;;;;;;6043:5;6020:28;;:14;:19;6035:3;6020:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;6012:37;;;;;;;;6083:1;6068:17;;:3;:17;;;;6060:26;;;;;;;;6115:8;:15;6124:5;6115:15;;;;;;;;;;;;;;;;6105:6;:25;;6097:34;;;;;;;;6160:7;:14;6168:5;6160:14;;;;;;;;;;;;;;;:26;6175:10;6160:26;;;;;;;;;;;;;;;;6150:6;:36;;6142:45;;;;;;;;6216:27;6236:6;6216:8;:15;6225:5;6216:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;6198:8;:15;6207:5;6198:15;;;;;;;;;;;;;;;:45;;;;6274:6;6254:26;;6302:1;6294:5;;:9;:32;;;;;6316:10;;;;;;;;;;;6307:19;;:5;:19;;;;6294:32;6291:347;;;6375:35;6403:5;;6397:3;:11;;;;;;;;6375:9;:13;;:35;;;;:::i;:::-;6342:68;;6448:48;6473:22;6448:8;:20;6457:10;;;;;;;;;;;6448:20;;;;;;;;;;;;;;;;:24;;:48;;;;:::i;:::-;6425:8;:20;6434:10;;;;;;;;;;;6425:20;;;;;;;;;;;;;;;:71;;;;6532:10;;;;;;;;;;;6516:51;;6525:5;6516:51;;;6544:22;6516:51;;;;;;;;;;;;;;;;;;6592:34;6603:22;6592:6;:10;;:34;;;;:::i;:::-;6582:44;;6291:347;6663:1;6653:7;;:11;:34;;;;;6677:10;;;;;;;;;;;6668:19;;:5;:19;;;;6653:34;6650:281;;;6723:37;6751:7;;6745:3;:13;;;;;;;;6723:9;:13;;:37;;;;:::i;:::-;6703:57;;6789:26;6805:9;6789:11;;:15;;:26;;;;:::i;:::-;6775:11;:40;;;;6859:1;6835:38;;6844:5;6835:38;;;6863:9;6835:38;;;;;;;;;;;;;;;;;;6898:21;6909:9;6898:6;:10;;:21;;;;:::i;:::-;6888:31;;6650:281;6959:25;6977:6;6959:8;:13;6968:3;6959:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;6943:8;:13;6952:3;6943:13;;;;;;;;;;;;;;;:41;;;;7024:38;7055:6;7024:7;:14;7032:5;7024:14;;;;;;;;;;;;;;;:26;7039:10;7024:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;6995:7;:14;7003:5;6995:14;;;;;;;;;;;;;;;:26;7010:10;6995:26;;;;;;;;;;;;;;;:67;;;;7094:3;7078:28;;7087:5;7078:28;;;7099:6;7078:28;;;;;;;;;;;;;;;;;;7124:4;7117:11;;5808:1328;;;;;;;;:::o;730:147::-;788:7;808:9;824:1;820;:5;808:17;;848:1;843;:6;;836:14;;;;;;868:1;861:8;;730:147;;;;;:::o;10908:292::-;10991:8;:14;11000:4;10991:14;;;;;;;;;;;;;;;;10981:6;:24;;10973:33;;;;;;;;11034:26;11053:6;11034:8;:14;11043:4;11034:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;11017:8;:14;11026:4;11017:14;;;;;;;;;;;;;;;:43;;;;11085:23;11101:6;11085:11;;:15;;:23;;;;:::i;:::-;11071:11;:37;;;;11129:4;11124:18;;;11135:6;11124:18;;;;;;;;;;;;;;;;;;11181:1;11158:34;;11167:4;11158:34;;;11185:6;11158:34;;;;;;;;;;;;;;;;;;10908:292;;:::o;7794:450::-;7877:4;7894:13;7910:7;:19;7918:10;7910:19;;;;;;;;;;;;;;;:29;7930:8;7910:29;;;;;;;;;;;;;;;;7894:45;;7973:8;7954:16;:27;7950:188;;;8030:1;7998:7;:19;8006:10;7998:19;;;;;;;;;;;;;;;:29;8018:8;7998:29;;;;;;;;;;;;;;;:33;;;;7950:188;;;8096:30;8109:16;8096:8;:12;;:30;;;;:::i;:::-;8064:7;:19;8072:10;8064:19;;;;;;;;;;;;;;;:29;8084:8;8064:29;;;;;;;;;;;;;;;:62;;;;7950:188;8174:8;8153:61;;8162:10;8153:61;;;8184:7;:19;8192:10;8184:19;;;;;;;;;;;;;;;:29;8204:8;8184:29;;;;;;;;;;;;;;;;8153:61;;;;;;;;;;;;;;;;;;8232:4;8225:11;;7794:450;;;;;:::o;8256:278::-;8333:4;8386:14;8358:42;;:14;:24;8373:8;8358:24;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;8350:51;;;;;;;;8439:14;8412;:24;8427:8;8412:24;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;8479:8;8469:35;;;8489:14;8469:35;;;;;;;;;;;;;;;;;;;;;;8522:4;8515:11;;8256:278;;;;:::o;4438:1237::-;4501:4;4774:17;4867:30;5238:17;4556:5;4526:35;;:14;:26;4541:10;4526:26;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;4518:44;;;;;;;;4604:5;4581:28;;:14;:19;4596:3;4581:19;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;4573:37;;;;;;;;4644:1;4629:17;;:3;:17;;;;4621:26;;;;;;;;4676:8;:20;4685:10;4676:20;;;;;;;;;;;;;;;;4666:6;:30;;4658:39;;;;;;;;4731:32;4756:6;4731:8;:20;4740:10;4731:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;4708:8;:20;4717:10;4708:20;;;;;;;;;;;;;;;:55;;;;4794:6;4774:26;;4822:1;4814:5;;:9;:37;;;;;4841:10;;;;;;;;;;;4827:24;;:10;:24;;;;4814:37;4811:357;;;4900:35;4928:5;;4922:3;:11;;;;;;;;4900:9;:13;;:35;;;;:::i;:::-;4867:68;;4973:48;4998:22;4973:8;:20;4982:10;;;;;;;;;;;4973:20;;;;;;;;;;;;;;;;:24;;:48;;;;:::i;:::-;4950:8;:20;4959:10;;;;;;;;;;;4950:20;;;;;;;;;;;;;;;:71;;;;5062:10;;;;;;;;;;;5041:56;;5050:10;5041:56;;;5074:22;5041:56;;;;;;;;;;;;;;;;;;5122:34;5133:22;5122:6;:10;;:34;;;;:::i;:::-;5112:44;;4811:357;5193:1;5183:7;;:11;:39;;;;;5212:10;;;;;;;;;;;5198:24;;:10;:24;;;;5183:39;5180:291;;;5258:37;5286:7;;5280:3;:13;;;;;;;;5258:9;:13;;:37;;;;:::i;:::-;5238:57;;5324:26;5340:9;5324:11;;:15;;:26;;;;:::i;:::-;5310:11;:40;;;;5399:1;5370:43;;5379:10;5370:43;;;5403:9;5370:43;;;;;;;;;;;;;;;;;;5438:21;5449:9;5438:6;:10;;:21;;;;:::i;:::-;5428:31;;5180:291;5571:25;5589:6;5571:8;:13;5580:3;5571:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;5555:8;:13;5564:3;5555:13;;;;;;;;;;;;;;;:41;;;;5633:3;5612:33;;5621:10;5612:33;;;5638:6;5612:33;;;;;;;;;;;;;;;;;;5663:4;5656:11;;4438:1237;;;;;;;:::o;7506:280::-;7584:4;7633:46;7667:11;7633:7;:19;7641:10;7633:19;;;;;;;;;;;;;;;:29;7653:8;7633:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;7601:7;:19;7609:10;7601:19;;;;;;;;;;;;;;;:29;7621:8;7601:29;;;;;;;;;;;;;;;:78;;;;7716:8;7695:61;;7704:10;7695:61;;;7726:7;:19;7734:10;7726:19;;;;;;;;;;;;;;;:29;7746:8;7726:29;;;;;;;;;;;;;;;;7695:61;;;;;;;;;;;;;;;;;;7774:4;7767:11;;7506:280;;;;:::o;599:123::-;657:7;689:1;684;:6;;677:14;;;;;;713:1;709;:5;702:12;;599:123;;;;:::o;303:288::-;361:7;460:9;476:1;472;:5;;;;;;;;460:17;;582:1;575:8;;303:288;;;;;:::o

Swarm Source

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