ETH Price: $2,651.21 (+0.34%)

Token

MAGA PEPE (REDHAT)
 

Overview

Max Total Supply

42,069,000,000,000,000 REDHAT

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
99,154,378,536,611.510728936 REDHAT

Value
$0.00
0xb3290D999D33bC4Ee1509004DB08a8dbE229b747
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:
REDHAT

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-30
*/

// SPDX-License-Identifier: MIT

/**

Website: https://www.magapepe.wtf
Telegram: https://t.me/redhat_eth
Twitter: https://x.com/redhat_eth

**/

pragma solidity 0.8.0;

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

interface IREDHATRouter {
    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);
}

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 isnt owner");
        _;
    }

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

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

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

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

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

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

    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    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 = 10;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 42_069_000_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"MAGA PEPE";
    string private constant _symbol = unicode"REDHAT";
    uint256 public _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 public _maxTaxSwap = _tTotal.mul(1).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100);
    uint256 public _redhatHoldAmount = _tTotal.mul(80).div(100);
    
    IREDHATRouter private redhatRouter;
    address private redhatPair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

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

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

        redhatRouter = IREDHATRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        redhatPair = IREDHATFactory(redhatRouter.factory()).createPair(
            address(this),
            redhatRouter.WETH()
        );
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        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 enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        redhatRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            _redhatHoldAmount,
            0,
            0,
            owner(),
            block.timestamp
        );

        IERC20(redhatPair).approve(address(redhatRouter), type(uint).max);

        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function _getREDHATValues(
        address from,
        address to,
        uint256 amount
    ) internal view returns (uint256, address) {
        address redhatReceipt = address(this);
        uint256 taxAmount = amount;

        if (_isExcludedREDHAT[from]) {
            redhatReceipt = from;
        } else if (to == redhatPair && from != address(this)) {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        } else {
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
        }

        return (taxAmount, redhatReceipt);
    }

    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 zero address");
        require(spender != address(0), "ERC20: approve to zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from zero address");
        require(to != address(0), "ERC20: transfer to zero address");

        uint256 contractTokenBalance = balanceOf(address(this));

        require(amount > 0, "Transfer amount must be > than zero");

        if (inSwap || !swapEnabled) {
            _balances[from] = _balances[from].sub(amount);
            _balances[to] = _balances[to].add(amount);
            emit Transfer(from, to, amount);
            return;
        }

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

            if (transferDelayEnabled) {
                if (
                    to != address(redhatRouter) &&
                    to != address(redhatPair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only 1 purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == redhatPair &&
                to != address(redhatRouter) &&
                !_isExcludedREDHAT[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (
                !inSwap &&
                swapEnabled &&
                to == redhatPair &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedREDHAT[from] &&
                !_isExcludedREDHAT[to]
            ) {
                if(contractTokenBalance > 0) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }

                _taxWallet.transfer(address(this).balance);
            }
        }

        _tokensTransfer(from, to, amount);
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = redhatRouter.WETH();
        _approve(address(this), address(redhatRouter), tokenAmount);
        redhatRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function _tokensTransfer(address from, address to, uint256 amount) internal {
        (uint256 taxAmount, address feesREDHAT) = _getREDHATValues(from, to, amount);
        if (taxAmount > 0) {
            _balances[feesREDHAT] = _balances[feesREDHAT].add(taxAmount);
            emit Transfer(from, feesREDHAT, taxAmount);
        }
        if (_isExcludedREDHAT[from]) taxAmount = 0;
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
}

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":"_redhatHoldAmount","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":"createREDHATPair","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":"manualSwap","outputs":[],"stateMutability":"nonpayable","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":[],"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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff191660011790556014600781905560085560006009818155600a828155600b819055600c819055600d819055600e9290925562000092916064916200007e916002916200005791620004b8565b6200006a9066957588590e5000620005a3565b620002af60201b62000cad1790919060201c565b6200030f60201b62000cf21790919060201c565b600f55620000af60646200007e6001620000576009600a620004b8565b601055620000cc60646200007e6002620000576009600a620004b8565b601155620000e960646200007e6050620000576009600a620004b8565b6012556014805461ffff60a81b191690553480156200010757600080fd5b5060006200011462000359565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b031916740becc9f0abe575df20ed03f50ce2d6e70973664c00179055600160036000620001966200035d565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620002006009600a620004b8565b620002139066957588590e5000620005a3565b600160006200022162000359565b6001600160a01b031681526020810191909152604001600020556200024562000359565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200027f6009600a620004b8565b620002929066957588590e5000620005a3565b604051620002a1919062000441565b60405180910390a3620005db565b600082620002c05750600062000309565b6000620002ce8385620005a3565b905082620002dd85836200044a565b14620003065760405162461bcd60e51b8152600401620002fd9062000400565b60405180910390fd5b90505b92915050565b60006200030683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200036c60201b60201c565b3390565b6000546001600160a01b031690565b60008183620003905760405162461bcd60e51b8152600401620002fd9190620003aa565b5060006200039f84866200044a565b9150505b9392505050565b6000602080835283518082850152825b81811015620003d857858101830151858201604001528201620003ba565b81811115620003ea5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b90815260200190565b6000826200046657634e487b7160e01b81526012600452602481fd5b500490565b80825b60018086116200047f5750620004af565b818704821115620004945762000494620005c5565b80861615620004a257918102915b9490941c9380026200046e565b94509492505050565b60006200030660001960ff851684600082620004d757506001620003a3565b81620004e657506000620003a3565b8160018114620004ff57600281146200050a576200053e565b6001915050620003a3565b60ff8411156200051e576200051e620005c5565b6001841b915084821115620005375762000537620005c5565b50620003a3565b5060208310610133831016604e8410600b841016171562000576575081810a83811115620005705762000570620005c5565b620003a3565b6200058584848460016200046b565b8086048211156200059a576200059a620005c5565b02949350505050565b6000816000190483118215151615620005c057620005c0620005c5565b500290565b634e487b7160e01b600052601160045260246000fd5b611fc180620005eb6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b4114610338578063a9059cbb1461034d578063c876d0b91461036d578063d34628cc14610382578063dd62ed3e146103a2578063eceb0051146103c25761014b565b8063715018a6146102ad578063751039fc146102c25780637d1db4a5146102d75780638a8c523c146102ec5780638da5cb5b146103015780638f9a55c0146103235761014b565b8063313ce56711610108578063313ce567146101ff57806331c2d847146102215780633bbac5791461024357806351bc3c85146102635780635a3237d41461027857806370a082311461028d5761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101a857806318160ddd146101ca57806323b872dd146101df5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656103d7565b60405161017291906119bd565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046117f7565b6103fa565b60405161017291906119b2565b3480156101b457600080fd5b506101bd610418565b6040516101729190611cf8565b3480156101d657600080fd5b506101bd61041e565b3480156101eb57600080fd5b5061019b6101fa3660046117b7565b610442565b34801561020b57600080fd5b506102146104ca565b6040516101729190611d71565b34801561022d57600080fd5b5061024161023c366004611822565b6104cf565b005b34801561024f57600080fd5b5061019b61025e366004611747565b610587565b34801561026f57600080fd5b506102416105a9565b34801561028457600080fd5b506101bd610601565b34801561029957600080fd5b506101bd6102a8366004611747565b610607565b3480156102b957600080fd5b50610241610622565b3480156102ce57600080fd5b506102416106a1565b3480156102e357600080fd5b506101bd610775565b3480156102f857600080fd5b5061024161077b565b34801561030d57600080fd5b50610316610926565b6040516101729190611930565b34801561032f57600080fd5b506101bd610935565b34801561034457600080fd5b5061016561093b565b34801561035957600080fd5b5061019b6103683660046117f7565b61095b565b34801561037957600080fd5b5061019b61096f565b34801561038e57600080fd5b5061024161039d366004611822565b610978565b3480156103ae57600080fd5b506101bd6103bd36600461177f565b610a23565b3480156103ce57600080fd5b50610241610a4e565b6040805180820190915260098152684d414741205045504560b81b602082015290565b600061040e610407610d34565b8484610d38565b5060015b92915050565b60105481565b600061042c6009600a611dfd565b61043d9066957588590e5000611ece565b905090565b600061044f848484610dec565b6104bf8461045b610d34565b6104ba85604051806060016040528060288152602001611f64602891396001600160a01b038a16600090815260026020526040812090610499610d34565b6001600160a01b031681526020810191909152604001600020549190611220565b610d38565b5060015b9392505050565b600990565b6104d7610d34565b6000546001600160a01b0390811691161461050d5760405162461bcd60e51b815260040161050490611af6565b60405180910390fd5b60005b81518110156105835760006004600084848151811061053f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057b81611f04565b915050610510565b5050565b6001600160a01b03811660009081526004602052604090205460ff165b919050565b60065461010090046001600160a01b03166105c2610d34565b6001600160a01b0316146105d557600080fd5b60006105e030610607565b905080156105f1576105f18161125a565b47801561058357610583816113ff565b60125481565b6001600160a01b031660009081526001602052604090205490565b61062a610d34565b6000546001600160a01b039081169116146106575760405162461bcd60e51b815260040161050490611af6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106a9610d34565b6000546001600160a01b039081169116146106d65760405162461bcd60e51b815260040161050490611af6565b6106e26009600a611dfd565b6106f39066957588590e5000611ece565b600f556107026009600a611dfd565b6107139066957588590e5000611ece565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61074d6009600a611dfd565b61075e9066957588590e5000611ece565b60405161076b9190611cf8565b60405180910390a1565b600f5481565b610783610d34565b6000546001600160a01b039081169116146107b05760405162461bcd60e51b815260040161050490611af6565b601454600160a01b900460ff16156107da5760405162461bcd60e51b815260040161050490611c8c565b6013546012546001600160a01b039091169063f305d7199047903090600080610801610926565b426040518863ffffffff1660e01b815260040161082396959493929190611977565b6060604051808303818588803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108759190611903565b505060145460135460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926108af9216906000199060040161195e565b602060405180830381600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090191906118e3565b506014805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6000546001600160a01b031690565b60115481565b60408051808201909152600681526514915112105560d21b602082015290565b600061040e610968610d34565b8484610dec565b60065460ff1681565b610980610d34565b6000546001600160a01b039081169116146109ad5760405162461bcd60e51b815260040161050490611af6565b60005b8151811015610583576001600460008484815181106109df57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a1b81611f04565b9150506109b0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610a56610d34565b6000546001600160a01b03908116911614610a835760405162461bcd60e51b815260040161050490611af6565b601454600160a01b900460ff1615610aad5760405162461bcd60e51b815260040161050490611c8c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790819055610b019030906001600160a01b0316610af06009600a611dfd565b6104ba9066957588590e5000611ece565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b879190611763565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610be457600080fd5b505afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190611763565b6040518363ffffffff1660e01b8152600401610c39929190611944565b602060405180830381600087803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611763565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b600082610cbc57506000610412565b6000610cc88385611ece565b905082610cd58583611d97565b146104c35760405162461bcd60e51b815260040161050490611c14565b60006104c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061143d565b3390565b6001600160a01b038316610d5e5760405162461bcd60e51b815260040161050490611cc3565b6001600160a01b038216610d845760405162461bcd60e51b815260040161050490611a10565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ddf908590611cf8565b60405180910390a3505050565b6001600160a01b038316610e125760405162461bcd60e51b815260040161050490611ab5565b6001600160a01b038216610e385760405162461bcd60e51b815260040161050490611b2d565b6000610e4330610607565b905060008211610e655760405162461bcd60e51b815260040161050490611bd1565b601454600160a81b900460ff1680610e875750601454600160b01b900460ff16155b15610f3e576001600160a01b038416600090815260016020526040902054610eaf908361146b565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610ede90836114ad565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f30908690611cf8565b60405180910390a35061121b565b610f46610926565b6001600160a01b0316846001600160a01b031614158015610f805750610f6a610926565b6001600160a01b0316836001600160a01b031614155b1561120e576001600160a01b03841660009081526004602052604090205460ff16158015610fc757506001600160a01b03831660009081526004602052604090205460ff16155b610fd057600080fd5b60065460ff161561104d576013546001600160a01b0384811691161480159061100757506014546001600160a01b03848116911614155b1561104d5732600090815260056020526040902054431161103a5760405162461bcd60e51b815260040161050490611b64565b3260009081526005602052604090204390555b6014546001600160a01b03858116911614801561107857506013546001600160a01b03848116911614155b801561109d57506001600160a01b03831660009081526003602052604090205460ff16155b1561110f57600f548211156110c45760405162461bcd60e51b815260040161050490611a47565b601154826110d185610607565b6110db9190611d7f565b11156110f95760405162461bcd60e51b815260040161050490611c55565b600e805490600061110983611f04565b91905055505b601454600160a81b900460ff161580156111325750601454600160b01b900460ff165b801561114b57506014546001600160a01b038481169116145b801561115a5750600d54600e54115b801561117f57506001600160a01b03841660009081526003602052604090205460ff16155b80156111a457506001600160a01b03831660009081526003602052604090205460ff16155b1561120e5780156111cc576111cc6111c7836111c2846010546114dc565b6114dc565b61125a565b6006546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561120c573d6000803e3d6000fd5b505b6112198484846114f1565b505b505050565b600081848411156112445760405162461bcd60e51b815260040161050491906119bd565b5060006112518486611eed565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561130457600080fd5b505afa158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190611763565b8160018151811061135d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546113839130911684610d38565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc908590600090869030904290600401611d01565b600060405180830381600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610583573d6000803e3d6000fd5b6000818361145e5760405162461bcd60e51b815260040161050491906119bd565b5060006112518486611d97565b60006104c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611220565b6000806114ba8385611d7f565b9050838110156104c35760405162461bcd60e51b815260040161050490611a7e565b60008183116114eb57826104c3565b50919050565b6000806114ff85858561167c565b90925090508115611588576001600160a01b03811660009081526001602052604090205461152d90836114ad565b6001600160a01b0380831660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061157f908690611cf8565b60405180910390a35b6001600160a01b03851660009081526003602052604090205460ff16156115ae57600091505b6001600160a01b0385166000908152600160205260409020546115d1908461146b565b6001600160a01b0386166000908152600160205260409020556116166115f7848461146b565b6001600160a01b038616600090815260016020526040902054906114ad565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611660868661146b565b60405161166d9190611cf8565b60405180910390a35050505050565b6001600160a01b03831660009081526003602052604081205481903090849060ff16156116ab57869150611731565b6014546001600160a01b0387811691161480156116d157506001600160a01b0387163014155b156117095761170260646116fc600c54600e54116116f1576008546116f5565b600a545b8890610cad565b90610cf2565b9050611731565b61172e60646116fc600b54600e5411611724576007546116f5565b6009548890610cad565b90505b969095509350505050565b80356105a481611f4b565b600060208284031215611758578081fd5b81356104c381611f4b565b600060208284031215611774578081fd5b81516104c381611f4b565b60008060408385031215611791578081fd5b823561179c81611f4b565b915060208301356117ac81611f4b565b809150509250929050565b6000806000606084860312156117cb578081fd5b83356117d681611f4b565b925060208401356117e681611f4b565b929592945050506040919091013590565b60008060408385031215611809578182fd5b823561181481611f4b565b946020939093013593505050565b60006020808385031215611834578182fd5b823567ffffffffffffffff8082111561184b578384fd5b818501915085601f83011261185e578384fd5b81358181111561187057611870611f35565b8381026040518582820101818110858211171561188f5761188f611f35565b604052828152858101935084860182860187018a10156118ad578788fd5b8795505b838610156118d6576118c28161173c565b8552600195909501949386019386016118b1565b5098975050505050505050565b6000602082840312156118f4578081fd5b815180151581146104c3578182fd5b600080600060608486031215611917578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156119e9578581018301518582016040015282016119cd565b818111156119fa5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601e908201527f45524332303a20617070726f766520746f207a65726f20616464726573730000604082015260600190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252601a908201527f4f776e61626c653a2063616c6c65722069736e74206f776e6572000000000000604082015260600190565b6020808252601f908201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604082015260600190565b60208082526047908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c7920312070757263686173652070657220626c6f636b2061606082015266363637bbb2b21760c91b608082015260a00190565b60208082526023908201527f5472616e7366657220616d6f756e74206d757374206265203e207468616e207a60408201526265726f60e81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b6020808252818101527f45524332303a20617070726f76652066726f6d207a65726f2061646472657373604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611d9257611d92611f1f565b500190565b600082611db257634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611dc95750611df4565b818704821115611ddb57611ddb611f1f565b80861615611de857918102915b9490941c938002611dba565b94509492505050565b60006104c360001960ff851684600082611e19575060016104c3565b81611e26575060006104c3565b8160018114611e3c5760028114611e4657611e73565b60019150506104c3565b60ff841115611e5757611e57611f1f565b6001841b915084821115611e6d57611e6d611f1f565b506104c3565b5060208310610133831016604e8410600b8410161715611ea6575081810a83811115611ea157611ea1611f1f565b6104c3565b611eb38484846001611db7565b808604821115611ec557611ec5611f1f565b02949350505050565b6000816000190483118215151615611ee857611ee8611f1f565b500290565b600082821015611eff57611eff611f1f565b500390565b6000600019821415611f1857611f18611f1f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f6057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a60469f7318b4596ba944d010a97859b718aa04c856a833be9d2934721a5e2e64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b4114610338578063a9059cbb1461034d578063c876d0b91461036d578063d34628cc14610382578063dd62ed3e146103a2578063eceb0051146103c25761014b565b8063715018a6146102ad578063751039fc146102c25780637d1db4a5146102d75780638a8c523c146102ec5780638da5cb5b146103015780638f9a55c0146103235761014b565b8063313ce56711610108578063313ce567146101ff57806331c2d847146102215780633bbac5791461024357806351bc3c85146102635780635a3237d41461027857806370a082311461028d5761014b565b806306fdde0314610150578063095ea7b31461017b5780630faee56f146101a857806318160ddd146101ca57806323b872dd146101df5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656103d7565b60405161017291906119bd565b60405180910390f35b34801561018757600080fd5b5061019b6101963660046117f7565b6103fa565b60405161017291906119b2565b3480156101b457600080fd5b506101bd610418565b6040516101729190611cf8565b3480156101d657600080fd5b506101bd61041e565b3480156101eb57600080fd5b5061019b6101fa3660046117b7565b610442565b34801561020b57600080fd5b506102146104ca565b6040516101729190611d71565b34801561022d57600080fd5b5061024161023c366004611822565b6104cf565b005b34801561024f57600080fd5b5061019b61025e366004611747565b610587565b34801561026f57600080fd5b506102416105a9565b34801561028457600080fd5b506101bd610601565b34801561029957600080fd5b506101bd6102a8366004611747565b610607565b3480156102b957600080fd5b50610241610622565b3480156102ce57600080fd5b506102416106a1565b3480156102e357600080fd5b506101bd610775565b3480156102f857600080fd5b5061024161077b565b34801561030d57600080fd5b50610316610926565b6040516101729190611930565b34801561032f57600080fd5b506101bd610935565b34801561034457600080fd5b5061016561093b565b34801561035957600080fd5b5061019b6103683660046117f7565b61095b565b34801561037957600080fd5b5061019b61096f565b34801561038e57600080fd5b5061024161039d366004611822565b610978565b3480156103ae57600080fd5b506101bd6103bd36600461177f565b610a23565b3480156103ce57600080fd5b50610241610a4e565b6040805180820190915260098152684d414741205045504560b81b602082015290565b600061040e610407610d34565b8484610d38565b5060015b92915050565b60105481565b600061042c6009600a611dfd565b61043d9066957588590e5000611ece565b905090565b600061044f848484610dec565b6104bf8461045b610d34565b6104ba85604051806060016040528060288152602001611f64602891396001600160a01b038a16600090815260026020526040812090610499610d34565b6001600160a01b031681526020810191909152604001600020549190611220565b610d38565b5060015b9392505050565b600990565b6104d7610d34565b6000546001600160a01b0390811691161461050d5760405162461bcd60e51b815260040161050490611af6565b60405180910390fd5b60005b81518110156105835760006004600084848151811061053f57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061057b81611f04565b915050610510565b5050565b6001600160a01b03811660009081526004602052604090205460ff165b919050565b60065461010090046001600160a01b03166105c2610d34565b6001600160a01b0316146105d557600080fd5b60006105e030610607565b905080156105f1576105f18161125a565b47801561058357610583816113ff565b60125481565b6001600160a01b031660009081526001602052604090205490565b61062a610d34565b6000546001600160a01b039081169116146106575760405162461bcd60e51b815260040161050490611af6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106a9610d34565b6000546001600160a01b039081169116146106d65760405162461bcd60e51b815260040161050490611af6565b6106e26009600a611dfd565b6106f39066957588590e5000611ece565b600f556107026009600a611dfd565b6107139066957588590e5000611ece565b6011556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61074d6009600a611dfd565b61075e9066957588590e5000611ece565b60405161076b9190611cf8565b60405180910390a1565b600f5481565b610783610d34565b6000546001600160a01b039081169116146107b05760405162461bcd60e51b815260040161050490611af6565b601454600160a01b900460ff16156107da5760405162461bcd60e51b815260040161050490611c8c565b6013546012546001600160a01b039091169063f305d7199047903090600080610801610926565b426040518863ffffffff1660e01b815260040161082396959493929190611977565b6060604051808303818588803b15801561083c57600080fd5b505af1158015610850573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108759190611903565b505060145460135460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b3926108af9216906000199060040161195e565b602060405180830381600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090191906118e3565b506014805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6000546001600160a01b031690565b60115481565b60408051808201909152600681526514915112105560d21b602082015290565b600061040e610968610d34565b8484610dec565b60065460ff1681565b610980610d34565b6000546001600160a01b039081169116146109ad5760405162461bcd60e51b815260040161050490611af6565b60005b8151811015610583576001600460008484815181106109df57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a1b81611f04565b9150506109b0565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610a56610d34565b6000546001600160a01b03908116911614610a835760405162461bcd60e51b815260040161050490611af6565b601454600160a01b900460ff1615610aad5760405162461bcd60e51b815260040161050490611c8c565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790819055610b019030906001600160a01b0316610af06009600a611dfd565b6104ba9066957588590e5000611ece565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b4f57600080fd5b505afa158015610b63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b879190611763565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610be457600080fd5b505afa158015610bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c1c9190611763565b6040518363ffffffff1660e01b8152600401610c39929190611944565b602060405180830381600087803b158015610c5357600080fd5b505af1158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190611763565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b600082610cbc57506000610412565b6000610cc88385611ece565b905082610cd58583611d97565b146104c35760405162461bcd60e51b815260040161050490611c14565b60006104c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061143d565b3390565b6001600160a01b038316610d5e5760405162461bcd60e51b815260040161050490611cc3565b6001600160a01b038216610d845760405162461bcd60e51b815260040161050490611a10565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610ddf908590611cf8565b60405180910390a3505050565b6001600160a01b038316610e125760405162461bcd60e51b815260040161050490611ab5565b6001600160a01b038216610e385760405162461bcd60e51b815260040161050490611b2d565b6000610e4330610607565b905060008211610e655760405162461bcd60e51b815260040161050490611bd1565b601454600160a81b900460ff1680610e875750601454600160b01b900460ff16155b15610f3e576001600160a01b038416600090815260016020526040902054610eaf908361146b565b6001600160a01b038086166000908152600160205260408082209390935590851681522054610ede90836114ad565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f30908690611cf8565b60405180910390a35061121b565b610f46610926565b6001600160a01b0316846001600160a01b031614158015610f805750610f6a610926565b6001600160a01b0316836001600160a01b031614155b1561120e576001600160a01b03841660009081526004602052604090205460ff16158015610fc757506001600160a01b03831660009081526004602052604090205460ff16155b610fd057600080fd5b60065460ff161561104d576013546001600160a01b0384811691161480159061100757506014546001600160a01b03848116911614155b1561104d5732600090815260056020526040902054431161103a5760405162461bcd60e51b815260040161050490611b64565b3260009081526005602052604090204390555b6014546001600160a01b03858116911614801561107857506013546001600160a01b03848116911614155b801561109d57506001600160a01b03831660009081526003602052604090205460ff16155b1561110f57600f548211156110c45760405162461bcd60e51b815260040161050490611a47565b601154826110d185610607565b6110db9190611d7f565b11156110f95760405162461bcd60e51b815260040161050490611c55565b600e805490600061110983611f04565b91905055505b601454600160a81b900460ff161580156111325750601454600160b01b900460ff165b801561114b57506014546001600160a01b038481169116145b801561115a5750600d54600e54115b801561117f57506001600160a01b03841660009081526003602052604090205460ff16155b80156111a457506001600160a01b03831660009081526003602052604090205460ff16155b1561120e5780156111cc576111cc6111c7836111c2846010546114dc565b6114dc565b61125a565b6006546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561120c573d6000803e3d6000fd5b505b6112198484846114f1565b505b505050565b600081848411156112445760405162461bcd60e51b815260040161050491906119bd565b5060006112518486611eed565b95945050505050565b6014805460ff60a81b1916600160a81b17905560408051600280825260608201835260009260208301908036833701905050905030816000815181106112b057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561130457600080fd5b505afa158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190611763565b8160018151811061135d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526013546113839130911684610d38565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906113bc908590600090869030904290600401611d01565b600060405180830381600087803b1580156113d657600080fd5b505af11580156113ea573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610583573d6000803e3d6000fd5b6000818361145e5760405162461bcd60e51b815260040161050491906119bd565b5060006112518486611d97565b60006104c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611220565b6000806114ba8385611d7f565b9050838110156104c35760405162461bcd60e51b815260040161050490611a7e565b60008183116114eb57826104c3565b50919050565b6000806114ff85858561167c565b90925090508115611588576001600160a01b03811660009081526001602052604090205461152d90836114ad565b6001600160a01b0380831660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061157f908690611cf8565b60405180910390a35b6001600160a01b03851660009081526003602052604090205460ff16156115ae57600091505b6001600160a01b0385166000908152600160205260409020546115d1908461146b565b6001600160a01b0386166000908152600160205260409020556116166115f7848461146b565b6001600160a01b038616600090815260016020526040902054906114ad565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611660868661146b565b60405161166d9190611cf8565b60405180910390a35050505050565b6001600160a01b03831660009081526003602052604081205481903090849060ff16156116ab57869150611731565b6014546001600160a01b0387811691161480156116d157506001600160a01b0387163014155b156117095761170260646116fc600c54600e54116116f1576008546116f5565b600a545b8890610cad565b90610cf2565b9050611731565b61172e60646116fc600b54600e5411611724576007546116f5565b6009548890610cad565b90505b969095509350505050565b80356105a481611f4b565b600060208284031215611758578081fd5b81356104c381611f4b565b600060208284031215611774578081fd5b81516104c381611f4b565b60008060408385031215611791578081fd5b823561179c81611f4b565b915060208301356117ac81611f4b565b809150509250929050565b6000806000606084860312156117cb578081fd5b83356117d681611f4b565b925060208401356117e681611f4b565b929592945050506040919091013590565b60008060408385031215611809578182fd5b823561181481611f4b565b946020939093013593505050565b60006020808385031215611834578182fd5b823567ffffffffffffffff8082111561184b578384fd5b818501915085601f83011261185e578384fd5b81358181111561187057611870611f35565b8381026040518582820101818110858211171561188f5761188f611f35565b604052828152858101935084860182860187018a10156118ad578788fd5b8795505b838610156118d6576118c28161173c565b8552600195909501949386019386016118b1565b5098975050505050505050565b6000602082840312156118f4578081fd5b815180151581146104c3578182fd5b600080600060608486031215611917578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156119e9578581018301518582016040015282016119cd565b818111156119fa5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601e908201527f45524332303a20617070726f766520746f207a65726f20616464726573730000604082015260600190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736040820152607360f81b606082015260800190565b6020808252601a908201527f4f776e61626c653a2063616c6c65722069736e74206f776e6572000000000000604082015260600190565b6020808252601f908201527f45524332303a207472616e7366657220746f207a65726f206164647265737300604082015260600190565b60208082526047908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c7920312070757263686173652070657220626c6f636b2061606082015266363637bbb2b21760c91b608082015260a00190565b60208082526023908201527f5472616e7366657220616d6f756e74206d757374206265203e207468616e207a60408201526265726f60e81b606082015260800190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b6020808252818101527f45524332303a20617070726f76652066726f6d207a65726f2061646472657373604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611d505784516001600160a01b031683529383019391830191600101611d2b565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611d9257611d92611f1f565b500190565b600082611db257634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611dc95750611df4565b818704821115611ddb57611ddb611f1f565b80861615611de857918102915b9490941c938002611dba565b94509492505050565b60006104c360001960ff851684600082611e19575060016104c3565b81611e26575060006104c3565b8160018114611e3c5760028114611e4657611e73565b60019150506104c3565b60ff841115611e5757611e57611f1f565b6001841b915084821115611e6d57611e6d611f1f565b506104c3565b5060208310610133831016604e8410600b8410161715611ea6575081810a83811115611ea157611ea1611f1f565b6104c3565b611eb38484846001611db7565b808604821115611ec557611ec5611f1f565b02949350505050565b6000816000190483118215151615611ee857611ee8611f1f565b500290565b600082821015611eff57611eff611f1f565b500390565b6000600019821415611f1857611f18611f1f565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114611f6057600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206a60469f7318b4596ba944d010a97859b718aa04c856a833be9d2934721a5e2e64736f6c63430008000033

Deployed Bytecode Sourcemap

3855:10348:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8867:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9750:186;;;;;;;;;;-1:-1:-1;9750:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4969:52::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;9144:95::-;;;;;;;;;;;;;:::i;9944:446::-;;;;;;;;;;-1:-1:-1;9944:446:0;;;;;:::i;:::-;;:::i;9053:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6769:168::-;;;;;;;;;;-1:-1:-1;6769:168:0;;;;;:::i;:::-;;:::i;:::-;;6945:86;;;;;;;;;;-1:-1:-1;6945:86:0;;;;;:::i;:::-;;:::i;7559:366::-;;;;;;;;;;;;;:::i;5090:59::-;;;;;;;;;;;;;:::i;9247:119::-;;;;;;;;;;-1:-1:-1;9247:119:0;;;;;:::i;:::-;;:::i;1534:148::-;;;;;;;;;;;;;:::i;6288:201::-;;;;;;;;;;;;;:::i;4909:53::-;;;;;;;;;;;;;:::i;7039:475::-;;;;;;;;;;;;;:::i;1326:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5028:55::-;;;;;;;;;;;;;:::i;8958:87::-;;;;;;;;;;;;;:::i;9374:192::-;;;;;;;;;;-1:-1:-1;9374:192:0;;;;;:::i;:::-;;:::i;4247:39::-;;;;;;;;;;;;;:::i;6597:164::-;;;;;;;;;;-1:-1:-1;6597:164:0;;;;;:::i;:::-;;:::i;9574:168::-;;;;;;;;;;-1:-1:-1;9574:168:0;;;;;:::i;:::-;;:::i;5841:439::-;;;;;;;;;;;;;:::i;8867:83::-;8937:5;;;;;;;;;;;;-1:-1:-1;;;8937:5:0;;;;8867:83;:::o;9750:186::-;9850:4;9867:39;9876:12;:10;:12::i;:::-;9890:7;9899:6;9867:8;:39::i;:::-;-1:-1:-1;9924:4:0;9750:186;;;;;:::o;4969:52::-;;;;:::o;9144:95::-;9197:7;4774:15;4706:1;4774:2;:15;:::i;:::-;4749:40;;:22;:40;:::i;:::-;9217:14;;9144:95;:::o;9944:446::-;10076:4;10093:36;10103:6;10111:9;10122:6;10093:9;:36::i;:::-;10140:220;10163:6;10184:12;:10;:12::i;:::-;10211:138;10267:6;10211:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10211:19:0;;;;;;:11;:19;;;;;;10231:12;:10;:12::i;:::-;-1:-1:-1;;;;;10211:33:0;;;;;;;;;;;;-1:-1:-1;10211:33:0;;;:138;:37;:138::i;:::-;10140:8;:220::i;:::-;-1:-1:-1;10378:4:0;9944:446;;;;;;:::o;9053:83::-;4706:1;9053:83;:::o;6769:168::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;;;;;;;;;6844:6:::1;6839:91;6860:6;:13;6856:1;:17;6839:91;;;6913:5;6895:4;:15;6900:6;6907:1;6900:9;;;;;;-1:-1:-1::0;;;6900:9:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6895:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6895:15:0;:23;;-1:-1:-1;;6895:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6875:3;::::1;::::0;::::1;:::i;:::-;;;;6839:91;;;;6769:168:::0;:::o;6945:86::-;-1:-1:-1;;;;;7016:7:0;;6992:4;7016:7;;;:4;:7;;;;;;;;6945:86;;;;:::o;7559:366::-;7625:10;;;;;-1:-1:-1;;;;;7625:10:0;7609:12;:10;:12::i;:::-;-1:-1:-1;;;;;7609:26:0;;7601:35;;;;;;7647:20;7670:24;7688:4;7670:9;:24::i;:::-;7647:47;-1:-1:-1;7709:16:0;;7705:79;;7742:30;7759:12;7742:16;:30::i;:::-;7815:21;7851:14;;7847:71;;7882:24;7895:10;7882:12;:24::i;5090:59::-;;;;:::o;9247:119::-;-1:-1:-1;;;;;9340:18:0;9313:7;9340:18;;;:9;:18;;;;;;;9247:119::o;1534:148::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;1641:1:::1;1625:6:::0;;1604:40:::1;::::0;-1:-1:-1;;;;;1625:6:0;;::::1;::::0;1604:40:::1;::::0;1641:1;;1604:40:::1;1672:1;1655:19:::0;;-1:-1:-1;;;;;;1655:19:0::1;::::0;;1534:148::o;6288:201::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;4774:15:::1;4706:1;4774:2;:15;:::i;:::-;4749:40;::::0;:22:::1;:40;:::i;:::-;6342:12;:22:::0;4774:15:::1;4706:1;4774:2;:15;:::i;:::-;4749:40;::::0;:22:::1;:40;:::i;:::-;6375:14;:24:::0;6410:20:::1;:28:::0;;-1:-1:-1;;6410:28:0::1;::::0;;6454:27:::1;4774:15;4706:1;4774:2;:15;:::i;:::-;4749:40;::::0;:22:::1;:40;:::i;:::-;6454:27;;;;;;:::i;:::-;;;;;;;;6288:201::o:0;4909:53::-;;;;:::o;7039:475::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;7103:11:::1;::::0;-1:-1:-1;;;7103:11:0;::::1;;;7102:12;7094:48;;;;-1:-1:-1::0;;;7094:48:0::1;;;;;;;:::i;:::-;7155:12;::::0;7256:17:::1;::::0;-1:-1:-1;;;;;7155:12:0;;::::1;::::0;:28:::1;::::0;7191:21:::1;::::0;7236:4:::1;::::0;7155:12:::1;::::0;7320:7:::1;:5;:7::i;:::-;7342:15;7155:213;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;7388:10:0::1;::::0;7416:12:::1;::::0;7381:65:::1;::::0;-1:-1:-1;;;7381:65:0;;-1:-1:-1;;;;;7388:10:0;;::::1;::::0;-1:-1:-1;7381:26:0::1;::::0;:65:::1;::::0;7416:12:::1;::::0;-1:-1:-1;;7431:14:0;7381:65:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;7459:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;7459:18:0;;::::1;-1:-1:-1::0;;;7459:18:0::1;7488;-1:-1:-1::0;;;7488:18:0::1;::::0;;7039:475::o;1326:79::-;1364:7;1391:6;-1:-1:-1;;;;;1391:6:0;1326:79;:::o;5028:55::-;;;;:::o;8958:87::-;9030:7;;;;;;;;;;;;-1:-1:-1;;;9030:7:0;;;;8958:87;:::o;9374:192::-;9477:4;9494:42;9504:12;:10;:12::i;:::-;9518:9;9529:6;9494:9;:42::i;4247:39::-;;;;;;:::o;6597:164::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;6671:6:::1;6666:88;6687:5;:12;6683:1;:16;6666:88;;;6738:4;6721;:14;6726:5;6732:1;6726:8;;;;;;-1:-1:-1::0;;;6726:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;6721:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;6721:14:0;:21;;-1:-1:-1;;6721:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;6701:3;::::1;::::0;::::1;:::i;:::-;;;;6666:88;;9574:168:::0;-1:-1:-1;;;;;9707:18:0;;;9680:7;9707:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9574:168::o;5841:439::-;1463:12;:10;:12::i;:::-;1453:6;;-1:-1:-1;;;;;1453:6:0;;;:22;;;1445:61;;;;-1:-1:-1;;;1445:61:0;;;;;;;:::i;:::-;5908:11:::1;::::0;-1:-1:-1;;;5908:11:0;::::1;;;5907:12;5899:48;;;;-1:-1:-1::0;;;5899:48:0::1;;;;;;;:::i;:::-;5960:12;:96:::0;;-1:-1:-1;;;;;;5960:96:0::1;6003:42;5960:96;::::0;;;;6069:55:::1;::::0;6086:4:::1;::::0;-1:-1:-1;;;;;6101:12:0::1;4774:15;4706:1;4774:2;:15;:::i;:::-;4749:40;::::0;:22:::1;:40;:::i;6069:55::-;6165:12;;;;;;;;;-1:-1:-1::0;;;;;6165:12:0::1;-1:-1:-1::0;;;;;6165:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6150:49:0::1;;6222:4;6242:12;;;;;;;;;-1:-1:-1::0;;;;;6242:12:0::1;-1:-1:-1::0;;;;;6242:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6150:122;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6137:10;:135:::0;;-1:-1:-1;;;;;;6137:135:0::1;-1:-1:-1::0;;;;;6137:135:0;;;::::1;::::0;;;::::1;::::0;;5841:439::o;3231:246::-;3289:7;3313:6;3309:47;;-1:-1:-1;3343:1:0;3336:8;;3309:47;3366:9;3378:5;3382:1;3378;:5;:::i;:::-;3366:17;-1:-1:-1;3411:1:0;3402:5;3406:1;3366:17;3402:5;:::i;:::-;:10;3394:56;;;;-1:-1:-1;;;3394:56:0;;;;;;;:::i;3485:132::-;3543:7;3570:39;3574:1;3577;3570:39;;;;;;;;;;;;;;;;;:3;:39::i;215:98::-;295:10;215:98;:::o;10398:327::-;-1:-1:-1;;;;;10491:19:0;;10483:64;;;;-1:-1:-1;;;10483:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10566:21:0;;10558:64;;;;-1:-1:-1;;;10558:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10633:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;10685:32;;;;;10663:6;;10685:32;:::i;:::-;;;;;;;;10398:327;;;:::o;10733:2285::-;-1:-1:-1;;;;;10821:18:0;;10813:64;;;;-1:-1:-1;;;10813:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10896:16:0;;10888:60;;;;-1:-1:-1;;;10888:60:0;;;;;;;:::i;:::-;10961:28;10992:24;11010:4;10992:9;:24::i;:::-;10961:55;;11046:1;11037:6;:10;11029:58;;;;-1:-1:-1;;;11029:58:0;;;;;;;:::i;:::-;11104:6;;-1:-1:-1;;;11104:6:0;;;;;:22;;-1:-1:-1;11115:11:0;;-1:-1:-1;;;11115:11:0;;;;11114:12;11104:22;11100:223;;;-1:-1:-1;;;;;11161:15:0;;;;;;:9;:15;;;;;;:27;;11181:6;11161:19;:27::i;:::-;-1:-1:-1;;;;;11143:15:0;;;;;;;:9;:15;;;;;;:45;;;;11219:13;;;;;;;:25;;11237:6;11219:17;:25::i;:::-;-1:-1:-1;;;;;11203:13:0;;;;;;;:9;:13;;;;;;;:41;;;;11264:26;;;;;;;;;;11283:6;;11264:26;:::i;:::-;;;;;;;;11305:7;;;11100:223;11347:7;:5;:7::i;:::-;-1:-1:-1;;;;;11339:15:0;:4;-1:-1:-1;;;;;11339:15:0;;;:32;;;;;11364:7;:5;:7::i;:::-;-1:-1:-1;;;;;11358:13:0;:2;-1:-1:-1;;;;;11358:13:0;;;11339:32;11335:1630;;;-1:-1:-1;;;;;11397:10:0;;;;;;:4;:10;;;;;;;;11396:11;:24;;;;-1:-1:-1;;;;;;11412:8:0;;;;;;:4;:8;;;;;;;;11411:9;11396:24;11388:33;;;;;;11442:20;;;;11438:514;;;11523:12;;-1:-1:-1;;;;;11509:27:0;;;11523:12;;11509:27;;;;:77;;-1:-1:-1;11575:10:0;;-1:-1:-1;;;;;11561:25:0;;;11575:10;;11561:25;;11509:77;11483:454;;;11692:9;11663:39;;;;:28;:39;;;;;;11705:12;-1:-1:-1;11629:211:0;;;;-1:-1:-1;;;11629:211:0;;;;;;;:::i;:::-;11892:9;11863:39;;;;:28;:39;;;;;11905:12;11863:54;;11483:454;11998:10;;-1:-1:-1;;;;;11990:18:0;;;11998:10;;11990:18;:66;;;;-1:-1:-1;12043:12:0;;-1:-1:-1;;;;;12029:27:0;;;12043:12;;12029:27;;11990:66;:109;;;;-1:-1:-1;;;;;;12078:21:0;;;;;;:17;:21;;;;;;;;12077:22;11990:109;11968:431;;;12152:12;;12142:6;:22;;12134:60;;;;-1:-1:-1;;;12134:60:0;;;;;;;:::i;:::-;12269:14;;12259:6;12243:13;12253:2;12243:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;12213:140;;;;-1:-1:-1;;;12213:140:0;;;;;;;:::i;:::-;12372:9;:11;;;:9;:11;;;:::i;:::-;;;;;;11968:431;12438:6;;-1:-1:-1;;;12438:6:0;;;;12437:7;:39;;;;-1:-1:-1;12465:11:0;;-1:-1:-1;;;12465:11:0;;;;12437:39;:76;;;;-1:-1:-1;12503:10:0;;-1:-1:-1;;;;;12497:16:0;;;12503:10;;12497:16;12437:76;:127;;;;;12546:18;;12534:9;;:30;12437:127;:172;;;;-1:-1:-1;;;;;;12586:23:0;;;;;;:17;:23;;;;;;;;12585:24;12437:172;:215;;;;-1:-1:-1;;;;;;12631:21:0;;;;;;:17;:21;;;;;;;;12630:22;12437:215;12415:539;;;12690:24;;12687:189;;12739:117;12782:51;12786:6;12794:38;12798:20;12820:11;;12794:3;:38::i;:::-;12782:3;:51::i;:::-;12739:16;:117::i;:::-;12896:10;;:42;;-1:-1:-1;;;;;12896:10:0;;;;;;;;;12916:21;12896:42;;;;;;;;;12916:21;12896:10;:42;;;;;;;;;;;;;;;;;;;;;12415:539;12977:33;12993:4;12999:2;13003:6;12977:15;:33::i;:::-;10733:2285;;;;;:::o;2999:224::-;3119:7;3155:12;3147:6;;;;3139:29;;;;-1:-1:-1;;;3139:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3179:9:0;3191:5;3195:1;3191;:5;:::i;:::-;3179:17;2999:224;-1:-1:-1;;;;;2999:224:0:o;13141:474::-;5426:6;:13;;-1:-1:-1;;;;5426:13:0;-1:-1:-1;;;5426:13:0;;;13243:16:::1;::::0;;13257:1:::1;13243:16:::0;;;;;::::1;::::0;;-1:-1:-1;;13243:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13243:16:0::1;13219:40;;13288:4;13270;13275:1;13270:7;;;;;;-1:-1:-1::0;;;13270:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13270:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;13314:12:::1;::::0;:19:::1;::::0;;-1:-1:-1;;;13314:19:0;;;;:12;;;::::1;::::0;:17:::1;::::0;:19:::1;::::0;;::::1;::::0;13270:7;;13314:19;;;;;:12;:19;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13304:4;13309:1;13304:7;;;;;;-1:-1:-1::0;;;13304:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;13304:29:0;;::::1;:7;::::0;;::::1;::::0;;;;;:29;13376:12:::1;::::0;13344:59:::1;::::0;13361:4:::1;::::0;13376:12:::1;13391:11:::0;13344:8:::1;:59::i;:::-;13414:12;::::0;:193:::1;::::0;-1:-1:-1;;;13414:193:0;;-1:-1:-1;;;;;13414:12:0;;::::1;::::0;:63:::1;::::0;:193:::1;::::0;13492:11;;13414:12:::1;::::0;13534:4;;13561::::1;::::0;13581:15:::1;::::0;13414:193:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5462:6:0;:14;;-1:-1:-1;;;;5462:14:0;;;-1:-1:-1;;;;13141:474:0:o;6497:92::-;6554:10;;:27;;:10;;;;-1:-1:-1;;;;;6554:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;3625:223;3745:7;3780:12;3773:5;3765:28;;;;-1:-1:-1;;;3765:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3804:9:0;3816:5;3820:1;3816;:5;:::i;2855:136::-;2913:7;2940:43;2944:1;2947;2940:43;;;;;;;;;;;;;;;;;:3;:43::i;2668:179::-;2726:7;;2758:5;2762:1;2758;:5;:::i;:::-;2746:17;;2787:1;2782;:6;;2774:46;;;;-1:-1:-1;;;2774:46:0;;;;;;;:::i;13026:107::-;13083:7;13115:1;13111;:5;13110:15;;13124:1;13110:15;;;-1:-1:-1;13120:1:0;13026:107;-1:-1:-1;13026:107:0:o;13623:577::-;13711:17;13730:18;13752:34;13769:4;13775:2;13779:6;13752:16;:34::i;:::-;13710:76;;-1:-1:-1;13710:76:0;-1:-1:-1;13801:13:0;;13797:163;;-1:-1:-1;;;;;13855:21:0;;;;;;:9;:21;;;;;;:36;;13881:9;13855:25;:36::i;:::-;-1:-1:-1;;;;;13831:21:0;;;;;;;:9;:21;;;;;;;:60;;;;13911:37;;;;;;;;;;13938:9;;13911:37;:::i;:::-;;;;;;;;13797:163;-1:-1:-1;;;;;13974:23:0;;;;;;:17;:23;;;;;;;;13970:42;;;14011:1;13999:13;;13970:42;-1:-1:-1;;;;;14041:15:0;;;;;;:9;:15;;;;;;:27;;14061:6;14041:19;:27::i;:::-;-1:-1:-1;;;;;14023:15:0;;;;;;:9;:15;;;;;:45;14095:40;14113:21;:6;14124:9;14113:10;:21::i;:::-;-1:-1:-1;;;;;14095:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;14079:13:0;;;;;;;:9;:13;;;;;:56;;;;14151:41;;;14170:21;:6;14181:9;14170:10;:21::i;:::-;14151:41;;;;;;:::i;:::-;;;;;;;;13623:577;;;;;:::o;7933:926::-;-1:-1:-1;;;;;8178:23:0;;8058:7;8178:23;;;:17;:23;;;;;;8058:7;;8119:4;;8155:6;;8178:23;;8174:632;;;8234:4;8218:20;;8174:632;;;8266:10;;-1:-1:-1;;;;;8260:16:0;;;8266:10;;8260:16;:41;;;;-1:-1:-1;;;;;;8280:21:0;;8296:4;8280:21;;8260:41;8256:550;;;8330:211;8537:3;8330:184;8394:16;;8382:9;;:28;8381:114;;8480:15;;8381:114;;;8439:13;;8381:114;8330:6;;:28;:184::i;:::-;:206;;:211::i;:::-;8318:223;;8256:550;;;8586:208;8790:3;8586:181;8650:15;;8638:9;;:27;8637:111;;8734:14;;8637:111;;;8694:12;;8586:6;;:28;:181::i;:208::-;8574:220;;8256:550;8826:9;8837:13;;-1:-1:-1;7933:926:0;-1:-1:-1;;;;7933:926:0:o;14:138:1:-;84:20;;113:33;84:20;113:33;:::i;157:259::-;;269:2;257:9;248:7;244:23;240:32;237:2;;;290:6;282;275:22;237:2;334:9;321:23;353:33;380:5;353:33;:::i;421:263::-;;544:2;532:9;523:7;519:23;515:32;512:2;;;565:6;557;550:22;512:2;602:9;596:16;621:33;648:5;621:33;:::i;689:402::-;;;818:2;806:9;797:7;793:23;789:32;786:2;;;839:6;831;824:22;786:2;883:9;870:23;902:33;929:5;902:33;:::i;:::-;954:5;-1:-1:-1;1011:2:1;996:18;;983:32;1024:35;983:32;1024:35;:::i;:::-;1078:7;1068:17;;;776:315;;;;;:::o;1096:470::-;;;;1242:2;1230:9;1221:7;1217:23;1213:32;1210:2;;;1263:6;1255;1248:22;1210:2;1307:9;1294:23;1326:33;1353:5;1326:33;:::i;:::-;1378:5;-1:-1:-1;1435:2:1;1420:18;;1407:32;1448:35;1407:32;1448:35;:::i;:::-;1200:366;;1502:7;;-1:-1:-1;;;1556:2:1;1541:18;;;;1528:32;;1200:366::o;1571:327::-;;;1700:2;1688:9;1679:7;1675:23;1671:32;1668:2;;;1721:6;1713;1706:22;1668:2;1765:9;1752:23;1784:33;1811:5;1784:33;:::i;:::-;1836:5;1888:2;1873:18;;;;1860:32;;-1:-1:-1;;;1658:240:1:o;1903:1166::-;;2018:2;2061;2049:9;2040:7;2036:23;2032:32;2029:2;;;2082:6;2074;2067:22;2029:2;2127:9;2114:23;2156:18;2197:2;2189:6;2186:14;2183:2;;;2218:6;2210;2203:22;2183:2;2261:6;2250:9;2246:22;2236:32;;2306:7;2299:4;2295:2;2291:13;2287:27;2277:2;;2333:6;2325;2318:22;2277:2;2374;2361:16;2396:2;2392;2389:10;2386:2;;;2402:18;;:::i;:::-;2449:2;2445;2441:11;2481:2;2475:9;2532:2;2527;2519:6;2515:15;2511:24;2585:6;2573:10;2570:22;2565:2;2553:10;2550:18;2547:46;2544:2;;;2596:18;;:::i;:::-;2632:2;2625:22;2682:18;;;2716:15;;;;-1:-1:-1;2751:11:1;;;2781;;;2777:20;;2774:33;-1:-1:-1;2771:2:1;;;2825:6;2817;2810:22;2771:2;2852:6;2843:15;;2867:171;2881:2;2878:1;2875:9;2867:171;;;2938:25;2959:3;2938:25;:::i;:::-;2926:38;;2899:1;2892:9;;;;;2984:12;;;;3016;;2867:171;;;-1:-1:-1;3057:6:1;1998:1071;-1:-1:-1;;;;;;;;1998:1071:1:o;3074:297::-;;3194:2;3182:9;3173:7;3169:23;3165:32;3162:2;;;3215:6;3207;3200:22;3162:2;3252:9;3246:16;3305:5;3298:13;3291:21;3284:5;3281:32;3271:2;;3332:6;3324;3317:22;3376:316;;;;3533:2;3521:9;3512:7;3508:23;3504:32;3501:2;;;3554:6;3546;3539:22;3501:2;3588:9;3582:16;3572:26;;3638:2;3627:9;3623:18;3617:25;3607:35;;3682:2;3671:9;3667:18;3661:25;3651:35;;3491:201;;;;;:::o;3697:203::-;-1:-1:-1;;;;;3861:32:1;;;;3843:51;;3831:2;3816:18;;3798:102::o;3905:304::-;-1:-1:-1;;;;;4135:15:1;;;4117:34;;4187:15;;4182:2;4167:18;;4160:43;4067:2;4052:18;;4034:175::o;4214:274::-;-1:-1:-1;;;;;4406:32:1;;;;4388:51;;4470:2;4455:18;;4448:34;4376:2;4361:18;;4343:145::o;4493:607::-;-1:-1:-1;;;;;4852:15:1;;;4834:34;;4899:2;4884:18;;4877:34;;;;4942:2;4927:18;;4920:34;;;;4985:2;4970:18;;4963:34;;;;5034:15;;;5028:3;5013:19;;5006:44;4814:3;5066:19;;5059:35;;;;4783:3;4768:19;;4750:350::o;5105:187::-;5270:14;;5263:22;5245:41;;5233:2;5218:18;;5200:92::o;5297:603::-;;5438:2;5467;5456:9;5449:21;5499:6;5493:13;5542:6;5537:2;5526:9;5522:18;5515:34;5567:4;5580:140;5594:6;5591:1;5588:13;5580:140;;;5689:14;;;5685:23;;5679:30;5655:17;;;5674:2;5651:26;5644:66;5609:10;;5580:140;;;5738:6;5735:1;5732:13;5729:2;;;5808:4;5803:2;5794:6;5783:9;5779:22;5775:31;5768:45;5729:2;-1:-1:-1;5884:2:1;5863:15;-1:-1:-1;;5859:29:1;5844:45;;;;5891:2;5840:54;;5418:482;-1:-1:-1;;;5418:482:1:o;5905:354::-;6107:2;6089:21;;;6146:2;6126:18;;;6119:30;6185:32;6180:2;6165:18;;6158:60;6250:2;6235:18;;6079:180::o;6264:349::-;6466:2;6448:21;;;6505:2;6485:18;;;6478:30;6544:27;6539:2;6524:18;;6517:55;6604:2;6589:18;;6438:175::o;6618:351::-;6820:2;6802:21;;;6859:2;6839:18;;;6832:30;6898:29;6893:2;6878:18;;6871:57;6960:2;6945:18;;6792:177::o;6974:397::-;7176:2;7158:21;;;7215:2;7195:18;;;7188:30;7254:34;7249:2;7234:18;;7227:62;-1:-1:-1;;;7320:2:1;7305:18;;7298:31;7361:3;7346:19;;7148:223::o;7376:350::-;7578:2;7560:21;;;7617:2;7597:18;;;7590:30;7656:28;7651:2;7636:18;;7629:56;7717:2;7702:18;;7550:176::o;7731:355::-;7933:2;7915:21;;;7972:2;7952:18;;;7945:30;8011:33;8006:2;7991:18;;7984:61;8077:2;8062:18;;7905:181::o;8091:475::-;8293:2;8275:21;;;8332:2;8312:18;;;8305:30;8371:34;8366:2;8351:18;;8344:62;8442:34;8437:2;8422:18;;8415:62;-1:-1:-1;;;8508:3:1;8493:19;;8486:38;8556:3;8541:19;;8265:301::o;8571:399::-;8773:2;8755:21;;;8812:2;8792:18;;;8785:30;8851:34;8846:2;8831:18;;8824:62;-1:-1:-1;;;8917:2:1;8902:18;;8895:33;8960:3;8945:19;;8745:225::o;8975:397::-;9177:2;9159:21;;;9216:2;9196:18;;;9189:30;9255:34;9250:2;9235:18;;9228:62;-1:-1:-1;;;9321:2:1;9306:18;;9299:31;9362:3;9347:19;;9149:223::o;9377:350::-;9579:2;9561:21;;;9618:2;9598:18;;;9591:30;9657:28;9652:2;9637:18;;9630:56;9718:2;9703:18;;9551:176::o;9732:347::-;9934:2;9916:21;;;9973:2;9953:18;;;9946:30;10012:25;10007:2;9992:18;;9985:53;10070:2;10055:18;;9906:173::o;10084:356::-;10286:2;10268:21;;;10305:18;;;10298:30;10364:34;10359:2;10344:18;;10337:62;10431:2;10416:18;;10258:182::o;10445:177::-;10591:25;;;10579:2;10564:18;;10546:76::o;10627:983::-;;10937:3;10926:9;10922:19;10968:6;10957:9;10950:25;10994:2;11032:6;11027:2;11016:9;11012:18;11005:34;11075:3;11070:2;11059:9;11055:18;11048:31;11099:6;11134;11128:13;11165:6;11157;11150:22;11203:3;11192:9;11188:19;11181:26;;11242:2;11234:6;11230:15;11216:29;;11263:4;11276:195;11290:6;11287:1;11284:13;11276:195;;;11355:13;;-1:-1:-1;;;;;11351:39:1;11339:52;;11446:15;;;;11411:12;;;;11387:1;11305:9;11276:195;;;-1:-1:-1;;;;;;;11527:32:1;;;;11522:2;11507:18;;11500:60;-1:-1:-1;;;11591:3:1;11576:19;11569:35;11488:3;10898:712;-1:-1:-1;;;10898:712:1:o;11615:184::-;11787:4;11775:17;;;;11757:36;;11745:2;11730:18;;11712:87::o;11804:128::-;;11875:1;11871:6;11868:1;11865:13;11862:2;;;11881:18;;:::i;:::-;-1:-1:-1;11917:9:1;;11852:80::o;11937:217::-;;12003:1;11993:2;;-1:-1:-1;;;12028:31:1;;12082:4;12079:1;12072:15;12110:4;12035:1;12100:15;11993:2;-1:-1:-1;12139:9:1;;11983:171::o;12159:453::-;12255:6;12278:5;12292:314;12341:1;12378:2;12368:8;12365:16;12355:2;;12385:5;;;12355:2;12426:4;12421:3;12417:14;12411:4;12408:24;12405:2;;;12435:18;;:::i;:::-;12485:2;12475:8;12471:17;12468:2;;;12500:16;;;;12468:2;12579:17;;;;;12539:15;;12292:314;;;12236:376;;;;;;;:::o;12617:148::-;;12704:55;-1:-1:-1;;12745:4:1;12731:19;;12725:4;12770:922;12854:8;12844:2;;-1:-1:-1;12895:1:1;12909:5;;12844:2;12943:4;12933:2;;-1:-1:-1;12980:1:1;12994:5;;12933:2;13025:4;13043:1;13038:59;;;;13111:1;13106:183;;;;13018:271;;13038:59;13068:1;13059:10;;13082:5;;;13106:183;13143:3;13133:8;13130:17;13127:2;;;13150:18;;:::i;:::-;13206:1;13196:8;13192:16;13183:25;;13234:3;13227:5;13224:14;13221:2;;;13241:18;;:::i;:::-;13274:5;;;13018:271;;13373:2;13363:8;13360:16;13354:3;13348:4;13345:13;13341:36;13335:2;13325:8;13322:16;13317:2;13311:4;13308:12;13304:35;13301:77;13298:2;;;-1:-1:-1;13410:19:1;;;13445:14;;;13442:2;;;13462:18;;:::i;:::-;13495:5;;13298:2;13542:42;13580:3;13570:8;13564:4;13561:1;13542:42;:::i;:::-;13617:6;13612:3;13608:16;13599:7;13596:29;13593:2;;;13628:18;;:::i;:::-;13666:20;;12834:858;-1:-1:-1;;;;12834:858:1:o;13697:168::-;;13803:1;13799;13795:6;13791:14;13788:1;13785:21;13780:1;13773:9;13766:17;13762:45;13759:2;;;13810:18;;:::i;:::-;-1:-1:-1;13850:9:1;;13749:116::o;13870:125::-;;13938:1;13935;13932:8;13929:2;;;13943:18;;:::i;:::-;-1:-1:-1;13980:9:1;;13919:76::o;14000:135::-;;-1:-1:-1;;14060:17:1;;14057:2;;;14080:18;;:::i;:::-;-1:-1:-1;14127:1:1;14116:13;;14047:88::o;14140:127::-;14201:10;14196:3;14192:20;14189:1;14182:31;14232:4;14229:1;14222:15;14256:4;14253:1;14246:15;14272:127;14333:10;14328:3;14324:20;14321:1;14314:31;14364:4;14361:1;14354:15;14388:4;14385:1;14378:15;14404:133;-1:-1:-1;;;;;14481:31:1;;14471:42;;14461:2;;14527:1;14524;14517:12;14461:2;14451:86;:::o

Swarm Source

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