ETH Price: $3,462.03 (+2.00%)
Gas: 15 Gwei

Token

GSH (GSH)
 

Overview

Max Total Supply

0 GSH

Holders

2,464

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
taiwandog.eth
Balance
1,000,000 GSH

Value
$0.00
0x3bcbbb541390d41315190754ecf3a07a7760a2a9
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
GSHCoin

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-01
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

abstract contract Context {

    function _msgSender() internal view virtual returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        assembly {codehash := extcodehash(account)}
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");
        (bool success,) = recipient.call{ value : amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value : weiValue}(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor(address tokenOwner) {
        _transferOwnership(tokenOwner);
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);

    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract GSHCoin is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    string private _name;
    string private _symbol;
    uint8 private _decimals;
    uint256 private _totalSupply;

    address payable public teamReceiver;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public automatedMarketMakerPairs;
    mapping (address => bool) public _isFeeExempt;
    bool public autoSwapBack = false;
    uint256 private _swapThreshold;

    uint256 public feeDenominator = 1000;
    uint256 public teamShare;
    uint256 public totalDistributionShares;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    mapping(address => bool) public _isBlacklisted;

    uint256 public inoutReserveFee;

    bool public tradding;

    modifier validRecipient(address to) {
        require(to != address(0x0), "Recipient zero address");
        _;
    }

    uint256 public constant TOTAL_SUPPLY = 100000000000 * (10 ** 18);
    uint256 public constant RATE = 1000000 * (10 ** 18);
    uint256 public constant COST = 0.001 ether;

    uint256 public nextMintTime;
    mapping(address => bool) public hasClaimed;


    function claim() external payable {
        require(_totalSupply < TOTAL_SUPPLY, "Exceed");
        require(!hasClaimed[msg.sender], "You have already claimed");
        require(msg.value >= COST, "Cost not enough");
        _mint(msg.sender, RATE);
        hasClaimed[msg.sender] = true;
    }

    receive() external payable {
        require(_totalSupply < TOTAL_SUPPLY, "Exceed");
        require(!hasClaimed[msg.sender], "You have already claimed");
        require(msg.value >= COST, "Cost not enough");
        _mint(msg.sender, RATE);
        hasClaimed[msg.sender] = true;
    }

    constructor () Ownable(msg.sender) {
        _name = "GSH";
        _symbol = "GSH";
        _decimals = 18;
        _totalSupply = 0;

        teamReceiver = payable(msg.sender);

        tradding = true;
        // _isFeeExempt[teamReceiver] = true;
        _isFeeExempt[owner()] = true;
        _isFeeExempt[address(this)] = true;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;

        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        automatedMarketMakerPairs[address(uniswapPair)] = true;


        teamShare = 20;
        totalDistributionShares = teamShare;
        inoutReserveFee = totalDistributionShares;

        _balances[owner()] = TOTAL_SUPPLY;
        emit Transfer(address(0), owner(), TOTAL_SUPPLY);
    }


    function name() public view returns (string memory) {
        return _name;
    }

    function symbol() public view returns (string memory) {
        return _symbol;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function swapThreshold() public view returns (uint256) {
        return _swapThreshold;
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        _balances[account] += amount;
        _balances[owner()] -= amount;
        emit Transfer(owner(), account, amount);
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transfer(address recipient, uint256 amount) public override validRecipient(recipient) returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override validRecipient(recipient) returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {
        if(tradding == false && msg.sender == tx.origin) {
            return _basicTransfer(sender, recipient, amount);
        }
        require(tradding || tx.origin == owner(), "Tradding not open");
        require(!_isBlacklisted[sender] && !_isBlacklisted[recipient], "In blacklist");
        
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            teamReceiver,
            block.timestamp
        );
    }

    function transferEth(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

    function shouldTakeFee(address from, address to) internal view returns (bool) {
        if (_isFeeExempt[from] || _isFeeExempt[to]) {
            return false;
        }
        return (automatedMarketMakerPairs[from] || automatedMarketMakerPairs[to]);
    }

    function setFeeExempt(address account, bool value) public onlyOwner {
        _isFeeExempt[account] = value;
    }

    function setSwapThreshold(uint256 amount) external onlyOwner {
        _swapThreshold = amount;
    }

    function toggleTradding() external onlyOwner {
        tradding = !tradding;
    }


    function setTeamReceiver(address account) external onlyOwner {
        teamReceiver = payable(account);
    }

    function setAutoSwapBack(bool value) external onlyOwner {
        autoSwapBack = value;
    }

    // function getCirculatingSupply() public view returns (uint256) {
    //     return _totalSupply.sub(balanceOf(Dead));
    // }

    function setAutomatedMarketMakerPairs(address pair, bool value) public onlyOwner {
        automatedMarketMakerPairs[pair] = value;
    }

    function changeRouterVersion(address newRouter) external onlyOwner returns(address newPair) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(newRouter);
        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;

        newPair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
        if(newPair == address(0)) {
            newPair = IUniswapV2Factory(uniswapV2Router.factory())
                .createPair(address(this), uniswapV2Router.WETH());
        }

        uniswapPair = newPair; 
        automatedMarketMakerPairs[address(uniswapPair)] = true;
    }

    function removeToken(address tokenAddress, uint256 amount) external onlyOwner {
        if (tokenAddress == address(0))
            payable(msg.sender).transfer(amount);
        else
            IERC20(tokenAddress).transfer(msg.sender, amount);
    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        uint256 receiveAmount;

        feeAmount = amount.mul(inoutReserveFee).div(feeDenominator);

        if(feeAmount > 0) {
            _balances[teamReceiver] = _balances[teamReceiver].add(feeAmount);
            emit Transfer(sender, teamReceiver, feeAmount);
        }
        receiveAmount = amount.sub(feeAmount);
        return receiveAmount;
    }

    function setInOutTaxes(uint256 teamFee) external onlyOwner {
        teamShare = teamFee;
        totalDistributionShares = teamShare;
        inoutReserveFee = totalDistributionShares;
    }

    function setBatchBlacklist(address account, bool value) public onlyOwner {
        _isBlacklisted[account] = value;
    }

    function withdraw() external onlyOwner {
        payable(msg.sender).transfer(address(this).balance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"COST","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoSwapBack","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"newPair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inoutReserveFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMintTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutoSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPairs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setBatchBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"teamFee","type":"uint256"}],"name":"setInOutTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setTeamReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleTradding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a805460ff191690556103e8600c553480156200002157600080fd5b50336200002e8162000390565b5060408051808201909152600381526208ea6960eb1b602082015260019062000058908262000485565b5060408051808201909152600381526208ea6960eb1b602082015260029062000082908262000485565b506003805460ff1990811660121790915560006004819055600580546001600160a01b03191633179055601380549092166001908117909255600990620000d16000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600983528181208054909416600117909355600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155600783528184208185528352928190206000199055805163c45a015560e01b81529051839263c45a015592600480820193918290030181865afa15801562000187573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ad919062000551565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000221919062000551565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200026f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000295919062000551565b601080546001600160a01b0319166001600160a01b039290921691821790556000908152600860205260408120805460ff191660011790556014600d819055600e8190556012556c01431e0fae6d7217caa000000090600690620003016000546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020556200032e6000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c01431e0fae6d7217caa00000006040516200038191815260200190565b60405180910390a35062000583565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200040b57607f821691505b6020821081036200042c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200048057600081815260208120601f850160051c810160208610156200045b5750805b601f850160051c820191505b818110156200047c5782815560010162000467565b5050505b505050565b81516001600160401b03811115620004a157620004a1620003e0565b620004b981620004b28454620003f6565b8462000432565b602080601f831160018114620004f15760008415620004d85750858301515b600019600386901b1c1916600185901b1785556200047c565b600085815260208120601f198616915b82811015620005225788860151825594840194600190910190840162000501565b5085821015620005415787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200056457600080fd5b81516001600160a01b03811681146200057c57600080fd5b9392505050565b611e9a80620005936000396000f3fe60806040526004361061026b5760003560e01c8063715018a611610144578063a9059cbb116100b6578063cd5d17991161007a578063cd5d179914610865578063dceffa7a1461087f578063dd62ed3e1461089f578063ea6ef2fe146108e5578063ee2836fd146108fb578063f2fde38b1461091157600080fd5b8063a9059cbb146107c4578063b212f067146107e4578063b62496f5146107fa578063bf8fbbd21461082a578063c816841b1461084557600080fd5b8063902d55a511610108578063902d55a51461071957806395d89b411461073a578063991937ed1461074f5780639d0014b11461076f578063a42cde371461078f578063a457c2d7146107a457600080fd5b8063715018a61461068057806373b2e80e146106955780638c4e8c21146106c55780638da5cb5b146106db5780638ebfc796146106f957600080fd5b806339509351116101dd5780634e71d92d116101a15780634e71d92d146105ca57806357520a49146105d25780635881f3ef146105ec578063664e97041461060c5780636dbd6db71461062a57806370a082311461064a57600080fd5b806339509351146105355780633ccfd60b1461055557806345167f261461056a5780634bbe30441461058a5780634bc6dd18146105aa57600080fd5b8063180b0d7e1161022f578063180b0d7e1461046857806318160ddd1461047e5780631cdd3be31461049357806323b872dd146104c357806327fa7b18146104e3578063313ce5671461051357600080fd5b80630445b6671461039857806306fdde03146103bc578063095ea7b3146103de57806313baf1e61461040e5780631694505e1461043057600080fd5b36610393576c01431e0fae6d7217caa0000000600454106102bc5760405162461bcd60e51b8152602060048201526006602482015265115e18d9595960d21b60448201526064015b60405180910390fd5b3360009081526015602052604090205460ff16156103175760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4818db185a5b595960421b60448201526064016102b3565b66038d7ea4c680003410156103605760405162461bcd60e51b815260206004820152600f60248201526e086dee6e840dcdee840cadcdeeaced608b1b60448201526064016102b3565b6103743369d3c21bcecceda1000000610931565b336000908152601560205260409020805460ff19166001908117909155005b600080fd5b3480156103a457600080fd5b50600b545b6040519081526020015b60405180910390f35b3480156103c857600080fd5b506103d1610a50565b6040516103b39190611b76565b3480156103ea57600080fd5b506103fe6103f9366004611bd9565b610ae2565b60405190151581526020016103b3565b34801561041a57600080fd5b5061042e610429366004611bd9565b610af9565b005b34801561043c57600080fd5b50600f54610450906001600160a01b031681565b6040516001600160a01b0390911681526020016103b3565b34801561047457600080fd5b506103a9600c5481565b34801561048a57600080fd5b506004546103a9565b34801561049f57600080fd5b506103fe6104ae366004611c05565b60116020526000908152604090205460ff1681565b3480156104cf57600080fd5b506103fe6104de366004611c22565b610bb2565b3480156104ef57600080fd5b506103fe6104fe366004611c05565b60096020526000908152604090205460ff1681565b34801561051f57600080fd5b5060035460405160ff90911681526020016103b3565b34801561054157600080fd5b506103fe610550366004611bd9565b610c6d565b34801561056157600080fd5b5061042e610ca3565b34801561057657600080fd5b5061042e610585366004611c71565b610cda565b34801561059657600080fd5b5061042e6105a5366004611c71565b610d0d565b3480156105b657600080fd5b5061042e6105c5366004611caa565b610d40565b61042e610d5b565b3480156105de57600080fd5b506013546103fe9060ff1681565b3480156105f857600080fd5b50610450610607366004611c05565b610e76565b34801561061857600080fd5b506103a969d3c21bcecceda100000081565b34801561063657600080fd5b5061042e610645366004611cc7565b6111d3565b34801561065657600080fd5b506103a9610665366004611c05565b6001600160a01b031660009081526006602052604090205490565b34801561068c57600080fd5b5061042e6111ea565b3480156106a157600080fd5b506103fe6106b0366004611c05565b60156020526000908152604090205460ff1681565b3480156106d157600080fd5b506103a960145481565b3480156106e757600080fd5b506000546001600160a01b0316610450565b34801561070557600080fd5b5061042e610714366004611c71565b6111fe565b34801561072557600080fd5b506103a96c01431e0fae6d7217caa000000081565b34801561074657600080fd5b506103d1611231565b34801561075b57600080fd5b5061042e61076a366004611c05565b611240565b34801561077b57600080fd5b5061042e61078a366004611cc7565b61126a565b34801561079b57600080fd5b5061042e611277565b3480156107b057600080fd5b506103fe6107bf366004611bd9565b611293565b3480156107d057600080fd5b506103fe6107df366004611bd9565b6112e2565b3480156107f057600080fd5b506103a9600e5481565b34801561080657600080fd5b506103fe610815366004611c05565b60086020526000908152604090205460ff1681565b34801561083657600080fd5b506103a966038d7ea4c6800081565b34801561085157600080fd5b50601054610450906001600160a01b031681565b34801561087157600080fd5b50600a546103fe9060ff1681565b34801561088b57600080fd5b50600554610450906001600160a01b031681565b3480156108ab57600080fd5b506103a96108ba366004611ce0565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108f157600080fd5b506103a9600d5481565b34801561090757600080fd5b506103a960125481565b34801561091d57600080fd5b5061042e61092c366004611c05565b61133f565b6001600160a01b0382166109875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016102b3565b6001600160a01b038216600090815260066020526040812080548392906109af908490611d24565b90915550819050600660006109cc6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546109fb9190611d37565b90915550506001600160a01b038216610a1c6000546001600160a01b031690565b6001600160a01b0316600080516020611e2083398151915283604051610a4491815260200190565b60405180910390a35050565b606060018054610a5f90611d4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b90611d4a565b8015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b6000610aef3384846113b5565b5060015b92915050565b610b016114d9565b6001600160a01b038216610b4157604051339082156108fc029083906000818181858888f19350505050158015610b3c573d6000803e3d6000fd5b505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611d84565b6000826001600160a01b038116610c045760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b60448201526064016102b3565b610c0f858585611533565b50610c628533610c5d86604051806060016040528060288152602001611df8602891396001600160a01b038b1660009081526007602090815260408083203384529091529020549190611741565b6113b5565b506001949350505050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610aef918590610c5d908661177b565b610cab6114d9565b60405133904780156108fc02916000818181858888f19350505050158015610cd7573d6000803e3d6000fd5b50565b610ce26114d9565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b610d156114d9565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b610d486114d9565b600a805460ff1916911515919091179055565b6c01431e0fae6d7217caa000000060045410610da25760405162461bcd60e51b8152602060048201526006602482015265115e18d9595960d21b60448201526064016102b3565b3360009081526015602052604090205460ff1615610dfd5760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4818db185a5b595960421b60448201526064016102b3565b66038d7ea4c68000341015610e465760405162461bcd60e51b815260206004820152600f60248201526e086dee6e840dcdee840cadcdeeaced608b1b60448201526064016102b3565b610e5a3369d3c21bcecceda1000000610931565b336000908152601560205260409020805460ff19166001179055565b6000610e806114d9565b600f80546001600160a01b0319166001600160a01b0384811691821783553060009081526007602090815260408083209483529381529083902060001990559254825163c45a015560e01b815292518694919092169263c45a015592600480830193928290030181865afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f209190611da1565b6001600160a01b031663e6a4390530600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190611da1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110159190611da1565b91506001600160a01b03821661119657600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109c9190611da1565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111229190611da1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111939190611da1565b91505b50601080546001600160a01b0319166001600160a01b0383169081179091556000908152600860205260409020805460ff19166001179055919050565b6111db6114d9565b600d819055600e819055601255565b6111f26114d9565b6111fc60006117da565b565b6112066114d9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610a5f90611d4a565b6112486114d9565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6112726114d9565b600b55565b61127f6114d9565b6013805460ff19811660ff90911615179055565b6000610aef3384610c5d85604051806060016040528060258152602001611e40602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611741565b6000826001600160a01b0381166113345760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b60448201526064016102b3565b610c62338585611533565b6113476114d9565b6001600160a01b0381166113ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b3565b610cd7816117da565b6001600160a01b0383166114175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102b3565b6001600160a01b0382166114785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102b3565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b031633146111fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b3565b60135460009060ff1615801561154857503332145b1561155f5761155884848461182a565b905061173a565b60135460ff168061157a57506000546001600160a01b031632145b6115ba5760405162461bcd60e51b81526020600482015260116024820152702a3930b23234b733903737ba1037b832b760791b60448201526064016102b3565b6001600160a01b03841660009081526011602052604090205460ff161580156115fc57506001600160a01b03831660009081526011602052604090205460ff16155b6116375760405162461bcd60e51b815260206004820152600c60248201526b125b88189b1858dadb1a5cdd60a21b60448201526064016102b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054611689918490611741565b6001600160a01b0385166000908152600660205260408120919091556116af85856118fe565b6116b957826116c4565b6116c485858561198d565b6001600160a01b0385166000908152600660205260409020549091506116ea908261177b565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611e208339815191529061172c9085815260200190565b60405180910390a360019150505b9392505050565b600081848411156117655760405162461bcd60e51b81526004016102b39190611b76565b5060006117728486611d37565b95945050505050565b6000806117888385611d24565b90508381101561173a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016102b3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461187b918490611741565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546118aa908361177b565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611e20833981519152906118ec9086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526009602052604081205460ff168061193d57506001600160a01b03821660009081526009602052604090205460ff165b1561194a57506000610af3565b6001600160a01b03831660009081526008602052604090205460ff168061173a5750506001600160a01b031660009081526008602052604090205460ff16919050565b60008060006119b3600c546119ad60125487611a4290919063ffffffff16565b90611ac4565b91508115611a2e576005546001600160a01b03166000908152600660205260409020546119e0908361177b565b600580546001600160a01b0390811660009081526006602090815260409182902094909455915491518581529181169290891691600080516020611e20833981519152910160405180910390a35b611a388483611b06565b9695505050505050565b600082600003611a5457506000610af3565b6000611a608385611dbe565b905082611a6d8583611dd5565b1461173a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016102b3565b600061173a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b48565b600061173a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611741565b60008183611b695760405162461bcd60e51b81526004016102b39190611b76565b5060006117728486611dd5565b600060208083528351808285015260005b81811015611ba357858101830151858201604001528201611b87565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cd757600080fd5b60008060408385031215611bec57600080fd5b8235611bf781611bc4565b946020939093013593505050565b600060208284031215611c1757600080fd5b813561173a81611bc4565b600080600060608486031215611c3757600080fd5b8335611c4281611bc4565b92506020840135611c5281611bc4565b929592945050506040919091013590565b8015158114610cd757600080fd5b60008060408385031215611c8457600080fd5b8235611c8f81611bc4565b91506020830135611c9f81611c63565b809150509250929050565b600060208284031215611cbc57600080fd5b813561173a81611c63565b600060208284031215611cd957600080fd5b5035919050565b60008060408385031215611cf357600080fd5b8235611cfe81611bc4565b91506020830135611c9f81611bc4565b634e487b7160e01b600052601160045260246000fd5b80820180821115610af357610af3611d0e565b81810381811115610af357610af3611d0e565b600181811c90821680611d5e57607f821691505b602082108103611d7e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611d9657600080fd5b815161173a81611c63565b600060208284031215611db357600080fd5b815161173a81611bc4565b8082028115828204841417610af357610af3611d0e565b600082611df257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220303f2b2a83bf4260e2fb4574e3d3b70bfb72b404b8b8030e8e439bb4fbbdd25e64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c8063715018a611610144578063a9059cbb116100b6578063cd5d17991161007a578063cd5d179914610865578063dceffa7a1461087f578063dd62ed3e1461089f578063ea6ef2fe146108e5578063ee2836fd146108fb578063f2fde38b1461091157600080fd5b8063a9059cbb146107c4578063b212f067146107e4578063b62496f5146107fa578063bf8fbbd21461082a578063c816841b1461084557600080fd5b8063902d55a511610108578063902d55a51461071957806395d89b411461073a578063991937ed1461074f5780639d0014b11461076f578063a42cde371461078f578063a457c2d7146107a457600080fd5b8063715018a61461068057806373b2e80e146106955780638c4e8c21146106c55780638da5cb5b146106db5780638ebfc796146106f957600080fd5b806339509351116101dd5780634e71d92d116101a15780634e71d92d146105ca57806357520a49146105d25780635881f3ef146105ec578063664e97041461060c5780636dbd6db71461062a57806370a082311461064a57600080fd5b806339509351146105355780633ccfd60b1461055557806345167f261461056a5780634bbe30441461058a5780634bc6dd18146105aa57600080fd5b8063180b0d7e1161022f578063180b0d7e1461046857806318160ddd1461047e5780631cdd3be31461049357806323b872dd146104c357806327fa7b18146104e3578063313ce5671461051357600080fd5b80630445b6671461039857806306fdde03146103bc578063095ea7b3146103de57806313baf1e61461040e5780631694505e1461043057600080fd5b36610393576c01431e0fae6d7217caa0000000600454106102bc5760405162461bcd60e51b8152602060048201526006602482015265115e18d9595960d21b60448201526064015b60405180910390fd5b3360009081526015602052604090205460ff16156103175760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4818db185a5b595960421b60448201526064016102b3565b66038d7ea4c680003410156103605760405162461bcd60e51b815260206004820152600f60248201526e086dee6e840dcdee840cadcdeeaced608b1b60448201526064016102b3565b6103743369d3c21bcecceda1000000610931565b336000908152601560205260409020805460ff19166001908117909155005b600080fd5b3480156103a457600080fd5b50600b545b6040519081526020015b60405180910390f35b3480156103c857600080fd5b506103d1610a50565b6040516103b39190611b76565b3480156103ea57600080fd5b506103fe6103f9366004611bd9565b610ae2565b60405190151581526020016103b3565b34801561041a57600080fd5b5061042e610429366004611bd9565b610af9565b005b34801561043c57600080fd5b50600f54610450906001600160a01b031681565b6040516001600160a01b0390911681526020016103b3565b34801561047457600080fd5b506103a9600c5481565b34801561048a57600080fd5b506004546103a9565b34801561049f57600080fd5b506103fe6104ae366004611c05565b60116020526000908152604090205460ff1681565b3480156104cf57600080fd5b506103fe6104de366004611c22565b610bb2565b3480156104ef57600080fd5b506103fe6104fe366004611c05565b60096020526000908152604090205460ff1681565b34801561051f57600080fd5b5060035460405160ff90911681526020016103b3565b34801561054157600080fd5b506103fe610550366004611bd9565b610c6d565b34801561056157600080fd5b5061042e610ca3565b34801561057657600080fd5b5061042e610585366004611c71565b610cda565b34801561059657600080fd5b5061042e6105a5366004611c71565b610d0d565b3480156105b657600080fd5b5061042e6105c5366004611caa565b610d40565b61042e610d5b565b3480156105de57600080fd5b506013546103fe9060ff1681565b3480156105f857600080fd5b50610450610607366004611c05565b610e76565b34801561061857600080fd5b506103a969d3c21bcecceda100000081565b34801561063657600080fd5b5061042e610645366004611cc7565b6111d3565b34801561065657600080fd5b506103a9610665366004611c05565b6001600160a01b031660009081526006602052604090205490565b34801561068c57600080fd5b5061042e6111ea565b3480156106a157600080fd5b506103fe6106b0366004611c05565b60156020526000908152604090205460ff1681565b3480156106d157600080fd5b506103a960145481565b3480156106e757600080fd5b506000546001600160a01b0316610450565b34801561070557600080fd5b5061042e610714366004611c71565b6111fe565b34801561072557600080fd5b506103a96c01431e0fae6d7217caa000000081565b34801561074657600080fd5b506103d1611231565b34801561075b57600080fd5b5061042e61076a366004611c05565b611240565b34801561077b57600080fd5b5061042e61078a366004611cc7565b61126a565b34801561079b57600080fd5b5061042e611277565b3480156107b057600080fd5b506103fe6107bf366004611bd9565b611293565b3480156107d057600080fd5b506103fe6107df366004611bd9565b6112e2565b3480156107f057600080fd5b506103a9600e5481565b34801561080657600080fd5b506103fe610815366004611c05565b60086020526000908152604090205460ff1681565b34801561083657600080fd5b506103a966038d7ea4c6800081565b34801561085157600080fd5b50601054610450906001600160a01b031681565b34801561087157600080fd5b50600a546103fe9060ff1681565b34801561088b57600080fd5b50600554610450906001600160a01b031681565b3480156108ab57600080fd5b506103a96108ba366004611ce0565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156108f157600080fd5b506103a9600d5481565b34801561090757600080fd5b506103a960125481565b34801561091d57600080fd5b5061042e61092c366004611c05565b61133f565b6001600160a01b0382166109875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016102b3565b6001600160a01b038216600090815260066020526040812080548392906109af908490611d24565b90915550819050600660006109cc6000546001600160a01b031690565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546109fb9190611d37565b90915550506001600160a01b038216610a1c6000546001600160a01b031690565b6001600160a01b0316600080516020611e2083398151915283604051610a4491815260200190565b60405180910390a35050565b606060018054610a5f90611d4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a8b90611d4a565b8015610ad85780601f10610aad57610100808354040283529160200191610ad8565b820191906000526020600020905b815481529060010190602001808311610abb57829003601f168201915b5050505050905090565b6000610aef3384846113b5565b5060015b92915050565b610b016114d9565b6001600160a01b038216610b4157604051339082156108fc029083906000818181858888f19350505050158015610b3c573d6000803e3d6000fd5b505050565b60405163a9059cbb60e01b8152336004820152602481018290526001600160a01b0383169063a9059cbb906044016020604051808303816000875af1158015610b8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611d84565b6000826001600160a01b038116610c045760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b60448201526064016102b3565b610c0f858585611533565b50610c628533610c5d86604051806060016040528060288152602001611df8602891396001600160a01b038b1660009081526007602090815260408083203384529091529020549190611741565b6113b5565b506001949350505050565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610aef918590610c5d908661177b565b610cab6114d9565b60405133904780156108fc02916000818181858888f19350505050158015610cd7573d6000803e3d6000fd5b50565b610ce26114d9565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b610d156114d9565b6001600160a01b03919091166000908152601160205260409020805460ff1916911515919091179055565b610d486114d9565b600a805460ff1916911515919091179055565b6c01431e0fae6d7217caa000000060045410610da25760405162461bcd60e51b8152602060048201526006602482015265115e18d9595960d21b60448201526064016102b3565b3360009081526015602052604090205460ff1615610dfd5760405162461bcd60e51b8152602060048201526018602482015277165bdd481a185d9948185b1c9958591e4818db185a5b595960421b60448201526064016102b3565b66038d7ea4c68000341015610e465760405162461bcd60e51b815260206004820152600f60248201526e086dee6e840dcdee840cadcdeeaced608b1b60448201526064016102b3565b610e5a3369d3c21bcecceda1000000610931565b336000908152601560205260409020805460ff19166001179055565b6000610e806114d9565b600f80546001600160a01b0319166001600160a01b0384811691821783553060009081526007602090815260408083209483529381529083902060001990559254825163c45a015560e01b815292518694919092169263c45a015592600480830193928290030181865afa158015610efc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f209190611da1565b6001600160a01b031663e6a4390530600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa69190611da1565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110159190611da1565b91506001600160a01b03821661119657600f60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611078573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109c9190611da1565b6001600160a01b031663c9c6539630600f60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111229190611da1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561116f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111939190611da1565b91505b50601080546001600160a01b0319166001600160a01b0383169081179091556000908152600860205260409020805460ff19166001179055919050565b6111db6114d9565b600d819055600e819055601255565b6111f26114d9565b6111fc60006117da565b565b6112066114d9565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610a5f90611d4a565b6112486114d9565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6112726114d9565b600b55565b61127f6114d9565b6013805460ff19811660ff90911615179055565b6000610aef3384610c5d85604051806060016040528060258152602001611e40602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611741565b6000826001600160a01b0381166113345760405162461bcd60e51b8152602060048201526016602482015275526563697069656e74207a65726f206164647265737360501b60448201526064016102b3565b610c62338585611533565b6113476114d9565b6001600160a01b0381166113ac5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102b3565b610cd7816117da565b6001600160a01b0383166114175760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016102b3565b6001600160a01b0382166114785760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016102b3565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000546001600160a01b031633146111fc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102b3565b60135460009060ff1615801561154857503332145b1561155f5761155884848461182a565b905061173a565b60135460ff168061157a57506000546001600160a01b031632145b6115ba5760405162461bcd60e51b81526020600482015260116024820152702a3930b23234b733903737ba1037b832b760791b60448201526064016102b3565b6001600160a01b03841660009081526011602052604090205460ff161580156115fc57506001600160a01b03831660009081526011602052604090205460ff16155b6116375760405162461bcd60e51b815260206004820152600c60248201526b125b88189b1858dadb1a5cdd60a21b60448201526064016102b3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260069091529190912054611689918490611741565b6001600160a01b0385166000908152600660205260408120919091556116af85856118fe565b6116b957826116c4565b6116c485858561198d565b6001600160a01b0385166000908152600660205260409020549091506116ea908261177b565b6001600160a01b038086166000818152600660205260409081902093909355915190871690600080516020611e208339815191529061172c9085815260200190565b60405180910390a360019150505b9392505050565b600081848411156117655760405162461bcd60e51b81526004016102b39190611b76565b5060006117728486611d37565b95945050505050565b6000806117888385611d24565b90508381101561173a5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016102b3565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260069091529182205461187b918490611741565b6001600160a01b0380861660009081526006602052604080822093909355908516815220546118aa908361177b565b6001600160a01b038085166000818152600660205260409081902093909355915190861690600080516020611e20833981519152906118ec9086815260200190565b60405180910390a35060019392505050565b6001600160a01b03821660009081526009602052604081205460ff168061193d57506001600160a01b03821660009081526009602052604090205460ff165b1561194a57506000610af3565b6001600160a01b03831660009081526008602052604090205460ff168061173a5750506001600160a01b031660009081526008602052604090205460ff16919050565b60008060006119b3600c546119ad60125487611a4290919063ffffffff16565b90611ac4565b91508115611a2e576005546001600160a01b03166000908152600660205260409020546119e0908361177b565b600580546001600160a01b0390811660009081526006602090815260409182902094909455915491518581529181169290891691600080516020611e20833981519152910160405180910390a35b611a388483611b06565b9695505050505050565b600082600003611a5457506000610af3565b6000611a608385611dbe565b905082611a6d8583611dd5565b1461173a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016102b3565b600061173a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b48565b600061173a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611741565b60008183611b695760405162461bcd60e51b81526004016102b39190611b76565b5060006117728486611dd5565b600060208083528351808285015260005b81811015611ba357858101830151858201604001528201611b87565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cd757600080fd5b60008060408385031215611bec57600080fd5b8235611bf781611bc4565b946020939093013593505050565b600060208284031215611c1757600080fd5b813561173a81611bc4565b600080600060608486031215611c3757600080fd5b8335611c4281611bc4565b92506020840135611c5281611bc4565b929592945050506040919091013590565b8015158114610cd757600080fd5b60008060408385031215611c8457600080fd5b8235611c8f81611bc4565b91506020830135611c9f81611c63565b809150509250929050565b600060208284031215611cbc57600080fd5b813561173a81611c63565b600060208284031215611cd957600080fd5b5035919050565b60008060408385031215611cf357600080fd5b8235611cfe81611bc4565b91506020830135611c9f81611bc4565b634e487b7160e01b600052601160045260246000fd5b80820180821115610af357610af3611d0e565b81810381811115610af357610af3611d0e565b600181811c90821680611d5e57607f821691505b602082108103611d7e57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611d9657600080fd5b815161173a81611c63565b600060208284031215611db357600080fd5b815161173a81611bc4565b8082028115828204841417610af357610af3611d0e565b600082611df257634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220303f2b2a83bf4260e2fb4574e3d3b70bfb72b404b8b8030e8e439bb4fbbdd25e64736f6c63430008120033

Deployed Bytecode Sourcemap

7338:10190:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8432:25;9014:12;;:27;9006:46;;;;-1:-1:-1;;;9006:46:0;;216:2:1;9006:46:0;;;198:21:1;255:1;235:18;;;228:29;-1:-1:-1;;;273:18:1;;;266:36;319:18;;9006:46:0;;;;;;;;;9083:10;9072:22;;;;:10;:22;;;;;;;;9071:23;9063:60;;;;-1:-1:-1;;;9063:60:0;;550:2:1;9063:60:0;;;532:21:1;589:2;569:18;;;562:30;-1:-1:-1;;;608:18:1;;;601:54;672:18;;9063:60:0;348:348:1;9063:60:0;8553:11;9142:9;:17;;9134:45;;;;-1:-1:-1;;;9134:45:0;;903:2:1;9134:45:0;;;885:21:1;942:2;922:18;;;915:30;-1:-1:-1;;;961:18:1;;;954:45;1016:18;;9134:45:0;701:339:1;9134:45:0;9190:23;9196:10;8495:20;9190:5;:23::i;:::-;9235:10;9224:22;;;;:10;:22;;;;;:29;;-1:-1:-1;;9224:29:0;9249:4;9224:29;;;;;;;7338:10190;;;;11457:95;;;;;;;;;;-1:-1:-1;11530:14:0;;11457:95;;;1191:25:1;;;1179:2;1164:18;11457:95:0;;;;;;;;10291:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11845:161::-;;;;;;;;;;-1:-1:-1;11845:161:0;;;;;:::i;:::-;;:::i;:::-;;;2401:14:1;;2394:22;2376:41;;2364:2;2349:18;11845:161:0;2236:187:1;16312:256:0;;;;;;;;;;-1:-1:-1;16312:256:0;;;;;:::i;:::-;;:::i;:::-;;8061:41;;;;;;;;;;-1:-1:-1;8061:41:0;;;;-1:-1:-1;;;;;8061:41:0;;;;;;-1:-1:-1;;;;;2618:32:1;;;2600:51;;2588:2;2573:18;8061:41:0;2428:229:1;7940:36:0;;;;;;;;;;;;;;;;10568:100;;;;;;;;;;-1:-1:-1;10648:12:0;;10568:100;;8142:46;;;;;;;;;;-1:-1:-1;8142:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12560:339;;;;;;;;;;-1:-1:-1;12560:339:0;;;;;:::i;:::-;;:::i;7810:45::-;;;;;;;;;;-1:-1:-1;7810:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10477:83;;;;;;;;;;-1:-1:-1;10543:9:0;;10477:83;;10543:9;;;;3517:36:1;;3505:2;3490:18;10477:83:0;3375:184:1;10954:218:0;;;;;;;;;;-1:-1:-1;10954:218:0;;;;;:::i;:::-;;:::i;17416:109::-;;;;;;;;;;;;;:::i;15452:139::-;;;;;;;;;;-1:-1:-1;15452:139:0;;;;;:::i;:::-;;:::i;17285:123::-;;;;;;;;;;-1:-1:-1;17285:123:0;;;;;:::i;:::-;;:::i;15211:95::-;;;;;;;;;;-1:-1:-1;15211:95:0;;;;;:::i;:::-;;:::i;8660:300::-;;;:::i;8236:20::-;;;;;;;;;;-1:-1:-1;8236:20:0;;;;;;;;15599:705;;;;;;;;;;-1:-1:-1;15599:705:0;;;;;:::i;:::-;;:::i;8464:51::-;;;;;;;;;;;;8495:20;8464:51;;17082:195;;;;;;;;;;-1:-1:-1;17082:195:0;;;;;:::i;:::-;;:::i;10676:119::-;;;;;;;;;;-1:-1:-1;10676:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;10769:18:0;10742:7;10769:18;;;:9;:18;;;;;;;10676:119;5377:103;;;;;;;;;;;;;:::i;8607:42::-;;;;;;;;;;-1:-1:-1;8607:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8573:27;;;;;;;;;;;;;;;;5142:87;;;;;;;;;;-1:-1:-1;5188:7:0;5215:6;-1:-1:-1;;;;;5215:6:0;5142:87;;14763:116;;;;;;;;;;-1:-1:-1;14763:116:0;;;;;:::i;:::-;;:::i;8393:64::-;;;;;;;;;;;;8432:25;8393:64;;10382:87;;;;;;;;;;;;;:::i;15092:111::-;;;;;;;;;;-1:-1:-1;15092:111:0;;;;;:::i;:::-;;:::i;14887:103::-;;;;;;;;;;-1:-1:-1;14887:103:0;;;;;:::i;:::-;;:::i;14998:84::-;;;;;;;;;;;;;:::i;11180:269::-;;;;;;;;;;-1:-1:-1;11180:269:0;;;;;:::i;:::-;;:::i;12359:193::-;;;;;;;;;;-1:-1:-1;12359:193:0;;;;;:::i;:::-;;:::i;8014:38::-;;;;;;;;;;;;;;;;7745:58;;;;;;;;;;-1:-1:-1;7745:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8522:42;;;;;;;;;;;;8553:11;8522:42;;8109:26;;;;;;;;;;-1:-1:-1;8109:26:0;;;;-1:-1:-1;;;;;8109:26:0;;;7862:32;;;;;;;;;;-1:-1:-1;7862:32:0;;;;;;;;7580:35;;;;;;;;;;-1:-1:-1;7580:35:0;;;;-1:-1:-1;;;;;7580:35:0;;;10803:143;;;;;;;;;;-1:-1:-1;10803:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10911:18:0;;;10884:7;10911:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10803:143;7983:24;;;;;;;;;;;;;;;;8197:30;;;;;;;;;;;;;;;;5488:201;;;;;;;;;;-1:-1:-1;5488:201:0;;;;;:::i;:::-;;:::i;11560:277::-;-1:-1:-1;;;;;11644:21:0;;11636:65;;;;-1:-1:-1;;;11636:65:0;;5532:2:1;11636:65:0;;;5514:21:1;5571:2;5551:18;;;5544:30;5610:33;5590:18;;;5583:61;5661:18;;11636:65:0;5330:355:1;11636:65:0;-1:-1:-1;;;;;11712:18:0;;;;;;:9;:18;;;;;:28;;11734:6;;11712:18;:28;;11734:6;;11712:28;:::i;:::-;;;;-1:-1:-1;11773:6:0;;-1:-1:-1;11751:9:0;:18;11761:7;5188;5215:6;-1:-1:-1;;;;;5215:6:0;;5142:87;11761:7;-1:-1:-1;;;;;11751:18:0;-1:-1:-1;;;;;11751:18:0;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;11795:34:0;;11804:7;5188;5215:6;-1:-1:-1;;;;;5215:6:0;;5142:87;11804:7;-1:-1:-1;;;;;11795:34:0;-1:-1:-1;;;;;;;;;;;11822:6:0;11795:34;;;;1191:25:1;;1179:2;1164:18;;1045:177;11795:34:0;;;;;;;;11560:277;;:::o;10291:83::-;10328:13;10361:5;10354:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10291:83;:::o;11845:161::-;11920:4;11937:39;191:10;11960:7;11969:6;11937:8;:39::i;:::-;-1:-1:-1;11994:4:0;11845:161;;;;;:::o;16312:256::-;5101:13;:11;:13::i;:::-;-1:-1:-1;;;;;16405:26:0;::::1;16401:159;;16446:36;::::0;16454:10:::1;::::0;16446:36;::::1;;;::::0;16475:6;;16446:36:::1;::::0;;;16475:6;16454:10;16446:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;16312:256:::0;;:::o;16401:159::-:1;16511:49;::::0;-1:-1:-1;;;16511:49:0;;16541:10:::1;16511:49;::::0;::::1;6644:51:1::0;6711:18;;;6704:34;;;-1:-1:-1;;;;;16511:29:0;::::1;::::0;::::1;::::0;6617:18:1;;16511:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12560:339::-:0;12684:4;12664:9;-1:-1:-1;;;;;8320:18:0;;8312:53;;;;-1:-1:-1;;;8312:53:0;;7201:2:1;8312:53:0;;;7183:21:1;7240:2;7220:18;;;7213:30;-1:-1:-1;;;7259:18:1;;;7252:52;7321:18;;8312:53:0;6999:346:1;8312:53:0;12701:36:::1;12711:6;12719:9;12730:6;12701:9;:36::i;:::-;-1:-1:-1::0;12748:121:0::1;12757:6:::0;191:10;12779:89:::1;12817:6;12779:89;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;12779:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;191:10;12779:33;;;;;;;;;;:37:::1;:89::i;:::-;12748:8;:121::i;:::-;-1:-1:-1::0;12887:4:0::1;::::0;12560:339;-1:-1:-1;;;;12560:339:0:o;10954:218::-;191:10;11042:4;11091:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11091:34:0;;;;;;;;;;11042:4;;11059:83;;11082:7;;11091:50;;11130:10;11091:38;:50::i;17416:109::-;5101:13;:11;:13::i;:::-;17466:51:::1;::::0;17474:10:::1;::::0;17495:21:::1;17466:51:::0;::::1;;;::::0;::::1;::::0;;;17495:21;17474:10;17466:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;17416:109::o:0;15452:139::-;5101:13;:11;:13::i;:::-;-1:-1:-1;;;;;15544:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;15544:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15452:139::o;17285:123::-;5101:13;:11;:13::i;:::-;-1:-1:-1;;;;;17369:23:0;;;::::1;;::::0;;;:14:::1;:23;::::0;;;;:31;;-1:-1:-1;;17369:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17285:123::o;15211:95::-;5101:13;:11;:13::i;:::-;15278:12:::1;:20:::0;;-1:-1:-1;;15278:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15211:95::o;8660:300::-;8432:25;8713:12;;:27;8705:46;;;;-1:-1:-1;;;8705:46:0;;216:2:1;8705:46:0;;;198:21:1;255:1;235:18;;;228:29;-1:-1:-1;;;273:18:1;;;266:36;319:18;;8705:46:0;14:329:1;8705:46:0;8782:10;8771:22;;;;:10;:22;;;;;;;;8770:23;8762:60;;;;-1:-1:-1;;;8762:60:0;;550:2:1;8762:60:0;;;532:21:1;589:2;569:18;;;562:30;-1:-1:-1;;;608:18:1;;;601:54;672:18;;8762:60:0;348:348:1;8762:60:0;8553:11;8841:9;:17;;8833:45;;;;-1:-1:-1;;;8833:45:0;;903:2:1;8833:45:0;;;885:21:1;942:2;922:18;;;915:30;-1:-1:-1;;;961:18:1;;;954:45;1016:18;;8833:45:0;701:339:1;8833:45:0;8889:23;8895:10;8495:20;8889:5;:23::i;:::-;8934:10;8923:22;;;;:10;:22;;;;;:29;;-1:-1:-1;;8923:29:0;8948:4;8923:29;;;8660:300::o;15599:705::-;15674:15;5101:13;:11;:13::i;:::-;15780:15:::1;:34:::0;;-1:-1:-1;;;;;;15780:34:0::1;-1:-1:-1::0;;;;;15780:34:0;;::::1;::::0;;::::1;::::0;;15845:4:::1;-1:-1:-1::0;15825:26:0;;;:11:::1;:26;::::0;;;;;;;:52;;;;;;;;;;-1:-1:-1;;15825:72:0;;15938:15;;:25;;-1:-1:-1;;;15938:25:0;;;;15780:34;;15938:15;;;::::1;::::0;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;15825:26;15938:25;;;;;:15;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15920:52:0::1;;15981:4;15988:15;;;;;;;;;-1:-1:-1::0;;;;;15988:15:0::1;-1:-1:-1::0;;;;;15988:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15920:91;::::0;-1:-1:-1;;;;;;15920:91:0::1;::::0;;;;;;-1:-1:-1;;;;;7836:15:1;;;15920:91:0::1;::::0;::::1;7818:34:1::0;7888:15;;7868:18;;;7861:43;7753:18;;15920:91:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15910:101:::0;-1:-1:-1;;;;;;16025:21:0;::::1;16022:175;;16091:15;;;;;;;;;-1:-1:-1::0;;;;;16091:15:0::1;-1:-1:-1::0;;;;;16091:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16073:73:0::1;;16155:4;16162:15;;;;;;;;;-1:-1:-1::0;;;;;16162:15:0::1;-1:-1:-1::0;;;;;16162:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16073:112;::::0;-1:-1:-1;;;;;;16073:112:0::1;::::0;;;;;;-1:-1:-1;;;;;7836:15:1;;;16073:112:0::1;::::0;::::1;7818:34:1::0;7888:15;;7868:18;;;7861:43;7753:18;;16073:112:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16063:122;;16022:175;-1:-1:-1::0;16209:11:0::1;:21:::0;;-1:-1:-1;;;;;;16209:21:0::1;-1:-1:-1::0;;;;;16209:21:0;::::1;::::0;;::::1;::::0;;;-1:-1:-1;16242:47:0;;;:25:::1;:47;::::0;;;;:54;;-1:-1:-1;;16242:54:0::1;-1:-1:-1::0;16242:54:0::1;::::0;;16209:21;16223:7;-1:-1:-1;15599:705:0:o;17082:195::-;5101:13;:11;:13::i;:::-;17152:9:::1;:19:::0;;;17182:23:::1;:35:::0;;;17228:15:::1;:41:::0;17082:195::o;5377:103::-;5101:13;:11;:13::i;:::-;5442:30:::1;5469:1;5442:18;:30::i;:::-;5377:103::o:0;14763:116::-;5101:13;:11;:13::i;:::-;-1:-1:-1;;;;;14842:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;14842:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14763:116::o;10382:87::-;10421:13;10454:7;10447:14;;;;;:::i;15092:111::-;5101:13;:11;:13::i;:::-;15164:12:::1;:31:::0;;-1:-1:-1;;;;;;15164:31:0::1;-1:-1:-1::0;;;;;15164:31:0;;;::::1;::::0;;;::::1;::::0;;15092:111::o;14887:103::-;5101:13;:11;:13::i;:::-;14959:14:::1;:23:::0;14887:103::o;14998:84::-;5101:13;:11;:13::i;:::-;15066:8:::1;::::0;;-1:-1:-1;;15054:20:0;::::1;15066:8;::::0;;::::1;15065:9;15054:20;::::0;;14998:84::o;11180:269::-;11273:4;11290:129;191:10;11313:7;11322:96;11361:15;11322:96;;;;;;;;;;;;;;;;;191:10;11322:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11322:34:0;;;;;;;;;;;;:38;:96::i;12359:193::-;12463:4;12443:9;-1:-1:-1;;;;;8320:18:0;;8312:53;;;;-1:-1:-1;;;8312:53:0;;7201:2:1;8312:53:0;;;7183:21:1;7240:2;7220:18;;;7213:30;-1:-1:-1;;;7259:18:1;;;7252:52;7321:18;;8312:53:0;6999:346:1;8312:53:0;12480:42:::1;191:10:::0;12504:9:::1;12515:6;12480:9;:42::i;5488:201::-:0;5101:13;:11;:13::i;:::-;-1:-1:-1;;;;;5577:22:0;::::1;5569:73;;;::::0;-1:-1:-1;;;5569:73:0;;8117:2:1;5569:73:0::1;::::0;::::1;8099:21:1::0;8156:2;8136:18;;;8129:30;8195:34;8175:18;;;8168:62;-1:-1:-1;;;8246:18:1;;;8239:36;8292:19;;5569:73:0::1;7915:402:1::0;5569:73:0::1;5653:28;5672:8;5653:18;:28::i;12014:337::-:0;-1:-1:-1;;;;;12107:19:0;;12099:68;;;;-1:-1:-1;;;12099:68:0;;8524:2:1;12099:68:0;;;8506:21:1;8563:2;8543:18;;;8536:30;8602:34;8582:18;;;8575:62;-1:-1:-1;;;8653:18:1;;;8646:34;8697:19;;12099:68:0;8322:400:1;12099:68:0;-1:-1:-1;;;;;12186:21:0;;12178:68;;;;-1:-1:-1;;;12178:68:0;;8929:2:1;12178:68:0;;;8911:21:1;8968:2;8948:18;;;8941:30;9007:34;8987:18;;;8980:62;-1:-1:-1;;;9058:18:1;;;9051:32;9100:19;;12178:68:0;8727:398:1;12178:68:0;-1:-1:-1;;;;;12259:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12311:32;;1191:25:1;;;12311:32:0;;1164:18:1;12311:32:0;;;;;;;12014:337;;;:::o;5237:132::-;5188:7;5215:6;-1:-1:-1;;;;;5215:6:0;191:10;5301:23;5293:68;;;;-1:-1:-1;;;5293:68:0;;9332:2:1;5293:68:0;;;9314:21:1;;;9351:18;;;9344:30;9410:34;9390:18;;;9383:62;9462:18;;5293:68:0;9130:356:1;12907:760:0;13014:8;;12994:4;;13014:8;;:17;;;:44;;-1:-1:-1;13035:10:0;13049:9;13035:23;13014:44;13011:124;;;13082:41;13097:6;13105:9;13116:6;13082:14;:41::i;:::-;13075:48;;;;13011:124;13153:8;;;;;:32;;-1:-1:-1;5188:7:0;5215:6;-1:-1:-1;;;;;5215:6:0;13165:9;:20;13153:32;13145:62;;;;-1:-1:-1;;;13145:62:0;;9693:2:1;13145:62:0;;;9675:21:1;9732:2;9712:18;;;9705:30;-1:-1:-1;;;9751:18:1;;;9744:47;9808:18;;13145:62:0;9491:341:1;13145:62:0;-1:-1:-1;;;;;13227:22:0;;;;;;:14;:22;;;;;;;;13226:23;:53;;;;-1:-1:-1;;;;;;13254:25:0;;;;;;:14;:25;;;;;;;;13253:26;13226:53;13218:78;;;;-1:-1:-1;;;13218:78:0;;10039:2:1;13218:78:0;;;10021:21:1;10078:2;10058:18;;;10051:30;-1:-1:-1;;;10097:18:1;;;10090:42;10149:18;;13218:78:0;9837:336:1;13218:78:0;13337:53;;;;;;;;;;;-1:-1:-1;;;13337:53:0;;;;;;;;-1:-1:-1;;;;;13337:17:0;;-1:-1:-1;13337:17:0;;;:9;:17;;;;;;;;:53;;13359:6;;13337:21;:53::i;:::-;-1:-1:-1;;;;;13317:17:0;;;;;;:9;:17;;;;;:73;;;;13426:32;13327:6;13448:9;13426:13;:32::i;:::-;:78;;13498:6;13426:78;;;13461:34;13469:6;13477:9;13488:6;13461:7;:34::i;:::-;-1:-1:-1;;;;;13538:20:0;;;;;;:9;:20;;;;;;13401:103;;-1:-1:-1;13538:40:0;;13401:103;13538:24;:40::i;:::-;-1:-1:-1;;;;;13515:20:0;;;;;;;:9;:20;;;;;;;:63;;;;13594:43;;;;;;-1:-1:-1;;;;;;;;;;;13594:43:0;;;13622:14;1191:25:1;;1179:2;1164:18;;1045:177;13594:43:0;;;;;;;;13655:4;13648:11;;;12907:760;;;;;;:::o;1389:192::-;1475:7;1511:12;1503:6;;;;1495:29;;;;-1:-1:-1;;;1495:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1535:9:0;1547:5;1551:1;1547;:5;:::i;:::-;1535:17;1389:192;-1:-1:-1;;;;;1389:192:0:o;1056:181::-;1114:7;;1146:5;1150:1;1146;:5;:::i;:::-;1134:17;;1175:1;1170;:6;;1162:46;;;;-1:-1:-1;;;1162:46:0;;10380:2:1;1162:46:0;;;10362:21:1;10419:2;10399:18;;;10392:30;10458:29;10438:18;;;10431:57;10505:18;;1162:46:0;10178:351:1;5697:191:0;5771:16;5790:6;;-1:-1:-1;;;;;5807:17:0;;;-1:-1:-1;;;;;;5807:17:0;;;;;;5840:40;;5790:6;;;;;;;5840:40;;5771:16;5840:40;5760:128;5697:191;:::o;13675:330::-;13805:53;;;;;;;;;;;-1:-1:-1;;;13805:53:0;;;;;;;;-1:-1:-1;;;;;13805:17:0;;13768:4;13805:17;;;:9;:17;;;;;;;:53;;13827:6;;13805:21;:53::i;:::-;-1:-1:-1;;;;;13785:17:0;;;;;;;:9;:17;;;;;;:73;;;;13892:20;;;;;;;:32;;13917:6;13892:24;:32::i;:::-;-1:-1:-1;;;;;13869:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13940:35;;;;;;-1:-1:-1;;;;;;;;;;;13940:35:0;;;13968:6;1191:25:1;;1179:2;1164:18;;1045:177;13940:35:0;;;;;;;;-1:-1:-1;13993:4:0;13675:330;;;;;:::o;14492:263::-;-1:-1:-1;;;;;14585:18:0;;14564:4;14585:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;14607:16:0;;;;;;:12;:16;;;;;;;;14585:38;14581:83;;;-1:-1:-1;14647:5:0;14640:12;;14581:83;-1:-1:-1;;;;;14682:31:0;;;;;;:25;:31;;;;;;;;;:64;;-1:-1:-1;;;;;;;14717:29:0;;;;;:25;:29;;;;;;;;;14674:73;-1:-1:-1;14492:263:0:o;16578:496::-;16664:7;16684:17;16712:21;16758:47;16790:14;;16758:27;16769:15;;16758:6;:10;;:27;;;;:::i;:::-;:31;;:47::i;:::-;16746:59;-1:-1:-1;16821:13:0;;16818:170;;16887:12;;-1:-1:-1;;;;;16887:12:0;16877:23;;;;:9;:23;;;;;;:38;;16905:9;16877:27;:38::i;:::-;16861:12;;;-1:-1:-1;;;;;16861:12:0;;;16851:23;;;;:9;:23;;;;;;;;;:64;;;;16952:12;;16935:41;;1191:25:1;;;16952:12:0;;;;16935:41;;;;-1:-1:-1;;;;;;;;;;;16935:41:0;1164:18:1;16935:41:0;;;;;;;16818:170;17014:21;:6;17025:9;17014:10;:21::i;:::-;16998:37;16578:496;-1:-1:-1;;;;;;16578:496:0:o;1589:250::-;1647:7;1671:1;1676;1671:6;1667:47;;-1:-1:-1;1701:1:0;1694:8;;1667:47;1726:9;1738:5;1742:1;1738;:5;:::i;:::-;1726:17;-1:-1:-1;1771:1:0;1762:5;1766:1;1726:17;1762:5;:::i;:::-;:10;1754:56;;;;-1:-1:-1;;;1754:56:0;;11131:2:1;1754:56:0;;;11113:21:1;11170:2;11150:18;;;11143:30;11209:34;11189:18;;;11182:62;-1:-1:-1;;;11260:18:1;;;11253:31;11301:19;;1754:56:0;10929:397:1;1847:132:0;1905:7;1932:39;1936:1;1939;1932:39;;;;;;;;;;;;;;;;;:3;:39::i;1245:136::-;1303:7;1330:43;1334:1;1337;1330:43;;;;;;;;;;;;;;;;;:3;:43::i;1987:189::-;2073:7;2108:12;2101:5;2093:28;;;;-1:-1:-1;;;2093:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2132:9:0;2144:5;2148:1;2144;:5;:::i;1227:548:1:-;1339:4;1368:2;1397;1386:9;1379:21;1429:6;1423:13;1472:6;1467:2;1456:9;1452:18;1445:34;1497:1;1507:140;1521:6;1518:1;1515:13;1507:140;;;1616:14;;;1612:23;;1606:30;1582:17;;;1601:2;1578:26;1571:66;1536:10;;1507:140;;;1511:3;1696:1;1691:2;1682:6;1671:9;1667:22;1663:31;1656:42;1766:2;1759;1755:7;1750:2;1742:6;1738:15;1734:29;1723:9;1719:45;1715:54;1707:62;;;;1227:548;;;;:::o;1780:131::-;-1:-1:-1;;;;;1855:31:1;;1845:42;;1835:70;;1901:1;1898;1891:12;1916:315;1984:6;1992;2045:2;2033:9;2024:7;2020:23;2016:32;2013:52;;;2061:1;2058;2051:12;2013:52;2100:9;2087:23;2119:31;2144:5;2119:31;:::i;:::-;2169:5;2221:2;2206:18;;;;2193:32;;-1:-1:-1;;;1916:315:1:o;2662:247::-;2721:6;2774:2;2762:9;2753:7;2749:23;2745:32;2742:52;;;2790:1;2787;2780:12;2742:52;2829:9;2816:23;2848:31;2873:5;2848:31;:::i;2914:456::-;2991:6;2999;3007;3060:2;3048:9;3039:7;3035:23;3031:32;3028:52;;;3076:1;3073;3066:12;3028:52;3115:9;3102:23;3134:31;3159:5;3134:31;:::i;:::-;3184:5;-1:-1:-1;3241:2:1;3226:18;;3213:32;3254:33;3213:32;3254:33;:::i;:::-;2914:456;;3306:7;;-1:-1:-1;;;3360:2:1;3345:18;;;;3332:32;;2914:456::o;3564:118::-;3650:5;3643:13;3636:21;3629:5;3626:32;3616:60;;3672:1;3669;3662:12;3687:382;3752:6;3760;3813:2;3801:9;3792:7;3788:23;3784:32;3781:52;;;3829:1;3826;3819:12;3781:52;3868:9;3855:23;3887:31;3912:5;3887:31;:::i;:::-;3937:5;-1:-1:-1;3994:2:1;3979:18;;3966:32;4007:30;3966:32;4007:30;:::i;:::-;4056:7;4046:17;;;3687:382;;;;;:::o;4074:241::-;4130:6;4183:2;4171:9;4162:7;4158:23;4154:32;4151:52;;;4199:1;4196;4189:12;4151:52;4238:9;4225:23;4257:28;4279:5;4257:28;:::i;4528:180::-;4587:6;4640:2;4628:9;4619:7;4615:23;4611:32;4608:52;;;4656:1;4653;4646:12;4608:52;-1:-1:-1;4679:23:1;;4528:180;-1:-1:-1;4528:180:1:o;4937:388::-;5005:6;5013;5066:2;5054:9;5045:7;5041:23;5037:32;5034:52;;;5082:1;5079;5072:12;5034:52;5121:9;5108:23;5140:31;5165:5;5140:31;:::i;:::-;5190:5;-1:-1:-1;5247:2:1;5232:18;;5219:32;5260:33;5219:32;5260:33;:::i;5690:127::-;5751:10;5746:3;5742:20;5739:1;5732:31;5782:4;5779:1;5772:15;5806:4;5803:1;5796:15;5822:125;5887:9;;;5908:10;;;5905:36;;;5921:18;;:::i;5952:128::-;6019:9;;;6040:11;;;6037:37;;;6054:18;;:::i;6085:380::-;6164:1;6160:12;;;;6207;;;6228:61;;6282:4;6274:6;6270:17;6260:27;;6228:61;6335:2;6327:6;6324:14;6304:18;6301:38;6298:161;;6381:10;6376:3;6372:20;6369:1;6362:31;6416:4;6413:1;6406:15;6444:4;6441:1;6434:15;6298:161;;6085:380;;;:::o;6749:245::-;6816:6;6869:2;6857:9;6848:7;6844:23;6840:32;6837:52;;;6885:1;6882;6875:12;6837:52;6917:9;6911:16;6936:28;6958:5;6936:28;:::i;7350:251::-;7420:6;7473:2;7461:9;7452:7;7448:23;7444:32;7441:52;;;7489:1;7486;7479:12;7441:52;7521:9;7515:16;7540:31;7565:5;7540:31;:::i;10534:168::-;10607:9;;;10638;;10655:15;;;10649:22;;10635:37;10625:71;;10676:18;;:::i;10707:217::-;10747:1;10773;10763:132;;10817:10;10812:3;10808:20;10805:1;10798:31;10852:4;10849:1;10842:15;10880:4;10877:1;10870:15;10763:132;-1:-1:-1;10909:9:1;;10707:217::o

Swarm Source

ipfs://303f2b2a83bf4260e2fb4574e3d3b70bfb72b404b8b8030e8e439bb4fbbdd25e
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.