ETH Price: $2,669.07 (+0.02%)

Token

IntelVerse AI (IVAI)
 

Overview

Max Total Supply

1,000,000,000 IVAI

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
574,827.92469742 IVAI

Value
$0.00
0xf35a13179824dbd86Ca446C08a6c75944aDB2837
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:
IntelVerseAI

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**

Train, Learn and Earn with AI-Solutions from Global Crowd.

Website: https://www.intelverseai.com
Telegram: https://t.me/IntelVerseAI
Twitter: https://twitter.com/intelverseAI
Dapp: https://app.intelverseai.com

**/

pragma solidity 0.8.21;

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

interface IUniV1Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract IntelVerseAI is Context, IERC20, Ownable {
    mapping(address => uint256) private _intelVerses;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isFeeExcepted;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"IntelVerse AI";
    string private constant _symbol = unicode"IVAI";
    uint256 private minTXSwaps = 10_000 * 10 ** _decimals;
    uint256 private maxTXSwaps = 10_000_000 * 10 ** _decimals;
    uint256 public maxTXLimits = 20_000_000 * 10 ** _decimals;
    uint256 private buyCounts = 0;
    uint256 private buyTaxFees = 18;
    uint256 private sellTaxFees = 26;

    IUniV2Router public uniswapV2Router;
    address private uniswapV2Pair;
    bool private inSwapLock = false;
    bool public tradeOpen = false;
    bool private swapEnabled = false;

    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();

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

    address payable private taxOperator;
    address payable private teamOperator;
    address public constant deadWallet =
        0x000000000000000000000000000000000000dEaD;

