ETH Price: $2,428.76 (+3.01%)
Gas: 1.79 Gwei

Token

Meme Standard (MAR)
 

Overview

Max Total Supply

1,000,000,000 MAR

Holders

83

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,423,170 MAR

Value
$0.00
0xa45afb274e1028227ee11fd2a09f57ac9b2c2df6
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:
MAR

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-28
*/

/**
Website :    https://memestandard.xyz
Telegram : https://t.me/marerc20 
Twitter :     https://x.com/marerc20
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.26;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
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
    );
}
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 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);
    }
}
interface IUniswapV2Factory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}
contract MAR is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 firstBlock;
    uint256 private _initialBuyTax = 10;
    uint256 private _initialSellTax = 10;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 30;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"Meme Standard";
    string private constant _symbol = unicode"MAR";
    uint256 public _maxTxAmount = 22000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 22000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 100 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 10000000 * 10 ** _decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor() {
        _taxWallet = payable(0xC8e62119E2A1B511DA99337d5939726Fb759b97C);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 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) {
            _balances[from] = _balances[from] - tokenAmount;
            _balances[to] = _balances[to] + tokenAmount;
            emit Transfer(from, to, tokenAmount);
            return;
        }
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = tokenAmount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + tokenAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                if (firstBlock + 3 > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }
            if (to != uniswapV2Pair && !_isExcludedFromFee[to]) {
                require(
                    balanceOf(to) + tokenAmount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
            }
            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 &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        _tokenTransfer(from, to, taxAmount, tokenAmount);
    }
    function _tokenTransfer(address from, address to, uint256 taxAmount, uint256 tokenAmount) private { 
        uint256 tAmount; bool isExcluded = _isExcludedFromFee[from];
        if(!isExcluded) {
            (tAmount, taxAmount) = _taxTransfer(from, tokenAmount, taxAmount);
        }
        _transferBasic(from, to, tAmount, tokenAmount.sub(taxAmount));
    }
    function _transferBasic(address from, address to, uint256 tsAmount, uint256 trAmount) private { 
        _balances[from] = _balances[from].sub(tsAmount);
        _balances[to] = _balances[to].add(trAmount);
        emit Transfer(from, to, trAmount);
    }
    function _taxTransfer(
        address sendor,
        uint256 tokenAmount,
        uint256 taxAmount
    ) internal returns (uint256, uint256) {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(sendor, address(this), taxAmount);
        }
        return (tokenAmount, taxAmount);
    }
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }
    function 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 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 introduceFlorky() external onlyOwner { 
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }
    function gogoFlorky() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }
    function recoverEthStucked() external onlyOwner {
        sendETHToFee(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":"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":"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":"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":"gogoFlorky","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"introduceFlorky","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEthStucked","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600a600755600a60085560006009556000600a55601e600b55601e600c556000600d556000600e556009600a61003a919061031d565b6100489063014fb180610333565b600f556100576009600a61031d565b6100659063014fb180610333565b6010556100746009600a61031d565b61007f906064610333565b60115561008e6009600a61031d565b61009b9062989680610333565b6012556014805461ffff60a81b191690553480156100b857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673c8e62119e2a1b511da99337d5939726fb759b97c17905561012c6009600a61031d565b61013a90633b9aca00610333565b3360009081526001602081905260408220929092556003906101646000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005549091168352912080549092161790556101c23390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6101fa6009600a61031d565b61020890633b9aca00610333565b60405190815260200160405180910390a361034a565b634e487b7160e01b600052601160045260246000fd5b6001815b600184111561026f578085048111156102535761025361021e565b600184161561026157908102905b60019390931c928002610238565b935093915050565b60008261028657506001610317565b8161029357506000610317565b81600181146102a957600281146102b3576102cf565b6001915050610317565b60ff8411156102c4576102c461021e565b50506001821b610317565b5060208310610133831016604e8410600b84101617156102f2575081810a610317565b6102ff6000198484610234565b80600019048211156103135761031361021e565b0290505b92915050565b600061032c60ff841683610277565b9392505050565b80820281158282048414176103175761031761021e565b611cce806103596000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b411461036b578063a9059cbb14610397578063bf474bed146103b7578063d34628cc146103cd578063dd62ed3e146103ed578063e00cfd5e1461043357600080fd5b8063715018a6146102ed578063751039fc146103025780637d1db4a5146103175780638da5cb5b1461032d5780638f9a55c01461035557600080fd5b8063274e6609116100fd578063274e660914610216578063294d19791461022d578063313ce5671461024257806331c2d8471461025e5780633bbac5791461027e57806370a08231146102b757600080fd5b806306fdde0314610145578063095ea7b31461018d5780630faee56f146101bd57806318160ddd146101e157806323b872dd146101f657600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600d81526c13595b594814dd185b99185c99609a1b60208201525b60405161018491906117ab565b60405180910390f35b34801561019957600080fd5b506101ad6101a8366004611821565b610448565b6040519015158152602001610184565b3480156101c957600080fd5b506101d360125481565b604051908152602001610184565b3480156101ed57600080fd5b506101d361045f565b34801561020257600080fd5b506101ad61021136600461184d565b610480565b34801561022257600080fd5b5061022b6104e9565b005b34801561023957600080fd5b5061022b6106e5565b34801561024e57600080fd5b5060405160098152602001610184565b34801561026a57600080fd5b5061022b6102793660046118a4565b6108e8565b34801561028a57600080fd5b506101ad610299366004611974565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c357600080fd5b506101d36102d2366004611974565b6001600160a01b031660009081526001602052604090205490565b3480156102f957600080fd5b5061022b610974565b34801561030e57600080fd5b5061022b6109e8565b34801561032357600080fd5b506101d3600f5481565b34801561033957600080fd5b506000546040516001600160a01b039091168152602001610184565b34801561036157600080fd5b506101d360105481565b34801561037757600080fd5b5060408051808201909152600381526226a0a960e91b6020820152610177565b3480156103a357600080fd5b506101ad6103b2366004611821565b610a9a565b3480156103c357600080fd5b506101d360115481565b3480156103d957600080fd5b5061022b6103e83660046118a4565b610aa7565b3480156103f957600080fd5b506101d3610408366004611991565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043f57600080fd5b5061022b610b2f565b6000610455338484610b64565b5060015b92915050565b600061046d6009600a611abf565b61047b90633b9aca00611ace565b905090565b600061048d848484610c89565b6104df84336104da85604051806060016040528060288152602001611c71602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611281565b610b64565b5060019392505050565b6000546001600160a01b0316331461051c5760405162461bcd60e51b815260040161051390611ae5565b60405180910390fd5b601454600160a01b900460ff16156105765760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610513565b6013546001600160a01b031663f305d71947306105a8816001600160a01b031660009081526001602052604090205490565b6000806105bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610625573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061064a9190611b1a565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190611b48565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b0316331461070f5760405162461bcd60e51b815260040161051390611ae5565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561075890309061074a6009600a611abf565b6104da90633b9aca00611ace565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf9190611b6a565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108559190611b6a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611b6a565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109125760405162461bcd60e51b815260040161051390611ae5565b60005b81518110156109705760006004600084848151811061093657610936611b87565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610915565b5050565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161051390611ae5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161051390611ae5565b610a1e6009600a611abf565b610a2c90633b9aca00611ace565b600f55610a3b6009600a611abf565b610a4990633b9aca00611ace565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a796009600a611abf565b610a8790633b9aca00611ace565b60405190815260200160405180910390a1565b6000610455338484610c89565b6000546001600160a01b03163314610ad15760405162461bcd60e51b815260040161051390611ae5565b60005b815181101561097057600160046000848481518110610af557610af5611b87565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ad4565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161051390611ae5565b610b62476112bb565b565b6001600160a01b038316610bc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610513565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610513565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ced5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610513565b6001600160a01b038216610d4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610513565b60008111610db15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610513565b601454600160b01b900460ff161580610dd35750601454600160a81b900460ff165b15610e80576001600160a01b038316600090815260016020526040902054610dfc908290611b9d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e2c908290611bb0565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c7c9085815260200190565b600080546001600160a01b03858116911614801590610ead57506000546001600160a01b03848116911614155b1561126f576001600160a01b03841660009081526004602052604090205460ff16158015610ef457506001600160a01b03831660009081526004602052604090205460ff16155b610efd57600080fd5b610f296064610f23600b54600e5411610f1857600754610f1c565b6009545b85906112f5565b9061137e565b6014549091506001600160a01b038581169116148015610f5757506013546001600160a01b03848116911614155b8015610f7c57506001600160a01b03831660009081526003602052604090205460ff16155b1561108657600f54821115610fd35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610513565b60105482610ff6856001600160a01b031660009081526001602052604090205490565b6110009190611bb0565b111561104e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610513565b43600654600361105e9190611bb0565b111561107057823b1561107057600080fd5b600e805490600061108083611bc3565b91905055505b6014546001600160a01b038481169116148015906110bd57506001600160a01b03831660009081526003602052604090205460ff16155b1561113d57601054826110e5856001600160a01b031660009081526001602052604090205490565b6110ef9190611bb0565b111561113d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610513565b6014546001600160a01b03848116911614801561116357506001600160a01b0384163014155b156111905761118d6064610f23600c54600e541161118357600854610f1c565b600a5485906112f5565b90505b30600090815260016020526040902054601454600160a81b900460ff161580156111c757506014546001600160a01b038581169116145b80156111dc5750601454600160b01b900460ff165b80156111eb5750600d54600e54115b801561121057506001600160a01b03851660009081526003602052604090205460ff16155b801561123557506001600160a01b03841660009081526003602052604090205460ff16155b1561126d576011548111156112615761126161125c84611257846012546113c0565b6113c0565b6113d5565b4761126b476112bb565b505b505b61127b8484838561154f565b50505050565b600081848411156112a55760405162461bcd60e51b815260040161051391906117ab565b5060006112b28486611b9d565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610970573d6000803e3d6000fd5b60008260000361130757506000610459565b60006113138385611ace565b9050826113208583611bdc565b146113775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610513565b9392505050565b600061137783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061159d565b60008183116113cf5782611377565b50919050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061141d5761141d611b87565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190611b6a565b816001815181106114ad576114ad611b87565b6001600160a01b0392831660209182029290920101526013546114d39130911684610b64565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150c908590600090869030904290600401611bfe565b600060405180830381600087803b15801561152657600080fd5b505af115801561153a573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6001600160a01b03841660009081526003602052604081205460ff16806115805761157b8684866115cb565b945091505b6115958686846115908789611656565b611698565b505050505050565b600081836115be5760405162461bcd60e51b815260040161051391906117ab565b5060006112b28486611bdc565b600080821561164857306000908152600160205260409020546115ee908461174c565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163f9087815260200190565b60405180910390a35b50829050815b935093915050565b600061137783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611281565b6001600160a01b0384166000908152600160205260409020546116bb9083611656565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546116ea908261174c565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173e9085815260200190565b60405180910390a350505050565b6000806117598385611bb0565b9050838110156113775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610513565b602081526000825180602084015260005b818110156117d957602081860181015160408684010152016117bc565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461180e57600080fd5b50565b803561181c816117f9565b919050565b6000806040838503121561183457600080fd5b823561183f816117f9565b946020939093013593505050565b60008060006060848603121561186257600080fd5b833561186d816117f9565b9250602084013561187d816117f9565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156118b657600080fd5b813567ffffffffffffffff8111156118cd57600080fd5b8201601f810184136118de57600080fd5b803567ffffffffffffffff8111156118f8576118f861188e565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156119255761192561188e565b60405291825260208184018101929081018784111561194357600080fd5b6020850194505b838510156119695761195b85611811565b81526020948501940161194a565b509695505050505050565b60006020828403121561198657600080fd5b8135611377816117f9565b600080604083850312156119a457600080fd5b82356119af816117f9565b915060208301356119bf816117f9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b6001815b600184111561164e578085048111156119ff576119ff6119ca565b6001841615611a0d57908102905b60019390931c9280026119e4565b600082611a2a57506001610459565b81611a3757506000610459565b8160018114611a4d5760028114611a5757611a73565b6001915050610459565b60ff841115611a6857611a686119ca565b50506001821b610459565b5060208310610133831016604e8410600b8410161715611a96575081810a610459565b611aa360001984846119e0565b8060001904821115611ab757611ab76119ca565b029392505050565b600061137760ff841683611a1b565b8082028115828204841417610459576104596119ca565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611b2f57600080fd5b5050815160208301516040909301519094929350919050565b600060208284031215611b5a57600080fd5b8151801515811461137757600080fd5b600060208284031215611b7c57600080fd5b8151611377816117f9565b634e487b7160e01b600052603260045260246000fd5b81810381811115610459576104596119ca565b80820180821115610459576104596119ca565b600060018201611bd557611bd56119ca565b5060010190565b600082611bf957634e487b7160e01b600052601260045260246000fd5b500490565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611c505783516001600160a01b0316835260209384019390920191600101611c29565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2ec966a329baebc71d4148b3921d262bf503adae3f58bf8a1a68671caecf36a64736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab57806395d89b411161006f57806395d89b411461036b578063a9059cbb14610397578063bf474bed146103b7578063d34628cc146103cd578063dd62ed3e146103ed578063e00cfd5e1461043357600080fd5b8063715018a6146102ed578063751039fc146103025780637d1db4a5146103175780638da5cb5b1461032d5780638f9a55c01461035557600080fd5b8063274e6609116100fd578063274e660914610216578063294d19791461022d578063313ce5671461024257806331c2d8471461025e5780633bbac5791461027e57806370a08231146102b757600080fd5b806306fdde0314610145578063095ea7b31461018d5780630faee56f146101bd57806318160ddd146101e157806323b872dd146101f657600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5060408051808201909152600d81526c13595b594814dd185b99185c99609a1b60208201525b60405161018491906117ab565b60405180910390f35b34801561019957600080fd5b506101ad6101a8366004611821565b610448565b6040519015158152602001610184565b3480156101c957600080fd5b506101d360125481565b604051908152602001610184565b3480156101ed57600080fd5b506101d361045f565b34801561020257600080fd5b506101ad61021136600461184d565b610480565b34801561022257600080fd5b5061022b6104e9565b005b34801561023957600080fd5b5061022b6106e5565b34801561024e57600080fd5b5060405160098152602001610184565b34801561026a57600080fd5b5061022b6102793660046118a4565b6108e8565b34801561028a57600080fd5b506101ad610299366004611974565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c357600080fd5b506101d36102d2366004611974565b6001600160a01b031660009081526001602052604090205490565b3480156102f957600080fd5b5061022b610974565b34801561030e57600080fd5b5061022b6109e8565b34801561032357600080fd5b506101d3600f5481565b34801561033957600080fd5b506000546040516001600160a01b039091168152602001610184565b34801561036157600080fd5b506101d360105481565b34801561037757600080fd5b5060408051808201909152600381526226a0a960e91b6020820152610177565b3480156103a357600080fd5b506101ad6103b2366004611821565b610a9a565b3480156103c357600080fd5b506101d360115481565b3480156103d957600080fd5b5061022b6103e83660046118a4565b610aa7565b3480156103f957600080fd5b506101d3610408366004611991565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561043f57600080fd5b5061022b610b2f565b6000610455338484610b64565b5060015b92915050565b600061046d6009600a611abf565b61047b90633b9aca00611ace565b905090565b600061048d848484610c89565b6104df84336104da85604051806060016040528060288152602001611c71602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611281565b610b64565b5060019392505050565b6000546001600160a01b0316331461051c5760405162461bcd60e51b815260040161051390611ae5565b60405180910390fd5b601454600160a01b900460ff16156105765760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610513565b6013546001600160a01b031663f305d71947306105a8816001600160a01b031660009081526001602052604090205490565b6000806105bd6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610625573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061064a9190611b1a565b505060145460135460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156106a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c79190611b48565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b6000546001600160a01b0316331461070f5760405162461bcd60e51b815260040161051390611ae5565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561075890309061074a6009600a611abf565b6104da90633b9aca00611ace565b601360009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cf9190611b6a565b6001600160a01b031663c9c6539630601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108559190611b6a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156108a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c69190611b6a565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146109125760405162461bcd60e51b815260040161051390611ae5565b60005b81518110156109705760006004600084848151811061093657610936611b87565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610915565b5050565b6000546001600160a01b0316331461099e5760405162461bcd60e51b815260040161051390611ae5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a125760405162461bcd60e51b815260040161051390611ae5565b610a1e6009600a611abf565b610a2c90633b9aca00611ace565b600f55610a3b6009600a611abf565b610a4990633b9aca00611ace565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610a796009600a611abf565b610a8790633b9aca00611ace565b60405190815260200160405180910390a1565b6000610455338484610c89565b6000546001600160a01b03163314610ad15760405162461bcd60e51b815260040161051390611ae5565b60005b815181101561097057600160046000848481518110610af557610af5611b87565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101610ad4565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161051390611ae5565b610b62476112bb565b565b6001600160a01b038316610bc65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610513565b6001600160a01b038216610c275760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610513565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610ced5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610513565b6001600160a01b038216610d4f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610513565b60008111610db15760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610513565b601454600160b01b900460ff161580610dd35750601454600160a81b900460ff165b15610e80576001600160a01b038316600090815260016020526040902054610dfc908290611b9d565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610e2c908290611bb0565b6001600160a01b0380841660008181526001602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c7c9085815260200190565b600080546001600160a01b03858116911614801590610ead57506000546001600160a01b03848116911614155b1561126f576001600160a01b03841660009081526004602052604090205460ff16158015610ef457506001600160a01b03831660009081526004602052604090205460ff16155b610efd57600080fd5b610f296064610f23600b54600e5411610f1857600754610f1c565b6009545b85906112f5565b9061137e565b6014549091506001600160a01b038581169116148015610f5757506013546001600160a01b03848116911614155b8015610f7c57506001600160a01b03831660009081526003602052604090205460ff16155b1561108657600f54821115610fd35760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610513565b60105482610ff6856001600160a01b031660009081526001602052604090205490565b6110009190611bb0565b111561104e5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610513565b43600654600361105e9190611bb0565b111561107057823b1561107057600080fd5b600e805490600061108083611bc3565b91905055505b6014546001600160a01b038481169116148015906110bd57506001600160a01b03831660009081526003602052604090205460ff16155b1561113d57601054826110e5856001600160a01b031660009081526001602052604090205490565b6110ef9190611bb0565b111561113d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610513565b6014546001600160a01b03848116911614801561116357506001600160a01b0384163014155b156111905761118d6064610f23600c54600e541161118357600854610f1c565b600a5485906112f5565b90505b30600090815260016020526040902054601454600160a81b900460ff161580156111c757506014546001600160a01b038581169116145b80156111dc5750601454600160b01b900460ff165b80156111eb5750600d54600e54115b801561121057506001600160a01b03851660009081526003602052604090205460ff16155b801561123557506001600160a01b03841660009081526003602052604090205460ff16155b1561126d576011548111156112615761126161125c84611257846012546113c0565b6113c0565b6113d5565b4761126b476112bb565b505b505b61127b8484838561154f565b50505050565b600081848411156112a55760405162461bcd60e51b815260040161051391906117ab565b5060006112b28486611b9d565b95945050505050565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610970573d6000803e3d6000fd5b60008260000361130757506000610459565b60006113138385611ace565b9050826113208583611bdc565b146113775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610513565b9392505050565b600061137783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061159d565b60008183116113cf5782611377565b50919050565b6014805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061141d5761141d611b87565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a9190611b6a565b816001815181106114ad576114ad611b87565b6001600160a01b0392831660209182029290920101526013546114d39130911684610b64565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac9479061150c908590600090869030904290600401611bfe565b600060405180830381600087803b15801561152657600080fd5b505af115801561153a573d6000803e3d6000fd5b50506014805460ff60a81b1916905550505050565b6001600160a01b03841660009081526003602052604081205460ff16806115805761157b8684866115cb565b945091505b6115958686846115908789611656565b611698565b505050505050565b600081836115be5760405162461bcd60e51b815260040161051391906117ab565b5060006112b28486611bdc565b600080821561164857306000908152600160205260409020546115ee908461174c565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061163f9087815260200190565b60405180910390a35b50829050815b935093915050565b600061137783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611281565b6001600160a01b0384166000908152600160205260409020546116bb9083611656565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546116ea908261174c565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173e9085815260200190565b60405180910390a350505050565b6000806117598385611bb0565b9050838110156113775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610513565b602081526000825180602084015260005b818110156117d957602081860181015160408684010152016117bc565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b038116811461180e57600080fd5b50565b803561181c816117f9565b919050565b6000806040838503121561183457600080fd5b823561183f816117f9565b946020939093013593505050565b60008060006060848603121561186257600080fd5b833561186d816117f9565b9250602084013561187d816117f9565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156118b657600080fd5b813567ffffffffffffffff8111156118cd57600080fd5b8201601f810184136118de57600080fd5b803567ffffffffffffffff8111156118f8576118f861188e565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156119255761192561188e565b60405291825260208184018101929081018784111561194357600080fd5b6020850194505b838510156119695761195b85611811565b81526020948501940161194a565b509695505050505050565b60006020828403121561198657600080fd5b8135611377816117f9565b600080604083850312156119a457600080fd5b82356119af816117f9565b915060208301356119bf816117f9565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b6001815b600184111561164e578085048111156119ff576119ff6119ca565b6001841615611a0d57908102905b60019390931c9280026119e4565b600082611a2a57506001610459565b81611a3757506000610459565b8160018114611a4d5760028114611a5757611a73565b6001915050610459565b60ff841115611a6857611a686119ca565b50506001821b610459565b5060208310610133831016604e8410600b8410161715611a96575081810a610459565b611aa360001984846119e0565b8060001904821115611ab757611ab76119ca565b029392505050565b600061137760ff841683611a1b565b8082028115828204841417610459576104596119ca565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600080600060608486031215611b2f57600080fd5b5050815160208301516040909301519094929350919050565b600060208284031215611b5a57600080fd5b8151801515811461137757600080fd5b600060208284031215611b7c57600080fd5b8151611377816117f9565b634e487b7160e01b600052603260045260246000fd5b81810381811115610459576104596119ca565b80820180821115610459576104596119ca565b600060018201611bd557611bd56119ca565b5060010190565b600082611bf957634e487b7160e01b600052601260045260246000fd5b500490565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b81811015611c505783516001600160a01b0316835260209384019390920191600101611c29565b50506001600160a01b03959095166060840152505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e2ec966a329baebc71d4148b3921d262bf503adae3f58bf8a1a68671caecf36a64736f6c634300081a0033

Deployed Bytecode Sourcemap

3819:10306:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5693:83;;;;;;;;;;-1:-1:-1;5763:5:0;;;;;;;;;;;;-1:-1:-1;;;5763:5:0;;;;5693:83;;;;;;;:::i;:::-;;;;;;;;6562:186;;;;;;;;;;-1:-1:-1;6562:186:0;;;;;:::i;:::-;;:::i;:::-;;;1358:14:1;;1351:22;1333:41;;1321:2;1306:18;6562:186:0;1193:187:1;4944:55:0;;;;;;;;;;;;;;;;;;;1531:25:1;;;1519:2;1504:18;4944:55:0;1385:177:1;5964:95:0;;;;;;;;;;;;;:::i;6754:446::-;;;;;;;;;;-1:-1:-1;6754:446:0;;;;;:::i;:::-;;:::i;13461:518::-;;;;;;;;;;;;;:::i;:::-;;13058:397;;;;;;;;;;;;;:::i;5875:83::-;;;;;;;;;;-1:-1:-1;5875:83:0;;4561:1;2222:36:1;;2210:2;2195:18;5875:83:0;2080:184:1;12792:168:0;;;;;;;;;;-1:-1:-1;12792:168:0;;;;;:::i;:::-;;:::i;12966:86::-;;;;;;;;;;-1:-1:-1;12966:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;13037:7:0;13013:4;13037:7;;;:4;:7;;;;;;;;;12966:86;6065:119;;;;;;;;;;-1:-1:-1;6065:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6158:18:0;6131:7;6158:18;;;:9;:18;;;;;;;6065:119;2856:148;;;;;;;;;;;;;:::i;12356:162::-;;;;;;;;;;;;;:::i;4753:56::-;;;;;;;;;;;;;;;;2646:79;;;;;;;;;;-1:-1:-1;2684:7:0;2711:6;2646:79;;-1:-1:-1;;;;;2711:6:0;;;3931:51:1;;3919:2;3904:18;2646:79:0;3785:203:1;4816:58:0;;;;;;;;;;;;;;;;5782:87;;;;;;;;;;-1:-1:-1;5854:7:0;;;;;;;;;;;;-1:-1:-1;;;5854:7:0;;;;5782:87;;6190:192;;;;;;;;;;-1:-1:-1;6190:192:0;;;;;:::i;:::-;;:::i;4881:56::-;;;;;;;;;;;;;;;;12622:164;;;;;;;;;;-1:-1:-1;12622:164:0;;;;;:::i;:::-;;:::i;6388:168::-;;;;;;;;;;-1:-1:-1;6388:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;6521:18:0;;;6494:7;6521:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6388:168;13985:102;;;;;;;;;;;;;:::i;6562:186::-;6662:4;6679:39;293:10;6702:7;6711:6;6679:8;:39::i;:::-;-1:-1:-1;6736:4:0;6562:186;;;;;:::o;5964:95::-;6017:7;4617:15;4561:1;4617:2;:15;:::i;:::-;4604:28;;:10;:28;:::i;:::-;6037:14;;5964:95;:::o;6754:446::-;6886:4;6903:36;6913:6;6921:9;6932:6;6903:9;:36::i;:::-;6950:220;6973:6;293:10;7021:138;7077:6;7021:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7021:19:0;;;;;;:11;:19;;;;;;;;293:10;7021:33;;;;;;;;;;:37;:138::i;:::-;6950:8;:220::i;:::-;-1:-1:-1;7188:4:0;6754:446;;;;;:::o;13461:518::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;;;;;;;;;13522:11:::1;::::0;-1:-1:-1;;;13522:11:0;::::1;;;13521:12;13513:48;;;::::0;-1:-1:-1;;;13513:48:0;;6686:2:1;13513:48:0::1;::::0;::::1;6668:21:1::0;6725:2;6705:18;;;6698:30;6764:25;6744:18;;;6737:53;6807:18;;13513:48:0::1;6484:347:1::0;13513:48:0::1;13572:15;::::0;-1:-1:-1;;;;;13572:15:0::1;:31;13611:21;13656:4;13676:24;13656:4:::0;-1:-1:-1;;;;;6158:18:0;6131:7;6158:18;;;:9;:18;;;;;;;6065:119;13676:24:::1;13715:1;13731::::0;13747:7:::1;2684::::0;2711:6;-1:-1:-1;;;;;2711:6:0;;2646:79;13747:7:::1;13572:223;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13572:223:0;;;-1:-1:-1;;;;;7157:32:1;;;13572:223:0::1;::::0;::::1;7139:51:1::0;7206:18;;;7199:34;;;;7249:18;;;7242:34;;;;7292:18;;;7285:34;7356:32;;;7335:19;;;7328:61;13769:15:0::1;7405:19:1::0;;;7398:35;7111:19;;13572:223:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13813:13:0::1;::::0;13844:15:::1;::::0;13806:71:::1;::::0;-1:-1:-1;;;13806:71:0;;-1:-1:-1;;;;;13844:15:0;;::::1;13806:71;::::0;::::1;8079:51:1::0;-1:-1:-1;;8146:18:1;;;8139:34;13813:13:0;::::1;::::0;-1:-1:-1;13806:29:0::1;::::0;8052:18:1;;13806:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13888:11:0::1;:18:::0;;-1:-1:-1;;;;13917:18:0;-1:-1:-1;;;13917:18:0;;;13959:12:::1;13946:10;:25:::0;13461:518::o;13058:397::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;13116:15:::1;:104:::0;;-1:-1:-1;;;;;;13116:104:0::1;13167:42;13116:104:::0;;::::1;::::0;;;13231:58:::1;::::0;13248:4:::1;::::0;4617:15:::1;4561:1;4617:2;:15;:::i;:::-;4604:28;::::0;:10:::1;:28;:::i;13231:58::-;13334:15;;;;;;;;;-1:-1:-1::0;;;;;13334:15:0::1;-1:-1:-1::0;;;;;13334:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13316:55:0::1;;13394:4;13414:15;;;;;;;;;-1:-1:-1::0;;;;;13414:15:0::1;-1:-1:-1::0;;;;;13414:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13316:131;::::0;-1:-1:-1;;;;;;13316:131:0::1;::::0;;;;;;-1:-1:-1;;;;;8914:32:1;;;13316:131:0::1;::::0;::::1;8896:51:1::0;8983:32;;8963:18;;;8956:60;8869:18;;13316:131:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13300:13;:147:::0;;-1:-1:-1;;;;;;13300:147:0::1;-1:-1:-1::0;;;;;13300:147:0;;;::::1;::::0;;;::::1;::::0;;13058:397::o;12792:168::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;12867:6:::1;12862:91;12883:6;:13;12879:1;:17;12862:91;;;12936:5;12918:4;:15;12923:6;12930:1;12923:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12918:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12918:15:0;:23;;-1:-1:-1;;12918:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12898:3:0::1;12862:91;;;;12792:168:::0;:::o;2856:148::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;2963:1:::1;2947:6:::0;;2926:40:::1;::::0;-1:-1:-1;;;;;2947:6:0;;::::1;::::0;2926:40:::1;::::0;2963:1;;2926:40:::1;2994:1;2977:19:::0;;-1:-1:-1;;;;;;2977:19:0::1;::::0;;2856:148::o;12356:162::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;4617:15:::1;4561:1;4617:2;:15;:::i;:::-;4604:28;::::0;:10:::1;:28;:::i;:::-;12410:12;:22:::0;4617:15:::1;4561:1;4617:2;:15;:::i;:::-;4604:28;::::0;:10:::1;:28;:::i;:::-;12443:14;:24:::0;12483:27:::1;4617:15;4561:1;4617:2;:15;:::i;:::-;4604:28;::::0;:10:::1;:28;:::i;:::-;12483:27;::::0;1531:25:1;;;1519:2;1504:18;12483:27:0::1;;;;;;;12356:162::o:0;6190:192::-;6293:4;6310:42;293:10;6334:9;6345:6;6310:9;:42::i;12622:164::-;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;12696:6:::1;12691:88;12712:5;:12;12708:1;:16;12691:88;;;12763:4;12746;:14;12751:5;12757:1;12751:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12746:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12746:14:0;:21;;-1:-1:-1;;12746:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12726:3:0::1;12691:88;;13985:102:::0;2771:6;;-1:-1:-1;;;;;2771:6:0;293:10;2771:22;2763:67;;;;-1:-1:-1;;;2763:67:0;;;;;;;:::i;:::-;14044:35:::1;14057:21;14044:12;:35::i;:::-;13985:102::o:0;7206:335::-;-1:-1:-1;;;;;7299:19:0;;7291:68;;;;-1:-1:-1;;;7291:68:0;;9361:2:1;7291:68:0;;;9343:21:1;9400:2;9380:18;;;9373:30;9439:34;9419:18;;;9412:62;-1:-1:-1;;;9490:18:1;;;9483:34;9534:19;;7291:68:0;9159:400:1;7291:68:0;-1:-1:-1;;;;;7378:21:0;;7370:68;;;;-1:-1:-1;;;7370:68:0;;9766:2:1;7370:68:0;;;9748:21:1;9805:2;9785:18;;;9778:30;9844:34;9824:18;;;9817:62;-1:-1:-1;;;9895:18:1;;;9888:32;9937:19;;7370:68:0;9564:398:1;7370:68:0;-1:-1:-1;;;;;7449:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7501:32;;1531:25:1;;;7501:32:0;;1504:18:1;7501:32:0;;;;;;;;7206:335;;;:::o;7547:2974::-;-1:-1:-1;;;;;7640:18:0;;7632:68;;;;-1:-1:-1;;;7632:68:0;;10169:2:1;7632:68:0;;;10151:21:1;10208:2;10188:18;;;10181:30;10247:34;10227:18;;;10220:62;-1:-1:-1;;;10298:18:1;;;10291:35;10343:19;;7632:68:0;9967:401:1;7632:68:0;-1:-1:-1;;;;;7719:16:0;;7711:64;;;;-1:-1:-1;;;7711:64:0;;10575:2:1;7711:64:0;;;10557:21:1;10614:2;10594:18;;;10587:30;10653:34;10633:18;;;10626:62;-1:-1:-1;;;10704:18:1;;;10697:33;10747:19;;7711:64:0;10373:399:1;7711:64:0;7808:1;7794:11;:15;7786:69;;;;-1:-1:-1;;;7786:69:0;;10979:2:1;7786:69:0;;;10961:21:1;11018:2;10998:18;;;10991:30;11057:34;11037:18;;;11030:62;-1:-1:-1;;;11108:18:1;;;11101:39;11157:19;;7786:69:0;10777:405:1;7786:69:0;7871:11;;-1:-1:-1;;;7871:11:0;;;;7870:12;;:22;;-1:-1:-1;7886:6:0;;-1:-1:-1;;;7886:6:0;;;;7870:22;7866:232;;;-1:-1:-1;;;;;7927:15:0;;;;;;:9;:15;;;;;;:29;;7945:11;;7927:29;:::i;:::-;-1:-1:-1;;;;;7909:15:0;;;;;;;:9;:15;;;;;;:47;;;;7987:13;;;;;;;:27;;8003:11;;7987:27;:::i;:::-;-1:-1:-1;;;;;7971:13:0;;;;;;;:9;:13;;;;;;;:43;;;;8034:31;;;;;;;;;;8053:11;1531:25:1;;1519:2;1504:18;;1385:177;7866:232:0;8108:17;2711:6;;-1:-1:-1;;;;;8144:15:0;;;2711:6;;8144:15;;;;:32;;-1:-1:-1;2684:7:0;2711:6;-1:-1:-1;;;;;8163:13:0;;;2711:6;;8163:13;;8144:32;8140:2315;;;-1:-1:-1;;;;;8202:10:0;;;;;;:4;:10;;;;;;;;8201:11;:24;;;;-1:-1:-1;;;;;;8217:8:0;;;;;;:4;:8;;;;;;;;8216:9;8201:24;8193:33;;;;;;8253:213;8462:3;8253:186;8322:15;;8310:9;;:27;8309:111;;8406:14;;8309:111;;;8366:12;;8309:111;8253:11;;:33;:186::i;:::-;:208;;:213::i;:::-;8511:13;;8241:225;;-1:-1:-1;;;;;;8503:21:0;;;8511:13;;8503:21;:72;;;;-1:-1:-1;8559:15:0;;-1:-1:-1;;;;;8545:30:0;;;8559:15;;8545:30;;8503:72;:116;;;;-1:-1:-1;;;;;;8597:22:0;;;;;;:18;:22;;;;;;;;8596:23;8503:116;8481:568;;;8677:12;;8662:11;:27;;8654:65;;;;-1:-1:-1;;;8654:65:0;;11652:2:1;8654:65:0;;;11634:21:1;11691:2;11671:18;;;11664:30;11730:27;11710:18;;;11703:55;11775:18;;8654:65:0;11450:349:1;8654:65:0;8799:14;;8784:11;8768:13;8778:2;-1:-1:-1;;;;;6158:18:0;6131:7;6158:18;;;:9;:18;;;;;;;6065:119;8768:13;:27;;;;:::i;:::-;:45;;8738:145;;;;-1:-1:-1;;;8738:145:0;;12006:2:1;8738:145:0;;;11988:21:1;12045:2;12025:18;;;12018:30;12084:28;12064:18;;;12057:56;12130:18;;8738:145:0;11804:350:1;8738:145:0;8923:12;8906:10;;8919:1;8906:14;;;;:::i;:::-;:29;8902:102;;;11797:20;;11845:8;8960:24;;;;;;9022:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8481:568;9073:13;;-1:-1:-1;;;;;9067:19:0;;;9073:13;;9067:19;;;;:46;;-1:-1:-1;;;;;;9091:22:0;;;;;;:18;:22;;;;;;;;9090:23;9067:46;9063:232;;;9195:14;;9180:11;9164:13;9174:2;-1:-1:-1;;;;;6158:18:0;6131:7;6158:18;;;:9;:18;;;;;;;6065:119;9164:13;:27;;;;:::i;:::-;:45;;9134:145;;;;-1:-1:-1;;;9134:145:0;;12006:2:1;9134:145:0;;;11988:21:1;12045:2;12025:18;;;12018:30;12084:28;12064:18;;;12057:56;12130:18;;9134:145:0;11804:350:1;9134:145:0;9319:13;;-1:-1:-1;;;;;9313:19:0;;;9319:13;;9313:19;:44;;;;-1:-1:-1;;;;;;9336:21:0;;9352:4;9336:21;;9313:44;9309:337;;;9390:240;9626:3;9390:209;9467:16;;9455:9;;:28;9454:122;;9561:15;;9454:122;;;9516:13;;9390:11;;:37;:209::i;:240::-;9378:252;;9309:337;9709:4;9660:28;6158:18;;;:9;:18;;;;;;9753:6;;-1:-1:-1;;;9753:6:0;;;;9752:7;:47;;;;-1:-1:-1;9786:13:0;;-1:-1:-1;;;;;9780:19:0;;;9786:13;;9780:19;9752:47;:79;;;;-1:-1:-1;9820:11:0;;-1:-1:-1;;;9820:11:0;;;;9752:79;:130;;;;;9864:18;;9852:9;;:30;9752:130;:176;;;;-1:-1:-1;;;;;;9904:24:0;;;;;;:18;:24;;;;;;;;9903:25;9752:176;:220;;;;-1:-1:-1;;;;;;9950:22:0;;;;;;:18;:22;;;;;;;;9949:23;9752:220;9730:714;;;10033:17;;10010:20;:40;10007:210;;;10075:122;10118:56;10122:11;10135:38;10139:20;10161:11;;10135:3;:38::i;:::-;10118:3;:56::i;:::-;10075:16;:122::i;:::-;10282:21;10374:35;10387:21;10374:12;:35::i;:::-;9988:456;9730:714;8178:2277;8140:2315;10465:48;10480:4;10486:2;10490:9;10501:11;10465:14;:48::i;:::-;7621:2900;7547:2974;;;:::o;1460:224::-;1580:7;1616:12;1608:6;;;;1600:29;;;;-1:-1:-1;;;1600:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1640:9:0;1652:5;1656:1;1652;:5;:::i;:::-;1640:17;1460:224;-1:-1:-1;;;;;1460:224:0:o;12524:92::-;12581:10;;:27;;-1:-1:-1;;;;;12581:10:0;;;;:27;;;;;12601:6;;12581:10;:27;:10;:27;12601:6;12581:10;:27;;;;;;;;;;;;;;;;;;;1690:246;1748:7;1772:1;1777;1772:6;1768:47;;-1:-1:-1;1802:1:0;1795:8;;1768:47;1825:9;1837:5;1841:1;1837;:5;:::i;:::-;1825:17;-1:-1:-1;1870:1:0;1861:5;1865:1;1825:17;1861:5;:::i;:::-;:10;1853:56;;;;-1:-1:-1;;;1853:56:0;;12723:2:1;1853:56:0;;;12705:21:1;12762:2;12742:18;;;12735:30;12801:34;12781:18;;;12774:62;-1:-1:-1;;;12852:18:1;;;12845:31;12893:19;;1853:56:0;12521:397:1;1853:56:0;1927:1;1690:246;-1:-1:-1;;;1690:246:0:o;1942:132::-;2000:7;2027:39;2031:1;2034;2027:39;;;;;;;;;;;;;;;;;:3;:39::i;11553:107::-;11610:7;11642:1;11638;:5;11637:15;;11651:1;11637:15;;;-1:-1:-1;11647:1:0;11553:107;-1:-1:-1;11553:107:0:o;11867:483::-;5279:6;:13;;-1:-1:-1;;;;5279:13:0;-1:-1:-1;;;5279:13:0;;;11969:16:::1;::::0;;11983:1:::1;11969:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11969:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11969:16:0::1;11945:40;;12014:4;11996;12001:1;11996:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11996:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12040:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;12040:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11996:7;;12040:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12030:4;12035:1;12030:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12030:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;12105:15:::1;::::0;12073:62:::1;::::0;12090:4:::1;::::0;12105:15:::1;12123:11:::0;12073:8:::1;:62::i;:::-;12146:15;::::0;:196:::1;::::0;-1:-1:-1;;;12146:196:0;;-1:-1:-1;;;;;12146:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12227:11;;12146:15:::1;::::0;12269:4;;12296::::1;::::0;12316:15:::1;::::0;12146:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5315:6:0;:14;;-1:-1:-1;;;;5315:14:0;;;-1:-1:-1;;;;11867:483:0:o;10527:367::-;-1:-1:-1;;;;;10672:24:0;;10637:15;10672:24;;;:18;:24;;;;;;;;;10707:108;;10761:42;10774:4;10780:11;10793:9;10761:12;:42::i;:::-;10738:65;-1:-1:-1;10738:65:0;-1:-1:-1;10707:108:0;10825:61;10840:4;10846:2;10850:7;10859:26;:11;10875:9;10859:15;:26::i;:::-;10825:14;:61::i;:::-;10625:269;;10527:367;;;;:::o;2080:223::-;2200:7;2235:12;2228:5;2220:28;;;;-1:-1:-1;;;2220:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2259:9:0;2271:5;2275:1;2271;:5;:::i;11165:382::-;11295:7;;11328:13;;11324:174;;11403:4;11385:24;;;;:9;:24;;;;;;:39;;11414:9;11385:28;:39::i;:::-;11376:4;11358:24;;;;:9;:24;;;;;;;:66;;;;11444:42;;-1:-1:-1;;;;;11444:42:0;;;;;;;11476:9;1531:25:1;;1519:2;1504:18;;1385:177;11444:42:0;;;;;;;;11324:174;-1:-1:-1;11516:11:0;;-1:-1:-1;11529:9:0;11165:382;;;;;;;:::o;1318:136::-;1376:7;1403:43;1407:1;1410;1403:43;;;;;;;;;;;;;;;;;:3;:43::i;10900:259::-;-1:-1:-1;;;;;11024:15:0;;;;;;:9;:15;;;;;;:29;;11044:8;11024:19;:29::i;:::-;-1:-1:-1;;;;;11006:15:0;;;;;;;:9;:15;;;;;;:47;;;;11080:13;;;;;;;:27;;11098:8;11080:17;:27::i;:::-;-1:-1:-1;;;;;11064:13:0;;;;;;;:9;:13;;;;;;;:43;;;;11123:28;;;;;;;;;;11142:8;1531:25:1;;1519:2;1504:18;;1385:177;11123:28:0;;;;;;;;10900:259;;;;:::o;1133:179::-;1191:7;;1223:5;1227:1;1223;:5;:::i;:::-;1211:17;;1252:1;1247;:6;;1239:46;;;;-1:-1:-1;;;1239:46:0;;14089:2:1;1239:46:0;;;14071:21:1;14128:2;14108:18;;;14101:30;14167:29;14147:18;;;14140:57;14214:18;;1239:46:0;13887:351:1;14:527;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;263:1;273:140;287:6;284:1;281:13;273:140;;;398:2;382:14;;;378:23;;372:30;367:2;348:17;;;344:26;337:66;302:10;273:140;;;277:3;462:1;457:2;448:6;437:9;433:22;429:31;422:42;532:2;525;521:7;516:2;508:6;504:15;500:29;489:9;485:45;481:54;473:62;;;14:527;;;;:::o;546:131::-;-1:-1:-1;;;;;621:31:1;;611:42;;601:70;;667:1;664;657:12;601:70;546:131;:::o;682:134::-;750:20;;779:31;750:20;779:31;:::i;:::-;682:134;;;:::o;821:367::-;889:6;897;950:2;938:9;929:7;925:23;921:32;918:52;;;966:1;963;956:12;918:52;1005:9;992:23;1024:31;1049:5;1024:31;:::i;:::-;1074:5;1152:2;1137:18;;;;1124:32;;-1:-1:-1;;;821:367:1:o;1567:508::-;1644:6;1652;1660;1713:2;1701:9;1692:7;1688:23;1684:32;1681:52;;;1729:1;1726;1719:12;1681:52;1768:9;1755:23;1787:31;1812:5;1787:31;:::i;:::-;1837:5;-1:-1:-1;1894:2:1;1879:18;;1866:32;1907:33;1866:32;1907:33;:::i;:::-;1567:508;;1959:7;;-1:-1:-1;;;2039:2:1;2024:18;;;;2011:32;;1567:508::o;2269:127::-;2330:10;2325:3;2321:20;2318:1;2311:31;2361:4;2358:1;2351:15;2385:4;2382:1;2375:15;2401:1127;2485:6;2538:2;2526:9;2517:7;2513:23;2509:32;2506:52;;;2554:1;2551;2544:12;2506:52;2594:9;2581:23;2627:18;2619:6;2616:30;2613:50;;;2659:1;2656;2649:12;2613:50;2682:22;;2735:4;2727:13;;2723:27;-1:-1:-1;2713:55:1;;2764:1;2761;2754:12;2713:55;2804:2;2791:16;2830:18;2822:6;2819:30;2816:56;;;2852:18;;:::i;:::-;2898:6;2895:1;2891:14;2934:2;2928:9;2997:2;2993:7;2988:2;2984;2980:11;2976:25;2968:6;2964:38;3068:6;3056:10;3053:22;3032:18;3020:10;3017:34;3014:62;3011:88;;;3079:18;;:::i;:::-;3115:2;3108:22;3165;;;3215:2;3245:11;;;3241:20;;;3165:22;3203:15;;3273:19;;;3270:39;;;3305:1;3302;3295:12;3270:39;3337:2;3333;3329:11;3318:22;;3349:148;3365:6;3360:3;3357:15;3349:148;;;3431:23;3450:3;3431:23;:::i;:::-;3419:36;;3484:2;3382:12;;;;3475;3349:148;;;-1:-1:-1;3516:6:1;2401:1127;-1:-1:-1;;;;;;2401:1127:1:o;3533:247::-;3592:6;3645:2;3633:9;3624:7;3620:23;3616:32;3613:52;;;3661:1;3658;3651:12;3613:52;3700:9;3687:23;3719:31;3744:5;3719:31;:::i;3993:388::-;4061:6;4069;4122:2;4110:9;4101:7;4097:23;4093:32;4090:52;;;4138:1;4135;4128:12;4090:52;4177:9;4164:23;4196:31;4221:5;4196:31;:::i;:::-;4246:5;-1:-1:-1;4303:2:1;4288:18;;4275:32;4316:33;4275:32;4316:33;:::i;:::-;4368:7;4358:17;;;3993:388;;;;;:::o;4386:127::-;4447:10;4442:3;4438:20;4435:1;4428:31;4478:4;4475:1;4468:15;4502:4;4499:1;4492:15;4518:375;4606:1;4624:5;4638:249;4659:1;4649:8;4646:15;4638:249;;;4709:4;4704:3;4700:14;4694:4;4691:24;4688:50;;;4718:18;;:::i;:::-;4768:1;4758:8;4754:16;4751:49;;;4782:16;;;;4751:49;4865:1;4861:16;;;;;4821:15;;4638:249;;4898:902;4947:5;4977:8;4967:80;;-1:-1:-1;5018:1:1;5032:5;;4967:80;5066:4;5056:76;;-1:-1:-1;5103:1:1;5117:5;;5056:76;5148:4;5166:1;5161:59;;;;5234:1;5229:174;;;;5141:262;;5161:59;5191:1;5182:10;;5205:5;;;5229:174;5266:3;5256:8;5253:17;5250:43;;;5273:18;;:::i;:::-;-1:-1:-1;;5329:1:1;5315:16;;5388:5;;5141:262;;5487:2;5477:8;5474:16;5468:3;5462:4;5459:13;5455:36;5449:2;5439:8;5436:16;5431:2;5425:4;5422:12;5418:35;5415:77;5412:203;;;-1:-1:-1;5524:19:1;;;5600:5;;5412:203;5647:42;-1:-1:-1;;5672:8:1;5666:4;5647:42;:::i;:::-;5725:6;5721:1;5717:6;5713:19;5704:7;5701:32;5698:58;;;5736:18;;:::i;:::-;5774:20;;4898:902;-1:-1:-1;;;4898:902:1:o;5805:140::-;5863:5;5892:47;5933:4;5923:8;5919:19;5913:4;5892:47;:::i;5950:168::-;6023:9;;;6054;;6071:15;;;6065:22;;6051:37;6041:71;;6092:18;;:::i;6123:356::-;6325:2;6307:21;;;6344:18;;;6337:30;6403:34;6398:2;6383:18;;6376:62;6470:2;6455:18;;6123:356::o;7444:456::-;7532:6;7540;7548;7601:2;7589:9;7580:7;7576:23;7572:32;7569:52;;;7617:1;7614;7607:12;7569:52;-1:-1:-1;;7662:16:1;;7768:2;7753:18;;7747:25;7864:2;7849:18;;;7843:25;7662:16;;7747:25;;-1:-1:-1;7843:25:1;7444:456;-1:-1:-1;7444:456:1:o;8184:277::-;8251:6;8304:2;8292:9;8283:7;8279:23;8275:32;8272:52;;;8320:1;8317;8310:12;8272:52;8352:9;8346:16;8405:5;8398:13;8391:21;8384:5;8381:32;8371:60;;8427:1;8424;8417:12;8466:251;8536:6;8589:2;8577:9;8568:7;8564:23;8560:32;8557:52;;;8605:1;8602;8595:12;8557:52;8637:9;8631:16;8656:31;8681:5;8656:31;:::i;9027:127::-;9088:10;9083:3;9079:20;9076:1;9069:31;9119:4;9116:1;9109:15;9143:4;9140:1;9133:15;11187:128;11254:9;;;11275:11;;;11272:37;;;11289:18;;:::i;11320:125::-;11385:9;;;11406:10;;;11403:36;;;11419:18;;:::i;12159:135::-;12198:3;12219:17;;;12216:43;;12239:18;;:::i;:::-;-1:-1:-1;12286:1:1;12275:13;;12159:135::o;12299:217::-;12339:1;12365;12355:132;;12409:10;12404:3;12400:20;12397:1;12390:31;12444:4;12441:1;12434:15;12472:4;12469:1;12462:15;12355:132;-1:-1:-1;12501:9:1;;12299:217::o;12923:959::-;13185:4;13233:3;13222:9;13218:19;13264:6;13253:9;13246:25;13307:6;13302:2;13291:9;13287:18;13280:34;13350:3;13345:2;13334:9;13330:18;13323:31;13374:6;13409;13403:13;13440:6;13432;13425:22;13478:3;13467:9;13463:19;13456:26;;13517:2;13509:6;13505:15;13491:29;;13538:1;13548:195;13562:6;13559:1;13556:13;13548:195;;;13627:13;;-1:-1:-1;;;;;13623:39:1;13611:52;;13692:2;13718:15;;;;13683:12;;;;13659:1;13577:9;13548:195;;;-1:-1:-1;;;;;;;13799:32:1;;;;13794:2;13779:18;;13772:60;-1:-1:-1;;13863:3:1;13848:19;13841:35;13760:3;12923:959;-1:-1:-1;;;12923:959:1:o

Swarm Source

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