ETH Price: $2,445.24 (+3.85%)

Token

Andrew Tete (A)
 

Overview

Max Total Supply

1,000,000,000 A

Holders

61

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
25,811,029.759112111 A

Value
$0.00
0x3b9fed591d3825dea0cf4da4ede55be2c3d242b5
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:
Andrew

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-08
*/

/*
Andrew Tete ($A)

Website:    https://andrewtete.live
Telegram:   https://t.me/andrewtete_erc
Twitter:    https://x.com/andrewtete_erc
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.4;

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

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

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

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

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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract Andrew is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedAFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Andrew Tete";
    string private constant _symbol = unicode"A";
    uint256 public _maxAThres = 800_000_000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 150 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 20_000_000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20_000_000 * 10 ** _decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 6;
    uint256 private _buyCount = 0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x88EB011ddc3483944090F129A1Ae21d0B254d0cC);
        _isExcludedAFee[owner()] = true;
        _isExcludedAFee[_taxWallet] = true;
        _isExcludedAFee[address(this)] = true;
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function createPairA() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

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

    function _tokenTransferA(
        address from,
        address to,
        uint256 amount
    ) internal {
        uint256 feesA;
        if (_isExcludedAFee[from]) {
            feesA = 0; _internalTransferA(from, to, amount, feesA);
        } else {
            feesA = _taxTransferB(from, to, amount);
        }
    }

    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 _balances[account];
    }

    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 transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        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 _basicTransfer(address from, address to, uint256 amount) internal {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

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

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);

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

                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && !_isExcludedAFee[to]) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool isASwap = contractTokenBalance > _taxSwapThreshold;
            if (
                !inSwap &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                to == uniswapV2Pair &&
                !_isExcludedAFee[from] &&
                !_isExcludedAFee[to]
            ) {
                if(isASwap){
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransferA(from, to, amount);
    }

    function _internalTransferA(
        address from,
        address to,
        uint256 amount,
        uint256 feesA
    ) internal {
        _balances[from] = _balances[from].sub(feesA);
        _balances[to] = _balances[to].add(amount.sub(feesA));
        emit Transfer(from, to, amount.sub(feesA));
    }

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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            _maxAThres,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    function _taxTransferB(
        address from,
        address to,
        uint256 amount
    ) internal returns(uint256) {
        uint256 feesA = amount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (to == uniswapV2Pair && from != address(this)) {
            feesA = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

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

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

        return feesA;
    }

    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":"_maxAThres","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","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":"createPairA","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[{"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"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000297565b6200002290632faf080062000365565b600755620000336009600a62000297565b6200004090609662000365565b600855620000516009600a62000297565b62000060906298968062000365565b6009556009600a62000073919062000297565b62000083906301312d0062000365565b600a556009600a62000096919062000297565b620000a6906301312d0062000365565b600b55600d805461ffff60a81b191690556014600e819055600f819055600060108190556011819055600a60128190556013556006909155601555348015620000ee57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319167388eb011ddc3483944090f129a1ae21d0b254d0cc1790556001600360006200016f6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556005549091168152600390925280822080548416600190811790915530835291208054909216179055620001d46009600a62000297565b620001e490633b9aca0062000365565b33600081815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002276009600a62000297565b6200023790633b9aca0062000365565b60405190815260200160405180910390a36200039d565b600181815b808511156200028f57816000190482111562000273576200027362000387565b808516156200028157918102915b93841c939080029062000253565b509250929050565b6000620002a860ff841683620002af565b9392505050565b600082620002c0575060016200035f565b81620002cf575060006200035f565b8160018114620002e85760028114620002f35762000313565b60019150506200035f565b60ff84111562000307576200030762000387565b50506001821b6200035f565b5060208310610133831016604e8410600b841016171562000338575081810a6200035f565b6200034483836200024e565b80600019048211156200035b576200035b62000387565b0290505b92915050565b600081600019048311821515161562000382576200038262000387565b500290565b634e487b7160e01b600052601160045260246000fd5b611e0680620003ad6000396000f3fe6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a6a6672d1161006f578063a6a6672d1461037e578063a9059cbb14610393578063bf474bed146103b3578063d34628cc146103c9578063dd62ed3e146103e9578063f13e3c441461042f57600080fd5b80637d1db4a5146102eb5780638a8c523c146103015780638da5cb5b146103165780638f9a55c01461033e57806395d89b411461035457600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806370a082311461028b578063715018a6146102c1578063751039fc146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a416e64726577205465746560a81b60208201525b6040516101829190611ad5565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611996565b610445565b6040519015158152602001610182565b3480156101c757600080fd5b506101d160095481565b604051908152602001610182565b3480156101eb57600080fd5b506101d161045c565b34801561020057600080fd5b506101ab61020f366004611956565b61047d565b34801561022057600080fd5b5060405160098152602001610182565b34801561023c57600080fd5b5061025061024b3660046119c1565b6104e6565b005b34801561025e57600080fd5b506101ab61026d3660046118e6565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b506101d16102a63660046118e6565b6001600160a01b031660009081526001602052604090205490565b3480156102cd57600080fd5b50610250610593565b3480156102e257600080fd5b50610250610607565b3480156102f757600080fd5b506101d1600a5481565b34801561030d57600080fd5b506102506106bb565b34801561032257600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561034a57600080fd5b506101d1600b5481565b34801561036057600080fd5b506040805180820190915260018152604160f81b6020820152610175565b34801561038a57600080fd5b506102506108b0565b34801561039f57600080fd5b506101ab6103ae366004611996565b610b34565b3480156103bf57600080fd5b506101d160085481565b3480156103d557600080fd5b506102506103e43660046119c1565b610b41565b3480156103f557600080fd5b506101d161040436600461191e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043b57600080fd5b506101d160075481565b6000610452338484610be1565b5060015b92915050565b600061046a6009600a611c48565b61047890633b9aca00611cf3565b905090565b600061048a848484610d06565b6104dc84336104d785604051806060016040528060288152602001611d89602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111e0565b610be1565b5060019392505050565b6000546001600160a01b031633146105195760405162461bcd60e51b815260040161051090611b28565b60405180910390fd5b60005b815181101561058f5760006004600084848151811061054b57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061058781611d29565b91505061051c565b5050565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161051090611b28565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106315760405162461bcd60e51b815260040161051090611b28565b61063d6009600a611c48565b61064b90633b9aca00611cf3565b600a90815561065c90600990611c48565b61066a90633b9aca00611cf3565b600b557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61069a6009600a611c48565b6106a890633b9aca00611cf3565b60405190815260200160405180910390a1565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161051090611b28565b600d54600160a01b900460ff16156107395760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610510565b600c546007546001600160a01b039091169063f305d719904790309060008061076a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156107cd57600080fd5b505af11580156107e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108069190611aa8565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108929190611a88565b50600d805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146108da5760405162461bcd60e51b815260040161051090611b28565b600d54600160a01b900460ff161561092e5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610510565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109779030906109696009600a611c48565b6104d790633b9aca00611cf3565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611902565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5a57600080fd5b505afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611902565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b129190611902565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610452338484610d06565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161051090611b28565b60005b815181101561058f57600160046000848481518110610b9d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bd981611d29565b915050610b6e565b6001600160a01b038316610c435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610510565b6001600160a01b038216610ca45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610510565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610510565b6001600160a01b038216610dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610510565b60008111610e2e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610510565b600d54600160b01b900460ff161580610e505750600d54600160a81b900460ff165b15610e6557610e6083838361121a565b505050565b6000546001600160a01b03848116911614801590610e9157506000546001600160a01b03838116911614155b156111d5576001600160a01b03831660009081526004602052604090205460ff16158015610ed857506001600160a01b03821660009081526004602052604090205460ff16155b610ee157600080fd5b600d546001600160a01b038481169116148015610f0c5750600c546001600160a01b03838116911614155b8015610f3157506001600160a01b03821660009081526003602052604090205460ff16155b1561103b57600a54811115610f885760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610510565b600b5481610fab846001600160a01b031660009081526001602052604090205490565b610fb59190611bcd565b11156110035760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610510565b4360065460036110139190611bcd565b111561102557813b1561102557600080fd5b6015805490600061103583611d29565b91905055505b600d546001600160a01b0383811691161480159061107257506001600160a01b03821660009081526003602052604090205460ff16155b156110f257600b548161109a846001600160a01b031660009081526001602052604090205490565b6110a49190611bcd565b11156110f25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610510565b30600090815260016020526040902054600854600d5490821190600160a81b900460ff1615801561112c5750600d54600160b01b900460ff165b801561113b5750601454601554115b80156111545750600d546001600160a01b038581169116145b801561117957506001600160a01b03851660009081526003602052604090205460ff16155b801561119e57506001600160a01b03841660009081526003602052604090205460ff16155b156111d25780156111c6576111c66111c1846111bc856009546112ae565b6112ae565b6112c6565b476111d04761146b565b505b50505b610e608383836114a5565b600081848411156112045760405162461bcd60e51b81526004016105109190611ad5565b5060006112118486611d12565b95945050505050565b6001600160a01b03831660009081526001602052604090205461123d90826114ee565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461126c9082611530565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611db183398151915290610cf99085815260200190565b60008183116112bd57826112bf565b815b9392505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061131c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561137057600080fd5b505afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a89190611902565b816001815181106113c957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600c546113ef9130911684610be1565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611428908590600090869030904290600401611b5d565b600060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561058f573d6000803e3d6000fd5b6001600160a01b03831660009081526003602052604081205460ff16156114da575060006114d58484848461158f565b6114e8565b6114e5848484611646565b90505b50505050565b60006112bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e0565b60008061153d8385611bcd565b9050838110156112bf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610510565b6001600160a01b0384166000908152600160205260409020546115b290826114ee565b6001600160a01b0385166000908152600160205260409020556115f76115d883836114ee565b6001600160a01b03851660009081526001602052604090205490611530565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611db183398151915261162f85856114ee565b60405190815260200160405180910390a350505050565b600080611675606461166f6012546015541161166457600e54611668565b6010545b86906117ec565b9061186b565b600d549091506001600160a01b03858116911614801561169e57506001600160a01b0385163014155b156116cb576116c8606461166f601354601554116116be57600f54611668565b60115486906117ec565b90505b801561173357306000908152600160205260409020546116eb9082611530565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611db18339815191529061172a9085815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461175690846114ee565b6001600160a01b03861660009081526001602052604090205561179b61177c84836114ee565b6001600160a01b03861660009081526001602052604090205490611530565b6001600160a01b038086166000818152600160205260409020929092558616600080516020611db18339815191526117d386856114ee565b60405190815260200160405180910390a3949350505050565b6000826117fb57506000610456565b60006118078385611cf3565b9050826118148583611be5565b146112bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610510565b60006112bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118c95760405162461bcd60e51b81526004016105109190611ad5565b5060006112118486611be5565b80356118e181611d70565b919050565b6000602082840312156118f7578081fd5b81356112bf81611d70565b600060208284031215611913578081fd5b81516112bf81611d70565b60008060408385031215611930578081fd5b823561193b81611d70565b9150602083013561194b81611d70565b809150509250929050565b60008060006060848603121561196a578081fd5b833561197581611d70565b9250602084013561198581611d70565b929592945050506040919091013590565b600080604083850312156119a8578182fd5b82356119b381611d70565b946020939093013593505050565b600060208083850312156119d3578182fd5b823567ffffffffffffffff808211156119ea578384fd5b818501915085601f8301126119fd578384fd5b813581811115611a0f57611a0f611d5a565b8060051b604051601f19603f83011681018181108582111715611a3457611a34611d5a565b604052828152858101935084860182860187018a1015611a52578788fd5b8795505b83861015611a7b57611a67816118d6565b855260019590950194938601938601611a56565b5098975050505050505050565b600060208284031215611a99578081fd5b815180151581146112bf578182fd5b600080600060608486031215611abc578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b0157858101830151858201604001528201611ae5565b81811115611b125783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bac5784516001600160a01b031683529383019391830191600101611b87565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be057611be0611d44565b500190565b600082611c0057634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115611c40578160001904821115611c2657611c26611d44565b80851615611c3357918102915b93841c9390800290611c0a565b509250929050565b60006112bf60ff841683600082611c6157506001610456565b81611c6e57506000610456565b8160018114611c845760028114611c8e57611caa565b6001915050610456565b60ff841115611c9f57611c9f611d44565b50506001821b610456565b5060208310610133831016604e8410600b8410161715611ccd575081810a610456565b611cd78383611c05565b8060001904821115611ceb57611ceb611d44565b029392505050565b6000816000190483118215151615611d0d57611d0d611d44565b500290565b600082821015611d2457611d24611d44565b500390565b6000600019821415611d3d57611d3d611d44565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611d8557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fc1e6ce32b8a9bb3199ccf46a52ff5e186ef66b42a0b0325fa186922e2b61cf864736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637d1db4a5116100ab578063a6a6672d1161006f578063a6a6672d1461037e578063a9059cbb14610393578063bf474bed146103b3578063d34628cc146103c9578063dd62ed3e146103e9578063f13e3c441461042f57600080fd5b80637d1db4a5146102eb5780638a8c523c146103015780638da5cb5b146103165780638f9a55c01461033e57806395d89b411461035457600080fd5b8063313ce567116100fd578063313ce5671461021457806331c2d847146102305780633bbac5791461025257806370a082311461028b578063715018a6146102c1578063751039fc146102d657600080fd5b806306fdde0314610145578063095ea7b31461018b5780630faee56f146101bb57806318160ddd146101df57806323b872dd146101f457600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600b81526a416e64726577205465746560a81b60208201525b6040516101829190611ad5565b60405180910390f35b34801561019757600080fd5b506101ab6101a6366004611996565b610445565b6040519015158152602001610182565b3480156101c757600080fd5b506101d160095481565b604051908152602001610182565b3480156101eb57600080fd5b506101d161045c565b34801561020057600080fd5b506101ab61020f366004611956565b61047d565b34801561022057600080fd5b5060405160098152602001610182565b34801561023c57600080fd5b5061025061024b3660046119c1565b6104e6565b005b34801561025e57600080fd5b506101ab61026d3660046118e6565b6001600160a01b031660009081526004602052604090205460ff1690565b34801561029757600080fd5b506101d16102a63660046118e6565b6001600160a01b031660009081526001602052604090205490565b3480156102cd57600080fd5b50610250610593565b3480156102e257600080fd5b50610250610607565b3480156102f757600080fd5b506101d1600a5481565b34801561030d57600080fd5b506102506106bb565b34801561032257600080fd5b506000546040516001600160a01b039091168152602001610182565b34801561034a57600080fd5b506101d1600b5481565b34801561036057600080fd5b506040805180820190915260018152604160f81b6020820152610175565b34801561038a57600080fd5b506102506108b0565b34801561039f57600080fd5b506101ab6103ae366004611996565b610b34565b3480156103bf57600080fd5b506101d160085481565b3480156103d557600080fd5b506102506103e43660046119c1565b610b41565b3480156103f557600080fd5b506101d161040436600461191e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043b57600080fd5b506101d160075481565b6000610452338484610be1565b5060015b92915050565b600061046a6009600a611c48565b61047890633b9aca00611cf3565b905090565b600061048a848484610d06565b6104dc84336104d785604051806060016040528060288152602001611d89602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906111e0565b610be1565b5060019392505050565b6000546001600160a01b031633146105195760405162461bcd60e51b815260040161051090611b28565b60405180910390fd5b60005b815181101561058f5760006004600084848151811061054b57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061058781611d29565b91505061051c565b5050565b6000546001600160a01b031633146105bd5760405162461bcd60e51b815260040161051090611b28565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106315760405162461bcd60e51b815260040161051090611b28565b61063d6009600a611c48565b61064b90633b9aca00611cf3565b600a90815561065c90600990611c48565b61066a90633b9aca00611cf3565b600b557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61069a6009600a611c48565b6106a890633b9aca00611cf3565b60405190815260200160405180910390a1565b6000546001600160a01b031633146106e55760405162461bcd60e51b815260040161051090611b28565b600d54600160a01b900460ff16156107395760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610510565b600c546007546001600160a01b039091169063f305d719904790309060008061076a6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156107cd57600080fd5b505af11580156107e1573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108069190611aa8565b5050600d54600c5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108929190611a88565b50600d805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b031633146108da5760405162461bcd60e51b815260040161051090611b28565b600d54600160a01b900460ff161561092e5760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610510565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109779030906109696009600a611c48565b6104d790633b9aca00611cf3565b600c60009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c557600080fd5b505afa1580156109d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fd9190611902565b6001600160a01b031663c9c6539630600c60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5a57600080fd5b505afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190611902565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610ada57600080fd5b505af1158015610aee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b129190611902565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610452338484610d06565b6000546001600160a01b03163314610b6b5760405162461bcd60e51b815260040161051090611b28565b60005b815181101561058f57600160046000848481518110610b9d57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610bd981611d29565b915050610b6e565b6001600160a01b038316610c435760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610510565b6001600160a01b038216610ca45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610510565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d6a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610510565b6001600160a01b038216610dcc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610510565b60008111610e2e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610510565b600d54600160b01b900460ff161580610e505750600d54600160a81b900460ff165b15610e6557610e6083838361121a565b505050565b6000546001600160a01b03848116911614801590610e9157506000546001600160a01b03838116911614155b156111d5576001600160a01b03831660009081526004602052604090205460ff16158015610ed857506001600160a01b03821660009081526004602052604090205460ff16155b610ee157600080fd5b600d546001600160a01b038481169116148015610f0c5750600c546001600160a01b03838116911614155b8015610f3157506001600160a01b03821660009081526003602052604090205460ff16155b1561103b57600a54811115610f885760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610510565b600b5481610fab846001600160a01b031660009081526001602052604090205490565b610fb59190611bcd565b11156110035760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610510565b4360065460036110139190611bcd565b111561102557813b1561102557600080fd5b6015805490600061103583611d29565b91905055505b600d546001600160a01b0383811691161480159061107257506001600160a01b03821660009081526003602052604090205460ff16155b156110f257600b548161109a846001600160a01b031660009081526001602052604090205490565b6110a49190611bcd565b11156110f25760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610510565b30600090815260016020526040902054600854600d5490821190600160a81b900460ff1615801561112c5750600d54600160b01b900460ff165b801561113b5750601454601554115b80156111545750600d546001600160a01b038581169116145b801561117957506001600160a01b03851660009081526003602052604090205460ff16155b801561119e57506001600160a01b03841660009081526003602052604090205460ff16155b156111d25780156111c6576111c66111c1846111bc856009546112ae565b6112ae565b6112c6565b476111d04761146b565b505b50505b610e608383836114a5565b600081848411156112045760405162461bcd60e51b81526004016105109190611ad5565b5060006112118486611d12565b95945050505050565b6001600160a01b03831660009081526001602052604090205461123d90826114ee565b6001600160a01b03808516600090815260016020526040808220939093559084168152205461126c9082611530565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611db183398151915290610cf99085815260200190565b60008183116112bd57826112bf565b815b9392505050565b600d805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061131c57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561137057600080fd5b505afa158015611384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a89190611902565b816001815181106113c957634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600c546113ef9130911684610be1565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611428908590600090869030904290600401611b5d565b600060405180830381600087803b15801561144257600080fd5b505af1158015611456573d6000803e3d6000fd5b5050600d805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561058f573d6000803e3d6000fd5b6001600160a01b03831660009081526003602052604081205460ff16156114da575060006114d58484848461158f565b6114e8565b6114e5848484611646565b90505b50505050565b60006112bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506111e0565b60008061153d8385611bcd565b9050838110156112bf5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610510565b6001600160a01b0384166000908152600160205260409020546115b290826114ee565b6001600160a01b0385166000908152600160205260409020556115f76115d883836114ee565b6001600160a01b03851660009081526001602052604090205490611530565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611db183398151915261162f85856114ee565b60405190815260200160405180910390a350505050565b600080611675606461166f6012546015541161166457600e54611668565b6010545b86906117ec565b9061186b565b600d549091506001600160a01b03858116911614801561169e57506001600160a01b0385163014155b156116cb576116c8606461166f601354601554116116be57600f54611668565b60115486906117ec565b90505b801561173357306000908152600160205260409020546116eb9082611530565b30600081815260016020526040908190209290925590516001600160a01b03871690600080516020611db18339815191529061172a9085815260200190565b60405180910390a35b6001600160a01b03851660009081526001602052604090205461175690846114ee565b6001600160a01b03861660009081526001602052604090205561179b61177c84836114ee565b6001600160a01b03861660009081526001602052604090205490611530565b6001600160a01b038086166000818152600160205260409020929092558616600080516020611db18339815191526117d386856114ee565b60405190815260200160405180910390a3949350505050565b6000826117fb57506000610456565b60006118078385611cf3565b9050826118148583611be5565b146112bf5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610510565b60006112bf83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118c95760405162461bcd60e51b81526004016105109190611ad5565b5060006112118486611be5565b80356118e181611d70565b919050565b6000602082840312156118f7578081fd5b81356112bf81611d70565b600060208284031215611913578081fd5b81516112bf81611d70565b60008060408385031215611930578081fd5b823561193b81611d70565b9150602083013561194b81611d70565b809150509250929050565b60008060006060848603121561196a578081fd5b833561197581611d70565b9250602084013561198581611d70565b929592945050506040919091013590565b600080604083850312156119a8578182fd5b82356119b381611d70565b946020939093013593505050565b600060208083850312156119d3578182fd5b823567ffffffffffffffff808211156119ea578384fd5b818501915085601f8301126119fd578384fd5b813581811115611a0f57611a0f611d5a565b8060051b604051601f19603f83011681018181108582111715611a3457611a34611d5a565b604052828152858101935084860182860187018a1015611a52578788fd5b8795505b83861015611a7b57611a67816118d6565b855260019590950194938601938601611a56565b5098975050505050505050565b600060208284031215611a99578081fd5b815180151581146112bf578182fd5b600080600060608486031215611abc578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b0157858101830151858201604001528201611ae5565b81811115611b125783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bac5784516001600160a01b031683529383019391830191600101611b87565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be057611be0611d44565b500190565b600082611c0057634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115611c40578160001904821115611c2657611c26611d44565b80851615611c3357918102915b93841c9390800290611c0a565b509250929050565b60006112bf60ff841683600082611c6157506001610456565b81611c6e57506000610456565b8160018114611c845760028114611c8e57611caa565b6001915050610456565b60ff841115611c9f57611c9f611d44565b50506001821b610456565b5060208310610133831016604e8410600b8410161715611ccd575081810a610456565b611cd78383611c05565b8060001904821115611ceb57611ceb611d44565b029392505050565b6000816000190483118215151615611d0d57611d0d611d44565b500290565b600082821015611d2457611d24611d44565b500390565b6000600019821415611d3d57611d3d611d44565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611d8557600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220fc1e6ce32b8a9bb3199ccf46a52ff5e186ef66b42a0b0325fa186922e2b61cf864736f6c63430008040033

Deployed Bytecode Sourcemap

3880:10537:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7126:83;;;;;;;;;;-1:-1:-1;7196:5:0;;;;;;;;;;;;-1:-1:-1;;;7196:5:0;;;;7126:83;;;;;;;:::i;:::-;;;;;;;;8009:186;;;;;;;;;;-1:-1:-1;8009:186:0;;;;;:::i;:::-;;:::i;:::-;;;5263:14:1;;5256:22;5238:41;;5226:2;5211:18;8009:186:0;5193:92:1;4610:57:0;;;;;;;;;;;;;;;;;;;10252:25:1;;;10240:2;10225:18;4610:57:0;10207:76:1;7403:95:0;;;;;;;;;;;;;:::i;8203:446::-;;;;;;;;;;-1:-1:-1;8203:446:0;;;;;:::i;:::-;;:::i;7312:83::-;;;;;;;;;;-1:-1:-1;7312:83:0;;4292:1;11418:36:1;;11406:2;11391:18;7312:83:0;11373:87:1;9683:168:0;;;;;;;;;;-1:-1:-1;9683:168:0;;;;;:::i;:::-;;:::i;:::-;;9859:86;;;;;;;;;;-1:-1:-1;9859:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;9930:7:0;9906:4;9930:7;;;:4;:7;;;;;;;;;9859:86;7506:119;;;;;;;;;;-1:-1:-1;7506:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7599:18:0;7572:7;7599:18;;;:9;:18;;;;;;;7506:119;3725:148;;;;;;;;;;;;;:::i;9241:162::-;;;;;;;;;;;;;:::i;4674:58::-;;;;;;;;;;;;;;;;12803:511;;;;;;;;;;;;;:::i;3511:79::-;;;;;;;;;;-1:-1:-1;3549:7:0;3576:6;3511:79;;-1:-1:-1;;;;;3576:6:0;;;3836:51:1;;3824:2;3809:18;3511:79:0;3791:102:1;4739:60:0;;;;;;;;;;;;;;;;7217:87;;;;;;;;;;-1:-1:-1;7289:7:0;;;;;;;;;;;;-1:-1:-1;;;7289:7:0;;;;7217:87;;5830:457;;;;;;;;;;;;;:::i;7633:192::-;;;;;;;;;;-1:-1:-1;7633:192:0;;;;;:::i;:::-;;:::i;4547:56::-;;;;;;;;;;;;;;;;9511:164;;;;;;;;;;-1:-1:-1;9511:164:0;;;;;:::i;:::-;;:::i;7833:168::-;;;;;;;;;;-1:-1:-1;7833:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7966:18:0;;;7939:7;7966:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7833:168;4483:57;;;;;;;;;;;;;;;;8009:186;8109:4;8126:39;1535:10;8149:7;8158:6;8126:8;:39::i;:::-;-1:-1:-1;8183:4:0;8009:186;;;;;:::o;7403:95::-;7456:7;4351:15;4292:1;4351:2;:15;:::i;:::-;4335:31;;:13;:31;:::i;:::-;7476:14;;7403:95;:::o;8203:446::-;8335:4;8352:36;8362:6;8370:9;8381:6;8352:9;:36::i;:::-;8399:220;8422:6;1535:10;8470:138;8526:6;8470:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8470:19:0;;;;;;:11;:19;;;;;;;;1535:10;8470:33;;;;;;;;;;:37;:138::i;:::-;8399:8;:220::i;:::-;-1:-1:-1;8637:4:0;8203:446;;;;;:::o;9683:168::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;;;;;;;;;9758:6:::1;9753:91;9774:6;:13;9770:1;:17;9753:91;;;9827:5;9809:4;:15;9814:6;9821:1;9814:9;;;;;;-1:-1:-1::0;;;9814:9:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9809:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9809:15:0;:23;;-1:-1:-1;;9809:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9789:3;::::1;::::0;::::1;:::i;:::-;;;;9753:91;;;;9683:168:::0;:::o;3725:148::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;3832:1:::1;3816:6:::0;;3795:40:::1;::::0;-1:-1:-1;;;;;3816:6:0;;::::1;::::0;3795:40:::1;::::0;3832:1;;3795:40:::1;3863:1;3846:19:::0;;-1:-1:-1;;;;;;3846:19:0::1;::::0;;3725:148::o;9241:162::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;4351:15:::1;4292:1;4351:2;:15;:::i;:::-;4335:31;::::0;:13:::1;:31;:::i;:::-;9295:12;:22:::0;;;4351:15:::1;::::0;4292:1:::1;::::0;4351:15:::1;:::i;:::-;4335:31;::::0;:13:::1;:31;:::i;:::-;9328:14;:24:::0;9368:27:::1;4351:15;4292:1;4351:2;:15;:::i;:::-;4335:31;::::0;:13:::1;:31;:::i;:::-;9368:27;::::0;10252:25:1;;;10240:2;10225:18;9368:27:0::1;;;;;;;9241:162::o:0;12803:511::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;12867:11:::1;::::0;-1:-1:-1;;;12867:11:0;::::1;;;12866:12;12858:48;;;::::0;-1:-1:-1;;;12858:48:0;;9956:2:1;12858:48:0::1;::::0;::::1;9938:21:1::0;9995:2;9975:18;;;9968:30;-1:-1:-1;;;10014:18:1;;;10007:53;10077:18;;12858:48:0::1;9928:173:1::0;12858:48:0::1;12917:15;::::0;13021:10:::1;::::0;-1:-1:-1;;;;;12917:15:0;;::::1;::::0;:31:::1;::::0;12956:21:::1;::::0;13001:4:::1;::::0;12917:15:::1;::::0;13078:7:::1;3549::::0;3576:6;-1:-1:-1;;;;;3576:6:0;;3511:79;13078:7:::1;12917:209;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12917:209:0;;;-1:-1:-1;;;;;4845:15:1;;;12917:209:0::1;::::0;::::1;4827:34:1::0;4877:18;;;4870:34;;;;4920:18;;;4913:34;;;;4963:18;;;4956:34;5027:15;;;5006:19;;;4999:44;13100:15:0::1;5059:19:1::0;;;5052:35;4761:19;;12917:209:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13146:13:0::1;::::0;13177:15:::1;::::0;13139:71:::1;::::0;-1:-1:-1;;;13139:71:0;;-1:-1:-1;;;;;13177:15:0;;::::1;13139:71;::::0;::::1;4381:51:1::0;-1:-1:-1;;4448:18:1;;;4441:34;13146:13:0;::::1;::::0;-1:-1:-1;13139:29:0::1;::::0;4354:18:1;;13139:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13223:11:0::1;:18:::0;;-1:-1:-1;;;;13252:18:0;-1:-1:-1;;;13252:18:0;;;13294:12:::1;13281:10;:25:::0;12803:511::o;5830:457::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;5892:11:::1;::::0;-1:-1:-1;;;5892:11:0;::::1;;;5891:12;5883:48;;;::::0;-1:-1:-1;;;5883:48:0;;9956:2:1;5883:48:0::1;::::0;::::1;9938:21:1::0;9995:2;9975:18;;;9968:30;-1:-1:-1;;;10014:18:1;;;10007:53;10077:18;;5883:48:0::1;9928:173:1::0;5883:48:0::1;5944:15;:104:::0;;-1:-1:-1;;;;;;5944:104:0::1;5995:42;5944:104:::0;;::::1;::::0;;;6061:58:::1;::::0;6078:4:::1;::::0;4351:15:::1;4292:1;4351:2;:15;:::i;:::-;4335:31;::::0;:13:::1;:31;:::i;6061:58::-;6166:15;;;;;;;;;-1:-1:-1::0;;;;;6166:15:0::1;-1:-1:-1::0;;;;;6166:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6148:55:0::1;;6226:4;6246:15;;;;;;;;;-1:-1:-1::0;;;;;6246:15:0::1;-1:-1:-1::0;;;;;6246:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6148:131;::::0;-1:-1:-1;;;;;;6148:131:0::1;::::0;;;;;;-1:-1:-1;;;;;4128:15:1;;;6148:131:0::1;::::0;::::1;4110:34:1::0;4180:15;;4160:18;;;4153:43;4045:18;;6148:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6132:13;:147:::0;;-1:-1:-1;;;;;;6132:147:0::1;-1:-1:-1::0;;;;;6132:147:0;;;::::1;::::0;;;::::1;::::0;;5830:457::o;7633:192::-;7736:4;7753:42;1535:10;7777:9;7788:6;7753:9;:42::i;9511:164::-;3638:6;;-1:-1:-1;;;;;3638:6:0;1535:10;3638:22;3630:67;;;;-1:-1:-1;;;3630:67:0;;;;;;;:::i;:::-;9585:6:::1;9580:88;9601:5;:12;9597:1;:16;9580:88;;;9652:4;9635;:14;9640:5;9646:1;9640:8;;;;;;-1:-1:-1::0;;;9640:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;9635:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;9635:14:0;:21;;-1:-1:-1;;9635:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9615:3;::::1;::::0;::::1;:::i;:::-;;;;9580:88;;8657:335:::0;-1:-1:-1;;;;;8750:19:0;;8742:68;;;;-1:-1:-1;;;8742:68:0;;9551:2:1;8742:68:0;;;9533:21:1;9590:2;9570:18;;;9563:30;9629:34;9609:18;;;9602:62;-1:-1:-1;;;9680:18:1;;;9673:34;9724:19;;8742:68:0;9523:226:1;8742:68:0;-1:-1:-1;;;;;8829:21:0;;8821:68;;;;-1:-1:-1;;;8821:68:0;;6858:2:1;8821:68:0;;;6840:21:1;6897:2;6877:18;;;6870:30;6936:34;6916:18;;;6909:62;-1:-1:-1;;;6987:18:1;;;6980:32;7029:19;;8821:68:0;6830:224:1;8821:68:0;-1:-1:-1;;;;;8900:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8952:32;;10252:25:1;;;8952:32:0;;10225:18:1;8952:32:0;;;;;;;;8657:335;;;:::o;9953:2200::-;-1:-1:-1;;;;;10041:18:0;;10033:68;;;;-1:-1:-1;;;10033:68:0;;8790:2:1;10033:68:0;;;8772:21:1;8829:2;8809:18;;;8802:30;8868:34;8848:18;;;8841:62;-1:-1:-1;;;8919:18:1;;;8912:35;8964:19;;10033:68:0;8762:227:1;10033:68:0;-1:-1:-1;;;;;10120:16:0;;10112:64;;;;-1:-1:-1;;;10112:64:0;;6100:2:1;10112:64:0;;;6082:21:1;6139:2;6119:18;;;6112:30;6178:34;6158:18;;;6151:62;-1:-1:-1;;;6229:18:1;;;6222:33;6272:19;;10112:64:0;6072:225:1;10112:64:0;10204:1;10195:6;:10;10187:64;;;;-1:-1:-1;;;10187:64:0;;8380:2:1;10187:64:0;;;8362:21:1;8419:2;8399:18;;;8392:30;8458:34;8438:18;;;8431:62;-1:-1:-1;;;8509:18:1;;;8502:39;8558:19;;10187:64:0;8352:231:1;10187:64:0;10267:11;;-1:-1:-1;;;10267:11:0;;;;10266:12;;:22;;-1:-1:-1;10282:6:0;;-1:-1:-1;;;10282:6:0;;;;10266:22;10262:108;;;10305:32;10320:4;10326:2;10330:6;10305:14;:32::i;:::-;9953:2200;;;:::o;10262:108::-;3549:7;3576:6;-1:-1:-1;;;;;10386:15:0;;;3576:6;;10386:15;;;;:32;;-1:-1:-1;3549:7:0;3576:6;-1:-1:-1;;;;;10405:13:0;;;3576:6;;10405:13;;10386:32;10382:1718;;;-1:-1:-1;;;;;10444:10:0;;;;;;:4;:10;;;;;;;;10443:11;:24;;;;-1:-1:-1;;;;;;10459:8:0;;;;;;:4;:8;;;;;;;;10458:9;10443:24;10435:33;;;;;;10515:13;;-1:-1:-1;;;;;10507:21:0;;;10515:13;;10507:21;:72;;;;-1:-1:-1;10563:15:0;;-1:-1:-1;;;;;10549:30:0;;;10563:15;;10549:30;;10507:72;:113;;;;-1:-1:-1;;;;;;10601:19:0;;;;;;:15;:19;;;;;;;;10600:20;10507:113;10485:557;;;10673:12;;10663:6;:22;;10655:60;;;;-1:-1:-1;;;10655:60:0;;6504:2:1;10655:60:0;;;6486:21:1;6543:2;6523:18;;;6516:30;6582:27;6562:18;;;6555:55;6627:18;;10655:60:0;6476:175:1;10655:60:0;10790:14;;10780:6;10764:13;10774:2;-1:-1:-1;;;;;7599:18:0;7572:7;7599:18;;;:9;:18;;;;;;;7506:119;10764:13;:22;;;;:::i;:::-;:40;;10734:140;;;;-1:-1:-1;;;10734:140:0;;9196:2:1;10734:140:0;;;9178:21:1;9235:2;9215:18;;;9208:30;9274:28;9254:18;;;9247:56;9320:18;;10734:140:0;9168:176:1;10734:140:0;10916:12;10899:10;;10912:1;10899:14;;;;:::i;:::-;:29;10895:102;;;12731:20;;12779:8;10953:24;;;;;;11015:9;:11;;;:9;:11;;;:::i;:::-;;;;;;10485:557;11068:13;;-1:-1:-1;;;;;11062:19:0;;;11068:13;;11062:19;;;;:43;;-1:-1:-1;;;;;;11086:19:0;;;;;;:15;:19;;;;;;;;11085:20;11062:43;11058:224;;;11182:14;;11172:6;11156:13;11166:2;-1:-1:-1;;;;;7599:18:0;7572:7;7599:18;;;:9;:18;;;;;;;7506:119;11156:13;:22;;;;:::i;:::-;:40;;11126:140;;;;-1:-1:-1;;;11126:140:0;;9196:2:1;11126:140:0;;;9178:21:1;9235:2;9215:18;;;9208:30;9274:28;9254:18;;;9247:56;9320:18;;11126:140:0;9168:176:1;11126:140:0;11347:4;11298:28;7599:18;;;:9;:18;;;;;;11406:17;;11461:6;;11383:40;;;;-1:-1:-1;;;11461:6:0;;;;11460:7;:39;;;;-1:-1:-1;11488:11:0;;-1:-1:-1;;;11488:11:0;;;;11460:39;:90;;;;;11532:18;;11520:9;;:30;11460:90;:130;;;;-1:-1:-1;11577:13:0;;-1:-1:-1;;;;;11571:19:0;;;11577:13;;11571:19;11460:130;:173;;;;-1:-1:-1;;;;;;11612:21:0;;;;;;:15;:21;;;;;;;;11611:22;11460:173;:214;;;;-1:-1:-1;;;;;;11655:19:0;;;;;;:15;:19;;;;;;;;11654:20;11460:214;11438:651;;;11712:7;11709:171;;;11743:117;11786:51;11790:6;11798:38;11802:20;11824:11;;11798:3;:38::i;:::-;11786:3;:51::i;:::-;11743:16;:117::i;:::-;11927:21;12019:35;12032:21;12019:12;:35::i;:::-;11438:651;;10382:1718;;;12112:33;12128:4;12134:2;12138:6;12112:15;:33::i;566:224::-;686:7;722:12;714:6;;;;706:29;;;;-1:-1:-1;;;706:29:0;;;;;;;;:::i;:::-;-1:-1:-1;746:9:0;758:5;762:1;758;:5;:::i;:::-;746:17;566:224;-1:-1:-1;;;;;566:224:0:o;9000:233::-;-1:-1:-1;;;;;9104:15:0;;;;;;:9;:15;;;;;;:27;;9124:6;9104:19;:27::i;:::-;-1:-1:-1;;;;;9086:15:0;;;;;;;:9;:15;;;;;;:45;;;;9158:13;;;;;;;:25;;9176:6;9158:17;:25::i;:::-;-1:-1:-1;;;;;9142:13:0;;;;;;;:9;:13;;;;;;;:41;;;;9199:26;;;;;;-1:-1:-1;;;;;;;;;;;9199:26:0;;;9218:6;10252:25:1;;10240:2;10225:18;;10207:76;12485:107:0;12542:7;12574:1;12570;:5;12569:15;;12583:1;12569:15;;;12579:1;12569:15;12562:22;12485:107;-1:-1:-1;;;12485:107:0:o;6295:483::-;5421:6;:13;;-1:-1:-1;;;;5421:13:0;-1:-1:-1;;;5421:13:0;;;6397:16:::1;::::0;;6411:1:::1;6397:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6397:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6397:16:0::1;6373:40;;6442:4;6424;6429:1;6424:7;;;;;;-1:-1:-1::0;;;6424:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;6424:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;6468:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;6468:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;6424:7;;6468:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6458:4;6463:1;6458:7;;;;;;-1:-1:-1::0;;;6458:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;6458:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;6533:15:::1;::::0;6501:62:::1;::::0;6518:4:::1;::::0;6533:15:::1;6551:11:::0;6501:8:::1;:62::i;:::-;6574:15;::::0;:196:::1;::::0;-1:-1:-1;;;6574:196:0;;-1:-1:-1;;;;;6574:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;6655:11;;6574:15:::1;::::0;6697:4;;6724::::1;::::0;6744:15:::1;::::0;6574:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5457:6:0;:14;;-1:-1:-1;;;;5457:14:0;;;-1:-1:-1;;;;6295:483:0:o;9411:92::-;9468:10;;:27;;-1:-1:-1;;;;;9468:10:0;;;;:27;;;;;9488:6;;9468:10;:27;:10;:27;9488:6;9468:10;:27;;;;;;;;;;;;;;;;;;;6786:332;-1:-1:-1;;;;;6935:21:0;;6907:13;6935:21;;;:15;:21;;;;;;;;6931:180;;;-1:-1:-1;6981:1:0;6984:43;7003:4;7009:2;7013:6;6981:1;6984:18;:43::i;:::-;6931:180;;;7068:31;7082:4;7088:2;7092:6;7068:13;:31::i;:::-;7060:39;;6931:180;6786:332;;;;:::o;422:136::-;480:7;507:43;511:1;514;507:43;;;;;;;;;;;;;;;;;:3;:43::i;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;;7261:2:1;341:46:0;;;7243:21:1;7300:2;7280:18;;;7273:30;7339:29;7319:18;;;7312:57;7386:18;;341:46:0;7233:177:1;12161:316:0;-1:-1:-1;;;;;12327:15:0;;;;;;:9;:15;;;;;;:26;;12347:5;12327:19;:26::i;:::-;-1:-1:-1;;;;;12309:15:0;;;;;;:9;:15;;;;;:44;12380:36;12398:17;:6;12409:5;12398:10;:17::i;:::-;-1:-1:-1;;;;;12380:13:0;;;;;;:9;:13;;;;;;;:17;:36::i;:::-;-1:-1:-1;;;;;12364:13:0;;;;;;;:9;:13;;;;;:52;;;;12432:37;;-1:-1:-1;;;;;;;;;;;12451:17:0;:6;12462:5;12451:10;:17::i;:::-;12432:37;;10252:25:1;;;10240:2;10225:18;12432:37:0;;;;;;;12161:316;;;;:::o;13322:1055::-;13438:7;13458:13;13474:184;13654:3;13474:161;13530:15;;13518:9;;:27;13517:103;;13606:14;;13517:103;;;13570:12;;13517:103;13474:6;;:24;:161::i;:::-;:179;;:184::i;:::-;13681:13;;13458:200;;-1:-1:-1;;;;;;13675:19:0;;;13681:13;;13675:19;:44;;;;-1:-1:-1;;;;;;13698:21:0;;13714:4;13698:21;;13675:44;13671:296;;;13744:211;13951:3;13744:184;13808:16;;13796:9;;:28;13795:114;;13894:15;;13795:114;;;13853:13;;13744:6;;:28;:184::i;:211::-;13736:219;;13671:296;13983:9;;13979:192;;14054:4;14036:24;;;;:9;:24;;;;;;:67;;14083:5;14036:28;:67::i;:::-;14027:4;14009:24;;;;:9;:24;;;;;;;:94;;;;14123:36;;-1:-1:-1;;;;;14123:36:0;;;-1:-1:-1;;;;;;;;;;;14123:36:0;;;14153:5;10252:25:1;;10240:2;10225:18;;10207:76;14123:36:0;;;;;;;;13979:192;-1:-1:-1;;;;;14201:15:0;;;;;;:9;:15;;;;;;:27;;14221:6;14201:19;:27::i;:::-;-1:-1:-1;;;;;14183:15:0;;;;;;:9;:15;;;;;:45;14255:36;14273:17;:6;14284:5;14273:10;:17::i;:::-;-1:-1:-1;;;;;14255:13:0;;;;;;:9;:13;;;;;;;:17;:36::i;:::-;-1:-1:-1;;;;;14239:13:0;;;;;;;:9;:13;;;;;:52;;;;14307:37;;-1:-1:-1;;;;;;;;;;;14326:17:0;:6;14337:5;14326:10;:17::i;:::-;14307:37;;10252:25:1;;;10240:2;10225:18;14307:37:0;;;;;;;14364:5;13322:1055;-1:-1:-1;;;;13322:1055:0:o;798:246::-;856:7;880:6;876:47;;-1:-1:-1;910:1:0;903:8;;876:47;933:9;945:5;949:1;945;:5;:::i;:::-;933:17;-1:-1:-1;978:1:0;969:5;973:1;933:17;969:5;:::i;:::-;:10;961:56;;;;-1:-1:-1;;;961:56:0;;7617:2:1;961:56:0;;;7599:21:1;7656:2;7636:18;;;7629:30;7695:34;7675:18;;;7668:62;-1:-1:-1;;;7746:18:1;;;7739:31;7787:19;;961:56:0;7589:223:1;1052:132:0;1110:7;1137:39;1141:1;1144;1137:39;;;;;;;;;;;;;;;;;1312:7;1347:12;1340:5;1332:28;;;;-1:-1:-1;;;1332:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1371:9:0;1383:5;1387:1;1383;:5;:::i;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:257::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;286:6;278;271:22;233:2;330:9;317:23;349:31;374:5;349:31;:::i;415:261::-;485:6;538:2;526:9;517:7;513:23;509:32;506:2;;;559:6;551;544:22;506:2;596:9;590:16;615:31;640:5;615:31;:::i;681:398::-;749:6;757;810:2;798:9;789:7;785:23;781:32;778:2;;;831:6;823;816:22;778:2;875:9;862:23;894:31;919:5;894:31;:::i;:::-;944:5;-1:-1:-1;1001:2:1;986:18;;973:32;1014:33;973:32;1014:33;:::i;:::-;1066:7;1056:17;;;768:311;;;;;:::o;1084:466::-;1161:6;1169;1177;1230:2;1218:9;1209:7;1205:23;1201:32;1198:2;;;1251:6;1243;1236:22;1198:2;1295:9;1282:23;1314:31;1339:5;1314:31;:::i;:::-;1364:5;-1:-1:-1;1421:2:1;1406:18;;1393:32;1434:33;1393:32;1434:33;:::i;:::-;1188:362;;1486:7;;-1:-1:-1;;;1540:2:1;1525:18;;;;1512:32;;1188:362::o;1555:325::-;1623:6;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:2;;;1705:6;1697;1690:22;1652:2;1749:9;1736:23;1768:31;1793:5;1768:31;:::i;:::-;1818:5;1870:2;1855:18;;;;1842:32;;-1:-1:-1;;;1642:238:1:o;1885:1177::-;1969:6;2000:2;2043;2031:9;2022:7;2018:23;2014:32;2011:2;;;2064:6;2056;2049:22;2011:2;2109:9;2096:23;2138:18;2179:2;2171:6;2168:14;2165:2;;;2200:6;2192;2185:22;2165:2;2243:6;2232:9;2228:22;2218:32;;2288:7;2281:4;2277:2;2273:13;2269:27;2259:2;;2315:6;2307;2300:22;2259:2;2356;2343:16;2378:2;2374;2371:10;2368:2;;;2384:18;;:::i;:::-;2430:2;2427:1;2423:10;2462:2;2456:9;2525:2;2521:7;2516:2;2512;2508:11;2504:25;2496:6;2492:38;2580:6;2568:10;2565:22;2560:2;2548:10;2545:18;2542:46;2539:2;;;2591:18;;:::i;:::-;2627:2;2620:22;2677:18;;;2711:15;;;;-1:-1:-1;2746:11:1;;;2776;;;2772:20;;2769:33;-1:-1:-1;2766:2:1;;;2820:6;2812;2805:22;2766:2;2847:6;2838:15;;2862:169;2876:2;2873:1;2870:9;2862:169;;;2933:23;2952:3;2933:23;:::i;:::-;2921:36;;2894:1;2887:9;;;;;2977:12;;;;3009;;2862:169;;;-1:-1:-1;3050:6:1;1980:1082;-1:-1:-1;;;;;;;;1980:1082:1:o;3067:297::-;3134:6;3187:2;3175:9;3166:7;3162:23;3158:32;3155:2;;;3208:6;3200;3193:22;3155:2;3245:9;3239:16;3298:5;3291:13;3284:21;3277:5;3274:32;3264:2;;3325:6;3317;3310:22;3369:316;3457:6;3465;3473;3526:2;3514:9;3505:7;3501:23;3497:32;3494:2;;;3547:6;3539;3532:22;3494:2;3581:9;3575:16;3565:26;;3631:2;3620:9;3616:18;3610:25;3600:35;;3675:2;3664:9;3660:18;3654:25;3644:35;;3484:201;;;;;:::o;5290:603::-;5402:4;5431:2;5460;5449:9;5442:21;5492:6;5486:13;5535:6;5530:2;5519:9;5515:18;5508:34;5560:4;5573:140;5587:6;5584:1;5581:13;5573:140;;;5682:14;;;5678:23;;5672:30;5648:17;;;5667:2;5644:26;5637:66;5602:10;;5573:140;;;5731:6;5728:1;5725:13;5722:2;;;5801:4;5796:2;5787:6;5776:9;5772:22;5768:31;5761:45;5722:2;-1:-1:-1;5877:2:1;5856:15;-1:-1:-1;;5852:29:1;5837:45;;;;5884:2;5833:54;;5411:482;-1:-1:-1;;;5411:482:1:o;7817:356::-;8019:2;8001:21;;;8038:18;;;8031:30;8097:34;8092:2;8077:18;;8070:62;8164:2;8149:18;;7991:182::o;10288:983::-;10550:4;10598:3;10587:9;10583:19;10629:6;10618:9;10611:25;10655:2;10693:6;10688:2;10677:9;10673:18;10666:34;10736:3;10731:2;10720:9;10716:18;10709:31;10760:6;10795;10789:13;10826:6;10818;10811:22;10864:3;10853:9;10849:19;10842:26;;10903:2;10895:6;10891:15;10877:29;;10924:4;10937:195;10951:6;10948:1;10945:13;10937:195;;;11016:13;;-1:-1:-1;;;;;11012:39:1;11000:52;;11107:15;;;;11072:12;;;;11048:1;10966:9;10937:195;;;-1:-1:-1;;;;;;;11188:32:1;;;;11183:2;11168:18;;11161:60;-1:-1:-1;;;11252:3:1;11237:19;11230:35;11149:3;10559:712;-1:-1:-1;;;10559:712:1:o;11465:128::-;11505:3;11536:1;11532:6;11529:1;11526:13;11523:2;;;11542:18;;:::i;:::-;-1:-1:-1;11578:9:1;;11513:80::o;11598:217::-;11638:1;11664;11654:2;;-1:-1:-1;;;11689:31:1;;11743:4;11740:1;11733:15;11771:4;11696:1;11761:15;11654:2;-1:-1:-1;11800:9:1;;11644:171::o;11820:422::-;11909:1;11952:5;11909:1;11966:270;11987:7;11977:8;11974:21;11966:270;;;12046:4;12042:1;12038:6;12034:17;12028:4;12025:27;12022:2;;;12055:18;;:::i;:::-;12105:7;12095:8;12091:22;12088:2;;;12125:16;;;;12088:2;12204:22;;;;12164:15;;;;11966:270;;;11970:3;11884:358;;;;;:::o;12247:140::-;12305:5;12334:47;12375:4;12365:8;12361:19;12355:4;12441:5;12471:8;12461:2;;-1:-1:-1;12512:1:1;12526:5;;12461:2;12560:4;12550:2;;-1:-1:-1;12597:1:1;12611:5;;12550:2;12642:4;12660:1;12655:59;;;;12728:1;12723:130;;;;12635:218;;12655:59;12685:1;12676:10;;12699:5;;;12723:130;12760:3;12750:8;12747:17;12744:2;;;12767:18;;:::i;:::-;-1:-1:-1;;12823:1:1;12809:16;;12838:5;;12635:218;;12937:2;12927:8;12924:16;12918:3;12912:4;12909:13;12905:36;12899:2;12889:8;12886:16;12881:2;12875:4;12872:12;12868:35;12865:77;12862:2;;;-1:-1:-1;12974:19:1;;;13006:5;;12862:2;13053:34;13078:8;13072:4;13053:34;:::i;:::-;13123:6;13119:1;13115:6;13111:19;13102:7;13099:32;13096:2;;;13134:18;;:::i;:::-;13172:20;;12451:747;-1:-1:-1;;;12451:747:1:o;13203:168::-;13243:7;13309:1;13305;13301:6;13297:14;13294:1;13291:21;13286:1;13279:9;13272:17;13268:45;13265:2;;;13316:18;;:::i;:::-;-1:-1:-1;13356:9:1;;13255:116::o;13376:125::-;13416:4;13444:1;13441;13438:8;13435:2;;;13449:18;;:::i;:::-;-1:-1:-1;13486:9:1;;13425:76::o;13506:135::-;13545:3;-1:-1:-1;;13566:17:1;;13563:2;;;13586:18;;:::i;:::-;-1:-1:-1;13633:1:1;13622:13;;13553:88::o;13646:127::-;13707:10;13702:3;13698:20;13695:1;13688:31;13738:4;13735:1;13728:15;13762:4;13759:1;13752:15;13778:127;13839:10;13834:3;13830:20;13827:1;13820:31;13870:4;13867:1;13860:15;13894:4;13891:1;13884:15;13910:131;-1:-1:-1;;;;;13985:31:1;;13975:42;;13965:2;;14031:1;14028;14021:12;13965:2;13955:86;:::o

Swarm Source

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