    constructor() {
        taxOperator = payable(0x4DBCd627026680C15D5AEf42E436b75f9b47c414);
        teamOperator = payable(0xd1d5fa0496B4AD166C94aDe71F5aAe3365622a54);
        _isFeeExcepted[_msgSender()] = true;
        _isFeeExcepted[address(this)] = true;
        _isFeeExcepted[deadWallet] = true;
        _isFeeExcepted[taxOperator] = true;
        _isFeeExcepted[teamOperator] = true;
        _intelVerses[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

    function _UpdateFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyTaxFees = _buyFee;
        sellTaxFees = _sellFee;
    }

    function _ExcludeFromFees(address account) external onlyOwner {
        require(
            _isFeeExcepted[account] != true,
            "Account is already excluded"
        );
        _isFeeExcepted[account] = true;
        emit ExcludeFromFeeUpdated(account);
    }

    function _IncludeFromFees(address account) external onlyOwner {
        require(
            _isFeeExcepted[account] != false,
            "Account is already included"
        );
        _isFeeExcepted[account] = false;
        emit includeFromFeeUpdated(account);
    }

    function sendETHToINTEL(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        taxOperator.transfer(amount / 2);
        teamOperator.transfer(amount / 2);
    }

    function removeLimit() external onlyOwner {
        buyTaxFees = 2;
        sellTaxFees = 2;
        maxTXLimits = _tTotal;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 totalTaxes = 0;
        totalTaxes = buyTaxFees;

        if (!_isFeeExcepted[from] && !_isFeeExcepted[to]) {
            require(tradeOpen, "Trading not enabled");
        }

        if (inSwapLock || !swapEnabled) {
            _intelVerses[from] -= amount;
            _intelVerses[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isFeeExcepted[to]
        ) {
            require(amount <= maxTXLimits, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= maxTXLimits,
                "Exceeds the maxWalletSize."
            );
            buyCounts++;
        }

        if (
            from != uniswapV2Pair &&
            !_isFeeExcepted[from] &&
            !_isFeeExcepted[to]
        ) {
            require(amount <= maxTXLimits, "Exceeds the _maxTxAmount.");
        }

        if (
            to == uniswapV2Pair &&
            !_isFeeExcepted[from] &&
            from != address(this) &&
            !_isFeeExcepted[to]
        ) {
            totalTaxes = sellTaxFees;
        }

        uint256 contractTokens = balanceOf(address(this));
        if (
            !inSwapLock &&
            swapEnabled &&
            buyCounts > 0 &&
            to == uniswapV2Pair &&
            amount >= minTXSwaps &&
            !_isFeeExcepted[from] &&
            contractTokens >= minTXSwaps &&
            !_isFeeExcepted[to]
        ) {
            swapForETHs(min(amount, min(contractTokens, maxTXSwaps)));
            uint256 contractETHs = address(this).balance;
            if (contractETHs > 0) {
                sendETHToINTEL(address(this).balance);
            }
        }

        if (totalTaxes != 0) {
            uint256 intelTaxes = (amount * totalTaxes) / 100;
            uint256 iAmounts = amount - intelTaxes;
            address iReceiver = _isFeeExcepted[from]
                ? from
                : address(this);
            intelTaxes = _isFeeExcepted[from] ? amount : intelTaxes;
            _intelVerses[iReceiver] += intelTaxes;
            emit Transfer(from, address(this), intelTaxes);
            _intelVerses[from] -= amount;
            _intelVerses[to] += iAmounts;
            emit Transfer(from, to, iAmounts);
        } else {
            _intelVerses[from] -= amount;
            _intelVerses[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    function recoverERC20(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(teamOperator, _amount);
        emit ERC20TokensRecovered(_amount);
    }

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

    function addLP() external payable onlyOwner {
        uniswapV2Router = IUniV2Router(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniV1Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(
        address owner,
        address spender
    ) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function startIntelTrading() external onlyOwner {
        require(!tradeOpen, "trading is already open");
        tradeOpen = true;
        swapEnabled = true;
        emit TradingOpenUpdated();
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"_ExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"_IncludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"_UpdateFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"addLP","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"maxTXLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startIntelTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniV2Router","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a6200034a565b620000209061271062000361565b600455620000316009600a6200034a565b62000040906298968062000361565b600555620000516009600a6200034a565b62000061906301312d0062000361565b6006555f6007556012600855601a600955600b805462ffffff60a01b191690553480156200008d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b0319908116734dbcd627026680c15d5aef42e436b75f9b47c41417909155600d805490911673d1d5fa0496b4ad166c94ade71f5aae3365622a54179055600160035f620001233390565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054861682179055600c54821684528284208054861682179055600d54909116835291208054909216179055620001c26009600a6200034a565b620001d290633b9aca0062000361565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002146009600a6200034a565b6200022490633b9aca0062000361565b60405190815260200160405180910390a36200037b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028f57815f19048211156200027357620002736200023b565b808516156200028157918102915b93841c939080029062000254565b509250929050565b5f82620002a75750600162000344565b81620002b557505f62000344565b8160018114620002ce5760028114620002d957620002f9565b600191505062000344565b60ff841115620002ed57620002ed6200023b565b50506001821b62000344565b5060208310610133831016604e8410600b84101617156200031e575081810a62000344565b6200032a83836200024f565b805f19048211156200034057620003406200023b565b0290505b92915050565b5f6200035a60ff84168362000297565b9392505050565b80820281158282048414176200034457620003446200023b565b611fc480620003895f395ff3fe608060405260043610610149575f3560e01c806362256589116100b357806395d89b411161006d57806395d89b41146103b0578063a9059cbb146103dc578063bc37e1a3146103fb578063dd62ed3e14610403578063df94048c14610447578063f2fde38b1461045c575f80fd5b8063622565891461030457806370a0823114610318578063715018a61461034c57806385141a77146103605780638980f11f146103755780638da5cb5b14610394575f80fd5b806323b872dd1161010457806323b872dd1461025857806325fa0b9814610277578063313ce567146102975780633e9d5dcf146102b25780634edd2a20146102d157806351efbeca146102e5575f80fd5b8062f39ea0146101545780630614117a1461017557806306fdde0314610189578063095ea7b3146101d05780631694505e146101ff57806318160ddd14610236575f80fd5b3661015057005b5f80fd5b34801561015f575f80fd5b5061017361016e366004611b49565b61047b565b005b348015610180575f80fd5b50610173610516565b348015610194575f80fd5b5060408051808201909152600d81526c496e74656c566572736520414960981b60208201525b6040516101c79190611b69565b60405180910390f35b3480156101db575f80fd5b506101ef6101ea366004611bc8565b6105dd565b60405190151581526020016101c7565b34801561020a575f80fd5b50600a5461021e906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b348015610241575f80fd5b5061024a6105f3565b6040519081526020016101c7565b348015610263575f80fd5b506101ef610272366004611bf2565b610613565b348015610282575f80fd5b50600b546101ef90600160a81b900460ff1681565b3480156102a2575f80fd5b50604051600981526020016101c7565b3480156102bd575f80fd5b506101736102cc366004611c30565b6106c1565b3480156102dc575f80fd5b506101736107a1565b3480156102f0575f80fd5b506101736102ff366004611c30565b610863565b34801561030f575f80fd5b5061017361093f565b348015610323575f80fd5b5061024a610332366004611c30565b6001600160a01b03165f9081526001602052604090205490565b348015610357575f80fd5b50610173610992565b34801561036b575f80fd5b5061021e61dead81565b348015610380575f80fd5b5061017361038f366004611bc8565b610a03565b34801561039f575f80fd5b505f546001600160a01b031661021e565b3480156103bb575f80fd5b506040805180820190915260048152634956414960e01b60208201526101ba565b3480156103e7575f80fd5b506101ef6103f6366004611bc8565b610c10565b610173610c1c565b34801561040e575f80fd5b5061024a61041d366004611c4b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610452575f80fd5b5061024a60065481565b348015610467575f80fd5b50610173610476366004611c30565b610ebd565b5f546001600160a01b031633146104ad5760405162461bcd60e51b81526004016104a490611c82565b60405180910390fd5b606482111580156104bf575060648111155b61050b5760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104a4565b600891909155600955565b47806105345760405162461bcd60e51b81526004016104a490611cb7565b4781111561057a5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a4565b600d546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105b1573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f6105e9338484610f57565b5060015b92915050565b5f6106006009600a611ded565b61060e90633b9aca00611dfb565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156106975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104a4565b6106a285858561107a565b6106b685336106b18685611e12565b610f57565b506001949350505050565b5f546001600160a01b031633146106ea5760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b0381165f9081526003602052604090205460ff1615156001036107565760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a4565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b031633146107ca5760405162461bcd60e51b81526004016104a490611c82565b600b54600160a81b900460ff16156108245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a4565b600b805461ffff60a81b191661010160a81b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b0316331461088c5760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b0381165f9081526003602052604081205460ff16151590036108f75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104a4565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b031633146109685760405162461bcd60e51b81526004016104a490611c82565b60026008819055600990815561097f90600a611ded565b61098d90633b9aca00611dfb565b600655565b5f546001600160a01b031633146109bb5760405162461bcd60e51b81526004016104a490611c82565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a2c5760405162461bcd60e51b81526004016104a490611c82565b306001600160a01b03831603610aa35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104a4565b5f8111610ac25760405162461bcd60e51b81526004016104a490611cb7565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b289190611e25565b811115610b6d5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a4565b600d5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611e3c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f6105e933848461107a565b5f546001600160a01b03163314610c455760405162461bcd60e51b81526004016104a490611c82565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ca7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611e5b565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4e9190611e5b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611e5b565b600b80546001600160a01b0319166001600160a01b03928316179055600a54610de9913091165f19610f57565b600a546001600160a01b031663f305d7193430610e1a816001600160a01b03165f9081526001602052604090205490565b5f80610e2d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb89190611e76565b505050565b5f546001600160a01b03163314610ee65760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b038116610f4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a4565b610f5481611854565b50565b6001600160a01b038316610fb95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a4565b6001600160a01b03821661101a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110de5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a4565b6001600160a01b0382166111405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a4565b5f81116111a15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a4565b6008546001600160a01b0384165f9081526003602052604090205460ff161580156111e457506001600160a01b0383165f9081526003602052604090205460ff16155b1561123857600b54600160a81b900460ff166112385760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104a4565b600b54600160a01b900460ff168061125a5750600b54600160b01b900460ff16155b156112f9576001600160a01b0384165f9081526001602052604081208054849290611286908490611e12565b90915550506001600160a01b0383165f90815260016020526040812080548492906112b2908490611ea1565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112eb91815260200190565b60405180910390a350505050565b600b546001600160a01b0385811691161480156113245750600a546001600160a01b03848116911614155b801561134857506001600160a01b0383165f9081526003602052604090205460ff16155b1561142a5760065482111561139b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a4565b600654826113bd856001600160a01b03165f9081526001602052604090205490565b6113c79190611ea1565b11156114155760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a4565b60078054905f61142483611eb4565b91905055505b600b546001600160a01b0385811691161480159061146057506001600160a01b0384165f9081526003602052604090205460ff16155b801561148457506001600160a01b0383165f9081526003602052604090205460ff16155b156114d7576006548211156114d75760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a4565b600b546001600160a01b03848116911614801561150c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561152157506001600160a01b0384163014155b801561154557506001600160a01b0383165f9081526003602052604090205460ff16155b1561154f57506009545b305f90815260016020526040902054600b54600160a01b900460ff161580156115815750600b54600160b01b900460ff165b801561158e57505f600754115b80156115a75750600b546001600160a01b038581169116145b80156115b557506004548310155b80156115d957506001600160a01b0385165f9081526003602052604090205460ff16155b80156115e757506004548110155b801561160b57506001600160a01b0384165f9081526003602052604090205460ff16155b1561163f5761162d61162884611623846005546118a3565b6118a3565b6118ba565b47801561163d5761163d47611a77565b505b81156117b8575f60646116528486611dfb565b61165c9190611ecc565b90505f6116698286611e12565b6001600160a01b0388165f908152600360205260408120549192509060ff166116925730611694565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116bc57826116be565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116ea908490611ea1565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611743908490611e12565b90915550506001600160a01b0387165f908152600160205260408120805484929061176f908490611ea1565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a891815260200190565b60405180910390a350505061184d565b6001600160a01b0385165f90815260016020526040812080548592906117df908490611e12565b90915550506001600160a01b0384165f908152600160205260408120805485929061180b908490611ea1565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184491815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118b157826118b3565b815b9392505050565b600b805460ff60a01b1916600160a01b1790558061191a5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194d5761194d611eeb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c89190611e5b565b816001815181106119db576119db611eeb565b6001600160a01b039283166020918202929092010152600a54611a019130911684610f57565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a399085905f90869030904290600401611eff565b5f604051808303815f87803b158015611a50575f80fd5b505af1158015611a62573d5f803e3d5ffd5b5050600b805460ff60a01b1916905550505050565b5f8111611ac65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a4565b600c546001600160a01b03166108fc611ae0600284611ecc565b6040518115909202915f818181858888f19350505050158015611b05573d5f803e3d5ffd5b50600d546001600160a01b03166108fc611b20600284611ecc565b6040518115909202915f818181858888f19350505050158015611b45573d5f803e3d5ffd5b5050565b5f8060408385031215611b5a575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b81811015611b9457858101830151858201604001528201611b78565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f54575f80fd5b5f8060408385031215611bd9575f80fd5b8235611be481611bb4565b946020939093013593505050565b5f805f60608486031215611c04575f80fd5b8335611c0f81611bb4565b92506020840135611c1f81611bb4565b929592945050506040919091013590565b5f60208284031215611c40575f80fd5b81356118b381611bb4565b5f8060408385031215611c5c575f80fd5b8235611c6781611bb4565b91506020830135611c7781611bb4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d4757815f1904821115611d2d57611d2d611cf9565b80851615611d3a57918102915b93841c9390800290611d12565b509250929050565b5f82611d5d575060016105ed565b81611d6957505f6105ed565b8160018114611d7f5760028114611d8957611da5565b60019150506105ed565b60ff841115611d9a57611d9a611cf9565b50506001821b6105ed565b5060208310610133831016604e8410600b8410161715611dc8575081810a6105ed565b611dd28383611d0d565b805f1904821115611de557611de5611cf9565b029392505050565b5f6118b360ff841683611d4f565b80820281158282048414176105ed576105ed611cf9565b818103818111156105ed576105ed611cf9565b5f60208284031215611e35575f80fd5b5051919050565b5f60208284031215611e4c575f80fd5b815180151581146118b3575f80fd5b5f60208284031215611e6b575f80fd5b81516118b381611bb4565b5f805f60608486031215611e88575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156105ed576105ed611cf9565b5f60018201611ec557611ec5611cf9565b5060010190565b5f82611ee657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d5af7749937a29b6148721339540c431afe692ed93c1f9068361dabff3924b264736f6c63430008150033

Deployed Bytecode

0x608060405260043610610149575f3560e01c806362256589116100b357806395d89b411161006d57806395d89b41146103b0578063a9059cbb146103dc578063bc37e1a3146103fb578063dd62ed3e14610403578063df94048c14610447578063f2fde38b1461045c575f80fd5b8063622565891461030457806370a0823114610318578063715018a61461034c57806385141a77146103605780638980f11f146103755780638da5cb5b14610394575f80fd5b806323b872dd1161010457806323b872dd1461025857806325fa0b9814610277578063313ce567146102975780633e9d5dcf146102b25780634edd2a20146102d157806351efbeca146102e5575f80fd5b8062f39ea0146101545780630614117a1461017557806306fdde0314610189578063095ea7b3146101d05780631694505e146101ff57806318160ddd14610236575f80fd5b3661015057005b5f80fd5b34801561015f575f80fd5b5061017361016e366004611b49565b61047b565b005b348015610180575f80fd5b50610173610516565b348015610194575f80fd5b5060408051808201909152600d81526c496e74656c566572736520414960981b60208201525b6040516101c79190611b69565b60405180910390f35b3480156101db575f80fd5b506101ef6101ea366004611bc8565b6105dd565b60405190151581526020016101c7565b34801561020a575f80fd5b50600a5461021e906001600160a01b031681565b6040516001600160a01b0390911681526020016101c7565b348015610241575f80fd5b5061024a6105f3565b6040519081526020016101c7565b348015610263575f80fd5b506101ef610272366004611bf2565b610613565b348015610282575f80fd5b50600b546101ef90600160a81b900460ff1681565b3480156102a2575f80fd5b50604051600981526020016101c7565b3480156102bd575f80fd5b506101736102cc366004611c30565b6106c1565b3480156102dc575f80fd5b506101736107a1565b3480156102f0575f80fd5b506101736102ff366004611c30565b610863565b34801561030f575f80fd5b5061017361093f565b348015610323575f80fd5b5061024a610332366004611c30565b6001600160a01b03165f9081526001602052604090205490565b348015610357575f80fd5b50610173610992565b34801561036b575f80fd5b5061021e61dead81565b348015610380575f80fd5b5061017361038f366004611bc8565b610a03565b34801561039f575f80fd5b505f546001600160a01b031661021e565b3480156103bb575f80fd5b506040805180820190915260048152634956414960e01b60208201526101ba565b3480156103e7575f80fd5b506101ef6103f6366004611bc8565b610c10565b610173610c1c565b34801561040e575f80fd5b5061024a61041d366004611c4b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610452575f80fd5b5061024a60065481565b348015610467575f80fd5b50610173610476366004611c30565b610ebd565b5f546001600160a01b031633146104ad5760405162461bcd60e51b81526004016104a490611c82565b60405180910390fd5b606482111580156104bf575060648111155b61050b5760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e67730000000000000060448201526064016104a4565b600891909155600955565b47806105345760405162461bcd60e51b81526004016104a490611cb7565b4781111561057a5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a4565b600d546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105b1573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f6105e9338484610f57565b5060015b92915050565b5f6106006009600a611ded565b61060e90633b9aca00611dfb565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156106975760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016104a4565b6106a285858561107a565b6106b685336106b18685611e12565b610f57565b506001949350505050565b5f546001600160a01b031633146106ea5760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b0381165f9081526003602052604090205460ff1615156001036107565760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c75646564000000000060448201526064016104a4565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b031633146107ca5760405162461bcd60e51b81526004016104a490611c82565b600b54600160a81b900460ff16156108245760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a4565b600b805461ffff60a81b191661010160a81b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b0316331461088c5760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b0381165f9081526003602052604081205460ff16151590036108f75760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c75646564000000000060448201526064016104a4565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b031633146109685760405162461bcd60e51b81526004016104a490611c82565b60026008819055600990815561097f90600a611ded565b61098d90633b9aca00611dfb565b600655565b5f546001600160a01b031633146109bb5760405162461bcd60e51b81526004016104a490611c82565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b03163314610a2c5760405162461bcd60e51b81526004016104a490611c82565b306001600160a01b03831603610aa35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016104a4565b5f8111610ac25760405162461bcd60e51b81526004016104a490611cb7565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610b04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b289190611e25565b811115610b6d5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b60448201526064016104a4565b600d5460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610bbd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be19190611e3c565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f6105e933848461107a565b5f546001600160a01b03163314610c455760405162461bcd60e51b81526004016104a490611c82565b600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610ca7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ccb9190611e5b565b6001600160a01b031663c9c6539630600a5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d4e9190611e5b565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610d98573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbc9190611e5b565b600b80546001600160a01b0319166001600160a01b03928316179055600a54610de9913091165f19610f57565b600a546001600160a01b031663f305d7193430610e1a816001600160a01b03165f9081526001602052604090205490565b5f80610e2d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610e93573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610eb89190611e76565b505050565b5f546001600160a01b03163314610ee65760405162461bcd60e51b81526004016104a490611c82565b6001600160a01b038116610f4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a4565b610f5481611854565b50565b6001600160a01b038316610fb95760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a4565b6001600160a01b03821661101a5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110de5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a4565b6001600160a01b0382166111405760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a4565b5f81116111a15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a4565b6008546001600160a01b0384165f9081526003602052604090205460ff161580156111e457506001600160a01b0383165f9081526003602052604090205460ff16155b1561123857600b54600160a81b900460ff166112385760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016104a4565b600b54600160a01b900460ff168061125a5750600b54600160b01b900460ff16155b156112f9576001600160a01b0384165f9081526001602052604081208054849290611286908490611e12565b90915550506001600160a01b0383165f90815260016020526040812080548492906112b2908490611ea1565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6f833981519152846040516112eb91815260200190565b60405180910390a350505050565b600b546001600160a01b0385811691161480156113245750600a546001600160a01b03848116911614155b801561134857506001600160a01b0383165f9081526003602052604090205460ff16155b1561142a5760065482111561139b5760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a4565b600654826113bd856001600160a01b03165f9081526001602052604090205490565b6113c79190611ea1565b11156114155760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a4565b60078054905f61142483611eb4565b91905055505b600b546001600160a01b0385811691161480159061146057506001600160a01b0384165f9081526003602052604090205460ff16155b801561148457506001600160a01b0383165f9081526003602052604090205460ff16155b156114d7576006548211156114d75760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b60448201526064016104a4565b600b546001600160a01b03848116911614801561150c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561152157506001600160a01b0384163014155b801561154557506001600160a01b0383165f9081526003602052604090205460ff16155b1561154f57506009545b305f90815260016020526040902054600b54600160a01b900460ff161580156115815750600b54600160b01b900460ff165b801561158e57505f600754115b80156115a75750600b546001600160a01b038581169116145b80156115b557506004548310155b80156115d957506001600160a01b0385165f9081526003602052604090205460ff16155b80156115e757506004548110155b801561160b57506001600160a01b0384165f9081526003602052604090205460ff16155b1561163f5761162d61162884611623846005546118a3565b6118a3565b6118ba565b47801561163d5761163d47611a77565b505b81156117b8575f60646116528486611dfb565b61165c9190611ecc565b90505f6116698286611e12565b6001600160a01b0388165f908152600360205260408120549192509060ff166116925730611694565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116bc57826116be565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116ea908490611ea1565b909155505060405183815230906001600160a01b038a16905f80516020611f6f8339815191529060200160405180910390a36001600160a01b0388165f9081526001602052604081208054889290611743908490611e12565b90915550506001600160a01b0387165f908152600160205260408120805484929061176f908490611ea1565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6f833981519152846040516117a891815260200190565b60405180910390a350505061184d565b6001600160a01b0385165f90815260016020526040812080548592906117df908490611e12565b90915550506001600160a01b0384165f908152600160205260408120805485929061180b908490611ea1565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6f8339815191528560405161184491815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118b157826118b3565b815b9392505050565b600b805460ff60a01b1916600160a01b1790558061191a5760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a4565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194d5761194d611eeb565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c89190611e5b565b816001815181106119db576119db611eeb565b6001600160a01b039283166020918202929092010152600a54611a019130911684610f57565b600a5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a399085905f90869030904290600401611eff565b5f604051808303815f87803b158015611a50575f80fd5b505af1158015611a62573d5f803e3d5ffd5b5050600b805460ff60a01b1916905550505050565b5f8111611ac65760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e203000000060448201526064016104a4565b600c546001600160a01b03166108fc611ae0600284611ecc565b6040518115909202915f818181858888f19350505050158015611b05573d5f803e3d5ffd5b50600d546001600160a01b03166108fc611b20600284611ecc565b6040518115909202915f818181858888f19350505050158015611b45573d5f803e3d5ffd5b5050565b5f8060408385031215611b5a575f80fd5b50508035926020909101359150565b5f6020808352835180828501525f5b81811015611b9457858101830151858201604001528201611b78565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f54575f80fd5b5f8060408385031215611bd9575f80fd5b8235611be481611bb4565b946020939093013593505050565b5f805f60608486031215611c04575f80fd5b8335611c0f81611bb4565b92506020840135611c1f81611bb4565b929592945050506040919091013590565b5f60208284031215611c40575f80fd5b81356118b381611bb4565b5f8060408385031215611c5c575f80fd5b8235611c6781611bb4565b91506020830135611c7781611bb4565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d4757815f1904821115611d2d57611d2d611cf9565b80851615611d3a57918102915b93841c9390800290611d12565b509250929050565b5f82611d5d575060016105ed565b81611d6957505f6105ed565b8160018114611d7f5760028114611d8957611da5565b60019150506105ed565b60ff841115611d9a57611d9a611cf9565b50506001821b6105ed565b5060208310610133831016604e8410600b8410161715611dc8575081810a6105ed565b611dd28383611d0d565b805f1904821115611de557611de5611cf9565b029392505050565b5f6118b360ff841683611d4f565b80820281158282048414176105ed576105ed611cf9565b818103818111156105ed576105ed611cf9565b5f60208284031215611e35575f80fd5b5051919050565b5f60208284031215611e4c575f80fd5b815180151581146118b3575f80fd5b5f60208284031215611e6b575f80fd5b81516118b381611bb4565b5f805f60608486031215611e88575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156105ed576105ed611cf9565b5f60018201611ec557611ec5611cf9565b5060010190565b5f82611ee657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f4d5784516001600160a01b031683529383019391830191600101611f28565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209d5af7749937a29b6148721339540c431afe692ed93c1f9068361dabff3924b264736f6c63430008150033

Deployed Bytecode Sourcemap

4092:10500:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6615:229;;;;;;;;;;-1:-1:-1;6615:229:0;;;;;:::i;:::-;;:::i;:::-;;11933:386;;;;;;;;;;;;;:::i;6113:83::-;;;;;;;;;;-1:-1:-1;6183:5:0;;;;;;;;;;;;-1:-1:-1;;;6183:5:0;;;;6113:83;;;;;;;:::i;:::-;;;;;;;;14149:186;;;;;;;;;;-1:-1:-1;14149:186:0;;;;;:::i;:::-;;:::i;:::-;;;1441:14:1;;1434:22;1416:41;;1404:2;1389:18;14149:186:0;1276:187:1;4868:35:0;;;;;;;;;;-1:-1:-1;4868:35:0;;;;-1:-1:-1;;;;;4868:35:0;;;;;;-1:-1:-1;;;;;1652:32:1;;;1634:51;;1622:2;1607:18;4868:35:0;1468:223:1;6384:95:0;;;;;;;;;;;;;:::i;:::-;;;1842:25:1;;;1830:2;1815:18;6384:95:0;1696:177:1;12949:481:0;;;;;;;;;;-1:-1:-1;12949:481:0;;;;;:::i;:::-;;:::i;4984:29::-;;;;;;;;;;-1:-1:-1;4984:29:0;;;;-1:-1:-1;;;4984:29:0;;;;;;6295:83;;;;;;;;;;-1:-1:-1;6295:83:0;;4369:1;2481:36:1;;2469:2;2454:18;6295:83:0;2339:184:1;6852:276:0;;;;;;;;;;-1:-1:-1;6852:276:0;;;;;:::i;:::-;;:::i;14347:205::-;;;;;;;;;;;;;:::i;7136:278::-;;;;;;;;;;-1:-1:-1;7136:278:0;;;;;:::i;:::-;;:::i;7636:133::-;;;;;;;;;;;;;:::i;6485:122::-;;;;;;;;;;-1:-1:-1;6485:122:0;;;;;:::i;:::-;-1:-1:-1;;;;;6578:21:0;6551:7;6578:21;;;:12;:21;;;;;;;6485:122;3937:148;;;;;;;;;;;;;:::i;5499:88::-;;;;;;;;;;;;5545:42;5499:88;;11363:562;;;;;;;;;;-1:-1:-1;11363:562:0;;;;;:::i;:::-;;:::i;3286:79::-;;;;;;;;;;-1:-1:-1;3324:7:0;3351:6;-1:-1:-1;;;;;3351:6:0;3286:79;;6202:87;;;;;;;;;;-1:-1:-1;6274:7:0;;;;;;;;;;;;-1:-1:-1;;;6274:7:0;;;;6202:87;;13777:192;;;;;;;;;;-1:-1:-1;13777:192:0;;;;;:::i;:::-;;:::i;12327:614::-;;;:::i;13975:168::-;;;;;;;;;;-1:-1:-1;13975:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;14108:18:0;;;14081:7;14108:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;13975:168;4689:57;;;;;;;;;;;;;;;;3496:238;;;;;;;;;;-1:-1:-1;3496:238:0;;;;;:::i;:::-;;:::i;6615:229::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;;;;;;;;;6720:3:::1;6709:7;:14;;:33;;;;;6739:3;6727:8;:15;;6709:33;6701:71;;;::::0;-1:-1:-1;;;6701:71:0;;3944:2:1;6701:71:0::1;::::0;::::1;3926:21:1::0;3983:2;3963:18;;;3956:30;4022:27;4002:18;;;3995:55;4067:18;;6701:71:0::1;3742:349:1::0;6701:71:0::1;6783:10;:20:::0;;;;6814:11:::1;:22:::0;6615:229::o;11933:386::-;11998:21;12038:16;12030:63;;;;-1:-1:-1;;;12030:63:0;;;;;;;:::i;:::-;12142:21;12126:12;:37;;12104:106;;;;-1:-1:-1;;;12104:106:0;;4701:2:1;12104:106:0;;;4683:21:1;4740:2;4720:18;;;4713:30;-1:-1:-1;;;4759:18:1;;;4752:49;4818:18;;12104:106:0;4499:343:1;12104:106:0;12237:12;;12221:53;;-1:-1:-1;;;;;12237:12:0;;;;12221:53;;;;;12261:12;;12237;12221:53;12237:12;12221:53;12261:12;12237;12221:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12290:21:0;;;;;;;11964:355;11933:386::o;14149:186::-;14249:4;14266:39;408:10;14289:7;14298:6;14266:8;:39::i;:::-;-1:-1:-1;14323:4:0;14149:186;;;;;:::o;6384:95::-;6437:7;4428:15;4369:1;4428:2;:15;:::i;:::-;4412:31;;:13;:31;:::i;:::-;6457:14;;6384:95;:::o;12949:481::-;-1:-1:-1;;;;;13125:19:0;;13081:4;13125:19;;;:11;:19;;;;;;;;408:10;13125:33;;;;;;;;13191:26;;;;13169:116;;;;-1:-1:-1;;;13169:116:0;;6737:2:1;13169:116:0;;;6719:21:1;6776:2;6756:18;;;6749:30;6815:34;6795:18;;;6788:62;-1:-1:-1;;;6866:18:1;;;6859:38;6914:19;;13169:116:0;6535:404:1;13169:116:0;13296:36;13306:6;13314:9;13325:6;13296:9;:36::i;:::-;13343:57;13352:6;408:10;13374:25;13393:6;13374:16;:25;:::i;:::-;13343:8;:57::i;:::-;-1:-1:-1;13418:4:0;;12949:481;-1:-1:-1;;;;12949:481:0:o;6852:276::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6947:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:31;;:23:::0;:31;6925:108:::1;;;::::0;-1:-1:-1;;;6925:108:0;;7279:2:1;6925:108:0::1;::::0;::::1;7261:21:1::0;7318:2;7298:18;;;7291:30;7357:29;7337:18;;;7330:57;7404:18;;6925:108:0::1;7077:351:1::0;6925:108:0::1;-1:-1:-1::0;;;;;7044:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:30;;-1:-1:-1;;7044:30:0::1;7070:4;7044:30;::::0;;7090;::::1;::::0;7044:23;7090:30:::1;6852:276:::0;:::o;14347:205::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;14415:9:::1;::::0;-1:-1:-1;;;14415:9:0;::::1;;;14414:10;14406:46;;;::::0;-1:-1:-1;;;14406:46:0;;7635:2:1;14406:46:0::1;::::0;::::1;7617:21:1::0;7674:2;7654:18;;;7647:30;7713:25;7693:18;;;7686:53;7756:18;;14406:46:0::1;7433:347:1::0;14406:46:0::1;14463:9;:16:::0;;-1:-1:-1;;;;14490:18:0;-1:-1:-1;;;14490:18:0;;;14524:20:::1;::::0;::::1;::::0;-1:-1:-1;;14524:20:0::1;14347:205::o:0;7136:278::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7231:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:32;;::::0;;7209:109:::1;;;::::0;-1:-1:-1;;;7209:109:0;;7987:2:1;7209:109:0::1;::::0;::::1;7969:21:1::0;8026:2;8006:18;;;7999:30;8065:29;8045:18;;;8038:57;8112:18;;7209:109:0::1;7785:351:1::0;7209:109:0::1;-1:-1:-1::0;;;;;7329:23:0;::::1;7355:5;7329:23:::0;;;:14:::1;:23;::::0;;;;;:31;;-1:-1:-1;;7329:31:0::1;::::0;;7376:30;::::1;::::0;7355:5;7376:30:::1;7136:278:::0;:::o;7636:133::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;7702:1:::1;7689:10;:14:::0;;;7714:11:::1;:15:::0;;;4428::::1;::::0;:2:::1;:15;:::i;:::-;4412:31;::::0;:13:::1;:31;:::i;:::-;7740:11;:21:::0;7636:133::o;3937:148::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;4044:1:::1;4028:6:::0;;4007:40:::1;::::0;-1:-1:-1;;;;;4028:6:0;;::::1;::::0;4007:40:::1;::::0;4044:1;;4007:40:::1;4075:1;4058:19:::0;;-1:-1:-1;;;;;;4058:19:0::1;::::0;;3937:148::o;11363:562::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;11521:4:::1;-1:-1:-1::0;;;;;11499:27:0;::::1;::::0;11477:131:::1;;;::::0;-1:-1:-1;;;11477:131:0;;8343:2:1;11477:131:0::1;::::0;::::1;8325:21:1::0;8382:2;8362:18;;;8355:30;8421:34;8401:18;;;8394:62;-1:-1:-1;;;8472:18:1;;;8465:52;8534:19;;11477:131:0::1;8141:418:1::0;11477:131:0::1;11637:1;11627:7;:11;11619:58;;;;-1:-1:-1::0;;;11619:58:0::1;;;;;;;:::i;:::-;11721:43;::::0;-1:-1:-1;;;11721:43:0;;11758:4:::1;11721:43;::::0;::::1;1634:51:1::0;-1:-1:-1;;;;;11721:28:0;::::1;::::0;::::1;::::0;1607:18:1;;11721:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11710:7;:54;;11688:123;;;::::0;-1:-1:-1;;;11688:123:0;;4701:2:1;11688:123:0::1;::::0;::::1;4683:21:1::0;4740:2;4720:18;;;4713:30;-1:-1:-1;;;4759:18:1;;;4752:49;4818:18;;11688:123:0::1;4499:343:1::0;11688:123:0::1;11850:12;::::0;11822:50:::1;::::0;-1:-1:-1;;;11822:50:0;;-1:-1:-1;;;;;11850:12:0;;::::1;11822:50;::::0;::::1;8935:51:1::0;9002:18;;;8995:34;;;11822:27:0;;::::1;::::0;::::1;::::0;8908:18:1;;11822:50:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11888:29:0::1;::::0;11909:7;;11888:29:::1;::::0;;;::::1;11363:562:::0;;:::o;13777:192::-;13880:4;13897:42;408:10;13921:9;13932:6;13897:9;:42::i;12327:614::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;12382:15:::1;:98:::0;;-1:-1:-1;;;;;;12382:98:0::1;12427:42;12382:98:::0;;::::1;::::0;;;12521:25:::1;::::0;;-1:-1:-1;;;12521:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;12427:42;12521:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12507:51:0::1;;12581:4;12601:15;;;;;;;;;-1:-1:-1::0;;;;;12601:15:0::1;-1:-1:-1::0;;;;;12601:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12507:127;::::0;-1:-1:-1;;;;;;12507:127:0::1;::::0;;;;;;-1:-1:-1;;;;;9808:15:1;;;12507:127:0::1;::::0;::::1;9790:34:1::0;9860:15;;9840:18;;;9833:43;9725:18;;12507:127:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12491:13;:143:::0;;-1:-1:-1;;;;;;12491:143:0::1;-1:-1:-1::0;;;;;12491:143:0;;::::1;;::::0;;12679:15:::1;::::0;12647:62:::1;::::0;12664:4:::1;::::0;12679:15:::1;-1:-1:-1::0;;12647:8:0::1;:62::i;:::-;12722:15;::::0;-1:-1:-1;;;;;12722:15:0::1;:31;12761:9;12794:4;12814:24;12794:4:::0;-1:-1:-1;;;;;6578:21:0;6551:7;6578:21;;;:12;:21;;;;;;;6485:122;12814:24:::1;12853:1;12869::::0;12885:7:::1;3324::::0;3351:6;-1:-1:-1;;;;;3351:6:0;;3286:79;12885:7:::1;12722:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12722:211:0;;;-1:-1:-1;;;;;10246:15:1;;;12722:211:0::1;::::0;::::1;10228:34:1::0;10278:18;;;10271:34;;;;10321:18;;;10314:34;;;;10364:18;;;10357:34;10428:15;;;10407:19;;;10400:44;12907:15:0::1;10460:19:1::0;;;10453:35;10162:19;;12722:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12327:614::o:0;3496:238::-;3411:6;;-1:-1:-1;;;;;3411:6:0;408:10;3411:22;3403:67;;;;-1:-1:-1;;;3403:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3599:22:0;::::1;3577:110;;;::::0;-1:-1:-1;;;3577:110:0;;11012:2:1;3577:110:0::1;::::0;::::1;10994:21:1::0;11051:2;11031:18;;;11024:30;11090:34;11070:18;;;11063:62;-1:-1:-1;;;11141:18:1;;;11134:36;11187:19;;3577:110:0::1;10810:402:1::0;3577:110:0::1;3698:28;3717:8;3698:18;:28::i;:::-;3496:238:::0;:::o;13436:335::-;-1:-1:-1;;;;;13529:19:0;;13521:68;;;;-1:-1:-1;;;13521:68:0;;11419:2:1;13521:68:0;;;11401:21:1;11458:2;11438:18;;;11431:30;11497:34;11477:18;;;11470:62;-1:-1:-1;;;11548:18:1;;;11541:34;11592:19;;13521:68:0;11217:400:1;13521:68:0;-1:-1:-1;;;;;13608:21:0;;13600:68;;;;-1:-1:-1;;;13600:68:0;;11824:2:1;13600:68:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;-1:-1:-1;;;11953:18:1;;;11946:32;11995:19;;13600:68:0;11622:398:1;13600:68:0;-1:-1:-1;;;;;13679:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;13731:32;;1842:25:1;;;13731:32:0;;1815:18:1;13731:32:0;;;;;;;13436:335;;;:::o;8446:2909::-;-1:-1:-1;;;;;8534:18:0;;8526:68;;;;-1:-1:-1;;;8526:68:0;;12227:2:1;8526:68:0;;;12209:21:1;12266:2;12246:18;;;12239:30;12305:34;12285:18;;;12278:62;-1:-1:-1;;;12356:18:1;;;12349:35;12401:19;;8526:68:0;12025:401:1;8526:68:0;-1:-1:-1;;;;;8613:16:0;;8605:64;;;;-1:-1:-1;;;8605:64:0;;12633:2:1;8605:64:0;;;12615:21:1;12672:2;12652:18;;;12645:30;12711:34;12691:18;;;12684:62;-1:-1:-1;;;12762:18:1;;;12755:33;12805:19;;8605:64:0;12431:399:1;8605:64:0;8697:1;8688:6;:10;8680:64;;;;-1:-1:-1;;;8680:64:0;;13037:2:1;8680:64:0;;;13019:21:1;13076:2;13056:18;;;13049:30;13115:34;13095:18;;;13088:62;-1:-1:-1;;;13166:18:1;;;13159:39;13215:19;;8680:64:0;12835:405:1;8680:64:0;8803:10;;-1:-1:-1;;;;;8831:20:0;;8757:18;8831:20;;;:14;:20;;;;;;;;8830:21;:44;;;;-1:-1:-1;;;;;;8856:18:0;;;;;;:14;:18;;;;;;;;8855:19;8830:44;8826:118;;;8899:9;;-1:-1:-1;;;8899:9:0;;;;8891:41;;;;-1:-1:-1;;;8891:41:0;;13447:2:1;8891:41:0;;;13429:21:1;13486:2;13466:18;;;13459:30;-1:-1:-1;;;13505:18:1;;;13498:49;13564:18;;8891:41:0;13245:343:1;8891:41:0;8960:10;;-1:-1:-1;;;8960:10:0;;;;;:26;;-1:-1:-1;8975:11:0;;-1:-1:-1;;;8975:11:0;;;;8974:12;8960:26;8956:195;;;-1:-1:-1;;;;;9003:18:0;;;;;;:12;:18;;;;;:28;;9025:6;;9003:18;:28;;9025:6;;9003:28;:::i;:::-;;;;-1:-1:-1;;;;;;;9046:16:0;;;;;;:12;:16;;;;;:26;;9066:6;;9046:16;:26;;9066:6;;9046:26;:::i;:::-;;;;;;;;9107:2;-1:-1:-1;;;;;9092:26:0;9101:4;-1:-1:-1;;;;;9092:26:0;-1:-1:-1;;;;;;;;;;;9111:6:0;9092:26;;;;1842:25:1;;1830:2;1815:18;;1696:177;9092:26:0;;;;;;;;9133:7;8446:2909;;;:::o;8956:195::-;9189:13;;-1:-1:-1;;;;;9181:21:0;;;9189:13;;9181:21;:68;;;;-1:-1:-1;9233:15:0;;-1:-1:-1;;;;;9219:30:0;;;9233:15;;9219:30;;9181:68;:104;;;;-1:-1:-1;;;;;;9267:18:0;;;;;;:14;:18;;;;;;;;9266:19;9181:104;9163:386;;;9330:11;;9320:6;:21;;9312:59;;;;-1:-1:-1;;;9312:59:0;;13925:2:1;9312:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;9312:59:0;13723:349:1;9312:59:0;9438:11;;9428:6;9412:13;9422:2;-1:-1:-1;;;;;6578:21:0;6551:7;6578:21;;;:12;:21;;;;;;;6485:122;9412:13;:22;;;;:::i;:::-;:37;;9386:125;;;;-1:-1:-1;;;9386:125:0;;14279:2:1;9386:125:0;;;14261:21:1;14318:2;14298:18;;;14291:30;14357:28;14337:18;;;14330:56;14403:18;;9386:125:0;14077:350:1;9386:125:0;9526:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9163:386;9587:13;;-1:-1:-1;;;;;9579:21:0;;;9587:13;;9579:21;;;;:59;;-1:-1:-1;;;;;;9618:20:0;;;;;;:14;:20;;;;;;;;9617:21;9579:59;:95;;;;-1:-1:-1;;;;;;9656:18:0;;;;;;:14;:18;;;;;;;;9655:19;9579:95;9561:211;;;9719:11;;9709:6;:21;;9701:59;;;;-1:-1:-1;;;9701:59:0;;13925:2:1;9701:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;9701:59:0;13723:349:1;9701:59:0;9808:13;;-1:-1:-1;;;;;9802:19:0;;;9808:13;;9802:19;:57;;;;-1:-1:-1;;;;;;9839:20:0;;;;;;:14;:20;;;;;;;;9838:21;9802:57;:95;;;;-1:-1:-1;;;;;;9876:21:0;;9892:4;9876:21;;9802:95;:131;;;;-1:-1:-1;;;;;;9915:18:0;;;;;;:14;:18;;;;;;;;9914:19;9802:131;9784:212;;;-1:-1:-1;9973:11:0;;9784:212;10051:4;10008:22;6578:21;;;:12;:21;;;;;;10087:10;;-1:-1:-1;;;10087:10:0;;;;10086:11;:39;;;;-1:-1:-1;10114:11:0;;-1:-1:-1;;;10114:11:0;;;;10086:39;:69;;;;;10154:1;10142:9;;:13;10086:69;:105;;;;-1:-1:-1;10178:13:0;;-1:-1:-1;;;;;10172:19:0;;;10178:13;;10172:19;10086:105;:142;;;;;10218:10;;10208:6;:20;;10086:142;:180;;;;-1:-1:-1;;;;;;10246:20:0;;;;;;:14;:20;;;;;;;;10245:21;10086:180;:225;;;;;10301:10;;10283:14;:28;;10086:225;:261;;;;-1:-1:-1;;;;;;10329:18:0;;;;;;:14;:18;;;;;;;;10328:19;10086:261;10068:542;;;10374:57;10386:44;10390:6;10398:31;10402:14;10418:10;;10398:3;:31::i;:::-;10386:3;:44::i;:::-;10374:11;:57::i;:::-;10469:21;10509:16;;10505:94;;10546:37;10561:21;10546:14;:37::i;:::-;10359:251;10068:542;10626:15;;10622:726;;10658:18;10703:3;10680:19;10689:10;10680:6;:19;:::i;:::-;10679:27;;;;:::i;:::-;10658:48;-1:-1:-1;10721:16:0;10740:19;10658:48;10740:6;:19;:::i;:::-;-1:-1:-1;;;;;10794:20:0;;10774:17;10794:20;;;:14;:20;;;;;;10721:38;;-1:-1:-1;10774:17:0;10794:20;;:77;;10866:4;10794:77;;;10834:4;10794:77;-1:-1:-1;;;;;10899:20:0;;;;;;:14;:20;;;;;;10774:97;;-1:-1:-1;10899:20:0;;:42;;10931:10;10899:42;;;10922:6;10899:42;-1:-1:-1;;;;;10956:23:0;;;;;;:12;:23;;;;;:37;;10886:55;;-1:-1:-1;10886:55:0;;10956:23;;;:37;;10886:55;;10956:37;:::i;:::-;;;;-1:-1:-1;;11013:41:0;;1842:25:1;;;11036:4:0;;-1:-1:-1;;;;;11013:41:0;;;-1:-1:-1;;;;;;;;;;;11013:41:0;1830:2:1;1815:18;11013:41:0;;;;;;;-1:-1:-1;;;;;11069:18:0;;;;;;:12;:18;;;;;:28;;11091:6;;11069:18;:28;;11091:6;;11069:28;:::i;:::-;;;;-1:-1:-1;;;;;;;11112:16:0;;;;;;:12;:16;;;;;:28;;11132:8;;11112:16;:28;;11132:8;;11112:28;:::i;:::-;;;;;;;;11175:2;-1:-1:-1;;;;;11160:28:0;11169:4;-1:-1:-1;;;;;11160:28:0;-1:-1:-1;;;;;;;;;;;11179:8:0;11160:28;;;;1842:25:1;;1830:2;1815:18;;1696:177;11160:28:0;;;;;;;;10643:557;;;10622:726;;;-1:-1:-1;;;;;11221:18:0;;;;;;:12;:18;;;;;:28;;11243:6;;11221:18;:28;;11243:6;;11221:28;:::i;:::-;;;;-1:-1:-1;;;;;;;11264:16:0;;;;;;:12;:16;;;;;:26;;11284:6;;11264:16;:26;;11284:6;;11264:26;:::i;:::-;;;;;;;;11325:2;-1:-1:-1;;;;;11310:26:0;11319:4;-1:-1:-1;;;;;11310:26:0;-1:-1:-1;;;;;;;;;;;11329:6:0;11310:26;;;;1842:25:1;;1830:2;1815:18;;1696:177;11310:26:0;;;;;;;;10622:726;8515:2840;;8446:2909;;;:::o;3740:191::-;3814:16;3833:6;;-1:-1:-1;;;;;3850:17:0;;;-1:-1:-1;;;;;;3850:17:0;;;;;;3883:40;;3833:6;;;;;;;3883:40;;3814:16;3883:40;3803:128;3740:191;:::o;7777:107::-;7834:7;7866:1;7862;:5;7861:15;;7875:1;7861:15;;;7871:1;7861:15;7854:22;7777:107;-1:-1:-1;;;7777:107:0:o;7892:546::-;5340:10;:17;;-1:-1:-1;;;;5340:17:0;-1:-1:-1;;;5340:17:0;;;7973:15;7965:57:::1;;;::::0;-1:-1:-1;;;7965:57:0;;14996:2:1;7965:57:0::1;::::0;::::1;14978:21:1::0;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;7965:57:0::1;14794:353:1::0;7965:57:0::1;8057:16;::::0;;8071:1:::1;8057:16:::0;;;;;::::1;::::0;;8033:21:::1;::::0;8057:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8057:16:0::1;8033:40;;8102:4;8084;8089:1;8084:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8084:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8128:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8128:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8084:7;;8128:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8118:4;8123:1;8118:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8118:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8193:15:::1;::::0;8161:62:::1;::::0;8178:4:::1;::::0;8193:15:::1;8211:11:::0;8161:8:::1;:62::i;:::-;8234:15;::::0;:196:::1;::::0;-1:-1:-1;;;8234:196:0;;-1:-1:-1;;;;;8234:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8315:11;;8234:15:::1;::::0;8357:4;;8384::::1;::::0;8404:15:::1;::::0;8234:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5380:10:0;:18;;-1:-1:-1;;;;5380:18:0;;;-1:-1:-1;;;;7892:546:0:o;7422:206::-;7498:1;7489:6;:10;7481:52;;;;-1:-1:-1;;;7481:52:0;;14996:2:1;7481:52:0;;;14978:21:1;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;7481:52:0;14794:353:1;7481:52:0;7544:11;;-1:-1:-1;;;;;7544:11:0;:32;7565:10;7574:1;7565:6;:10;:::i;:::-;7544:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7587:12:0;;-1:-1:-1;;;;;7587:12:0;:33;7609:10;7618:1;7609:6;:10;:::i;:::-;7587:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7422:206;:::o;14:248:1:-;82:6;90;143:2;131:9;122:7;118:23;114:32;111:52;;;159:1;156;149:12;111:52;-1:-1:-1;;182:23:1;;;252:2;237:18;;;224:32;;-1:-1:-1;14:248:1:o;267:548::-;379:4;408:2;437;426:9;419:21;469:6;463:13;512:6;507:2;496:9;492:18;485:34;537:1;547:140;561:6;558:1;555:13;547:140;;;656:14;;;652:23;;646:30;622:17;;;641:2;618:26;611:66;576:10;;547:140;;;551:3;736:1;731:2;722:6;711:9;707:22;703:31;696:42;806:2;799;795:7;790:2;782:6;778:15;774:29;763:9;759:45;755:54;747:62;;;;267:548;;;;:::o;820:131::-;-1:-1:-1;;;;;895:31:1;;885:42;;875:70;;941:1;938;931:12;956:315;1024:6;1032;1085:2;1073:9;1064:7;1060:23;1056:32;1053:52;;;1101:1;1098;1091:12;1053:52;1140:9;1127:23;1159:31;1184:5;1159:31;:::i;:::-;1209:5;1261:2;1246:18;;;;1233:32;;-1:-1:-1;;;956:315:1:o;1878:456::-;1955:6;1963;1971;2024:2;2012:9;2003:7;1999:23;1995:32;1992:52;;;2040:1;2037;2030:12;1992:52;2079:9;2066:23;2098:31;2123:5;2098:31;:::i;:::-;2148:5;-1:-1:-1;2205:2:1;2190:18;;2177:32;2218:33;2177:32;2218:33;:::i;:::-;1878:456;;2270:7;;-1:-1:-1;;;2324:2:1;2309:18;;;;2296:32;;1878:456::o;2528:247::-;2587:6;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2695:9;2682:23;2714:31;2739:5;2714:31;:::i;2988:388::-;3056:6;3064;3117:2;3105:9;3096:7;3092:23;3088:32;3085:52;;;3133:1;3130;3123:12;3085:52;3172:9;3159:23;3191:31;3216:5;3191:31;:::i;:::-;3241:5;-1:-1:-1;3298:2:1;3283:18;;3270:32;3311:33;3270:32;3311:33;:::i;:::-;3363:7;3353:17;;;2988:388;;;;;:::o;3381:356::-;3583:2;3565:21;;;3602:18;;;3595:30;3661:34;3656:2;3641:18;;3634:62;3728:2;3713:18;;3381:356::o;4096:398::-;4298:2;4280:21;;;4337:2;4317:18;;;4310:30;4376:34;4371:2;4356:18;;4349:62;-1:-1:-1;;;4442:2:1;4427:18;;4420:32;4484:3;4469:19;;4096:398::o;4847:127::-;4908:10;4903:3;4899:20;4896:1;4889:31;4939:4;4936:1;4929:15;4963:4;4960:1;4953:15;4979:422;5068:1;5111:5;5068:1;5125:270;5146:7;5136:8;5133:21;5125:270;;;5205:4;5201:1;5197:6;5193:17;5187:4;5184:27;5181:53;;;5214:18;;:::i;:::-;5264:7;5254:8;5250:22;5247:55;;;5284:16;;;;5247:55;5363:22;;;;5323:15;;;;5125:270;;;5129:3;4979:422;;;;;:::o;5406:806::-;5455:5;5485:8;5475:80;;-1:-1:-1;5526:1:1;5540:5;;5475:80;5574:4;5564:76;;-1:-1:-1;5611:1:1;5625:5;;5564:76;5656:4;5674:1;5669:59;;;;5742:1;5737:130;;;;5649:218;;5669:59;5699:1;5690:10;;5713:5;;;5737:130;5774:3;5764:8;5761:17;5758:43;;;5781:18;;:::i;:::-;-1:-1:-1;;5837:1:1;5823:16;;5852:5;;5649:218;;5951:2;5941:8;5938:16;5932:3;5926:4;5923:13;5919:36;5913:2;5903:8;5900:16;5895:2;5889:4;5886:12;5882:35;5879:77;5876:159;;;-1:-1:-1;5988:19:1;;;6020:5;;5876:159;6067:34;6092:8;6086:4;6067:34;:::i;:::-;6137:6;6133:1;6129:6;6125:19;6116:7;6113:32;6110:58;;;6148:18;;:::i;:::-;6186:20;;5406:806;-1:-1:-1;;;5406:806:1:o;6217:140::-;6275:5;6304:47;6345:4;6335:8;6331:19;6325:4;6304:47;:::i;6362:168::-;6435:9;;;6466;;6483:15;;;6477:22;;6463:37;6453:71;;6504:18;;:::i;6944:128::-;7011:9;;;7032:11;;;7029:37;;;7046:18;;:::i;8564:184::-;8634:6;8687:2;8675:9;8666:7;8662:23;8658:32;8655:52;;;8703:1;8700;8693:12;8655:52;-1:-1:-1;8726:16:1;;8564:184;-1:-1:-1;8564:184:1:o;9040:277::-;9107:6;9160:2;9148:9;9139:7;9135:23;9131:32;9128:52;;;9176:1;9173;9166:12;9128:52;9208:9;9202:16;9261:5;9254:13;9247:21;9240:5;9237:32;9227:60;;9283:1;9280;9273:12;9322:251;9392:6;9445:2;9433:9;9424:7;9420:23;9416:32;9413:52;;;9461:1;9458;9451:12;9413:52;9493:9;9487:16;9512:31;9537:5;9512:31;:::i;10499:306::-;10587:6;10595;10603;10656:2;10644:9;10635:7;10631:23;10627:32;10624:52;;;10672:1;10669;10662:12;10624:52;10701:9;10695:16;10685:26;;10751:2;10740:9;10736:18;10730:25;10720:35;;10795:2;10784:9;10780:18;10774:25;10764:35;;10499:306;;;;;:::o;13593:125::-;13658:9;;;13679:10;;;13676:36;;;13692:18;;:::i;14432:135::-;14471:3;14492:17;;;14489:43;;14512:18;;:::i;:::-;-1:-1:-1;14559:1:1;14548:13;;14432:135::o;14572:217::-;14612:1;14638;14628:132;;14682:10;14677:3;14673:20;14670:1;14663:31;14717:4;14714:1;14707:15;14745:4;14742:1;14735:15;14628:132;-1:-1:-1;14774:9:1;;14572:217::o;15284:127::-;15345:10;15340:3;15336:20;15333:1;15326:31;15376:4;15373:1;15366:15;15400:4;15397:1;15390:15;15416:980;15678:4;15726:3;15715:9;15711:19;15757:6;15746:9;15739:25;15783:2;15821:6;15816:2;15805:9;15801:18;15794:34;15864:3;15859:2;15848:9;15844:18;15837:31;15888:6;15923;15917:13;15954:6;15946;15939:22;15992:3;15981:9;15977:19;15970:26;;16031:2;16023:6;16019:15;16005:29;;16052:1;16062:195;16076:6;16073:1;16070:13;16062:195;;;16141:13;;-1:-1:-1;;;;;16137:39:1;16125:52;;16232:15;;;;16197:12;;;;16173:1;16091:9;16062:195;;;-1:-1:-1;;;;;;;16313:32:1;;;;16308:2;16293:18;;16286:60;-1:-1:-1;;;16377:3:1;16362:19;16355:35;16274:3;15416:980;-1:-1:-1;;;15416:980:1:o

Swarm Source

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