ETH Price: $3,409.64 (+0.74%)
Gas: 3 Gwei

Token

Dove Pool (DOVE)
 

Overview

Max Total Supply

1,000,000,000 DOVE

Holders

56

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,000,000 DOVE

Value
$0.00
0x66d64e0eb8caf4f120d8945f00c3a56d9b6d4a36
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:
DOVE

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-24
*/

pragma solidity 0.8.22;

// SPDX-License-Identifier: MIT

/**

The #1 Protocol for
Real Adoption

Website:  https://www.dovepool.org
Document: https://docs.dovepool.org
Pool:     https://pool.dovepool.org

Telegram: https://t.me/dovepool_eth
Twitter:  https://twitter.com/dovepool_eth

**/

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

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    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);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IDOVERouter {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IDOVEFactory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);
    function createPair(address tokenA, address tokenB) external returns (address pair);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

contract DOVE is Context, IERC20, Ownable {
    mapping(address => uint256) private _tOwned;
    mapping(address => bool) private isFeeExcepts;
    mapping(address => mapping(address => uint256)) private _allowances;

    event ETHBalancesRecovered();
    event TradingEnabledUpdated();
    event ERC20TokenRecovered(uint256 indexed _amount);
    event ExcludeFromFeesUpdated(address indexed account);
    event includeFromFeesUpdated(address indexed account);

    uint8 private constant _decimals = 9;
    uint256 private constant _tSupply = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Dove Pool";
    string private constant _symbol = unicode"DOVE";
    
    uint256 private swapOverValues = 1000 * 10 ** _decimals;
    uint256 public txLmitAmounts = 10000000 * 10 ** _decimals;
    uint256 private minTaxSwap = 20000000 * 10 ** _decimals;

    uint256 private buyCount = 0;
    uint256 private buyTaxFees = 30;
    uint256 private sellTaxFees = 40;

    address payable private taxWallet;
    address payable private teamWallet;
    address public constant deadAddress 
            = 0x000000000000000000000000000000000000dEaD;
    address private uniswapV2Pair;
    IDOVERouter public uniswapV2Router;

    bool private inSwapBack = false;
    bool public tradeEnabled = false;
    bool private swapEnabled = false;

    modifier lockSwapBack() {
        inSwapBack = true;
        _;
        inSwapBack = false;
    }

    constructor() {
        taxWallet = payable(0x30799FAC2853333bA0Fe804a5d58eEB45269BeAC);
        teamWallet = payable(0x0D58Be14E5Bdfb1555170611ADa53d6f6fFAec06);
        isFeeExcepts[taxWallet] = true;
        isFeeExcepts[teamWallet] = true;
        isFeeExcepts[deadAddress] = true;
        isFeeExcepts[_msgSender()] = true;
        isFeeExcepts[address(this)] = true;
        _tOwned[_msgSender()] = _tSupply;
        emit Transfer(address(0), _msgSender(), _tSupply);
    }

    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 returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function setFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyTaxFees = _buyFee;
        sellTaxFees = _sellFee;
    }
    
    function recoverToken(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(taxWallet, _amount);
        emit ERC20TokenRecovered(_amount);
    }

    function recoverETH() external {
        uint256 ethValues = address(this).balance;
        require(ethValues > 0, "Amount should be greater than zero");
        require(
            ethValues <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(taxWallet)).transfer(ethValues);
        emit ETHBalancesRecovered();
    }

    function createPairs() external payable onlyOwner {
        uniswapV2Router = IDOVERouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IDOVEFactory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[account];
    }

    function ExcludeFromFees(address account) external onlyOwner {
        require(
            isFeeExcepts[account] != true,
            "Account is already excluded"
        );
        isFeeExcepts[account] = true;
        emit ExcludeFromFeesUpdated(account);
    }

    function IncludeFromFees(address account) external onlyOwner {
        require(
            isFeeExcepts[account] != false,
            "Account is already included"
        );
        isFeeExcepts[account] = false;
        emit includeFromFeesUpdated(account);
    }

    function sendETHTO(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        teamWallet.transfer(amount / 2);
        taxWallet.transfer(amount / 2);
    }

    function enableTrading() external onlyOwner {
        require(!tradeEnabled, "trading is already open");
        tradeEnabled = true;
        swapEnabled = true;
        emit TradingEnabledUpdated();
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }

    function removeLimits() external onlyOwner {
        buyTaxFees = 2;
        sellTaxFees = 2;
        txLmitAmounts = _tSupply;
    }

    function swapForETH(uint256 tokenAmount) private lockSwapBack {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 totalFees = 0;
        totalFees = buyTaxFees;
        if (!isFeeExcepts[from] && !isFeeExcepts[to]) {
            require(tradeEnabled, "Trading not enabled");
        }
        if (inSwapBack || !swapEnabled) {
            _tOwned[from] -= amount;
            _tOwned[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !isFeeExcepts[to]
        ) {
            require(amount <= txLmitAmounts, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= txLmitAmounts,
                "Exceeds the maxWalletSize."
            );
            buyCount++;
        }
        if (
            from != uniswapV2Pair &&
            !isFeeExcepts[from] &&
            !isFeeExcepts[to]
        ) {
            require(amount <= txLmitAmounts, "Exceeds the _maxTxAmount.");
        }
        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !isFeeExcepts[from] &&
            !isFeeExcepts[to]
        ) {
            totalFees = sellTaxFees;
        }
        uint256 contractValues = balanceOf(address(this));
        if (
            swapEnabled &&
            !inSwapBack &&
            buyCount > 0 &&
            amount >= swapOverValues &&
            contractValues >= swapOverValues &&
            to == uniswapV2Pair &&
            !isFeeExcepts[from] &&
            !isFeeExcepts[to]
        ) {
            swapForETH(min(amount, min(contractValues, minTaxSwap)));
            uint256 ethValues = address(this).balance;
            if (ethValues > 0) {
                sendETHTO(address(this).balance);
            }
        }
        if (totalFees != 0) {
            uint256 dFees = (amount * totalFees) / 100;
            uint256 dAmounts = amount - dFees;
            address dWallet = isFeeExcepts[from] ? from : address(this);
            dFees = isFeeExcepts[from] ? amount : dFees;
            _tOwned[dWallet] += dFees;
            emit Transfer(from, address(this), dFees);
            _tOwned[from] -= amount;
            _tOwned[to] += dAmounts;
            emit Transfer(from, to, dAmounts);
        } else {
            _tOwned[from] -= amount;
            _tOwned[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokenRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalancesRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeesUpdated","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":[],"name":"TradingEnabledUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeesUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"IncludeFromFees","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnabled","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":"txLmitAmounts","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IDOVERouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000389565b62000020906103e8620003a0565b600455620000316009600a62000389565b620000409062989680620003a0565b600555620000516009600a62000389565b62000061906301312d00620003a0565b6006555f600755601e6008556028600955600d805462ffffff60a01b191690553480156200008d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a80546001600160a01b03199081167330799fac2853333ba0fe804a5d58eeb45269beac17909155600b8054909116730d58be14e5bdfb1555170611ada53d6f6ffaec06179055600260208190527fffbbe9843ff5fb8277c800f08765cf904e608f71c343d8714dbfe09fe9ff69d7805460ff1990811660019081179092557f25769972775a7b41054368a50b8840b69784f8c7bf09882661be4996fc325b1e805482168317905561dead5f9081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc80549092168317909155909190620001b43390565b6001600160a01b0316815260208082019290925260409081015f908120805494151560ff199586161790553081526002909252902080549091166001179055620002016009600a62000389565b6200021190633b9aca00620003a0565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002536009600a62000389565b6200026390633b9aca00620003a0565b60405190815260200160405180910390a3620003ba565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002ce57815f1904821115620002b257620002b26200027a565b80851615620002c057918102915b93841c939080029062000293565b509250929050565b5f82620002e65750600162000383565b81620002f457505f62000383565b81600181146200030d5760028114620003185762000338565b600191505062000383565b60ff8411156200032c576200032c6200027a565b50506001821b62000383565b5060208310610133831016604e8410600b84101617156200035d575081810a62000383565b6200036983836200028e565b805f19048211156200037f576200037f6200027a565b0290505b92915050565b5f6200039960ff841683620002d6565b9392505050565b80820281158282048414176200038357620003836200027a565b611fc480620003c85f395ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb14610398578063b29a8140146103b7578063c1899962146103d6578063d621e813146103f5578063dd62ed3e14610415578063f2fde38b14610459575f80fd5b8063715018a6146102ff578063751039fc146103135780638a8c523c146103275780638da5cb5b1461033b57806395d89b4114610357578063a24910c714610383575f80fd5b806318160ddd1161010457806318160ddd1461023b57806323b872dd1461025d57806327c8f8351461027c578063313ce5671461029157806357a00f76146102ac57806370a08231146102cb575f80fd5b80630161a290146101555780630614117a1461015f57806306fdde0314610173578063095ea7b3146101b65780630b78f9c0146101e55780631694505e14610204575f80fd5b3661015157005b5f80fd5b61015d610478565b005b34801561016a575f80fd5b5061015d610722565b34801561017e575f80fd5b50604080518082019091526009815268111bdd9948141bdbdb60ba1b60208201525b6040516101ad9190611b46565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611ba6565b6107e9565b60405190151581526020016101ad565b3480156101f0575f80fd5b5061015d6101ff366004611bd0565b6107ff565b34801561020f575f80fd5b50600d54610223906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b348015610246575f80fd5b5061024f610891565b6040519081526020016101ad565b348015610268575f80fd5b506101d5610277366004611bf0565b6108b1565b348015610287575f80fd5b5061022361dead81565b34801561029c575f80fd5b50604051600981526020016101ad565b3480156102b7575f80fd5b5061015d6102c6366004611c2e565b61095f565b3480156102d6575f80fd5b5061024f6102e5366004611c2e565b6001600160a01b03165f9081526001602052604090205490565b34801561030a575f80fd5b5061015d610a3f565b34801561031e575f80fd5b5061015d610ab0565b348015610332575f80fd5b5061015d610b03565b348015610346575f80fd5b505f546001600160a01b0316610223565b348015610362575f80fd5b50604080518082019091526004815263444f564560e01b60208201526101a0565b34801561038e575f80fd5b5061024f60055481565b3480156103a3575f80fd5b506101d56103b2366004611ba6565b610bc5565b3480156103c2575f80fd5b5061015d6103d1366004611ba6565b610bd1565b3480156103e1575f80fd5b5061015d6103f0366004611c2e565b610dde565b348015610400575f80fd5b50600d546101d590600160a81b900460ff1681565b348015610420575f80fd5b5061024f61042f366004611c49565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610464575f80fd5b5061015d610473366004611c2e565b610eba565b5f546001600160a01b031633146104aa5760405162461bcd60e51b81526004016104a190611c80565b60405180910390fd5b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561050c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105309190611cb5565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b39190611cb5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156105fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190611cb5565b600c80546001600160a01b0319166001600160a01b03928316179055600d5461064e913091165f19610f54565b600d546001600160a01b031663f305d719343061067f816001600160a01b03165f9081526001602052604090205490565b5f806106925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106f8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061071d9190611cd0565b505050565b47806107405760405162461bcd60e51b81526004016104a190611cfb565b478111156107865760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a1565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bd573d5f803e3d5ffd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d72905f90a150565b5f6107f5338484610f54565b5060015b92915050565b5f546001600160a01b031633146108285760405162461bcd60e51b81526004016104a190611c80565b6064821115801561083a575060648111155b6108865760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104a1565b600891909155600955565b5f61089e6009600a611e31565b6108ac90633b9aca00611e3f565b905090565b6001600160a01b0383165f908152600360209081526040808320338452909152812054828110156109355760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104a1565b610940858585611077565b610954853361094f8685611e56565b610f54565b506001949350505050565b5f546001600160a01b031633146109885760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b0381165f9081526002602052604090205460ff1615156001036109f45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a1565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b5f546001600160a01b03163314610a685760405162461bcd60e51b81526004016104a190611c80565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ad95760405162461bcd60e51b81526004016104a190611c80565b600260088190556009908155610af090600a611e31565b610afe90633b9aca00611e3f565b600555565b5f546001600160a01b03163314610b2c5760405162461bcd60e51b81526004016104a190611c80565b600d54600160a81b900460ff1615610b865760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a1565b600d805461ffff60a81b191661010160a81b1790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b4905f90a1565b5f6107f5338484611077565b5f546001600160a01b03163314610bfa5760405162461bcd60e51b81526004016104a190611c80565b306001600160a01b03831603610c715760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104a1565b5f8111610c905760405162461bcd60e51b81526004016104a190611cfb565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf69190611e69565b811115610d3b5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a1565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610d8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610daf9190611e80565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a90905f90a25050565b5f546001600160a01b03163314610e075760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b0381165f9081526002602052604081205460ff1615159003610e725760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104a1565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b5f546001600160a01b03163314610ee35760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b038116610f485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a1565b610f5181611851565b50565b6001600160a01b038316610fb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a1565b6001600160a01b0382166110175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a1565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a1565b6001600160a01b03821661113d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a1565b5f811161119e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a1565b6008546001600160a01b0384165f9081526002602052604090205460ff161580156111e157506001600160a01b0383165f9081526002602052604090205460ff16155b1561123557600d54600160a81b900460ff166112355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104a1565b600d54600160a01b900460ff16806112575750600d54600160b01b900460ff16155b156112f6576001600160a01b0384165f9081526001602052604081208054849290611283908490611e56565b90915550506001600160a01b0383165f90815260016020526040812080548492906112af908490611e9f565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112e891815260200190565b60405180910390a350505050565b600c546001600160a01b0385811691161480156113215750600d546001600160a01b03848116911614155b801561134557506001600160a01b0383165f9081526002602052604090205460ff16155b15611427576005548211156113985760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a1565b600554826113ba856001600160a01b03165f9081526001602052604090205490565b6113c49190611e9f565b11156114125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a1565b60078054905f61142183611eb2565b91905055505b600c546001600160a01b0385811691161480159061145d57506001600160a01b0384165f9081526002602052604090205460ff16155b801561148157506001600160a01b0383165f9081526002602052604090205460ff16155b156114d4576005548211156114d45760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a1565b600c546001600160a01b0384811691161480156114fa57506001600160a01b0384163014155b801561151e57506001600160a01b0384165f9081526002602052604090205460ff16155b801561154257506001600160a01b0383165f9081526002602052604090205460ff16155b1561154c57506009545b305f90815260016020526040902054600d54600160b01b900460ff16801561157e5750600d54600160a01b900460ff16155b801561158b57505f600754115b801561159957506004548310155b80156115a757506004548110155b80156115c05750600c546001600160a01b038581169116145b80156115e457506001600160a01b0385165f9081526002602052604090205460ff16155b801561160857506001600160a01b0384165f9081526002602052604090205460ff16155b1561163c5761162a61162584611620846006546118a0565b6118a0565b6118b7565b47801561163a5761163a47611a74565b505b81156117b5575f606461164f8486611e3f565b6116599190611eca565b90505f6116668286611e56565b6001600160a01b0388165f908152600260205260408120549192509060ff1661168f5730611691565b875b6001600160a01b0389165f9081526002602052604090205490915060ff166116b957826116bb565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e7908490611e9f565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611740908490611e56565b90915550506001600160a01b0387165f908152600160205260408120805484929061176c908490611e9f565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a591815260200190565b60405180910390a350505061184a565b6001600160a01b0385165f90815260016020526040812080548592906117dc908490611e56565b90915550506001600160a01b0384165f9081526001602052604081208054859290611808908490611e9f565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184191815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ae57826118b0565b815b9392505050565b600d805460ff60a01b1916600160a01b179055806119175760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a1565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194a5761194a611ee9565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c59190611cb5565b816001815181106119d8576119d8611ee9565b6001600160a01b039283166020918202929092010152600d546119fe9130911684610f54565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a369085905f90869030904290600401611efd565b5f604051808303815f87803b158015611a4d575f80fd5b505af1158015611a5f573d5f803e3d5ffd5b5050600d805460ff60a01b1916905550505050565b5f8111611ac35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a1565b600b546001600160a01b03166108fc611add600284611eca565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b50600a546001600160a01b03166108fc611b1d600284611eca565b6040518115909202915f818181858888f19350505050158015611b42573d5f803e3d5ffd5b5050565b5f602080835283518060208501525f5b81811015611b7257858101830151858201604001528201611b56565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f51575f80fd5b5f8060408385031215611bb7575f80fd5b8235611bc281611b92565b946020939093013593505050565b5f8060408385031215611be1575f80fd5b50508035926020909101359150565b5f805f60608486031215611c02575f80fd5b8335611c0d81611b92565b92506020840135611c1d81611b92565b929592945050506040919091013590565b5f60208284031215611c3e575f80fd5b81356118b081611b92565b5f8060408385031215611c5a575f80fd5b8235611c6581611b92565b91506020830135611c7581611b92565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611cc5575f80fd5b81516118b081611b92565b5f805f60608486031215611ce2575f80fd5b8351925060208401519150604084015190509250925092565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d8b57815f1904821115611d7157611d71611d3d565b80851615611d7e57918102915b93841c9390800290611d56565b509250929050565b5f82611da1575060016107f9565b81611dad57505f6107f9565b8160018114611dc35760028114611dcd57611de9565b60019150506107f9565b60ff841115611dde57611dde611d3d565b50506001821b6107f9565b5060208310610133831016604e8410600b8410161715611e0c575081810a6107f9565b611e168383611d51565b805f1904821115611e2957611e29611d3d565b029392505050565b5f6118b060ff841683611d93565b80820281158282048414176107f9576107f9611d3d565b818103818111156107f9576107f9611d3d565b5f60208284031215611e79575f80fd5b5051919050565b5f60208284031215611e90575f80fd5b815180151581146118b0575f80fd5b808201808211156107f9576107f9611d3d565b5f60018201611ec357611ec3611d3d565b5060010190565b5f82611ee457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c5451fc76c905314b5cdc35393cac82bd735877ab01fd64bb8c27fb2e970c92d64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb14610398578063b29a8140146103b7578063c1899962146103d6578063d621e813146103f5578063dd62ed3e14610415578063f2fde38b14610459575f80fd5b8063715018a6146102ff578063751039fc146103135780638a8c523c146103275780638da5cb5b1461033b57806395d89b4114610357578063a24910c714610383575f80fd5b806318160ddd1161010457806318160ddd1461023b57806323b872dd1461025d57806327c8f8351461027c578063313ce5671461029157806357a00f76146102ac57806370a08231146102cb575f80fd5b80630161a290146101555780630614117a1461015f57806306fdde0314610173578063095ea7b3146101b65780630b78f9c0146101e55780631694505e14610204575f80fd5b3661015157005b5f80fd5b61015d610478565b005b34801561016a575f80fd5b5061015d610722565b34801561017e575f80fd5b50604080518082019091526009815268111bdd9948141bdbdb60ba1b60208201525b6040516101ad9190611b46565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611ba6565b6107e9565b60405190151581526020016101ad565b3480156101f0575f80fd5b5061015d6101ff366004611bd0565b6107ff565b34801561020f575f80fd5b50600d54610223906001600160a01b031681565b6040516001600160a01b0390911681526020016101ad565b348015610246575f80fd5b5061024f610891565b6040519081526020016101ad565b348015610268575f80fd5b506101d5610277366004611bf0565b6108b1565b348015610287575f80fd5b5061022361dead81565b34801561029c575f80fd5b50604051600981526020016101ad565b3480156102b7575f80fd5b5061015d6102c6366004611c2e565b61095f565b3480156102d6575f80fd5b5061024f6102e5366004611c2e565b6001600160a01b03165f9081526001602052604090205490565b34801561030a575f80fd5b5061015d610a3f565b34801561031e575f80fd5b5061015d610ab0565b348015610332575f80fd5b5061015d610b03565b348015610346575f80fd5b505f546001600160a01b0316610223565b348015610362575f80fd5b50604080518082019091526004815263444f564560e01b60208201526101a0565b34801561038e575f80fd5b5061024f60055481565b3480156103a3575f80fd5b506101d56103b2366004611ba6565b610bc5565b3480156103c2575f80fd5b5061015d6103d1366004611ba6565b610bd1565b3480156103e1575f80fd5b5061015d6103f0366004611c2e565b610dde565b348015610400575f80fd5b50600d546101d590600160a81b900460ff1681565b348015610420575f80fd5b5061024f61042f366004611c49565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b348015610464575f80fd5b5061015d610473366004611c2e565b610eba565b5f546001600160a01b031633146104aa5760405162461bcd60e51b81526004016104a190611c80565b60405180910390fd5b600d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561050c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105309190611cb5565b6001600160a01b031663c9c6539630600d5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b39190611cb5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156105fd573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106219190611cb5565b600c80546001600160a01b0319166001600160a01b03928316179055600d5461064e913091165f19610f54565b600d546001600160a01b031663f305d719343061067f816001600160a01b03165f9081526001602052604090205490565b5f806106925f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106f8573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061071d9190611cd0565b505050565b47806107405760405162461bcd60e51b81526004016104a190611cfb565b478111156107865760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a1565b600a546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156107bd573d5f803e3d5ffd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d72905f90a150565b5f6107f5338484610f54565b5060015b92915050565b5f546001600160a01b031633146108285760405162461bcd60e51b81526004016104a190611c80565b6064821115801561083a575060648111155b6108865760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104a1565b600891909155600955565b5f61089e6009600a611e31565b6108ac90633b9aca00611e3f565b905090565b6001600160a01b0383165f908152600360209081526040808320338452909152812054828110156109355760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104a1565b610940858585611077565b610954853361094f8685611e56565b610f54565b506001949350505050565b5f546001600160a01b031633146109885760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b0381165f9081526002602052604090205460ff1615156001036109f45760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a1565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b5f546001600160a01b03163314610a685760405162461bcd60e51b81526004016104a190611c80565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610ad95760405162461bcd60e51b81526004016104a190611c80565b600260088190556009908155610af090600a611e31565b610afe90633b9aca00611e3f565b600555565b5f546001600160a01b03163314610b2c5760405162461bcd60e51b81526004016104a190611c80565b600d54600160a81b900460ff1615610b865760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a1565b600d805461ffff60a81b191661010160a81b1790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b4905f90a1565b5f6107f5338484611077565b5f546001600160a01b03163314610bfa5760405162461bcd60e51b81526004016104a190611c80565b306001600160a01b03831603610c715760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104a1565b5f8111610c905760405162461bcd60e51b81526004016104a190611cfb565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610cd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cf69190611e69565b811115610d3b5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a1565b600a5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610d8b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610daf9190611e80565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a90905f90a25050565b5f546001600160a01b03163314610e075760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b0381165f9081526002602052604081205460ff1615159003610e725760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104a1565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b5f546001600160a01b03163314610ee35760405162461bcd60e51b81526004016104a190611c80565b6001600160a01b038116610f485760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a1565b610f5181611851565b50565b6001600160a01b038316610fb65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a1565b6001600160a01b0382166110175760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a1565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a1565b6001600160a01b03821661113d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a1565b5f811161119e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a1565b6008546001600160a01b0384165f9081526002602052604090205460ff161580156111e157506001600160a01b0383165f9081526002602052604090205460ff16155b1561123557600d54600160a81b900460ff166112355760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104a1565b600d54600160a01b900460ff16806112575750600d54600160b01b900460ff16155b156112f6576001600160a01b0384165f9081526001602052604081208054849290611283908490611e56565b90915550506001600160a01b0383165f90815260016020526040812080548492906112af908490611e9f565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112e891815260200190565b60405180910390a350505050565b600c546001600160a01b0385811691161480156113215750600d546001600160a01b03848116911614155b801561134557506001600160a01b0383165f9081526002602052604090205460ff16155b15611427576005548211156113985760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a1565b600554826113ba856001600160a01b03165f9081526001602052604090205490565b6113c49190611e9f565b11156114125760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a1565b60078054905f61142183611eb2565b91905055505b600c546001600160a01b0385811691161480159061145d57506001600160a01b0384165f9081526002602052604090205460ff16155b801561148157506001600160a01b0383165f9081526002602052604090205460ff16155b156114d4576005548211156114d45760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a1565b600c546001600160a01b0384811691161480156114fa57506001600160a01b0384163014155b801561151e57506001600160a01b0384165f9081526002602052604090205460ff16155b801561154257506001600160a01b0383165f9081526002602052604090205460ff16155b1561154c57506009545b305f90815260016020526040902054600d54600160b01b900460ff16801561157e5750600d54600160a01b900460ff16155b801561158b57505f600754115b801561159957506004548310155b80156115a757506004548110155b80156115c05750600c546001600160a01b038581169116145b80156115e457506001600160a01b0385165f9081526002602052604090205460ff16155b801561160857506001600160a01b0384165f9081526002602052604090205460ff16155b1561163c5761162a61162584611620846006546118a0565b6118a0565b6118b7565b47801561163a5761163a47611a74565b505b81156117b5575f606461164f8486611e3f565b6116599190611eca565b90505f6116668286611e56565b6001600160a01b0388165f908152600260205260408120549192509060ff1661168f5730611691565b875b6001600160a01b0389165f9081526002602052604090205490915060ff166116b957826116bb565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e7908490611e9f565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611740908490611e56565b90915550506001600160a01b0387165f908152600160205260408120805484929061176c908490611e9f565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a591815260200190565b60405180910390a350505061184a565b6001600160a01b0385165f90815260016020526040812080548592906117dc908490611e56565b90915550506001600160a01b0384165f9081526001602052604081208054859290611808908490611e9f565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184191815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ae57826118b0565b815b9392505050565b600d805460ff60a01b1916600160a01b179055806119175760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a1565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194a5761194a611ee9565b6001600160a01b03928316602091820292909201810191909152600d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c59190611cb5565b816001815181106119d8576119d8611ee9565b6001600160a01b039283166020918202929092010152600d546119fe9130911684610f54565b600d5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a369085905f90869030904290600401611efd565b5f604051808303815f87803b158015611a4d575f80fd5b505af1158015611a5f573d5f803e3d5ffd5b5050600d805460ff60a01b1916905550505050565b5f8111611ac35760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a1565b600b546001600160a01b03166108fc611add600284611eca565b6040518115909202915f818181858888f19350505050158015611b02573d5f803e3d5ffd5b50600a546001600160a01b03166108fc611b1d600284611eca565b6040518115909202915f818181858888f19350505050158015611b42573d5f803e3d5ffd5b5050565b5f602080835283518060208501525f5b81811015611b7257858101830151858201604001528201611b56565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f51575f80fd5b5f8060408385031215611bb7575f80fd5b8235611bc281611b92565b946020939093013593505050565b5f8060408385031215611be1575f80fd5b50508035926020909101359150565b5f805f60608486031215611c02575f80fd5b8335611c0d81611b92565b92506020840135611c1d81611b92565b929592945050506040919091013590565b5f60208284031215611c3e575f80fd5b81356118b081611b92565b5f8060408385031215611c5a575f80fd5b8235611c6581611b92565b91506020830135611c7581611b92565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611cc5575f80fd5b81516118b081611b92565b5f805f60608486031215611ce2575f80fd5b8351925060208401519150604084015190509250925092565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d8b57815f1904821115611d7157611d71611d3d565b80851615611d7e57918102915b93841c9390800290611d56565b509250929050565b5f82611da1575060016107f9565b81611dad57505f6107f9565b8160018114611dc35760028114611dcd57611de9565b60019150506107f9565b60ff841115611dde57611dde611d3d565b50506001821b6107f9565b5060208310610133831016604e8410600b8410161715611e0c575081810a6107f9565b611e168383611d51565b805f1904821115611e2957611e29611d3d565b029392505050565b5f6118b060ff841683611d93565b80820281158282048414176107f9576107f9611d3d565b818103818111156107f9576107f9611d3d565b5f60208284031215611e79575f80fd5b5051919050565b5f60208284031215611e90575f80fd5b815180151581146118b0575f80fd5b808201808211156107f9576107f9611d3d565b5f60018201611ec357611ec3611d3d565b5060010190565b5f82611ee457634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c5451fc76c905314b5cdc35393cac82bd735877ab01fd64bb8c27fb2e970c92d64736f6c63430008160033

Deployed Bytecode Sourcemap

3553:10305:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7640:618;;;:::i;:::-;;7260:372;;;;;;;;;;;;;:::i;8266:83::-;;;;;;;;;;-1:-1:-1;8336:5:0;;;;;;;;;;;;-1:-1:-1;;;8336:5:0;;;;8266:83;;;;;;;:::i;:::-;;;;;;;;6263:186;;;;;;;;;;-1:-1:-1;6263:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6263:186:0;1023:187:1;6457:225:0;;;;;;;;;;-1:-1:-1;6457:225:0;;;;;:::i;:::-;;:::i;4783:34::-;;;;;;;;;;-1:-1:-1;4783:34:0;;;;-1:-1:-1;;;;;4783:34:0;;;;;;-1:-1:-1;;;;;1651:32:1;;;1633:51;;1621:2;1606:18;4783:34:0;1468:222:1;8537:96:0;;;;;;;;;;;;;:::i;:::-;;;1841:25:1;;;1829:2;1814:18;8537:96:0;1695:177:1;9864:481:0;;;;;;;;;;-1:-1:-1;9864:481:0;;;;;:::i;:::-;;:::i;4646:94::-;;;;;;;;;;;;4698:42;4646:94;;8448:83;;;;;;;;;;-1:-1:-1;8448:83:0;;4065:1;2688:36:1;;2676:2;2661:18;8448:83:0;2546:184:1;8764:272:0;;;;;;;;;;-1:-1:-1;8764:272:0;;;;;:::i;:::-;;:::i;8639:117::-;;;;;;;;;;-1:-1:-1;8639:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8732:16:0;8705:7;8732:16;;;:7;:16;;;;;;;8639:117;2231:148;;;;;;;;;;;;;:::i;10353:137::-;;;;;;;;;;;;;:::i;9531:210::-;;;;;;;;;;;;;:::i;1580:79::-;;;;;;;;;;-1:-1:-1;1618:7:0;1645:6;-1:-1:-1;;;;;1645:6:0;1580:79;;8355:87;;;;;;;;;;-1:-1:-1;8427:7:0;;;;;;;;;;;;-1:-1:-1;;;8427:7:0;;;;8355:87;;4323:57;;;;;;;;;;;;;;;;5891:192;;;;;;;;;;-1:-1:-1;5891:192:0;;;;;:::i;:::-;;:::i;6694:558::-;;;;;;;;;;-1:-1:-1;6694:558:0;;;;;:::i;:::-;;:::i;9044:274::-;;;;;;;;;;-1:-1:-1;9044:274:0;;;;;:::i;:::-;;:::i;4864:32::-;;;;;;;;;;-1:-1:-1;4864:32:0;;;;-1:-1:-1;;;4864:32:0;;;;;;6089:168;;;;;;;;;;-1:-1:-1;6089:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6222:18:0;;;6195:7;6222:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6089:168;1790:238;;;;;;;;;;-1:-1:-1;1790:238:0;;;;;:::i;:::-;;:::i;7640:618::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;;;;;;;;;7701:15:::1;:97:::0;;-1:-1:-1;;;;;;7701:97:0::1;7745:42;7701:97:::0;;::::1;::::0;;;7838:25:::1;::::0;;-1:-1:-1;;;7838:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;7745:42;7838:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7825:50:0::1;;7898:4;7918:15;;;;;;;;;-1:-1:-1::0;;;;;7918:15:0::1;-1:-1:-1::0;;;;;7918:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7825:126;::::0;-1:-1:-1;;;;;;7825:126:0::1;::::0;;;;;;-1:-1:-1;;;;;4227:15:1;;;7825:126:0::1;::::0;::::1;4209:34:1::0;4279:15;;4259:18;;;4252:43;4144:18;;7825:126:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7809:13;:142:::0;;-1:-1:-1;;;;;;7809:142:0::1;-1:-1:-1::0;;;;;7809:142:0;;::::1;;::::0;;7996:15:::1;::::0;7964:62:::1;::::0;7981:4:::1;::::0;7996:15:::1;-1:-1:-1::0;;7964:8:0::1;:62::i;:::-;8039:15;::::0;-1:-1:-1;;;;;8039:15:0::1;:31;8078:9;8111:4;8131:24;8111:4:::0;-1:-1:-1;;;;;8732:16:0;8705:7;8732:16;;;:7;:16;;;;;;;8639:117;8131:24:::1;8170:1;8186::::0;8202:7:::1;1618::::0;1645:6;-1:-1:-1;;;;;1645:6:0;;1580:79;8202:7:::1;8039:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;8039:211:0;;;-1:-1:-1;;;;;4665:15:1;;;8039:211:0::1;::::0;::::1;4647:34:1::0;4697:18;;;4690:34;;;;4740:18;;;4733:34;;;;4783:18;;;4776:34;4847:15;;;4826:19;;;4819:44;8224:15:0::1;4879:19:1::0;;;4872:35;4581:19;;8039:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7640:618::o:0;7260:372::-;7322:21;7362:13;7354:60;;;;-1:-1:-1;;;7354:60:0;;;;;;;:::i;:::-;7460:21;7447:9;:34;;7425:103;;;;-1:-1:-1;;;7425:103:0;;5834:2:1;7425:103:0;;;5816:21:1;5873:2;5853:18;;;5846:30;-1:-1:-1;;;5892:18:1;;;5885:49;5951:18;;7425:103:0;5632:343:1;7425:103:0;7555:9;;7539:47;;-1:-1:-1;;;;;7555:9:0;;;;7539:47;;;;;7576:9;;7555;7539:47;7555:9;7539:47;7576:9;7555;7539:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7602:22:0;;;;;;;7291:341;7260:372::o;6263:186::-;6363:4;6380:39;1217:10;6403:7;6412:6;6380:8;:39::i;:::-;-1:-1:-1;6437:4:0;6263:186;;;;;:::o;6457:225::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;6558:3:::1;6547:7;:14;;:33;;;;;6577:3;6565:8;:15;;6547:33;6539:71;;;::::0;-1:-1:-1;;;6539:71:0;;6182:2:1;6539:71:0::1;::::0;::::1;6164:21:1::0;6221:2;6201:18;;;6194:30;6260:27;6240:18;;;6233:55;6305:18;;6539:71:0::1;5980:349:1::0;6539:71:0::1;6621:10;:20:::0;;;;6652:11:::1;:22:::0;6457:225::o;8537:96::-;8590:7;4122:15;4065:1;4122:2;:15;:::i;:::-;4109:28;;:10;:28;:::i;:::-;8610:15;;8537:96;:::o;9864:481::-;-1:-1:-1;;;;;10040:19:0;;9996:4;10040:19;;;:11;:19;;;;;;;;1217:10;10040:33;;;;;;;;10106:26;;;;10084:116;;;;-1:-1:-1;;;10084:116:0;;8218:2:1;10084:116:0;;;8200:21:1;8257:2;8237:18;;;8230:30;8296:34;8276:18;;;8269:62;-1:-1:-1;;;8347:18:1;;;8340:38;8395:19;;10084:116:0;8016:404:1;10084:116:0;10211:36;10221:6;10229:9;10240:6;10211:9;:36::i;:::-;10258:57;10267:6;1217:10;10289:25;10308:6;10289:16;:25;:::i;:::-;10258:8;:57::i;:::-;-1:-1:-1;10333:4:0;;9864:481;-1:-1:-1;;;;9864:481:0:o;8764:272::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8858:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:29;;:21:::0;:29;8836:106:::1;;;::::0;-1:-1:-1;;;8836:106:0;;8760:2:1;8836:106:0::1;::::0;::::1;8742:21:1::0;8799:2;8779:18;;;8772:30;8838:29;8818:18;;;8811:57;8885:18;;8836:106:0::1;8558:351:1::0;8836:106:0::1;-1:-1:-1::0;;;;;8953:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;:28;;-1:-1:-1;;8953:28:0::1;8977:4;8953:28;::::0;;8997:31;::::1;::::0;8953:21;8997:31:::1;8764:272:::0;:::o;2231:148::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;2338:1:::1;2322:6:::0;;2301:40:::1;::::0;-1:-1:-1;;;;;2322:6:0;;::::1;::::0;2301:40:::1;::::0;2338:1;;2301:40:::1;2369:1;2352:19:::0;;-1:-1:-1;;;;;;2352:19:0::1;::::0;;2231:148::o;10353:137::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;10420:1:::1;10407:10;:14:::0;;;10432:11:::1;:15:::0;;;4122::::1;::::0;:2:::1;:15;:::i;:::-;4109:28;::::0;:10:::1;:28;:::i;:::-;10458:13;:24:::0;10353:137::o;9531:210::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;9595:12:::1;::::0;-1:-1:-1;;;9595:12:0;::::1;;;9594:13;9586:49;;;::::0;-1:-1:-1;;;9586:49:0;;9116:2:1;9586:49:0::1;::::0;::::1;9098:21:1::0;9155:2;9135:18;;;9128:30;9194:25;9174:18;;;9167:53;9237:18;;9586:49:0::1;8914:347:1::0;9586:49:0::1;9646:12;:19:::0;;-1:-1:-1;;;;9676:18:0;-1:-1:-1;;;9676:18:0;;;9710:23:::1;::::0;::::1;::::0;-1:-1:-1;;9710:23:0::1;9531:210::o:0;5891:192::-;5994:4;6011:42;1217:10;6035:9;6046:6;6011:9;:42::i;6694:558::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;6852:4:::1;-1:-1:-1::0;;;;;6830:27:0;::::1;::::0;6808:131:::1;;;::::0;-1:-1:-1;;;6808:131:0;;9468:2:1;6808:131:0::1;::::0;::::1;9450:21:1::0;9507:2;9487:18;;;9480:30;9546:34;9526:18;;;9519:62;-1:-1:-1;;;9597:18:1;;;9590:52;9659:19;;6808:131:0::1;9266:418:1::0;6808:131:0::1;6968:1;6958:7;:11;6950:58;;;;-1:-1:-1::0;;;6950:58:0::1;;;;;;;:::i;:::-;7052:43;::::0;-1:-1:-1;;;7052:43:0;;7089:4:::1;7052:43;::::0;::::1;1633:51:1::0;-1:-1:-1;;;;;7052:28:0;::::1;::::0;::::1;::::0;1606:18:1;;7052:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7041:7;:54;;7019:123;;;::::0;-1:-1:-1;;;7019:123:0;;5834:2:1;7019:123:0::1;::::0;::::1;5816:21:1::0;5873:2;5853:18;;;5846:30;-1:-1:-1;;;5892:18:1;;;5885:49;5951:18;;7019:123:0::1;5632:343:1::0;7019:123:0::1;7181:9;::::0;7153:47:::1;::::0;-1:-1:-1;;;7153:47:0;;-1:-1:-1;;;;;7181:9:0;;::::1;7153:47;::::0;::::1;10060:51:1::0;10127:18;;;10120:34;;;7153:27:0;;::::1;::::0;::::1;::::0;10033:18:1;;7153:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7216:28:0::1;::::0;7236:7;;7216:28:::1;::::0;;;::::1;6694:558:::0;;:::o;9044:274::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9138:21:0;::::1;;::::0;;;:12:::1;:21;::::0;;;;;::::1;;:30;;::::0;;9116:107:::1;;;::::0;-1:-1:-1;;;9116:107:0;;10649:2:1;9116:107:0::1;::::0;::::1;10631:21:1::0;10688:2;10668:18;;;10661:30;10727:29;10707:18;;;10700:57;10774:18;;9116:107:0::1;10447:351:1::0;9116:107:0::1;-1:-1:-1::0;;;;;9234:21:0;::::1;9258:5;9234:21:::0;;;:12:::1;:21;::::0;;;;;:29;;-1:-1:-1;;9234:29:0::1;::::0;;9279:31;::::1;::::0;9258:5;9279:31:::1;9044:274:::0;:::o;1790:238::-;1705:6;;-1:-1:-1;;;;;1705:6:0;1217:10;1705:22;1697:67;;;;-1:-1:-1;;;1697:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1893:22:0;::::1;1871:110;;;::::0;-1:-1:-1;;;1871:110:0;;11005:2:1;1871:110:0::1;::::0;::::1;10987:21:1::0;11044:2;11024:18;;;11017:30;11083:34;11063:18;;;11056:62;-1:-1:-1;;;11134:18:1;;;11127:36;11180:19;;1871:110:0::1;10803:402:1::0;1871:110:0::1;1992:28;2011:8;1992:18;:28::i;:::-;1790:238:::0;:::o;5550:335::-;-1:-1:-1;;;;;5643:19:0;;5635:68;;;;-1:-1:-1;;;5635:68:0;;11412:2:1;5635:68:0;;;11394:21:1;11451:2;11431:18;;;11424:30;11490:34;11470:18;;;11463:62;-1:-1:-1;;;11541:18:1;;;11534:34;11585:19;;5635:68:0;11210:400:1;5635:68:0;-1:-1:-1;;;;;5722:21:0;;5714:68;;;;-1:-1:-1;;;5714:68:0;;11817:2:1;5714:68:0;;;11799:21:1;11856:2;11836:18;;;11829:30;11895:34;11875:18;;;11868:62;-1:-1:-1;;;11946:18:1;;;11939:32;11988:19;;5714:68:0;11615:398:1;5714:68:0;-1:-1:-1;;;;;5793:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5845:32;;1841:25:1;;;5845:32:0;;1814:18:1;5845:32:0;;;;;;;5550:335;;;:::o;11052:2766::-;-1:-1:-1;;;;;11140:18:0;;11132:68;;;;-1:-1:-1;;;11132:68:0;;12220:2:1;11132:68:0;;;12202:21:1;12259:2;12239:18;;;12232:30;12298:34;12278:18;;;12271:62;-1:-1:-1;;;12349:18:1;;;12342:35;12394:19;;11132:68:0;12018:401:1;11132:68:0;-1:-1:-1;;;;;11219:16:0;;11211:64;;;;-1:-1:-1;;;11211:64:0;;12626:2:1;11211:64:0;;;12608:21:1;12665:2;12645:18;;;12638:30;12704:34;12684:18;;;12677:62;-1:-1:-1;;;12755:18:1;;;12748:33;12798:19;;11211:64:0;12424:399:1;11211:64:0;11303:1;11294:6;:10;11286:64;;;;-1:-1:-1;;;11286:64:0;;13030:2:1;11286:64:0;;;13012:21:1;13069:2;13049:18;;;13042:30;13108:34;13088:18;;;13081:62;-1:-1:-1;;;13159:18:1;;;13152:39;13208:19;;11286:64:0;12828:405:1;11286:64:0;11405:10;;-1:-1:-1;;;;;11431:18:0;;11361:17;11431:18;;;:12;:18;;;;;;;;11430:19;:40;;;;-1:-1:-1;;;;;;11454:16:0;;;;;;:12;:16;;;;;;;;11453:17;11430:40;11426:117;;;11495:12;;-1:-1:-1;;;11495:12:0;;;;11487:44;;;;-1:-1:-1;;;11487:44:0;;13440:2:1;11487:44:0;;;13422:21:1;13479:2;13459:18;;;13452:30;-1:-1:-1;;;13498:18:1;;;13491:49;13557:18;;11487:44:0;13238:343:1;11487:44:0;11557:10;;-1:-1:-1;;;11557:10:0;;;;;:26;;-1:-1:-1;11572:11:0;;-1:-1:-1;;;11572:11:0;;;;11571:12;11557:26;11553:185;;;-1:-1:-1;;;;;11600:13:0;;;;;;:7;:13;;;;;:23;;11617:6;;11600:13;:23;;11617:6;;11600:23;:::i;:::-;;;;-1:-1:-1;;;;;;;11638:11:0;;;;;;:7;:11;;;;;:21;;11653:6;;11638:11;:21;;11653:6;;11638:21;:::i;:::-;;;;;;;;11694:2;-1:-1:-1;;;;;11679:26:0;11688:4;-1:-1:-1;;;;;11679:26:0;-1:-1:-1;;;;;;;;;;;11698:6:0;11679:26;;;;1841:25:1;;1829:2;1814:18;;1695:177;11679:26:0;;;;;;;;11720:7;11052:2766;;;:::o;11553:185::-;11774:13;;-1:-1:-1;;;;;11766:21:0;;;11774:13;;11766:21;:68;;;;-1:-1:-1;11818:15:0;;-1:-1:-1;;;;;11804:30:0;;;11818:15;;11804:30;;11766:68;:102;;;;-1:-1:-1;;;;;;11852:16:0;;;;;;:12;:16;;;;;;;;11851:17;11766:102;11748:387;;;11913:13;;11903:6;:23;;11895:61;;;;-1:-1:-1;;;11895:61:0;;13918:2:1;11895:61:0;;;13900:21:1;13957:2;13937:18;;;13930:30;-1:-1:-1;;;13976:18:1;;;13969:55;14041:18;;11895:61:0;13716:349:1;11895:61:0;12023:13;;12013:6;11997:13;12007:2;-1:-1:-1;;;;;8732:16:0;8705:7;8732:16;;;:7;:16;;;;;;;8639:117;11997:13;:22;;;;:::i;:::-;:39;;11971:127;;;;-1:-1:-1;;;11971:127:0;;14272:2:1;11971:127:0;;;14254:21:1;14311:2;14291:18;;;14284:30;14350:28;14330:18;;;14323:56;14396:18;;11971:127:0;14070:350:1;11971:127:0;12113:8;:10;;;:8;:10;;;:::i;:::-;;;;;;11748:387;12171:13;;-1:-1:-1;;;;;12163:21:0;;;12171:13;;12163:21;;;;:57;;-1:-1:-1;;;;;;12202:18:0;;;;;;:12;:18;;;;;;;;12201:19;12163:57;:91;;;;-1:-1:-1;;;;;;12238:16:0;;;;;;:12;:16;;;;;;;;12237:17;12163:91;12145:209;;;12299:13;;12289:6;:23;;12281:61;;;;-1:-1:-1;;;12281:61:0;;13918:2:1;12281:61:0;;;13900:21:1;13957:2;13937:18;;;13930:30;-1:-1:-1;;;13976:18:1;;;13969:55;14041:18;;12281:61:0;13716:349:1;12281:61:0;12388:13;;-1:-1:-1;;;;;12382:19:0;;;12388:13;;12382:19;:57;;;;-1:-1:-1;;;;;;12418:21:0;;12434:4;12418:21;;12382:57;:93;;;;-1:-1:-1;;;;;;12457:18:0;;;;;;:12;:18;;;;;;;;12456:19;12382:93;:127;;;;-1:-1:-1;;;;;;12493:16:0;;;;;;:12;:16;;;;;;;;12492:17;12382:127;12364:207;;;-1:-1:-1;12548:11:0;;12364:207;12624:4;12581:22;8732:16;;;:7;:16;;;;;;12659:11;;-1:-1:-1;;;12659:11:0;;;;:39;;;;-1:-1:-1;12688:10:0;;-1:-1:-1;;;12688:10:0;;;;12687:11;12659:39;:68;;;;;12726:1;12715:8;;:12;12659:68;:109;;;;;12754:14;;12744:6;:24;;12659:109;:158;;;;;12803:14;;12785;:32;;12659:158;:194;;;;-1:-1:-1;12840:13:0;;-1:-1:-1;;;;;12834:19:0;;;12840:13;;12834:19;12659:194;:230;;;;-1:-1:-1;;;;;;12871:18:0;;;;;;:12;:18;;;;;;;;12870:19;12659:230;:264;;;;-1:-1:-1;;;;;;12907:16:0;;;;;;:12;:16;;;;;;;;12906:17;12659:264;12641:533;;;12950:56;12961:44;12965:6;12973:31;12977:14;12993:10;;12973:3;:31::i;:::-;12961:3;:44::i;:::-;12950:10;:56::i;:::-;13041:21;13081:13;;13077:86;;13115:32;13125:21;13115:9;:32::i;:::-;12935:239;12641:533;13188:14;;13184:627;;13219:13;13258:3;13236:18;13245:9;13236:6;:18;:::i;:::-;13235:26;;;;:::i;:::-;13219:42;-1:-1:-1;13276:16:0;13295:14;13219:42;13295:6;:14;:::i;:::-;-1:-1:-1;;;;;13342:18:0;;13324:15;13342:18;;;:12;:18;;;;;;13276:33;;-1:-1:-1;13324:15:0;13342:18;;:41;;13378:4;13342:41;;;13363:4;13342:41;-1:-1:-1;;;;;13406:18:0;;;;;;:12;:18;;;;;;13324:59;;-1:-1:-1;13406:18:0;;:35;;13436:5;13406:35;;;13427:6;13406:35;-1:-1:-1;;;;;13456:16:0;;;;;;:7;:16;;;;;:25;;13398:43;;-1:-1:-1;13398:43:0;;13456:16;;;:25;;13398:43;;13456:25;:::i;:::-;;;;-1:-1:-1;;13501:36:0;;1841:25:1;;;13524:4:0;;-1:-1:-1;;;;;13501:36:0;;;-1:-1:-1;;;;;;;;;;;13501:36:0;1829:2:1;1814:18;13501:36:0;;;;;;;-1:-1:-1;;;;;13552:13:0;;;;;;:7;:13;;;;;:23;;13569:6;;13552:13;:23;;13569:6;;13552:23;:::i;:::-;;;;-1:-1:-1;;;;;;;13590:11:0;;;;;;:7;:11;;;;;:23;;13605:8;;13590:11;:23;;13605:8;;13590:23;:::i;:::-;;;;;;;;13648:2;-1:-1:-1;;;;;13633:28:0;13642:4;-1:-1:-1;;;;;13633:28:0;-1:-1:-1;;;;;;;;;;;13652:8:0;13633:28;;;;1841:25:1;;1829:2;1814:18;;1695:177;13633:28:0;;;;;;;;13204:469;;;13184:627;;;-1:-1:-1;;;;;13694:13:0;;;;;;:7;:13;;;;;:23;;13711:6;;13694:13;:23;;13711:6;;13694:23;:::i;:::-;;;;-1:-1:-1;;;;;;;13732:11:0;;;;;;:7;:11;;;;;:21;;13747:6;;13732:11;:21;;13747:6;;13732:21;:::i;:::-;;;;;;;;13788:2;-1:-1:-1;;;;;13773:26:0;13782:4;-1:-1:-1;;;;;13773:26:0;-1:-1:-1;;;;;;;;;;;13792:6:0;13773:26;;;;1841:25:1;;1829:2;1814:18;;1695:177;13773:26:0;;;;;;;;13184:627;11121:2697;;11052:2766;;;:::o;2034:191::-;2108:16;2127:6;;-1:-1:-1;;;;;2144:17:0;;;-1:-1:-1;;;;;;2144:17:0;;;;;;2177:40;;2127:6;;;;;;;2177:40;;2108:16;2177:40;2097:128;2034:191;:::o;9749:107::-;9806:7;9838:1;9834;:5;9833:15;;9847:1;9833:15;;;9843:1;9833:15;9826:22;9749:107;-1:-1:-1;;;9749:107:0:o;10498:546::-;4979:10;:17;;-1:-1:-1;;;;4979:17:0;-1:-1:-1;;;4979:17:0;;;10579:15;10571:57:::1;;;::::0;-1:-1:-1;;;10571:57:0;;14989:2:1;10571:57:0::1;::::0;::::1;14971:21:1::0;15028:2;15008:18;;;15001:30;15067:31;15047:18;;;15040:59;15116:18;;10571:57:0::1;14787:353:1::0;10571:57:0::1;10663:16;::::0;;10677:1:::1;10663:16:::0;;;;;::::1;::::0;;10639:21:::1;::::0;10663:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10663:16:0::1;10639:40;;10708:4;10690;10695:1;10690:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10690:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10734:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10734:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10690:7;;10734:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10724:4;10729:1;10724:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10724:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10799:15:::1;::::0;10767:62:::1;::::0;10784:4:::1;::::0;10799:15:::1;10817:11:::0;10767:8:::1;:62::i;:::-;10840:15;::::0;:196:::1;::::0;-1:-1:-1;;;10840:196:0;;-1:-1:-1;;;;;10840:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10921:11;;10840:15:::1;::::0;10963:4;;10990::::1;::::0;11010:15:::1;::::0;10840:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5019:10:0;:18;;-1:-1:-1;;;;5019:18:0;;;-1:-1:-1;;;;10498:546:0:o;9326:197::-;9397:1;9388:6;:10;9380:52;;;;-1:-1:-1;;;9380:52:0;;14989:2:1;9380:52:0;;;14971:21:1;15028:2;15008:18;;;15001:30;15067:31;15047:18;;;15040:59;15116:18;;9380:52:0;14787:353:1;9380:52:0;9443:10;;-1:-1:-1;;;;;9443:10:0;:31;9463:10;9472:1;9463:6;:10;:::i;:::-;9443:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9485:9:0;;-1:-1:-1;;;;;9485:9:0;:30;9504:10;9513:1;9504:6;:10;:::i;:::-;9485:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9326:197;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:248::-;1283:6;1291;1344:2;1332:9;1323:7;1319:23;1315:32;1312:52;;;1360:1;1357;1350:12;1312:52;-1:-1:-1;;1383:23:1;;;1453:2;1438:18;;;1425:32;;-1:-1:-1;1215:248:1:o;1877:456::-;1954:6;1962;1970;2023:2;2011:9;2002:7;1998:23;1994:32;1991:52;;;2039:1;2036;2029:12;1991:52;2078:9;2065:23;2097:31;2122:5;2097:31;:::i;:::-;2147:5;-1:-1:-1;2204:2:1;2189:18;;2176:32;2217:33;2176:32;2217:33;:::i;:::-;1877:456;;2269:7;;-1:-1:-1;;;2323:2:1;2308:18;;;;2295:32;;1877:456::o;2735:247::-;2794:6;2847:2;2835:9;2826:7;2822:23;2818:32;2815:52;;;2863:1;2860;2853:12;2815:52;2902:9;2889:23;2921:31;2946:5;2921:31;:::i;2987:388::-;3055:6;3063;3116:2;3104:9;3095:7;3091:23;3087:32;3084:52;;;3132:1;3129;3122:12;3084:52;3171:9;3158:23;3190:31;3215:5;3190:31;:::i;:::-;3240:5;-1:-1:-1;3297:2:1;3282:18;;3269:32;3310:33;3269:32;3310:33;:::i;:::-;3362:7;3352:17;;;2987:388;;;;;:::o;3380:356::-;3582:2;3564:21;;;3601:18;;;3594:30;3660:34;3655:2;3640:18;;3633:62;3727:2;3712:18;;3380:356::o;3741:251::-;3811:6;3864:2;3852:9;3843:7;3839:23;3835:32;3832:52;;;3880:1;3877;3870:12;3832:52;3912:9;3906:16;3931:31;3956:5;3931:31;:::i;4918:306::-;5006:6;5014;5022;5075:2;5063:9;5054:7;5050:23;5046:32;5043:52;;;5091:1;5088;5081:12;5043:52;5120:9;5114:16;5104:26;;5170:2;5159:9;5155:18;5149:25;5139:35;;5214:2;5203:9;5199:18;5193:25;5183:35;;4918:306;;;;;:::o;5229:398::-;5431:2;5413:21;;;5470:2;5450:18;;;5443:30;5509:34;5504:2;5489:18;;5482:62;-1:-1:-1;;;5575:2:1;5560:18;;5553:32;5617:3;5602:19;;5229:398::o;6334:127::-;6395:10;6390:3;6386:20;6383:1;6376:31;6426:4;6423:1;6416:15;6450:4;6447:1;6440:15;6466:416;6555:1;6592:5;6555:1;6606:270;6627:7;6617:8;6614:21;6606:270;;;6686:4;6682:1;6678:6;6674:17;6668:4;6665:27;6662:53;;;6695:18;;:::i;:::-;6745:7;6735:8;6731:22;6728:55;;;6765:16;;;;6728:55;6844:22;;;;6804:15;;;;6606:270;;;6610:3;6466:416;;;;;:::o;6887:806::-;6936:5;6966:8;6956:80;;-1:-1:-1;7007:1:1;7021:5;;6956:80;7055:4;7045:76;;-1:-1:-1;7092:1:1;7106:5;;7045:76;7137:4;7155:1;7150:59;;;;7223:1;7218:130;;;;7130:218;;7150:59;7180:1;7171:10;;7194:5;;;7218:130;7255:3;7245:8;7242:17;7239:43;;;7262:18;;:::i;:::-;-1:-1:-1;;7318:1:1;7304:16;;7333:5;;7130:218;;7432:2;7422:8;7419:16;7413:3;7407:4;7404:13;7400:36;7394:2;7384:8;7381:16;7376:2;7370:4;7367:12;7363:35;7360:77;7357:159;;;-1:-1:-1;7469:19:1;;;7501:5;;7357:159;7548:34;7573:8;7567:4;7548:34;:::i;:::-;7618:6;7614:1;7610:6;7606:19;7597:7;7594:32;7591:58;;;7629:18;;:::i;:::-;7667:20;;6887:806;-1:-1:-1;;;6887:806:1:o;7698:140::-;7756:5;7785:47;7826:4;7816:8;7812:19;7806:4;7785:47;:::i;7843:168::-;7916:9;;;7947;;7964:15;;;7958:22;;7944:37;7934:71;;7985:18;;:::i;8425:128::-;8492:9;;;8513:11;;;8510:37;;;8527:18;;:::i;9689:184::-;9759:6;9812:2;9800:9;9791:7;9787:23;9783:32;9780:52;;;9828:1;9825;9818:12;9780:52;-1:-1:-1;9851:16:1;;9689:184;-1:-1:-1;9689:184:1:o;10165:277::-;10232:6;10285:2;10273:9;10264:7;10260:23;10256:32;10253:52;;;10301:1;10298;10291:12;10253:52;10333:9;10327:16;10386:5;10379:13;10372:21;10365:5;10362:32;10352:60;;10408:1;10405;10398:12;13586:125;13651:9;;;13672:10;;;13669:36;;;13685:18;;:::i;14425:135::-;14464:3;14485:17;;;14482:43;;14505:18;;:::i;:::-;-1:-1:-1;14552:1:1;14541:13;;14425:135::o;14565:217::-;14605:1;14631;14621:132;;14675:10;14670:3;14666:20;14663:1;14656:31;14710:4;14707:1;14700:15;14738:4;14735:1;14728:15;14621:132;-1:-1:-1;14767:9:1;;14565:217::o;15277:127::-;15338:10;15333:3;15329:20;15326:1;15319:31;15369:4;15366:1;15359:15;15393:4;15390:1;15383:15;15409:980;15671:4;15719:3;15708:9;15704:19;15750:6;15739:9;15732:25;15776:2;15814:6;15809:2;15798:9;15794:18;15787:34;15857:3;15852:2;15841:9;15837:18;15830:31;15881:6;15916;15910:13;15947:6;15939;15932:22;15985:3;15974:9;15970:19;15963:26;;16024:2;16016:6;16012:15;15998:29;;16045:1;16055:195;16069:6;16066:1;16063:13;16055:195;;;16134:13;;-1:-1:-1;;;;;16130:39:1;16118:52;;16225:15;;;;16190:12;;;;16166:1;16084:9;16055:195;;;-1:-1:-1;;;;;;;16306:32:1;;;;16301:2;16286:18;;16279:60;-1:-1:-1;;;16370:3:1;16355:19;16348:35;16267:3;15409:980;-1:-1:-1;;;15409:980:1:o

Swarm Source

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