ETH Price: $1,595.22 (+0.71%)
 

Overview

Max Total Supply

10,000,000 TALK

Holders

2,805

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
MEV Bot: 0x5f9...efd
Balance
1,084.769999999999737856 TALK

Value
$0.00
0x5f9ecf757137d5ef4330ab72d18163c2f221befd
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:
CrypTalk

Compiler Version
v0.8.29+commit.ab55807c

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2025-03-19
*/

// SPDX-License-Identifier: MIT

/*
TWITTER: https://x.com/cryptalknetwork
TELEGRAM: https://t.me/cryptalknetwork
WEBSITE: https://www.cryptalk.net/
*/

pragma solidity 0.8.29;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

contract CrypTalk is Ownable {
    string private constant _name = unicode"CrypTalk";
    string private constant _symbol = unicode"TALK";
    uint256 private constant _totalSupply = 10_000_000 * 1e18;

    uint256 public swapTokensAtAmount = (_totalSupply * 2) / 10000;

    address private mktWallet = 0x7de44D46360Be1fb58632D54d77941c83a64B6C7;
    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint16 public buyTotalFees = 300;
    uint8 public sellTotalFees = 100;

    uint8 public mktFee = 100;

    bool private swapping;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(this), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(mktWallet, true);
        
        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(this), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(mktWallet, true);

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

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

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

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

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

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

    function transfer(address recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function setDistributionFees(uint8 _MktFee) external onlyOwner {
        mktFee = _MktFee;
        require(mktFee == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 400, "Buy fees must be less than or equal to 40%");
        require(_sellTotalFees <= 400, "Sell fees must be less than or equal to 40%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

/*    function unleash() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }
*/
    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function updateMktWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        mktWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance); // Use safeTransfer
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForMkt = (ethBalance * mktFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForMkt;

            (success, ) = address(mktWallet).call{value: ethForMkt}("");

            emit SwapAndLiquify(swapThreshold, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","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":[{"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":"buyTotalFees","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mktFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_MktFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMktWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405261271061001d6a084595161401484a00000060026104e9565b6100279190610512565b600155600280546001600160c01b031916776464012c7de44d46360be1fb58632d54d77941c83a64b6c717905534801561005f575f5ffd5b505f80546001600160a01b031916331790556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9163c45a01559160048083019260209291908290030181865afa1580156100bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e39190610531565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015610142573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101669190610531565b6001600160a01b031660808190525f908152600760205260409020805460ff191660011790556101a76101a05f546001600160a01b031690565b60016102c3565b6101b23060016102c3565b6101bf61dead60016102c3565b6002546101d6906001600160a01b031660016102c3565b6101f16101ea5f546001600160a01b031690565b6001610347565b610210737a250d5630b4cf539739df2c5dacb4c659f2488d6001610347565b61021b306001610347565b61022861dead6001610347565b608051610236906001610347565b60025461024d906001600160a01b03166001610347565b335f8181526003602090815260408083206a084595161401484a0000009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36102be30737a250d5630b4cf539739df2c5dacb4c659f2488d5f196103c6565b61055e565b336102d55f546001600160a01b031690565b6001600160a01b03161461031d5760405162461bcd60e51b815260206004820181905260248201525f51602061211b5f395f51905f5260448201526064015b60405180910390fd5b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b336103595f546001600160a01b031690565b6001600160a01b03161461039c5760405162461bcd60e51b815260206004820181905260248201525f51602061211b5f395f51905f526044820152606401610314565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b6001600160a01b0383166104285760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610314565b6001600160a01b0382166104895760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610314565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b808202811582820484141761050c57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f8261052c57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215610541575f5ffd5b81516001600160a01b0381168114610557575f5ffd5b9392505050565b608051611b9e61057d5f395f81816103250152610bfb0152611b9e5ff3fe6080604052600436106101b2575f3560e01c806370a08231116100e7578063bc205ad311610087578063dd62ed3e11610062578063dd62ed3e1461055a578063e2f456051461059e578063ed9442f6146105b3578063fb201b1d146105d3575f5ffd5b8063bc205ad3146104e8578063d201b01e14610507578063d85ba06314610526575f5ffd5b80638da5cb5b116100c25780638da5cb5b1461046257806395d89b411461047e5780639a7a23d6146104aa578063a9059cbb146104c9575f5ffd5b806370a08231146103e3578063715018a61461041757806385ecafd71461042b575f5ffd5b8063437f781511610152578063590ffdce1161012d578063590ffdce146103665780636402511e1461038557806366650dae146103a45780636a486a8e146103c3575f5ffd5b8063437f7815146102f557806349bd5a5e146103145780634fcd244614610347575f5ffd5b806318160ddd1161018d57806318160ddd1461026d578063186c13841461029457806323b872dd146102b5578063313ce567146102d4575f5ffd5b806306fdde03146101bd578063095ea7b3146101ff5780631694505e1461022e575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b506040805180820190915260088152674372797054616c6b60c01b60208201525b6040516101f6919061185d565b60405180910390f35b34801561020a575f5ffd5b5061021e6102193660046118ad565b6105e7565b60405190151581526020016101f6565b348015610239575f5ffd5b50610255737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101f6565b348015610278575f5ffd5b506a084595161401484a0000005b6040519081526020016101f6565b34801561029f575f5ffd5b506102b36102ae3660046118e5565b6105fd565b005b3480156102c0575f5ffd5b5061021e6102cf366004611905565b6106c1565b3480156102df575f5ffd5b5060125b60405160ff90911681526020016101f6565b348015610300575f5ffd5b506102b361030f36600461193f565b610770565b34801561031f575f5ffd5b506102557f000000000000000000000000000000000000000000000000000000000000000081565b348015610352575f5ffd5b506102b3610361366004611958565b610819565b348015610371575f5ffd5b506102b3610380366004611996565b610957565b348015610390575f5ffd5b506102b361039f3660046119cb565b6109b9565b3480156103af575f5ffd5b506102b36103be366004611996565b610b16565b3480156103ce575f5ffd5b506002546102e390600160b01b900460ff1681565b3480156103ee575f5ffd5b506102866103fd36600461193f565b6001600160a01b03165f9081526003602052604090205490565b348015610422575f5ffd5b506102b3610b78565b348015610436575f5ffd5b5061021e61044536600461193f565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561046d575f5ffd5b505f546001600160a01b0316610255565b348015610489575f5ffd5b5060408051808201909152600481526354414c4b60e01b60208201526101e9565b3480156104b5575f5ffd5b506102b36104c4366004611996565b610bc1565b3480156104d4575f5ffd5b5061021e6104e33660046118ad565b610ca4565b3480156104f3575f5ffd5b506102b36105023660046119e2565b610cb0565b348015610512575f5ffd5b506102b361052136600461193f565b610d62565b348015610531575f5ffd5b5060025461054790600160a01b900461ffff1681565b60405161ffff90911681526020016101f6565b348015610565575f5ffd5b506102866105743660046119e2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105a9575f5ffd5b5061028660015481565b3480156105be575f5ffd5b506002546102e390600160b81b900460ff1681565b3480156105de575f5ffd5b506102b3610e79565b5f6105f3338484610f13565b5060015b92915050565b3361060f5f546001600160a01b031690565b6001600160a01b03161461063e5760405162461bcd60e51b815260040161063590611a0a565b60405180910390fd5b6002805460ff60b81b1916600160b81b60ff84811682029290921792839055909104166064146106be5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610635565b50565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19811461075a578281101561074d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610635565b61075a8533858403610f13565b610765858585611036565b506001949350505050565b336107825f546001600160a01b031690565b6001600160a01b0316146107a85760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b0381166107f75760405162461bcd60e51b8152602060048201526016602482015275416464726573732063616e6e6f74206265207a65726f60501b6044820152606401610635565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b3361082b5f546001600160a01b031690565b6001600160a01b0316146108515760405162461bcd60e51b815260040161063590611a0a565b6101908260ff1611156108b95760405162461bcd60e51b815260206004820152602a60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526975616c20746f2034302560b01b6064820152608401610635565b6101908160ff1611156109225760405162461bcd60e51b815260206004820152602b60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526a7175616c20746f2034302560a81b6064820152608401610635565b6002805462ffffff60a01b191660ff938416600160a01b0260ff60b01b191617600160b01b9290931691909102919091179055565b336109695f546001600160a01b031690565b6001600160a01b03161461098f5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b336109cb5f546001600160a01b031690565b6001600160a01b0316146109f15760405162461bcd60e51b815260040161063590611a0a565b620186a0610a0b6a084595161401484a0000006001611a53565b610a159190611a6a565b811015610a825760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610635565b6103e8610a9b6a084595161401484a0000006005611a53565b610aa59190611a6a565b811115610b115760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610635565b600155565b33610b285f546001600160a01b031690565b6001600160a01b031614610b4e5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b33610b8a5f546001600160a01b031690565b6001600160a01b031614610bb05760405162461bcd60e51b815260040161063590611a0a565b5f80546001600160a01b0319169055565b33610bd35f546001600160a01b031690565b6001600160a01b031614610bf95760405162461bcd60e51b815260040161063590611a0a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603610c7a5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610635565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f6105f3338484611036565b33610cc25f546001600160a01b031690565b6001600160a01b031614610ce85760405162461bcd60e51b815260040161063590611a0a565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611a89565b9050610d5d83838361152f565b505050565b33610d745f546001600160a01b031690565b6001600160a01b031614610d9a5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b038116610de25760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610635565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610e2b576040519150601f19603f3d011682016040523d82523d5f602084013e610e30565b606091505b5050905080610e755760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610635565b5050565b33610e8b5f546001600160a01b031690565b6001600160a01b031614610eb15760405162461bcd60e51b815260040161063590611a0a565b600254600160c81b900460ff1615610efe5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610635565b6002805460ff60c81b1916600160c81b179055565b6001600160a01b038316610f755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610635565b6001600160a01b038216610fd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610635565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661109a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610635565b6001600160a01b0382166110fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610635565b5f811161115d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610635565b600254600160c81b900460ff161580156111b157505f546001600160a01b0384811691161480159061119857506001600160a01b0383163014155b80156111b157505f546001600160a01b03838116911614155b156111f45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610635565b600154305f908152600360205260409020541080159081906112205750600254600160c01b900460ff16155b801561124457506001600160a01b0384165f9081526007602052604090205460ff16155b801561126857506001600160a01b0384165f9081526005602052604090205460ff16155b801561128c57506001600160a01b0383165f9081526005602052604090205460ff16155b156112ba576002805460ff60c01b1916600160c01b1790556112ac611656565b6002805460ff60c01b191690555b6002546001600160a01b0385165f9081526005602052604090205460ff600160c01b90920482161591168061130657506001600160a01b0384165f9081526005602052604090205460ff165b1561130e57505f5b6001600160a01b0385165f90815260036020526040902054838110156113855760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610635565b5f82156114bd576001600160a01b0386165f9081526007602052604090205460ff1680156113be5750600254600160b01b900460ff1615155b156113ef576002546103e8906113de90600160b01b900460ff1687611a53565b6113e89190611a6a565b9050611450565b6001600160a01b0387165f9081526007602052604090205460ff1680156114225750600254600160a01b900461ffff1615155b15611450576002546103e89061144390600160a01b900461ffff1687611a53565b61144d9190611a6a565b90505b80156114bd576001600160a01b0387165f8181526003602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526003602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061151e9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f9283929087169161158a9190611aa0565b5f604051808303815f865af19150503d805f81146115c3576040519150601f19603f3d011682016040523d82523d5f602084013e6115c8565b606091505b50915091508180156115f25750805115806115f25750808060200190518101906115f29190611ab6565b61164f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610635565b5050505050565b6001545f611665826014611a53565b305f90815260036020526040902054111561168b57600154611688906014611a53565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116be576116be611ad1565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061170657611706611ad1565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061175d9086905f90869030904290600401611ae5565b5f604051808303815f87803b158015611774575f5ffd5b505af1158015611786573d5f5f3e3d5ffd5b504792505081159050611857576002545f906064906117af90600160b81b900460ff1684611a53565b6117b99190611a6a565b90505f6117c68284611b55565b6002546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611811576040519150601f19603f3d011682016040523d82523d5f602084013e611816565b606091505b505060408051888152602081018490529196507f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a150505b50505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146118a8575f5ffd5b919050565b5f5f604083850312156118be575f5ffd5b6118c783611892565b946020939093013593505050565b803560ff811681146118a8575f5ffd5b5f602082840312156118f5575f5ffd5b6118fe826118d5565b9392505050565b5f5f5f60608486031215611917575f5ffd5b61192084611892565b925061192e60208501611892565b929592945050506040919091013590565b5f6020828403121561194f575f5ffd5b6118fe82611892565b5f5f60408385031215611969575f5ffd5b611972836118d5565b9150611980602084016118d5565b90509250929050565b80151581146106be575f5ffd5b5f5f604083850312156119a7575f5ffd5b6119b083611892565b915060208301356119c081611989565b809150509250929050565b5f602082840312156119db575f5ffd5b5035919050565b5f5f604083850312156119f3575f5ffd5b6119fc83611892565b915061198060208401611892565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f7576105f7611a3f565b5f82611a8457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611a99575f5ffd5b5051919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611ac6575f5ffd5b81516118fe81611989565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611b355783516001600160a01b0316835260209384019390920191600101611b0e565b50506001600160a01b039590951660608401525050608001529392505050565b818103818111156105f7576105f7611a3f56fea26469706673582212200ab78182465a208f9a2bba9f95c0b3d29da47cfc15c6eb3265aa571083358fd364736f6c634300081d00334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed Bytecode

0x6080604052600436106101b2575f3560e01c806370a08231116100e7578063bc205ad311610087578063dd62ed3e11610062578063dd62ed3e1461055a578063e2f456051461059e578063ed9442f6146105b3578063fb201b1d146105d3575f5ffd5b8063bc205ad3146104e8578063d201b01e14610507578063d85ba06314610526575f5ffd5b80638da5cb5b116100c25780638da5cb5b1461046257806395d89b411461047e5780639a7a23d6146104aa578063a9059cbb146104c9575f5ffd5b806370a08231146103e3578063715018a61461041757806385ecafd71461042b575f5ffd5b8063437f781511610152578063590ffdce1161012d578063590ffdce146103665780636402511e1461038557806366650dae146103a45780636a486a8e146103c3575f5ffd5b8063437f7815146102f557806349bd5a5e146103145780634fcd244614610347575f5ffd5b806318160ddd1161018d57806318160ddd1461026d578063186c13841461029457806323b872dd146102b5578063313ce567146102d4575f5ffd5b806306fdde03146101bd578063095ea7b3146101ff5780631694505e1461022e575f5ffd5b366101b957005b5f5ffd5b3480156101c8575f5ffd5b506040805180820190915260088152674372797054616c6b60c01b60208201525b6040516101f6919061185d565b60405180910390f35b34801561020a575f5ffd5b5061021e6102193660046118ad565b6105e7565b60405190151581526020016101f6565b348015610239575f5ffd5b50610255737a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b0390911681526020016101f6565b348015610278575f5ffd5b506a084595161401484a0000005b6040519081526020016101f6565b34801561029f575f5ffd5b506102b36102ae3660046118e5565b6105fd565b005b3480156102c0575f5ffd5b5061021e6102cf366004611905565b6106c1565b3480156102df575f5ffd5b5060125b60405160ff90911681526020016101f6565b348015610300575f5ffd5b506102b361030f36600461193f565b610770565b34801561031f575f5ffd5b506102557f00000000000000000000000044bdbc621752f0bc4043c67d2e6c4434b4ba63ec81565b348015610352575f5ffd5b506102b3610361366004611958565b610819565b348015610371575f5ffd5b506102b3610380366004611996565b610957565b348015610390575f5ffd5b506102b361039f3660046119cb565b6109b9565b3480156103af575f5ffd5b506102b36103be366004611996565b610b16565b3480156103ce575f5ffd5b506002546102e390600160b01b900460ff1681565b3480156103ee575f5ffd5b506102866103fd36600461193f565b6001600160a01b03165f9081526003602052604090205490565b348015610422575f5ffd5b506102b3610b78565b348015610436575f5ffd5b5061021e61044536600461193f565b6001600160a01b03165f9081526005602052604090205460ff1690565b34801561046d575f5ffd5b505f546001600160a01b0316610255565b348015610489575f5ffd5b5060408051808201909152600481526354414c4b60e01b60208201526101e9565b3480156104b5575f5ffd5b506102b36104c4366004611996565b610bc1565b3480156104d4575f5ffd5b5061021e6104e33660046118ad565b610ca4565b3480156104f3575f5ffd5b506102b36105023660046119e2565b610cb0565b348015610512575f5ffd5b506102b361052136600461193f565b610d62565b348015610531575f5ffd5b5060025461054790600160a01b900461ffff1681565b60405161ffff90911681526020016101f6565b348015610565575f5ffd5b506102866105743660046119e2565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105a9575f5ffd5b5061028660015481565b3480156105be575f5ffd5b506002546102e390600160b81b900460ff1681565b3480156105de575f5ffd5b506102b3610e79565b5f6105f3338484610f13565b5060015b92915050565b3361060f5f546001600160a01b031690565b6001600160a01b03161461063e5760405162461bcd60e51b815260040161063590611a0a565b60405180910390fd5b6002805460ff60b81b1916600160b81b60ff84811682029290921792839055909104166064146106be5760405162461bcd60e51b815260206004820152602560248201527f446973747269627574696f6e206861766520746f20626520657175616c20746f604482015264203130302560d81b6064820152608401610635565b50565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f19811461075a578281101561074d5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610635565b61075a8533858403610f13565b610765858585611036565b506001949350505050565b336107825f546001600160a01b031690565b6001600160a01b0316146107a85760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b0381166107f75760405162461bcd60e51b8152602060048201526016602482015275416464726573732063616e6e6f74206265207a65726f60501b6044820152606401610635565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b3361082b5f546001600160a01b031690565b6001600160a01b0316146108515760405162461bcd60e51b815260040161063590611a0a565b6101908260ff1611156108b95760405162461bcd60e51b815260206004820152602a60248201527f4275792066656573206d757374206265206c657373207468616e206f7220657160448201526975616c20746f2034302560b01b6064820152608401610635565b6101908160ff1611156109225760405162461bcd60e51b815260206004820152602b60248201527f53656c6c2066656573206d757374206265206c657373207468616e206f72206560448201526a7175616c20746f2034302560a81b6064820152608401610635565b6002805462ffffff60a01b191660ff938416600160a01b0260ff60b01b191617600160b01b9290931691909102919091179055565b336109695f546001600160a01b031690565b6001600160a01b03161461098f5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b03919091165f908152600560205260409020805460ff1916911515919091179055565b336109cb5f546001600160a01b031690565b6001600160a01b0316146109f15760405162461bcd60e51b815260040161063590611a0a565b620186a0610a0b6a084595161401484a0000006001611a53565b610a159190611a6a565b811015610a825760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527420302e30303125206f662074686520737570706c7960581b6064820152608401610635565b6103e8610a9b6a084595161401484a0000006005611a53565b610aa59190611a6a565b811115610b115760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f7420626520686967686572207468616044820152736e20302e3525206f662074686520737570706c7960601b6064820152608401610635565b600155565b33610b285f546001600160a01b031690565b6001600160a01b031614610b4e5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b03919091165f908152600660205260409020805460ff1916911515919091179055565b33610b8a5f546001600160a01b031690565b6001600160a01b031614610bb05760405162461bcd60e51b815260040161063590611a0a565b5f80546001600160a01b0319169055565b33610bd35f546001600160a01b031690565b6001600160a01b031614610bf95760405162461bcd60e51b815260040161063590611a0a565b7f00000000000000000000000044bdbc621752f0bc4043c67d2e6c4434b4ba63ec6001600160a01b0316826001600160a01b031603610c7a5760405162461bcd60e51b815260206004820152601a60248201527f54686520706169722063616e6e6f742062652072656d6f7665640000000000006044820152606401610635565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f6105f3338484611036565b33610cc25f546001600160a01b031690565b6001600160a01b031614610ce85760405162461bcd60e51b815260040161063590611a0a565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015610d2c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d509190611a89565b9050610d5d83838361152f565b505050565b33610d745f546001600160a01b031690565b6001600160a01b031614610d9a5760405162461bcd60e51b815260040161063590611a0a565b6001600160a01b038116610de25760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610635565b5f816001600160a01b0316476040515f6040518083038185875af1925050503d805f8114610e2b576040519150601f19603f3d011682016040523d82523d5f602084013e610e30565b606091505b5050905080610e755760405162461bcd60e51b815260206004820152601160248201527015da5d1a191c985dd85b0819985a5b1959607a1b6044820152606401610635565b5050565b33610e8b5f546001600160a01b031690565b6001600160a01b031614610eb15760405162461bcd60e51b815260040161063590611a0a565b600254600160c81b900460ff1615610efe5760405162461bcd60e51b815260206004820152601060248201526f105b1c9958591e481b185d5b98da195960821b6044820152606401610635565b6002805460ff60c81b1916600160c81b179055565b6001600160a01b038316610f755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610635565b6001600160a01b038216610fd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610635565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661109a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610635565b6001600160a01b0382166110fc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610635565b5f811161115d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610635565b600254600160c81b900460ff161580156111b157505f546001600160a01b0384811691161480159061119857506001600160a01b0383163014155b80156111b157505f546001600160a01b03838116911614155b156111f45760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610635565b600154305f908152600360205260409020541080159081906112205750600254600160c01b900460ff16155b801561124457506001600160a01b0384165f9081526007602052604090205460ff16155b801561126857506001600160a01b0384165f9081526005602052604090205460ff16155b801561128c57506001600160a01b0383165f9081526005602052604090205460ff16155b156112ba576002805460ff60c01b1916600160c01b1790556112ac611656565b6002805460ff60c01b191690555b6002546001600160a01b0385165f9081526005602052604090205460ff600160c01b90920482161591168061130657506001600160a01b0384165f9081526005602052604090205460ff165b1561130e57505f5b6001600160a01b0385165f90815260036020526040902054838110156113855760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610635565b5f82156114bd576001600160a01b0386165f9081526007602052604090205460ff1680156113be5750600254600160b01b900460ff1615155b156113ef576002546103e8906113de90600160b01b900460ff1687611a53565b6113e89190611a6a565b9050611450565b6001600160a01b0387165f9081526007602052604090205460ff1680156114225750600254600160a01b900461ffff1615155b15611450576002546103e89061144390600160a01b900461ffff1687611a53565b61144d9190611a6a565b90505b80156114bd576001600160a01b0387165f8181526003602090815260408083208054869003905530808452928190208054860190555184815297849003979192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b6001600160a01b038088165f8181526003602052604080822080548a900390559289168082529083902080548901905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061151e9089815260200190565b60405180910390a350505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b17905291515f9283929087169161158a9190611aa0565b5f604051808303815f865af19150503d805f81146115c3576040519150601f19603f3d011682016040523d82523d5f602084013e6115c8565b606091505b50915091508180156115f25750805115806115f25750808060200190518101906115f29190611ab6565b61164f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346456044820152671497d1905253115160c21b6064820152608401610635565b5050505050565b6001545f611665826014611a53565b305f90815260036020526040902054111561168b57600154611688906014611a53565b91505b6040805160028082526060820183525f9260208301908036833701905050905030815f815181106116be576116be611ad1565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061170657611706611ad1565b6001600160a01b039092166020928302919091019091015260405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061175d9086905f90869030904290600401611ae5565b5f604051808303815f87803b158015611774575f5ffd5b505af1158015611786573d5f5f3e3d5ffd5b504792505081159050611857576002545f906064906117af90600160b81b900460ff1684611a53565b6117b99190611a6a565b90505f6117c68284611b55565b6002546040519192506001600160a01b03169083905f81818185875af1925050503d805f8114611811576040519150601f19603f3d011682016040523d82523d5f602084013e611816565b606091505b505060408051888152602081018490529196507f28fc98272ce761178794ad6768050fea1648e07f1e2ffe15afd3a290f8381486910160405180910390a150505b50505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146118a8575f5ffd5b919050565b5f5f604083850312156118be575f5ffd5b6118c783611892565b946020939093013593505050565b803560ff811681146118a8575f5ffd5b5f602082840312156118f5575f5ffd5b6118fe826118d5565b9392505050565b5f5f5f60608486031215611917575f5ffd5b61192084611892565b925061192e60208501611892565b929592945050506040919091013590565b5f6020828403121561194f575f5ffd5b6118fe82611892565b5f5f60408385031215611969575f5ffd5b611972836118d5565b9150611980602084016118d5565b90509250929050565b80151581146106be575f5ffd5b5f5f604083850312156119a7575f5ffd5b6119b083611892565b915060208301356119c081611989565b809150509250929050565b5f602082840312156119db575f5ffd5b5035919050565b5f5f604083850312156119f3575f5ffd5b6119fc83611892565b915061198060208401611892565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b80820281158282048414176105f7576105f7611a3f565b5f82611a8457634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215611a99575f5ffd5b5051919050565b5f82518060208501845e5f920191825250919050565b5f60208284031215611ac6575f5ffd5b81516118fe81611989565b634e487b7160e01b5f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b81811015611b355783516001600160a01b0316835260209384019390920191600101611b0e565b50506001600160a01b039590951660608401525050608001529392505050565b818103818111156105f7576105f7611a3f56fea26469706673582212200ab78182465a208f9a2bba9f95c0b3d29da47cfc15c6eb3265aa571083358fd364736f6c634300081d0033

Deployed Bytecode Sourcemap

1871:9609:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4234:83;;;;;;;;;;-1:-1:-1;4304:5:0;;;;;;;;;;;;-1:-1:-1;;;4304:5:0;;;;4234:83;;;;;;;:::i;:::-;;;;;;;;4863:152;;;;;;;;;;-1:-1:-1;4863:152:0;;;;;:::i;:::-;;:::i;:::-;;;1085:14:1;;1078:22;1060:41;;1048:2;1033:18;4863:152:0;920:187:1;3044:115:0;;;;;;;;;;;;3116:42;3044:115;;;;;-1:-1:-1;;;;;1302:32:1;;;1284:51;;1272:2;1257:18;3044:115:0;1112:229:1;4504:91:0;;;;;;;;;;-1:-1:-1;2057:17:0;4504:91;;;1492:25:1;;;1480:2;1465:18;4504:91:0;1346:177:1;7905:172:0;;;;;;;;;;-1:-1:-1;7905:172:0;;;;;:::i;:::-;;:::i;:::-;;5534:520;;;;;;;;;;-1:-1:-1;5534:520:0;;;;;:::i;:::-;;:::i;4420:76::-;;;;;;;;;;-1:-1:-1;4486:2:0;4420:76;;;2427:4:1;2415:17;;;2397:36;;2385:2;2370:18;4420:76:0;2255:184:1;9803:175:0;;;;;;;;;;-1:-1:-1;9803:175:0;;;;;:::i;:::-;;:::i;3172:38::-;;;;;;;;;;;;;;;8085:341;;;;;;;;;;-1:-1:-1;8085:341:0;;;;;:::i;:::-;;:::i;8434:136::-;;;;;;;;;;-1:-1:-1;8434:136:0;;;;;:::i;:::-;;:::i;9434:361::-;;;;;;;;;;-1:-1:-1;9434:361:0;;;;;:::i;:::-;;:::i;8578:158::-;;;;;;;;;;-1:-1:-1;8578:158:0;;;;;:::i;:::-;;:::i;2353:32::-;;;;;;;;;;-1:-1:-1;2353:32:0;;;;-1:-1:-1;;;2353:32:0;;;;;;4603:110;;;;;;;;;;-1:-1:-1;4603:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;4687:18:0;4660:7;4687:18;;;:9;:18;;;;;;;4603:110;568:92;;;;;;;;;;;;;:::i;9986:123::-;;;;;;;;;;-1:-1:-1;9986:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10073:28:0;10049:4;10073:28;;;:19;:28;;;;;;;;;9986:123;347:87;;;;;;;;;;-1:-1:-1;393:7:0;420:6;-1:-1:-1;;;;;420:6:0;347:87;;4325;;;;;;;;;;-1:-1:-1;4397:7:0;;;;;;;;;;;;-1:-1:-1;;;4397:7:0;;;;4325:87;;9215:211;;;;;;;;;;-1:-1:-1;9215:211:0;;;;;:::i;:::-;;:::i;5368:158::-;;;;;;;;;;-1:-1:-1;5368:158:0;;;;;:::i;:::-;;:::i;10117:240::-;;;;;;;;;;-1:-1:-1;10117:240:0;;;;;:::i;:::-;;:::i;10365:247::-;;;;;;;;;;-1:-1:-1;10365:247:0;;;;;:::i;:::-;;:::i;2314:32::-;;;;;;;;;;-1:-1:-1;2314:32:0;;;;-1:-1:-1;;;2314:32:0;;;;;;;;;4213:6:1;4201:19;;;4183:38;;4171:2;4156:18;2314:32:0;4039:188:1;4721:134:0;;;;;;;;;;-1:-1:-1;4721:134:0;;;;;:::i;:::-;-1:-1:-1;;;;;4820:18:0;;;4793:7;4820:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4721:134;2083:62;;;;;;;;;;;;;;;;2394:25;;;;;;;;;;-1:-1:-1;2394:25:0;;;;-1:-1:-1;;;2394:25:0;;;;;;8744:123;;;;;;;;;;;;;:::i;4863:152::-;4931:4;4948:37;4957:10;4969:7;4978:6;4948:8;:37::i;:::-;-1:-1:-1;5003:4:0;4863:152;;;;;:::o;7905:172::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;;;;;;;;;7979:6:::1;:16:::0;;-1:-1:-1;;;;7979:16:0::1;-1:-1:-1::0;;;7979:16:0::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;8014:6;;::::1;;8024:3;8014:13;8006:63;;;::::0;-1:-1:-1;;;8006:63:0;;4795:2:1;8006:63:0::1;::::0;::::1;4777:21:1::0;4834:2;4814:18;;;4807:30;4873:34;4853:18;;;4846:62;-1:-1:-1;;;4924:18:1;;;4917:35;4969:19;;8006:63:0::1;4593:401:1::0;8006:63:0::1;7905:172:::0;:::o;5534:520::-;-1:-1:-1;;;;;5669:19:0;;5625:4;5669:19;;;:11;:19;;;;;;;;5689:10;5669:31;;;;;;;;-1:-1:-1;;5715:37:0;;5711:263;;5797:6;5777:16;:26;;5769:79;;;;-1:-1:-1;;;5769:79:0;;5201:2:1;5769:79:0;;;5183:21:1;5240:2;5220:18;;;5213:30;5279:34;5259:18;;;5252:62;-1:-1:-1;;;5330:18:1;;;5323:38;5378:19;;5769:79:0;4999:404:1;5769:79:0;5892:55;5901:6;5909:10;5940:6;5921:16;:25;5892:8;:55::i;:::-;5986:36;5996:6;6004:9;6015:6;5986:9;:36::i;:::-;-1:-1:-1;6042:4:0;;5534:520;-1:-1:-1;;;;5534:520:0:o;9803:175::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9886:24:0;::::1;9878:59;;;::::0;-1:-1:-1;;;9878:59:0;;5610:2:1;9878:59:0::1;::::0;::::1;5592:21:1::0;5649:2;5629:18;;;5622:30;-1:-1:-1;;;5668:18:1;;;5661:52;5730:18;;9878:59:0::1;5408:346:1::0;9878:59:0::1;9948:9;:22:::0;;-1:-1:-1;;;;;;9948:22:0::1;-1:-1:-1::0;;;;;9948:22:0;;;::::1;::::0;;;::::1;::::0;;9803:175::o;8085:341::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;8200:3:::1;8183:13;:20;;;;8175:75;;;::::0;-1:-1:-1;;;8175:75:0;;5961:2:1;8175:75:0::1;::::0;::::1;5943:21:1::0;6000:2;5980:18;;;5973:30;6039:34;6019:18;;;6012:62;-1:-1:-1;;;6090:18:1;;;6083:40;6140:19;;8175:75:0::1;5759:406:1::0;8175:75:0::1;8287:3;8269:14;:21;;;;8261:77;;;::::0;-1:-1:-1;;;8261:77:0;;6372:2:1;8261:77:0::1;::::0;::::1;6354:21:1::0;6411:2;6391:18;;;6384:30;6450:34;6430:18;;;6423:62;-1:-1:-1;;;6501:18:1;;;6494:41;6552:19;;8261:77:0::1;6170:407:1::0;8261:77:0::1;8349:12;:28:::0;;-1:-1:-1;;;;8388:30:0;8349:28:::1;::::0;;::::1;-1:-1:-1::0;;;8349:28:0::1;-1:-1:-1::0;;;;8388:30:0;;-1:-1:-1;;;8388:30:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8085:341::o;8434:136::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8523:28:0;;;::::1;;::::0;;;:19:::1;:28;::::0;;;;:39;;-1:-1:-1;;8523:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8434:136::o;9434:361::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;9559:6:::1;9538:17;2057::::0;9554:1:::1;9538:17;:::i;:::-;9537:28;;;;:::i;:::-;9520:13;:45;;9512:111;;;::::0;-1:-1:-1;;;9512:111:0;;7311:2:1;9512:111:0::1;::::0;::::1;7293:21:1::0;7350:2;7330:18;;;7323:30;7389:34;7369:18;;;7362:62;-1:-1:-1;;;7440:18:1;;;7433:51;7501:19;;9512:111:0::1;7109:417:1::0;9512:111:0::1;9681:4;9660:17;2057::::0;9676:1:::1;9660:17;:::i;:::-;9659:26;;;;:::i;:::-;9642:13;:43;;9634:108;;;::::0;-1:-1:-1;;;9634:108:0;;7733:2:1;9634:108:0::1;::::0;::::1;7715:21:1::0;7772:2;7752:18;;;7745:30;7811:34;7791:18;;;7784:62;-1:-1:-1;;;7862:18:1;;;7855:50;7922:19;;9634:108:0::1;7531:416:1::0;9634:108:0::1;9753:18;:34:::0;9434:361::o;8578:158::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8677:40:0;;;::::1;;::::0;;;:31:::1;:40;::::0;;;;:51;;-1:-1:-1;;8677:51:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8578:158::o;568:92::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;650:1:::1;633:19:::0;;-1:-1:-1;;;;;;633:19:0::1;::::0;;568:92::o;9215:211::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;9324:13:::1;-1:-1:-1::0;;;;;9316:21:0::1;:4;-1:-1:-1::0;;;;;9316:21:0::1;::::0;9308:60:::1;;;::::0;-1:-1:-1;;;9308:60:0;;8154:2:1;9308:60:0::1;::::0;::::1;8136:21:1::0;8193:2;8173:18;;;8166:30;8232:28;8212:18;;;8205:56;8278:18;;9308:60:0::1;7952:350:1::0;9308:60:0::1;-1:-1:-1::0;;;;;9379:31:0;;;::::1;;::::0;;;:25:::1;:31;::::0;;;;:39;;-1:-1:-1;;9379:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9215:211::o;5368:158::-;5439:4;5456:40;5466:10;5478:9;5489:6;5456:9;:40::i;10117:240::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;10229:38:::1;::::0;-1:-1:-1;;;10229:38:0;;10261:4:::1;10229:38;::::0;::::1;1284:51:1::0;10202:24:0::1;::::0;-1:-1:-1;;;;;10229:23:0;::::1;::::0;::::1;::::0;1257:18:1;;10229:38:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10202:65;;10278:51;10301:5;10308:2;10312:16;10278:22;:51::i;:::-;10191:166;10117:240:::0;;:::o;10365:247::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10443:18:0;::::1;10435:46;;;::::0;-1:-1:-1;;;10435:46:0;;8698:2:1;10435:46:0::1;::::0;::::1;8680:21:1::0;8737:2;8717:18;;;8710:30;-1:-1:-1;;;8756:18:1;;;8749:45;8811:18;;10435:46:0::1;8496:339:1::0;10435:46:0::1;10495:12;10513:4;-1:-1:-1::0;;;;;10513:9:0::1;10530:21;10513:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10494:62;;;10575:7;10567:37;;;::::0;-1:-1:-1;;;10567:37:0;;9252:2:1;10567:37:0::1;::::0;::::1;9234:21:1::0;9291:2;9271:18;;;9264:30;-1:-1:-1;;;9310:18:1;;;9303:47;9367:18;;10567:37:0::1;9050:341:1::0;10567:37:0::1;10424:188;10365:247:::0;:::o;8744:123::-;493:10;482:7;393;420:6;-1:-1:-1;;;;;420:6:0;;347:87;482:7;-1:-1:-1;;;;;482:21:0;;474:66;;;;-1:-1:-1;;;474:66:0;;;;;;;:::i;:::-;8804:8:::1;::::0;-1:-1:-1;;;8804:8:0;::::1;;;8803:9;8795:38;;;::::0;-1:-1:-1;;;8795:38:0;;9598:2:1;8795:38:0::1;::::0;::::1;9580:21:1::0;9637:2;9617:18;;;9610:30;-1:-1:-1;;;9656:18:1;;;9649:46;9712:18;;8795:38:0::1;9396:340:1::0;8795:38:0::1;8844:8;:15:::0;;-1:-1:-1;;;;8844:15:0::1;-1:-1:-1::0;;;8844:15:0::1;::::0;;8744:123::o;5023:337::-;-1:-1:-1;;;;;5116:19:0;;5108:68;;;;-1:-1:-1;;;5108:68:0;;9943:2:1;5108:68:0;;;9925:21:1;9982:2;9962:18;;;9955:30;10021:34;10001:18;;;9994:62;-1:-1:-1;;;10072:18:1;;;10065:34;10116:19;;5108:68:0;9741:400:1;5108:68:0;-1:-1:-1;;;;;5195:21:0;;5187:68;;;;-1:-1:-1;;;5187:68:0;;10348:2:1;5187:68:0;;;10330:21:1;10387:2;10367:18;;;10360:30;10426:34;10406:18;;;10399:62;-1:-1:-1;;;10477:18:1;;;10470:32;10519:19;;5187:68:0;10146:398:1;5187:68:0;-1:-1:-1;;;;;5268:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5320:32;;1492:25:1;;;5320:32:0;;1465:18:1;5320:32:0;;;;;;;5023:337;;;:::o;6062:1835::-;-1:-1:-1;;;;;6150:18:0;;6142:68;;;;-1:-1:-1;;;6142:68:0;;10751:2:1;6142:68:0;;;10733:21:1;10790:2;10770:18;;;10763:30;10829:34;10809:18;;;10802:62;-1:-1:-1;;;10880:18:1;;;10873:35;10925:19;;6142:68:0;10549:401:1;6142:68:0;-1:-1:-1;;;;;6229:16:0;;6221:64;;;;-1:-1:-1;;;6221:64:0;;11157:2:1;6221:64:0;;;11139:21:1;11196:2;11176:18;;;11169:30;11235:34;11215:18;;;11208:62;-1:-1:-1;;;11286:18:1;;;11279:33;11329:19;;6221:64:0;10955:399:1;6221:64:0;6313:1;6304:6;:10;6296:64;;;;-1:-1:-1;;;6296:64:0;;11561:2:1;6296:64:0;;;11543:21:1;11600:2;11580:18;;;11573:30;11639:34;11619:18;;;11612:62;-1:-1:-1;;;11690:18:1;;;11683:39;11739:19;;6296:64:0;11359:405:1;6296:64:0;6378:8;;-1:-1:-1;;;6378:8:0;;;;6377:9;:72;;;;-1:-1:-1;393:7:0;420:6;-1:-1:-1;;;;;6391:15:0;;;420:6;;6391:15;;;;:40;;-1:-1:-1;;;;;;6410:21:0;;6426:4;6410:21;;6391:40;:57;;;;-1:-1:-1;393:7:0;420:6;-1:-1:-1;;;;;6435:13:0;;;420:6;;6435:13;;6391:57;6373:134;;;6466:29;;-1:-1:-1;;;6466:29:0;;11971:2:1;6466:29:0;;;11953:21:1;12010:2;11990:18;;;11983:30;-1:-1:-1;;;12029:18:1;;;12022:49;12088:18;;6466:29:0;11769:343:1;6373:134:0;6562:18;;6552:4;6519:12;4687:18;;;:9;:18;;;;;;-1:-1:-1;6534:46:0;;;;;6597:20;;-1:-1:-1;6609:8:0;;-1:-1:-1;;;6609:8:0;;;;6608:9;6597:20;:56;;;;-1:-1:-1;;;;;;6622:31:0;;;;;;:25;:31;;;;;;;;6621:32;6597:56;:86;;;;-1:-1:-1;;;;;;6658:25:0;;;;;;:19;:25;;;;;;;;6657:26;6597:86;:114;;;;-1:-1:-1;;;;;;6688:23:0;;;;;;:19;:23;;;;;;;;6687:24;6597:114;6593:218;;;6728:8;:15;;-1:-1:-1;;;;6728:15:0;-1:-1:-1;;;6728:15:0;;;6758:10;:8;:10::i;:::-;6783:8;:16;;-1:-1:-1;;;;6783:16:0;;;6593:218;6839:8;;-1:-1:-1;;;;;6864:25:0;;6823:12;6864:25;;;:19;:25;;;;;;6839:8;-1:-1:-1;;;6839:8:0;;;;;6838:9;;6864:25;;:52;;-1:-1:-1;;;;;;6893:23:0;;;;;;:19;:23;;;;;;;;6864:52;6860:100;;;-1:-1:-1;6943:5:0;6860:100;-1:-1:-1;;;;;6996:15:0;;6972:21;6996:15;;;:9;:15;;;;;;7030:23;;;;7022:74;;;;-1:-1:-1;;;7022:74:0;;12319:2:1;7022:74:0;;;12301:21:1;12358:2;12338:18;;;12331:30;12397:34;12377:18;;;12370:62;-1:-1:-1;;;12448:18:1;;;12441:36;12494:19;;7022:74:0;12117:402:1;7022:74:0;7109:12;7136:602;;;;-1:-1:-1;;;;;7168:29:0;;;;;;:25;:29;;;;;;;;:50;;;;-1:-1:-1;7201:13:0;;-1:-1:-1;;;7201:13:0;;;;:17;;7168:50;7164:264;;;7256:13;;7273:4;;7247:22;;-1:-1:-1;;;7256:13:0;;;;7247:6;:22;:::i;:::-;7246:31;;;;:::i;:::-;7239:38;;7164:264;;;-1:-1:-1;;;;;7303:31:0;;;;;;:25;:31;;;;;;;;:51;;;;-1:-1:-1;7338:12:0;;-1:-1:-1;;;7338:12:0;;;;:16;;7303:51;7299:129;;;7392:12;;7408:4;;7383:21;;-1:-1:-1;;;7392:12:0;;;;7383:6;:21;:::i;:::-;7382:30;;;;:::i;:::-;7375:37;;7299:129;7448:8;;7444:283;;-1:-1:-1;;;;;7555:15:0;;;;;;:9;:15;;;;;;;;:23;;;;;;;7619:4;7601:24;;;;;;;:32;;;;;;7676:35;1492:25:1;;;7519:13:0;;;;;7619:4;;7555:15;7676:35;;1465:18:1;7676:35:0;;;;;;;7444:283;-1:-1:-1;;;;;7773:15:0;;;;;;;:9;:15;;;;;;:25;;;;;;;7813:13;;;;;;;;;;:23;;;;;;7863:26;;;;;;7792:6;1492:25:1;;1480:2;1465:18;;1346:177;7863:26:0;;;;;;;;6131:1766;;;;6062:1835;;;:::o;692:320::-;823:59;;;-1:-1:-1;;;;;12716:32:1;;;823:59:0;;;12698:51:1;12765:18;;;;12758:34;;;823:59:0;;;;;;;;;;12671:18:1;;;;823:59:0;;;;;;;-1:-1:-1;;;;;823:59:0;-1:-1:-1;;;823:59:0;;;812:71;;-1:-1:-1;;;;812:10:0;;;;:71;;823:59;812:71;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;776:107;;;;902:7;:57;;;;-1:-1:-1;914:11:0;;:16;;:44;;;945:4;934:24;;;;;;;;;;;;:::i;:::-;894:110;;;;-1:-1:-1;;;894:110:0;;13561:2:1;894:110:0;;;13543:21:1;13600:2;13580:18;;;13573:30;13639:34;13619:18;;;13612:62;-1:-1:-1;;;13690:18:1;;;13683:38;13738:19;;894:110:0;13359:404:1;894:110:0;765:247;;692:320;;;:::o;10620:857::-;10683:18;;10659:21;10768:23;10683:18;10789:2;10768:23;:::i;:::-;10759:4;4660:7;4687:18;;;:9;:18;;;;;;10741:50;10737:122;;;10824:18;;:23;;10845:2;10824:23;:::i;:::-;10808:39;;10737:122;10895:16;;;10909:1;10895:16;;;;;;;;10871:21;;10895:16;;;;;;;;;;-1:-1:-1;10895:16:0;10871:40;;10940:4;10922;10927:1;10922:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;10922:23:0;;;-1:-1:-1;;;;;10922:23:0;;;;;2263:42;10956:4;10961:1;10956:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10956:14:0;;;:7;;;;;;;;;;;:14;10983:122;;-1:-1:-1;;;10983:122:0;;3116:42;;10983:66;;:122;;11050:13;;11065:1;;11068:4;;11082;;11089:15;;10983:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11139:21:0;;-1:-1:-1;;11175:14:0;;;-1:-1:-1;11171:299:0;;11240:6;;11206:17;;11250:3;;11227:19;;-1:-1:-1;;;11240:6:0;;;;11227:10;:19;:::i;:::-;11226:27;;;;:::i;:::-;11206:47;-1:-1:-1;11268:22:0;11293;11206:47;11293:10;:22;:::i;:::-;11354:9;;11346:45;;11268:47;;-1:-1:-1;;;;;;11354:9:0;;11377;;11346:45;;;;11377:9;11354;11346:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11413:45:0;;;15303:25:1;;;15359:2;15344:18;;15337:34;;;11332:59:0;;-1:-1:-1;11413:45:0;;15276:18:1;11413:45:0;;;;;;;11191:279;;11171:299;10648:829;;;;10620:857::o;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:173::-;505:20;;-1:-1:-1;;;;;554:31:1;;544:42;;534:70;;600:1;597;590:12;534:70;437:173;;;:::o;615:300::-;683:6;691;744:2;732:9;723:7;719:23;715:32;712:52;;;760:1;757;750:12;712:52;783:29;802:9;783:29;:::i;:::-;773:39;881:2;866:18;;;;853:32;;-1:-1:-1;;;615:300:1:o;1528:156::-;1594:20;;1654:4;1643:16;;1633:27;;1623:55;;1674:1;1671;1664:12;1689:182;1746:6;1799:2;1787:9;1778:7;1774:23;1770:32;1767:52;;;1815:1;1812;1805:12;1767:52;1838:27;1855:9;1838:27;:::i;:::-;1828:37;1689:182;-1:-1:-1;;;1689:182:1:o;1876:374::-;1953:6;1961;1969;2022:2;2010:9;2001:7;1997:23;1993:32;1990:52;;;2038:1;2035;2028:12;1990:52;2061:29;2080:9;2061:29;:::i;:::-;2051:39;;2109:38;2143:2;2132:9;2128:18;2109:38;:::i;:::-;1876:374;;2099:48;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1876:374::o;2444:186::-;2503:6;2556:2;2544:9;2535:7;2531:23;2527:32;2524:52;;;2572:1;2569;2562:12;2524:52;2595:29;2614:9;2595:29;:::i;2843:252::-;2907:6;2915;2968:2;2956:9;2947:7;2943:23;2939:32;2936:52;;;2984:1;2981;2974:12;2936:52;3007:27;3024:9;3007:27;:::i;:::-;2997:37;;3053:36;3085:2;3074:9;3070:18;3053:36;:::i;:::-;3043:46;;2843:252;;;;;:::o;3100:118::-;3186:5;3179:13;3172:21;3165:5;3162:32;3152:60;;3208:1;3205;3198:12;3223:315;3288:6;3296;3349:2;3337:9;3328:7;3324:23;3320:32;3317:52;;;3365:1;3362;3355:12;3317:52;3388:29;3407:9;3388:29;:::i;:::-;3378:39;;3467:2;3456:9;3452:18;3439:32;3480:28;3502:5;3480:28;:::i;:::-;3527:5;3517:15;;;3223:315;;;;;:::o;3543:226::-;3602:6;3655:2;3643:9;3634:7;3630:23;3626:32;3623:52;;;3671:1;3668;3661:12;3623:52;-1:-1:-1;3716:23:1;;3543:226;-1:-1:-1;3543:226:1:o;3774:260::-;3842:6;3850;3903:2;3891:9;3882:7;3878:23;3874:32;3871:52;;;3919:1;3916;3909:12;3871:52;3942:29;3961:9;3942:29;:::i;:::-;3932:39;;3990:38;4024:2;4013:9;4009:18;3990:38;:::i;4232:356::-;4434:2;4416:21;;;4453:18;;;4446:30;4512:34;4507:2;4492:18;;4485:62;4579:2;4564:18;;4232:356::o;6582:127::-;6643:10;6638:3;6634:20;6631:1;6624:31;6674:4;6671:1;6664:15;6698:4;6695:1;6688:15;6714:168;6787:9;;;6818;;6835:15;;;6829:22;;6815:37;6805:71;;6856:18;;:::i;6887:217::-;6927:1;6953;6943:132;;6997:10;6992:3;6988:20;6985:1;6978:31;7032:4;7029:1;7022:15;7060:4;7057:1;7050:15;6943:132;-1:-1:-1;7089:9:1;;6887:217::o;8307:184::-;8377:6;8430:2;8418:9;8409:7;8405:23;8401:32;8398:52;;;8446:1;8443;8436:12;8398:52;-1:-1:-1;8469:16:1;;8307:184;-1:-1:-1;8307:184:1:o;12803:301::-;12932:3;12970:6;12964:13;13016:6;13009:4;13001:6;12997:17;12992:3;12986:37;13078:1;13042:16;;13067:13;;;-1:-1:-1;13042:16:1;12803:301;-1:-1:-1;12803:301:1:o;13109:245::-;13176:6;13229:2;13217:9;13208:7;13204:23;13200:32;13197:52;;;13245:1;13242;13235:12;13197:52;13277:9;13271:16;13296:28;13318:5;13296:28;:::i;13900:127::-;13961:10;13956:3;13952:20;13949:1;13942:31;13992:4;13989:1;13982:15;14016:4;14013:1;14006:15;14032:959;14294:4;14342:3;14331:9;14327:19;14373:6;14362:9;14355:25;14416:6;14411:2;14400:9;14396:18;14389:34;14459:3;14454:2;14443:9;14439:18;14432:31;14483:6;14518;14512:13;14549:6;14541;14534:22;14587:3;14576:9;14572:19;14565:26;;14626:2;14618:6;14614:15;14600:29;;14647:1;14657:195;14671:6;14668:1;14665:13;14657:195;;;14736:13;;-1:-1:-1;;;;;14732:39:1;14720:52;;14801:2;14827:15;;;;14792:12;;;;14768:1;14686:9;14657:195;;;-1:-1:-1;;;;;;;14908:32:1;;;;14903:2;14888:18;;14881:60;-1:-1:-1;;14972:3:1;14957:19;14950:35;14869:3;14032:959;-1:-1:-1;;;14032:959:1:o;14996:128::-;15063:9;;;15084:11;;;15081:37;;;15098:18;;:::i

Swarm Source

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