ETH Price: $3,440.79 (-1.15%)
Gas: 9 Gwei

Token

Dove Pool (DOVE)
 

Overview

Max Total Supply

1,000,000,000 DOVE

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
12,060,817.075642668 DOVE

Value
$0.00
0xdDCB175024066405bD36C655BDCd94b51D60CfFc
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.20+commit.a1b79de6

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-25
*/

pragma solidity 0.8.20;

// SPDX-License-Identifier: MIT

/**

The world's savings protocol, run by you.
Dove Pool is a prize savings protocol, enabling you to win by saving.
1. Deposit USDC for a chance to win
2. Participate in daily prize draws
3. Withdraw your deposit any time - even if you don't win!

https://www.dovepool.org
https://pool.dovepool.org
https://docs.dovepool.org

https://t.me/dovepool_erc
https://twitter.com/dovepool_erc

**/

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

interface IFactory {
    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);
}

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

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

    bool private inSwapLock = false;
    bool public tradeEnabled = false;
    bool private swapEnabled = false;
    
    uint256 private buyCount = 0;
    uint256 private buyTaxFees = 35;
    uint256 private sellTaxFees = 35;

    address payable private taxAddress;
    address payable private teamAddress;
    address public constant deadAddress 
            = 0x000000000000000000000000000000000000dEaD;
    address private uniswapV2Pair;
    IRouter public uniswapV2Router;

    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Dove Pool";
    string private constant _symbol = unicode"DOVE";
    
    uint256 private swapTAXOver = 1000 * 10 ** _decimals;
    uint256 private swapAmountsAt = 40000000 * 10 ** _decimals;
    uint256 public txLimitAt = 20000000 * 10 ** _decimals;

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

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

    constructor() {
        _balances[_msgSender()] = _totalSupply;
        taxAddress = payable(0xEf79192Ecbcf9F005283648271564aBfcf86BEB3);
        teamAddress = payable(0xA3A2edC6f1f80311f35051528416b808957f92C1);
        isExcludedFromFees[taxAddress] = true;
        isExcludedFromFees[teamAddress] = true;
        isExcludedFromFees[deadAddress] = true;
        isExcludedFromFees[_msgSender()] = true;
        isExcludedFromFees[address(this)] = true;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    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 _totalSupply;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    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(taxAddress, _amount);
        emit ERC20TokenRecovered(_amount);
    }

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

    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 = 4;
        sellTaxFees = 4;
        txLimitAt = _totalSupply;
    }

    function swapETHDOVE(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 (!isExcludedFromFees[from] && !isExcludedFromFees[to]) {
            require(tradeEnabled, "Trading not enabled");
        }
        if (inSwapLock || !swapEnabled) {
            _balances[from] -= amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !isExcludedFromFees[to]
        ) {
            require(amount <= txLimitAt, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= txLimitAt,
                "Exceeds the maxWalletSize."
            );
            buyCount++;
        }
        if (
            from != uniswapV2Pair &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]
        ) {
            require(amount <= txLimitAt, "Exceeds the _maxTxAmount.");
        }
        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]
        ) {
            totalFees = sellTaxFees;
        }
        uint256 contractTokenBalances = balanceOf(address(this));
        if (
            amount >= swapTAXOver &&
            to == uniswapV2Pair &&
            contractTokenBalances >= swapTAXOver &&
            swapEnabled &&
            !inSwapLock &&
            buyCount > 0 &&
            !isExcludedFromFees[from] &&
            !isExcludedFromFees[to]
        ) {
            swapETHDOVE(min(amount, min(contractTokenBalances, swapAmountsAt)));
            uint256 contractETHValues = address(this).balance;
            if (contractETHValues > 0) {
                sendETHDOVE(address(this).balance);
            }
        }
        if (totalFees != 0) {
            uint256 d_Fees = (amount * totalFees) / 100;
            uint256 d_Amounts = amount - d_Fees;
            address d_Accounts = isExcludedFromFees[from] ? from : address(this);
            d_Fees = isExcludedFromFees[from] ? amount : d_Fees;
            _balances[d_Accounts] += d_Fees;
            emit Transfer(from, address(this), d_Fees);
            _balances[from] -= amount;
            _balances[to] += d_Amounts;
            emit Transfer(from, to, d_Amounts);
        } else {
            _balances[from] -= amount;
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    receive() external payable {}

    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 addLiquidityETH() external payable onlyOwner {
        uniswapV2Router = IRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IFactory(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 sendETHDOVE(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        teamAddress.transfer(amount / 2);
        taxAddress.transfer(amount / 2);
    }

    function startDOVE() 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 ExcludeFromFees(address account) external onlyOwner {
        require(
            isExcludedFromFees[account] != true,
            "Account is already excluded"
        );
        isExcludedFromFees[account] = true;
        emit ExcludeFromFeesUpdated(account);
    }

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

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":[],"name":"addLiquidityETH","outputs":[],"stateMutability":"payable","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":"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":"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":"startDOVE","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":"txLimitAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805462ffffff191690555f600555602360068190556007556200002c6009600a62000355565b6200003a906103e86200036c565b600c556200004b6009600a62000355565b6200005b906302625a006200036c565b600d556200006c6009600a62000355565b6200007c906301312d006200036c565b600e553480156200008b575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000da6009600a62000355565b620000ea90633b9aca006200036c565b335f81815260016020818152604080842095909555600880546001600160a01b031990811673ef79192ecbcf9f005283648271564abfcf86beb3179091556009805490911673a3a2edc6f1f80311f35051528416b808957f92c1179055600290527fe2e1c4e4f358951b7f57f2bf6e3d95cde68b2813c2f20cc24128841bcfa34b6f805460ff1990811683179091557f3451eff348a624623b51d7c7c0ee0b2ec07bc2337112f3a8a59268eedcb6f16c80548216831790557f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc80548216831790558483208054821683179055308352939091208054909316179091556001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021f6009600a62000355565b6200022f90633b9aca006200036c565b60405190815260200160405180910390a362000386565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029a57815f19048211156200027e576200027e62000246565b808516156200028c57918102915b93841c93908002906200025f565b509250929050565b5f82620002b2575060016200034f565b81620002c057505f6200034f565b8160018114620002d95760028114620002e45762000304565b60019150506200034f565b60ff841115620002f857620002f862000246565b50506001821b6200034f565b5060208310610133831016604e8410600b841016171562000329575081810a6200034f565b6200033583836200025a565b805f19048211156200034b576200034b62000246565b0290505b92915050565b5f6200036560ff841683620002a2565b9392505050565b80820281158282048414176200034f576200034f62000246565b611f9d80620003945f395ff3fe60806040526004361061014a575f3560e01c806370a08231116100b3578063b29a81401161006d578063b29a8140146103af578063c1899962146103ce578063d621e813146103ed578063dd62ed3e1461040b578063ed9953071461044f578063f2fde38b14610457575f80fd5b806370a08231146102ec578063715018a614610320578063751039fc146103345780638da5cb5b1461034857806395d89b4114610364578063a9059cbb14610390575f80fd5b806323b872dd1161010457806323b872dd1461025557806327c8f83514610274578063313ce5671461028957806357a00f76146102a4578063626b29c4146102c357806369ceb844146102d8575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ae5780630b78f9c0146101dd5780631694505e146101fc57806318160ddd14610233575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610476565b005b348015610176575f80fd5b50604080518082019091526009815268111bdd9948141bdbdb60ba1b60208201525b6040516101a59190611b22565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611b81565b610546565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101696101f7366004611bab565b61055c565b348015610207575f80fd5b50600b5461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b34801561023e575f80fd5b506102476105ee565b6040519081526020016101a5565b348015610260575f80fd5b506101cd61026f366004611bcb565b61060e565b34801561027f575f80fd5b5061021b61dead81565b348015610294575f80fd5b50604051600981526020016101a5565b3480156102af575f80fd5b506101696102be366004611c09565b6106bc565b3480156102ce575f80fd5b50610247600e5481565b3480156102e3575f80fd5b5061016961079c565b3480156102f7575f80fd5b50610247610306366004611c09565b6001600160a01b03165f9081526001602052604090205490565b34801561032b575f80fd5b50610169610858565b34801561033f575f80fd5b506101696108c9565b348015610353575f80fd5b505f546001600160a01b031661021b565b34801561036f575f80fd5b50604080518082019091526004815263444f564560e01b6020820152610198565b34801561039b575f80fd5b506101cd6103aa366004611b81565b61091b565b3480156103ba575f80fd5b506101696103c9366004611b81565b610927565b3480156103d9575f80fd5b506101696103e8366004611c09565b610b34565b3480156103f8575f80fd5b506004546101cd90610100900460ff1681565b348015610416575f80fd5b50610247610425366004611c24565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b610169610c10565b348015610462575f80fd5b50610169610471366004611c09565b610eb1565b478061049d5760405162461bcd60e51b815260040161049490611c5b565b60405180910390fd5b478111156104e35760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610494565b6008546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051a573d5f803e3d5ffd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d72905f90a150565b5f610552338484610f4b565b5060015b92915050565b5f546001600160a01b031633146105855760405162461bcd60e51b815260040161049490611c9d565b60648211158015610597575060648111155b6105e35760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610494565b600691909155600755565b5f6105fb6009600a611dc6565b61060990633b9aca00611dd4565b905090565b6001600160a01b0383165f908152600360209081526040808320338452909152812054828110156106925760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610494565b61069d85858561106e565b6106b185336106ac8685611deb565b610f4b565b506001949350505050565b5f546001600160a01b031633146106e55760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b0381165f9081526002602052604090205460ff1615156001036107515760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610494565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b5f546001600160a01b031633146107c55760405162461bcd60e51b815260040161049490611c9d565b600454610100900460ff161561081d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610494565b6004805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b4905f90a1565b5f546001600160a01b031633146108815760405162461bcd60e51b815260040161049490611c9d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108f25760405162461bcd60e51b815260040161049490611c9d565b600460068190556007556109086009600a611dc6565b61091690633b9aca00611dd4565b600e55565b5f61055233848461106e565b5f546001600160a01b031633146109505760405162461bcd60e51b815260040161049490611c9d565b306001600160a01b038316036109c75760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610494565b5f81116109e65760405162461bcd60e51b815260040161049490611c5b565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611dfe565b811115610a915760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610494565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190611e15565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a90905f90a25050565b5f546001600160a01b03163314610b5d5760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b0381165f9081526002602052604081205460ff1615159003610bc85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610494565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b5f546001600160a01b03163314610c395760405162461bcd60e51b815260040161049490611c9d565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610c9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190611e34565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d429190611e34565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190611e34565b600a80546001600160a01b0319166001600160a01b03928316179055600b54610ddd913091165f19610f4b565b600b546001600160a01b031663f305d7193430610e0e816001600160a01b03165f9081526001602052604090205490565b5f80610e215f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e87573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eac9190611e4f565b505050565b5f546001600160a01b03163314610eda5760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610494565b610f4881611836565b50565b6001600160a01b038316610fad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610494565b6001600160a01b03821661100e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610494565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610494565b6001600160a01b0382166111345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610494565b5f81116111955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610494565b6006546001600160a01b0384165f9081526002602052604090205460ff161580156111d857506001600160a01b0383165f9081526002602052604090205460ff16155b1561122a57600454610100900460ff1661122a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610494565b60045460ff1680611244575060045462010000900460ff16155b156112e3576001600160a01b0384165f9081526001602052604081208054849290611270908490611deb565b90915550506001600160a01b0383165f908152600160205260408120805484929061129c908490611e7a565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f48833981519152846040516112d591815260200190565b60405180910390a350505050565b600a546001600160a01b03858116911614801561130e5750600b546001600160a01b03848116911614155b801561133257506001600160a01b0383165f9081526002602052604090205460ff16155b1561141457600e548211156113855760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610494565b600e54826113a7856001600160a01b03165f9081526001602052604090205490565b6113b19190611e7a565b11156113ff5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610494565b60058054905f61140e83611e8d565b91905055505b600a546001600160a01b0385811691161480159061144a57506001600160a01b0384165f9081526002602052604090205460ff16155b801561146e57506001600160a01b0383165f9081526002602052604090205460ff16155b156114c157600e548211156114c15760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610494565b600a546001600160a01b0384811691161480156114e757506001600160a01b0384163014155b801561150b57506001600160a01b0384165f9081526002602052604090205460ff16155b801561152f57506001600160a01b0383165f9081526002602052604090205460ff16155b1561153957506007545b305f90815260016020526040902054600c5483108015906115675750600a546001600160a01b038581169116145b80156115755750600c548110155b8015611589575060045462010000900460ff165b8015611598575060045460ff16155b80156115a557505f600554115b80156115c957506001600160a01b0385165f9081526002602052604090205460ff16155b80156115ed57506001600160a01b0384165f9081526002602052604090205460ff16155b156116215761160f61160a8461160584600d54611885565b611885565b61189c565b47801561161f5761161f47611a50565b505b811561179a575f60646116348486611dd4565b61163e9190611ea5565b90505f61164b8286611deb565b6001600160a01b0388165f908152600260205260408120549192509060ff166116745730611676565b875b6001600160a01b0389165f9081526002602052604090205490915060ff1661169e57826116a0565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116cc908490611e7a565b909155505060405183815230906001600160a01b038a16905f80516020611f488339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611725908490611deb565b90915550506001600160a01b0387165f9081526001602052604081208054849290611751908490611e7a565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f488339815191528460405161178a91815260200190565b60405180910390a350505061182f565b6001600160a01b0385165f90815260016020526040812080548592906117c1908490611deb565b90915550506001600160a01b0384165f90815260016020526040812080548592906117ed908490611e7a565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f488339815191528560405161182691815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118935782611895565b815b9392505050565b6004805460ff19166001179055806118f65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610494565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061192957611929611ec4565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a49190611e34565b816001815181106119b7576119b7611ec4565b6001600160a01b039283166020918202929092010152600b546119dd9130911684610f4b565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a159085905f90869030904290600401611ed8565b5f604051808303815f87803b158015611a2c575f80fd5b505af1158015611a3e573d5f803e3d5ffd5b50506004805460ff1916905550505050565b5f8111611a9f5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610494565b6009546001600160a01b03166108fc611ab9600284611ea5565b6040518115909202915f818181858888f19350505050158015611ade573d5f803e3d5ffd5b506008546001600160a01b03166108fc611af9600284611ea5565b6040518115909202915f818181858888f19350505050158015611b1e573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b4d57858101830151858201604001528201611b31565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f48575f80fd5b5f8060408385031215611b92575f80fd5b8235611b9d81611b6d565b946020939093013593505050565b5f8060408385031215611bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215611bdd575f80fd5b8335611be881611b6d565b92506020840135611bf881611b6d565b929592945050506040919091013590565b5f60208284031215611c19575f80fd5b813561189581611b6d565b5f8060408385031215611c35575f80fd5b8235611c4081611b6d565b91506020830135611c5081611b6d565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d2057815f1904821115611d0657611d06611cd2565b80851615611d1357918102915b93841c9390800290611ceb565b509250929050565b5f82611d3657506001610556565b81611d4257505f610556565b8160018114611d585760028114611d6257611d7e565b6001915050610556565b60ff841115611d7357611d73611cd2565b50506001821b610556565b5060208310610133831016604e8410600b8410161715611da1575081810a610556565b611dab8383611ce6565b805f1904821115611dbe57611dbe611cd2565b029392505050565b5f61189560ff841683611d28565b808202811582820484141761055657610556611cd2565b8181038181111561055657610556611cd2565b5f60208284031215611e0e575f80fd5b5051919050565b5f60208284031215611e25575f80fd5b81518015158114611895575f80fd5b5f60208284031215611e44575f80fd5b815161189581611b6d565b5f805f60608486031215611e61575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055657610556611cd2565b5f60018201611e9e57611e9e611cd2565b5060010190565b5f82611ebf57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f265784516001600160a01b031683529383019391830191600101611f01565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204424119ada765c99660c2db5b7aa95ba1fade0752395c3509b26ab53b2cfdd6864736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c806370a08231116100b3578063b29a81401161006d578063b29a8140146103af578063c1899962146103ce578063d621e813146103ed578063dd62ed3e1461040b578063ed9953071461044f578063f2fde38b14610457575f80fd5b806370a08231146102ec578063715018a614610320578063751039fc146103345780638da5cb5b1461034857806395d89b4114610364578063a9059cbb14610390575f80fd5b806323b872dd1161010457806323b872dd1461025557806327c8f83514610274578063313ce5671461028957806357a00f76146102a4578063626b29c4146102c357806369ceb844146102d8575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ae5780630b78f9c0146101dd5780631694505e146101fc57806318160ddd14610233575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610476565b005b348015610176575f80fd5b50604080518082019091526009815268111bdd9948141bdbdb60ba1b60208201525b6040516101a59190611b22565b60405180910390f35b3480156101b9575f80fd5b506101cd6101c8366004611b81565b610546565b60405190151581526020016101a5565b3480156101e8575f80fd5b506101696101f7366004611bab565b61055c565b348015610207575f80fd5b50600b5461021b906001600160a01b031681565b6040516001600160a01b0390911681526020016101a5565b34801561023e575f80fd5b506102476105ee565b6040519081526020016101a5565b348015610260575f80fd5b506101cd61026f366004611bcb565b61060e565b34801561027f575f80fd5b5061021b61dead81565b348015610294575f80fd5b50604051600981526020016101a5565b3480156102af575f80fd5b506101696102be366004611c09565b6106bc565b3480156102ce575f80fd5b50610247600e5481565b3480156102e3575f80fd5b5061016961079c565b3480156102f7575f80fd5b50610247610306366004611c09565b6001600160a01b03165f9081526001602052604090205490565b34801561032b575f80fd5b50610169610858565b34801561033f575f80fd5b506101696108c9565b348015610353575f80fd5b505f546001600160a01b031661021b565b34801561036f575f80fd5b50604080518082019091526004815263444f564560e01b6020820152610198565b34801561039b575f80fd5b506101cd6103aa366004611b81565b61091b565b3480156103ba575f80fd5b506101696103c9366004611b81565b610927565b3480156103d9575f80fd5b506101696103e8366004611c09565b610b34565b3480156103f8575f80fd5b506004546101cd90610100900460ff1681565b348015610416575f80fd5b50610247610425366004611c24565b6001600160a01b039182165f90815260036020908152604080832093909416825291909152205490565b610169610c10565b348015610462575f80fd5b50610169610471366004611c09565b610eb1565b478061049d5760405162461bcd60e51b815260040161049490611c5b565b60405180910390fd5b478111156104e35760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610494565b6008546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561051a573d5f803e3d5ffd5b506040517f3bb0684d6f9d76c7e55b7c296d6672f480511b6f9a014d1dd32b6288bd632d72905f90a150565b5f610552338484610f4b565b5060015b92915050565b5f546001600160a01b031633146105855760405162461bcd60e51b815260040161049490611c9d565b60648211158015610597575060648111155b6105e35760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610494565b600691909155600755565b5f6105fb6009600a611dc6565b61060990633b9aca00611dd4565b905090565b6001600160a01b0383165f908152600360209081526040808320338452909152812054828110156106925760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610494565b61069d85858561106e565b6106b185336106ac8685611deb565b610f4b565b506001949350505050565b5f546001600160a01b031633146106e55760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b0381165f9081526002602052604090205460ff1615156001036107515760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610494565b6001600160a01b0381165f81815260026020526040808220805460ff19166001179055517f3b27b77c12873f49f9de6c571431dd7c5b1e847f180217efc51f654b835407069190a250565b5f546001600160a01b031633146107c55760405162461bcd60e51b815260040161049490611c9d565b600454610100900460ff161561081d5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610494565b6004805462ffff001916620101001790556040517fd3c2fdcaf5cd26a75c5d60e014554eb53dc349069d8db1f275187743614b17b4905f90a1565b5f546001600160a01b031633146108815760405162461bcd60e51b815260040161049490611c9d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108f25760405162461bcd60e51b815260040161049490611c9d565b600460068190556007556109086009600a611dc6565b61091690633b9aca00611dd4565b600e55565b5f61055233848461106e565b5f546001600160a01b031633146109505760405162461bcd60e51b815260040161049490611c9d565b306001600160a01b038316036109c75760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610494565b5f81116109e65760405162461bcd60e51b815260040161049490611c5b565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610a28573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a4c9190611dfe565b811115610a915760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610494565b60085460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610ae1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b059190611e15565b5060405181907fb27b69782743fafd4beb1c4e47d050e6a008a7e5e7c9b7330c78a65238498a90905f90a25050565b5f546001600160a01b03163314610b5d5760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b0381165f9081526002602052604081205460ff1615159003610bc85760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610494565b6001600160a01b0381165f81815260026020526040808220805460ff19169055517f2787cd66e3c6209ac87ec0b3968ae31a8b953e70a037317f53c3e3e67b101e229190a250565b5f546001600160a01b03163314610c395760405162461bcd60e51b815260040161049490611c9d565b600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610c9b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cbf9190611e34565b6001600160a01b031663c9c6539630600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d429190611e34565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d8c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610db09190611e34565b600a80546001600160a01b0319166001600160a01b03928316179055600b54610ddd913091165f19610f4b565b600b546001600160a01b031663f305d7193430610e0e816001600160a01b03165f9081526001602052604090205490565b5f80610e215f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e87573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eac9190611e4f565b505050565b5f546001600160a01b03163314610eda5760405162461bcd60e51b815260040161049490611c9d565b6001600160a01b038116610f3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610494565b610f4881611836565b50565b6001600160a01b038316610fad5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610494565b6001600160a01b03821661100e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610494565b6001600160a01b038381165f8181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110d25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610494565b6001600160a01b0382166111345760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610494565b5f81116111955760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610494565b6006546001600160a01b0384165f9081526002602052604090205460ff161580156111d857506001600160a01b0383165f9081526002602052604090205460ff16155b1561122a57600454610100900460ff1661122a5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610494565b60045460ff1680611244575060045462010000900460ff16155b156112e3576001600160a01b0384165f9081526001602052604081208054849290611270908490611deb565b90915550506001600160a01b0383165f908152600160205260408120805484929061129c908490611e7a565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f48833981519152846040516112d591815260200190565b60405180910390a350505050565b600a546001600160a01b03858116911614801561130e5750600b546001600160a01b03848116911614155b801561133257506001600160a01b0383165f9081526002602052604090205460ff16155b1561141457600e548211156113855760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610494565b600e54826113a7856001600160a01b03165f9081526001602052604090205490565b6113b19190611e7a565b11156113ff5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610494565b60058054905f61140e83611e8d565b91905055505b600a546001600160a01b0385811691161480159061144a57506001600160a01b0384165f9081526002602052604090205460ff16155b801561146e57506001600160a01b0383165f9081526002602052604090205460ff16155b156114c157600e548211156114c15760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610494565b600a546001600160a01b0384811691161480156114e757506001600160a01b0384163014155b801561150b57506001600160a01b0384165f9081526002602052604090205460ff16155b801561152f57506001600160a01b0383165f9081526002602052604090205460ff16155b1561153957506007545b305f90815260016020526040902054600c5483108015906115675750600a546001600160a01b038581169116145b80156115755750600c548110155b8015611589575060045462010000900460ff165b8015611598575060045460ff16155b80156115a557505f600554115b80156115c957506001600160a01b0385165f9081526002602052604090205460ff16155b80156115ed57506001600160a01b0384165f9081526002602052604090205460ff16155b156116215761160f61160a8461160584600d54611885565b611885565b61189c565b47801561161f5761161f47611a50565b505b811561179a575f60646116348486611dd4565b61163e9190611ea5565b90505f61164b8286611deb565b6001600160a01b0388165f908152600260205260408120549192509060ff166116745730611676565b875b6001600160a01b0389165f9081526002602052604090205490915060ff1661169e57826116a0565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116cc908490611e7a565b909155505060405183815230906001600160a01b038a16905f80516020611f488339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611725908490611deb565b90915550506001600160a01b0387165f9081526001602052604081208054849290611751908490611e7a565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f488339815191528460405161178a91815260200190565b60405180910390a350505061182f565b6001600160a01b0385165f90815260016020526040812080548592906117c1908490611deb565b90915550506001600160a01b0384165f90815260016020526040812080548592906117ed908490611e7a565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f488339815191528560405161182691815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118935782611895565b815b9392505050565b6004805460ff19166001179055806118f65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610494565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061192957611929611ec4565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611980573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a49190611e34565b816001815181106119b7576119b7611ec4565b6001600160a01b039283166020918202929092010152600b546119dd9130911684610f4b565b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a159085905f90869030904290600401611ed8565b5f604051808303815f87803b158015611a2c575f80fd5b505af1158015611a3e573d5f803e3d5ffd5b50506004805460ff1916905550505050565b5f8111611a9f5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610494565b6009546001600160a01b03166108fc611ab9600284611ea5565b6040518115909202915f818181858888f19350505050158015611ade573d5f803e3d5ffd5b506008546001600160a01b03166108fc611af9600284611ea5565b6040518115909202915f818181858888f19350505050158015611b1e573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b4d57858101830151858201604001528201611b31565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f48575f80fd5b5f8060408385031215611b92575f80fd5b8235611b9d81611b6d565b946020939093013593505050565b5f8060408385031215611bbc575f80fd5b50508035926020909101359150565b5f805f60608486031215611bdd575f80fd5b8335611be881611b6d565b92506020840135611bf881611b6d565b929592945050506040919091013590565b5f60208284031215611c19575f80fd5b813561189581611b6d565b5f8060408385031215611c35575f80fd5b8235611c4081611b6d565b91506020830135611c5081611b6d565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d2057815f1904821115611d0657611d06611cd2565b80851615611d1357918102915b93841c9390800290611ceb565b509250929050565b5f82611d3657506001610556565b81611d4257505f610556565b8160018114611d585760028114611d6257611d7e565b6001915050610556565b60ff841115611d7357611d73611cd2565b50506001821b610556565b5060208310610133831016604e8410600b8410161715611da1575081810a610556565b611dab8383611ce6565b805f1904821115611dbe57611dbe611cd2565b029392505050565b5f61189560ff841683611d28565b808202811582820484141761055657610556611cd2565b8181038181111561055657610556611cd2565b5f60208284031215611e0e575f80fd5b5051919050565b5f60208284031215611e25575f80fd5b81518015158114611895575f80fd5b5f60208284031215611e44575f80fd5b815161189581611b6d565b5f805f60608486031215611e61575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055657610556611cd2565b5f60018201611e9e57611e9e611cd2565b5060010190565b5f82611ebf57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f265784516001600160a01b031683529383019391830191600101611f01565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204424119ada765c99660c2db5b7aa95ba1fade0752395c3509b26ab53b2cfdd6864736f6c63430008140033

Deployed Bytecode Sourcemap

3707:10536:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7062:405;;;;;;;;;;;;;:::i;:::-;;5758:83;;;;;;;;;;-1:-1:-1;5828:5:0;;;;;;;;;;;;-1:-1:-1;;;5828:5:0;;;;5758:83;;;;;;;:::i;:::-;;;;;;;;12308:186;;;;;;;;;;-1:-1:-1;12308:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;12308:186:0;1023:187:1;6262:225:0;;;;;;;;;;-1:-1:-1;6262:225:0;;;;;:::i;:::-;;:::i;4398:30::-;;;;;;;;;;-1:-1:-1;4398:30:0;;;;-1:-1:-1;;;;;4398:30:0;;;;;;-1:-1:-1;;;;;1647:32:1;;;1629:51;;1617:2;1602:18;4398:30:0;1468:218:1;6029:100:0;;;;;;;;;;;;;:::i;:::-;;;1837:25:1;;;1825:2;1810:18;6029:100:0;1691:177:1;7475:481:0;;;;;;;;;;-1:-1:-1;7475:481:0;;;;;:::i;:::-;;:::i;4261:94::-;;;;;;;;;;;;4313:42;4261:94;;5940:83;;;;;;;;;;-1:-1:-1;5940:83:0;;4472:1;2684:36:1;;2672:2;2657:18;5940:83:0;2542:184:1;13662:284:0;;;;;;;;;;-1:-1:-1;13662:284:0;;;;;:::i;:::-;;:::i;4796:53::-;;;;;;;;;;;;;;;;13333:206;;;;;;;;;;;;;:::i;6135:119::-;;;;;;;;;;-1:-1:-1;6135:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6228:18:0;6201:7;6228:18;;;:9;:18;;;;;;;6135:119;2900:148;;;;;;;;;;;;;:::i;7964:137::-;;;;;;;;;;;;;:::i;2249:79::-;;;;;;;;;;-1:-1:-1;2287:7:0;2314:6;-1:-1:-1;;;;;2314:6:0;2249:79;;5847:87;;;;;;;;;;-1:-1:-1;5919:7:0;;;;;;;;;;;;-1:-1:-1;;;5919:7:0;;;;5847:87;;11936:192;;;;;;;;;;-1:-1:-1;11936:192:0;;;;;:::i;:::-;;:::i;6495:559::-;;;;;;;;;;-1:-1:-1;6495:559:0;;;;;:::i;:::-;;:::i;13954:286::-;;;;;;;;;;-1:-1:-1;13954:286:0;;;;;:::i;:::-;;:::i;3980:32::-;;;;;;;;;;-1:-1:-1;3980:32:0;;;;;;;;;;;12134:168;;;;;;;;;;-1:-1:-1;12134:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;12267:18:0;;;12240:7;12267:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12134:168;12502:614;;;:::i;2459:238::-;;;;;;;;;;-1:-1:-1;2459:238:0;;;;;:::i;:::-;;:::i;7062:405::-;7132:21;7172;7164:68;;;;-1:-1:-1;;;7164:68:0;;;;;;;:::i;:::-;;;;;;;;;7286:21;7265:17;:42;;7243:111;;;;-1:-1:-1;;;7243:111:0;;3981:2:1;7243:111:0;;;3963:21:1;4020:2;4000:18;;;3993:30;-1:-1:-1;;;4039:18:1;;;4032:49;4098:18;;7243:111:0;3779:343:1;7243:111:0;7381:10;;7365:56;;-1:-1:-1;;;;;7381:10:0;;;;7365:56;;;;;7403:17;;7381:10;7365:56;7381:10;7365:56;7403:17;7381:10;7365:56;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7437:22:0;;;;;;;7093:374;7062:405::o;12308:186::-;12408:4;12425:39;1886:10;12448:7;12457:6;12425:8;:39::i;:::-;-1:-1:-1;12482:4:0;12308:186;;;;;:::o;6262:225::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;6363:3:::1;6352:7;:14;;:33;;;;;6382:3;6370:8;:15;;6352:33;6344:71;;;::::0;-1:-1:-1;;;6344:71:0;;4690:2:1;6344:71:0::1;::::0;::::1;4672:21:1::0;4729:2;4709:18;;;4702:30;4768:27;4748:18;;;4741:55;4813:18;;6344:71:0::1;4488:349:1::0;6344:71:0::1;6426:10;:20:::0;;;;6457:11:::1;:22:::0;6262:225::o;6029:100::-;6082:7;4533:15;4472:1;4533:2;:15;:::i;:::-;4520:28;;:10;:28;:::i;:::-;6102:19;;6029:100;:::o;7475:481::-;-1:-1:-1;;;;;7651:19:0;;7607:4;7651:19;;;:11;:19;;;;;;;;1886:10;7651:33;;;;;;;;7717:26;;;;7695:116;;;;-1:-1:-1;;;7695:116:0;;6732:2:1;7695:116:0;;;6714:21:1;6771:2;6751:18;;;6744:30;6810:34;6790:18;;;6783:62;-1:-1:-1;;;6861:18:1;;;6854:38;6909:19;;7695:116:0;6530:404:1;7695:116:0;7822:36;7832:6;7840:9;7851:6;7822:9;:36::i;:::-;7869:57;7878:6;1886:10;7900:25;7919:6;7900:16;:25;:::i;:::-;7869:8;:57::i;:::-;-1:-1:-1;7944:4:0;;7475:481;-1:-1:-1;;;;7475:481:0:o;13662:284::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13756:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:35;;:27:::0;:35;13734:112:::1;;;::::0;-1:-1:-1;;;13734:112:0;;7274:2:1;13734:112:0::1;::::0;::::1;7256:21:1::0;7313:2;7293:18;;;7286:30;7352:29;7332:18;;;7325:57;7399:18;;13734:112:0::1;7072:351:1::0;13734:112:0::1;-1:-1:-1::0;;;;;13857:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;:34;;-1:-1:-1;;13857:34:0::1;13887:4;13857:34;::::0;;13907:31;::::1;::::0;13857:27;13907:31:::1;13662:284:::0;:::o;13333:206::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;13393:12:::1;::::0;::::1;::::0;::::1;;;13392:13;13384:49;;;::::0;-1:-1:-1;;;13384:49:0;;7630:2:1;13384:49:0::1;::::0;::::1;7612:21:1::0;7669:2;7649:18;;;7642:30;7708:25;7688:18;;;7681:53;7751:18;;13384:49:0::1;7428:347:1::0;13384:49:0::1;13444:12;:19:::0;;-1:-1:-1;;13474:18:0;;;;;13508:23:::1;::::0;::::1;::::0;-1:-1:-1;;13508:23:0::1;13333:206::o:0;2900:148::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;3007:1:::1;2991:6:::0;;2970:40:::1;::::0;-1:-1:-1;;;;;2991:6:0;;::::1;::::0;2970:40:::1;::::0;3007:1;;2970:40:::1;3038:1;3021:19:::0;;-1:-1:-1;;;;;;3021:19:0::1;::::0;;2900:148::o;7964:137::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;8031:1:::1;8018:10;:14:::0;;;8043:11:::1;:15:::0;4533::::1;4472:1;4533:2;:15;:::i;:::-;4520:28;::::0;:10:::1;:28;:::i;:::-;8069:9;:24:::0;7964:137::o;11936:192::-;12039:4;12056:42;1886:10;12080:9;12091:6;12056:9;:42::i;6495:559::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;6653:4:::1;-1:-1:-1::0;;;;;6631:27:0;::::1;::::0;6609:131:::1;;;::::0;-1:-1:-1;;;6609:131:0;;7982:2:1;6609:131:0::1;::::0;::::1;7964:21:1::0;8021:2;8001:18;;;7994:30;8060:34;8040:18;;;8033:62;-1:-1:-1;;;8111:18:1;;;8104:52;8173:19;;6609:131:0::1;7780:418:1::0;6609:131:0::1;6769:1;6759:7;:11;6751:58;;;;-1:-1:-1::0;;;6751:58:0::1;;;;;;;:::i;:::-;6853:43;::::0;-1:-1:-1;;;6853:43:0;;6890:4:::1;6853:43;::::0;::::1;1629:51:1::0;-1:-1:-1;;;;;6853:28:0;::::1;::::0;::::1;::::0;1602:18:1;;6853:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6842:7;:54;;6820:123;;;::::0;-1:-1:-1;;;6820:123:0;;3981:2:1;6820:123:0::1;::::0;::::1;3963:21:1::0;4020:2;4000:18;;;3993:30;-1:-1:-1;;;4039:18:1;;;4032:49;4098:18;;6820:123:0::1;3779:343:1::0;6820:123:0::1;6982:10;::::0;6954:48:::1;::::0;-1:-1:-1;;;6954:48:0;;-1:-1:-1;;;;;6982:10:0;;::::1;6954:48;::::0;::::1;8574:51:1::0;8641:18;;;8634:34;;;6954:27:0;;::::1;::::0;::::1;::::0;8547:18:1;;6954:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7018:28:0::1;::::0;7038:7;;7018:28:::1;::::0;;;::::1;6495:559:::0;;:::o;13954:286::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14048:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;::::1;;:36;;::::0;;14026:113:::1;;;::::0;-1:-1:-1;;;14026:113:0;;9163:2:1;14026:113:0::1;::::0;::::1;9145:21:1::0;9202:2;9182:18;;;9175:30;9241:29;9221:18;;;9214:57;9288:18;;14026:113:0::1;8961:351:1::0;14026:113:0::1;-1:-1:-1::0;;;;;14150:27:0;::::1;14180:5;14150:27:::0;;;:18:::1;:27;::::0;;;;;:35;;-1:-1:-1;;14150:35:0::1;::::0;;14201:31;::::1;::::0;14180:5;14201:31:::1;13954:286:::0;:::o;12502:614::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;12567:15:::1;:93:::0;;-1:-1:-1;;;;;;12567:93:0::1;12607:42;12567:93:::0;;::::1;::::0;;;12696:25:::1;::::0;;-1:-1:-1;;;12696:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;12607:42;12696:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12687:46:0::1;;12756:4;12776:15;;;;;;;;;-1:-1:-1::0;;;;;12776:15:0::1;-1:-1:-1::0;;;;;12776:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12687:122;::::0;-1:-1:-1;;;;;;12687:122:0::1;::::0;;;;;;-1:-1:-1;;;;;9803:15:1;;;12687:122:0::1;::::0;::::1;9785:34:1::0;9855:15;;9835:18;;;9828:43;9720:18;;12687:122:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12671:13;:138:::0;;-1:-1:-1;;;;;;12671:138:0::1;-1:-1:-1::0;;;;;12671:138:0;;::::1;;::::0;;12854:15:::1;::::0;12822:62:::1;::::0;12839:4:::1;::::0;12854:15:::1;-1:-1:-1::0;;12822:8:0::1;:62::i;:::-;12897:15;::::0;-1:-1:-1;;;;;12897:15:0::1;:31;12936:9;12969:4;12989:24;12969:4:::0;-1:-1:-1;;;;;6228:18:0;6201:7;6228:18;;;:9;:18;;;;;;;6135:119;12989:24:::1;13028:1;13044::::0;13060:7:::1;2287::::0;2314:6;-1:-1:-1;;;;;2314:6:0;;2249:79;13060:7:::1;12897:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12897:211:0;;;-1:-1:-1;;;;;10241:15:1;;;12897:211:0::1;::::0;::::1;10223:34:1::0;10273:18;;;10266:34;;;;10316:18;;;10309:34;;;;10359:18;;;10352:34;10423:15;;;10402:19;;;10395:44;13082:15:0::1;10455:19:1::0;;;10448:35;10157:19;;12897:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12502:614::o:0;2459:238::-;2374:6;;-1:-1:-1;;;;;2374:6:0;1886:10;2374:22;2366:67;;;;-1:-1:-1;;;2366:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2562:22:0;::::1;2540:110;;;::::0;-1:-1:-1;;;2540:110:0;;11007:2:1;2540:110:0::1;::::0;::::1;10989:21:1::0;11046:2;11026:18;;;11019:30;11085:34;11065:18;;;11058:62;-1:-1:-1;;;11136:18:1;;;11129:36;11182:19;;2540:110:0::1;10805:402:1::0;2540:110:0::1;2661:28;2680:8;2661:18;:28::i;:::-;2459:238:::0;:::o;11595:335::-;-1:-1:-1;;;;;11688:19:0;;11680:68;;;;-1:-1:-1;;;11680:68:0;;11414:2:1;11680:68:0;;;11396:21:1;11453:2;11433:18;;;11426:30;11492:34;11472:18;;;11465:62;-1:-1:-1;;;11543:18:1;;;11536:34;11587:19;;11680:68:0;11212:400:1;11680:68:0;-1:-1:-1;;;;;11767:21:0;;11759:68;;;;-1:-1:-1;;;11759:68:0;;11819:2:1;11759:68:0;;;11801:21:1;11858:2;11838:18;;;11831:30;11897:34;11877:18;;;11870:62;-1:-1:-1;;;11948:18:1;;;11941:32;11990:19;;11759:68:0;11617:398:1;11759:68:0;-1:-1:-1;;;;;11838:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11890:32;;1837:25:1;;;11890:32:0;;1810:18:1;11890:32:0;;;;;;;11595:335;;;:::o;8664:2886::-;-1:-1:-1;;;;;8752:18:0;;8744:68;;;;-1:-1:-1;;;8744:68:0;;12222:2:1;8744:68:0;;;12204:21:1;12261:2;12241:18;;;12234:30;12300:34;12280:18;;;12273:62;-1:-1:-1;;;12351:18:1;;;12344:35;12396:19;;8744:68:0;12020:401:1;8744:68:0;-1:-1:-1;;;;;8831:16:0;;8823:64;;;;-1:-1:-1;;;8823:64:0;;12628:2:1;8823:64:0;;;12610:21:1;12667:2;12647:18;;;12640:30;12706:34;12686:18;;;12679:62;-1:-1:-1;;;12757:18:1;;;12750:33;12800:19;;8823:64:0;12426:399:1;8823:64:0;8915:1;8906:6;:10;8898:64;;;;-1:-1:-1;;;8898:64:0;;13032:2:1;8898:64:0;;;13014:21:1;13071:2;13051:18;;;13044:30;13110:34;13090:18;;;13083:62;-1:-1:-1;;;13161:18:1;;;13154:39;13210:19;;8898:64:0;12830:405:1;8898:64:0;9017:10;;-1:-1:-1;;;;;9043:24:0;;8973:17;9043:24;;;:18;:24;;;;;;;;9042:25;:52;;;;-1:-1:-1;;;;;;9072:22:0;;;;;;:18;:22;;;;;;;;9071:23;9042:52;9038:129;;;9119:12;;;;;;;9111:44;;;;-1:-1:-1;;;9111:44:0;;13442:2:1;9111:44:0;;;13424:21:1;13481:2;13461:18;;;13454:30;-1:-1:-1;;;13500:18:1;;;13493:49;13559:18;;9111:44:0;13240:343:1;9111:44:0;9181:10;;;;;:26;;-1:-1:-1;9196:11:0;;;;;;;9195:12;9181:26;9177:189;;;-1:-1:-1;;;;;9224:15:0;;;;;;:9;:15;;;;;:25;;9243:6;;9224:15;:25;;9243:6;;9224:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9264:13:0;;;;;;:9;:13;;;;;:23;;9281:6;;9264:13;:23;;9281:6;;9264:23;:::i;:::-;;;;;;;;9322:2;-1:-1:-1;;;;;9307:26:0;9316:4;-1:-1:-1;;;;;9307:26:0;-1:-1:-1;;;;;;;;;;;9326:6:0;9307:26;;;;1837:25:1;;1825:2;1810:18;;1691:177;9307:26:0;;;;;;;;9348:7;8664:2886;;;:::o;9177:189::-;9402:13;;-1:-1:-1;;;;;9394:21:0;;;9402:13;;9394:21;:68;;;;-1:-1:-1;9446:15:0;;-1:-1:-1;;;;;9432:30:0;;;9446:15;;9432:30;;9394:68;:108;;;;-1:-1:-1;;;;;;9480:22:0;;;;;;:18;:22;;;;;;;;9479:23;9394:108;9376:385;;;9547:9;;9537:6;:19;;9529:57;;;;-1:-1:-1;;;9529:57:0;;13920:2:1;9529:57:0;;;13902:21:1;13959:2;13939:18;;;13932:30;-1:-1:-1;;;13978:18:1;;;13971:55;14043:18;;9529:57:0;13718:349:1;9529:57:0;9653:9;;9643:6;9627:13;9637:2;-1:-1:-1;;;;;6228:18:0;6201:7;6228:18;;;:9;:18;;;;;;;6135:119;9627:13;:22;;;;:::i;:::-;:35;;9601:123;;;;-1:-1:-1;;;9601:123:0;;14274:2:1;9601:123:0;;;14256:21:1;14313:2;14293:18;;;14286:30;14352:28;14332:18;;;14325:56;14398:18;;9601:123:0;14072:350:1;9601:123:0;9739:8;:10;;;:8;:10;;;:::i;:::-;;;;;;9376:385;9797:13;;-1:-1:-1;;;;;9789:21:0;;;9797:13;;9789:21;;;;:63;;-1:-1:-1;;;;;;9828:24:0;;;;;;:18;:24;;;;;;;;9827:25;9789:63;:103;;;;-1:-1:-1;;;;;;9870:22:0;;;;;;:18;:22;;;;;;;;9869:23;9789:103;9771:217;;;9937:9;;9927:6;:19;;9919:57;;;;-1:-1:-1;;;9919:57:0;;13920:2:1;9919:57:0;;;13902:21:1;13959:2;13939:18;;;13932:30;-1:-1:-1;;;13978:18:1;;;13971:55;14043:18;;9919:57:0;13718:349:1;9919:57:0;10022:13;;-1:-1:-1;;;;;10016:19:0;;;10022:13;;10016:19;:57;;;;-1:-1:-1;;;;;;10052:21:0;;10068:4;10052:21;;10016:57;:99;;;;-1:-1:-1;;;;;;10091:24:0;;;;;;:18;:24;;;;;;;;10090:25;10016:99;:139;;;;-1:-1:-1;;;;;;10133:22:0;;;;;;:18;:22;;;;;;;;10132:23;10016:139;9998:219;;;-1:-1:-1;10194:11:0;;9998:219;10277:4;10227:29;6228:18;;;:9;:18;;;;;;10322:11;;10312:21;;;;;:57;;-1:-1:-1;10356:13:0;;-1:-1:-1;;;;;10350:19:0;;;10356:13;;10350:19;10312:57;:110;;;;;10411:11;;10386:21;:36;;10312:110;:138;;;;-1:-1:-1;10439:11:0;;;;;;;10312:138;:166;;;;-1:-1:-1;10468:10:0;;;;10467:11;10312:166;:195;;;;;10506:1;10495:8;;:12;10312:195;:237;;;;-1:-1:-1;;;;;;10525:24:0;;;;;;:18;:24;;;;;;;;10524:25;10312:237;:277;;;;-1:-1:-1;;;;;;10567:22:0;;;;;;:18;:22;;;;;;;;10566:23;10312:277;10294:575;;;10616:67;10628:54;10632:6;10640:41;10644:21;10667:13;;10640:3;:41::i;:::-;10628:3;:54::i;:::-;10616:11;:67::i;:::-;10726:21;10766;;10762:96;;10808:34;10820:21;10808:11;:34::i;:::-;10601:268;10294:575;10883:14;;10879:664;;10914:14;10954:3;10932:18;10941:9;10932:6;:18;:::i;:::-;10931:26;;;;:::i;:::-;10914:43;-1:-1:-1;10972:17:0;10992:15;10914:43;10992:6;:15;:::i;:::-;-1:-1:-1;;;;;11043:24:0;;11022:18;11043:24;;;:18;:24;;;;;;10972:35;;-1:-1:-1;11022:18:0;11043:24;;:47;;11085:4;11043:47;;;11070:4;11043:47;-1:-1:-1;;;;;11114:24:0;;;;;;:18;:24;;;;;;11022:68;;-1:-1:-1;11114:24:0;;:42;;11150:6;11114:42;;;11141:6;11114:42;-1:-1:-1;;;;;11171:21:0;;;;;;:9;:21;;;;;:31;;11105:51;;-1:-1:-1;11105:51:0;;11171:21;;;:31;;11105:51;;11171:31;:::i;:::-;;;;-1:-1:-1;;11222:37:0;;1837:25:1;;;11245:4:0;;-1:-1:-1;;;;;11222:37:0;;;-1:-1:-1;;;;;;;;;;;11222:37:0;1825:2:1;1810:18;11222:37:0;;;;;;;-1:-1:-1;;;;;11274:15:0;;;;;;:9;:15;;;;;:25;;11293:6;;11274:15;:25;;11293:6;;11274:25;:::i;:::-;;;;-1:-1:-1;;;;;;;11314:13:0;;;;;;:9;:13;;;;;:26;;11331:9;;11314:13;:26;;11331:9;;11314:26;:::i;:::-;;;;;;;;11375:2;-1:-1:-1;;;;;11360:29:0;11369:4;-1:-1:-1;;;;;11360:29:0;-1:-1:-1;;;;;;;;;;;11379:9:0;11360:29;;;;1837:25:1;;1825:2;1810:18;;1691:177;11360:29:0;;;;;;;;10899:502;;;10879:664;;;-1:-1:-1;;;;;11422:15:0;;;;;;:9;:15;;;;;:25;;11441:6;;11422:15;:25;;11441:6;;11422:25;:::i;:::-;;;;-1:-1:-1;;;;;;;11462:13:0;;;;;;:9;:13;;;;;:23;;11479:6;;11462:13;:23;;11479:6;;11462:23;:::i;:::-;;;;;;;;11520:2;-1:-1:-1;;;;;11505:26:0;11514:4;-1:-1:-1;;;;;11505:26:0;-1:-1:-1;;;;;;;;;;;11524:6:0;11505:26;;;;1837:25:1;;1825:2;1810:18;;1691:177;11505:26:0;;;;;;;;10879:664;8733:2817;;8664:2886;;;:::o;2703:191::-;2777:16;2796:6;;-1:-1:-1;;;;;2813:17:0;;;-1:-1:-1;;;;;;2813:17:0;;;;;;2846:40;;2796:6;;;;;;;2846:40;;2777:16;2846:40;2766:128;2703:191;:::o;13547:107::-;13604:7;13636:1;13632;:5;13631:15;;13645:1;13631:15;;;13641:1;13631:15;13624:22;13547:107;-1:-1:-1;;;13547:107:0:o;8109:547::-;4893:10;:17;;-1:-1:-1;;4893:17:0;4906:4;4893:17;;;8191:15;8183:57:::1;;;::::0;-1:-1:-1;;;8183:57:0;;14991:2:1;8183:57:0::1;::::0;::::1;14973:21:1::0;15030:2;15010:18;;;15003:30;15069:31;15049:18;;;15042:59;15118:18;;8183:57:0::1;14789:353:1::0;8183:57:0::1;8275:16;::::0;;8289:1:::1;8275:16:::0;;;;;::::1;::::0;;8251:21:::1;::::0;8275:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8275:16:0::1;8251:40;;8320:4;8302;8307:1;8302:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8302:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8346:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8346:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8302:7;;8346:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8336:4;8341:1;8336:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8336:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8411:15:::1;::::0;8379:62:::1;::::0;8396:4:::1;::::0;8411:15:::1;8429:11:::0;8379:8:::1;:62::i;:::-;8452:15;::::0;:196:::1;::::0;-1:-1:-1;;;8452:196:0;;-1:-1:-1;;;;;8452:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8533:11;;8452:15:::1;::::0;8575:4;;8602::::1;::::0;8622:15:::1;::::0;8452:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4933:10:0;:18;;-1:-1:-1;;4933:18:0;;;-1:-1:-1;;;;8109:547:0:o;13124:201::-;13197:1;13188:6;:10;13180:52;;;;-1:-1:-1;;;13180:52:0;;14991:2:1;13180:52:0;;;14973:21:1;15030:2;15010:18;;;15003:30;15069:31;15049:18;;;15042:59;15118:18;;13180:52:0;14789:353:1;13180:52:0;13243:11;;-1:-1:-1;;;;;13243:11:0;:32;13264:10;13273:1;13264:6;:10;:::i;:::-;13243:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13286:10:0;;-1:-1:-1;;;;;13286:10:0;:31;13306:10;13315:1;13306:6;:10;:::i;:::-;13286:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13124:201;:::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;1873:456::-;1950:6;1958;1966;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;:::-;2143:5;-1:-1:-1;2200:2:1;2185:18;;2172:32;2213:33;2172:32;2213:33;:::i;:::-;1873:456;;2265:7;;-1:-1:-1;;;2319:2:1;2304:18;;;;2291:32;;1873:456::o;2731:247::-;2790:6;2843:2;2831:9;2822:7;2818:23;2814:32;2811:52;;;2859:1;2856;2849:12;2811:52;2898:9;2885:23;2917:31;2942:5;2917:31;:::i;2983:388::-;3051:6;3059;3112:2;3100:9;3091:7;3087:23;3083:32;3080:52;;;3128:1;3125;3118:12;3080:52;3167:9;3154:23;3186:31;3211:5;3186:31;:::i;:::-;3236:5;-1:-1:-1;3293:2:1;3278:18;;3265:32;3306:33;3265:32;3306:33;:::i;:::-;3358:7;3348:17;;;2983:388;;;;;:::o;3376:398::-;3578:2;3560:21;;;3617:2;3597:18;;;3590:30;3656:34;3651:2;3636:18;;3629:62;-1:-1:-1;;;3722:2:1;3707:18;;3700:32;3764:3;3749:19;;3376:398::o;4127:356::-;4329:2;4311:21;;;4348:18;;;4341:30;4407:34;4402:2;4387:18;;4380:62;4474:2;4459:18;;4127:356::o;4842:127::-;4903:10;4898:3;4894:20;4891:1;4884:31;4934:4;4931:1;4924:15;4958:4;4955:1;4948:15;4974:422;5063:1;5106:5;5063:1;5120:270;5141:7;5131:8;5128:21;5120:270;;;5200:4;5196:1;5192:6;5188:17;5182:4;5179:27;5176:53;;;5209:18;;:::i;:::-;5259:7;5249:8;5245:22;5242:55;;;5279:16;;;;5242:55;5358:22;;;;5318:15;;;;5120:270;;;5124:3;4974:422;;;;;:::o;5401:806::-;5450:5;5480:8;5470:80;;-1:-1:-1;5521:1:1;5535:5;;5470:80;5569:4;5559:76;;-1:-1:-1;5606:1:1;5620:5;;5559:76;5651:4;5669:1;5664:59;;;;5737:1;5732:130;;;;5644:218;;5664:59;5694:1;5685:10;;5708:5;;;5732:130;5769:3;5759:8;5756:17;5753:43;;;5776:18;;:::i;:::-;-1:-1:-1;;5832:1:1;5818:16;;5847:5;;5644:218;;5946:2;5936:8;5933:16;5927:3;5921:4;5918:13;5914:36;5908:2;5898:8;5895:16;5890:2;5884:4;5881:12;5877:35;5874:77;5871:159;;;-1:-1:-1;5983:19:1;;;6015:5;;5871:159;6062:34;6087:8;6081:4;6062:34;:::i;:::-;6132:6;6128:1;6124:6;6120:19;6111:7;6108:32;6105:58;;;6143:18;;:::i;:::-;6181:20;;5401:806;-1:-1:-1;;;5401:806:1:o;6212:140::-;6270:5;6299:47;6340:4;6330:8;6326:19;6320:4;6299:47;:::i;6357:168::-;6430:9;;;6461;;6478:15;;;6472:22;;6458:37;6448:71;;6499:18;;:::i;6939:128::-;7006:9;;;7027:11;;;7024:37;;;7041:18;;:::i;8203:184::-;8273:6;8326:2;8314:9;8305:7;8301:23;8297:32;8294:52;;;8342:1;8339;8332:12;8294:52;-1:-1:-1;8365:16:1;;8203:184;-1:-1:-1;8203:184:1:o;8679:277::-;8746:6;8799:2;8787:9;8778:7;8774:23;8770:32;8767:52;;;8815:1;8812;8805:12;8767:52;8847:9;8841:16;8900:5;8893:13;8886:21;8879:5;8876:32;8866:60;;8922:1;8919;8912:12;9317:251;9387:6;9440:2;9428:9;9419:7;9415:23;9411:32;9408:52;;;9456:1;9453;9446:12;9408:52;9488:9;9482:16;9507:31;9532:5;9507:31;:::i;10494:306::-;10582:6;10590;10598;10651:2;10639:9;10630:7;10626:23;10622:32;10619:52;;;10667:1;10664;10657:12;10619:52;10696:9;10690:16;10680:26;;10746:2;10735:9;10731:18;10725:25;10715:35;;10790:2;10779:9;10775:18;10769:25;10759:35;;10494:306;;;;;:::o;13588:125::-;13653:9;;;13674:10;;;13671:36;;;13687:18;;:::i;14427:135::-;14466:3;14487:17;;;14484:43;;14507:18;;:::i;:::-;-1:-1:-1;14554:1:1;14543:13;;14427:135::o;14567:217::-;14607:1;14633;14623:132;;14677:10;14672:3;14668:20;14665:1;14658:31;14712:4;14709:1;14702:15;14740:4;14737:1;14730:15;14623:132;-1:-1:-1;14769:9:1;;14567:217::o;15279:127::-;15340:10;15335:3;15331:20;15328:1;15321:31;15371:4;15368:1;15361:15;15395:4;15392:1;15385:15;15411:980;15673:4;15721:3;15710:9;15706:19;15752:6;15741:9;15734:25;15778:2;15816:6;15811:2;15800:9;15796:18;15789:34;15859:3;15854:2;15843:9;15839:18;15832:31;15883:6;15918;15912:13;15949:6;15941;15934:22;15987:3;15976:9;15972:19;15965:26;;16026:2;16018:6;16014:15;16000:29;;16047:1;16057:195;16071:6;16068:1;16065:13;16057:195;;;16136:13;;-1:-1:-1;;;;;16132:39:1;16120:52;;16227:15;;;;16192:12;;;;16168:1;16086:9;16057:195;;;-1:-1:-1;;;;;;;16308:32:1;;;;16303:2;16288:18;;16281:60;-1:-1:-1;;;16372:3:1;16357:19;16350:35;16269:3;15411:980;-1:-1:-1;;;15411:980:1:o

Swarm Source

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