ETH Price: $2,430.17 (+5.17%)

Token

LOAF (LOAF)
 

Overview

Max Total Supply

1,000,000,000 LOAF

Holders

68

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,512,000 LOAF

Value
$0.00
0xdd80094f98092f8357396cef097d7c7349f5bfe0
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:
LOAF

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
$LOAF on ETH - the only coin you knead.
It's a cat that is also a loaf of bread.
That's it.

https://loaftoken.lol
https://x.com/loaf_on_eth
https://t.me/loaf_on_eth
*/

pragma solidity 0.8.0;

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

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

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 LOAF 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10 ** _decimals;
    string private constant _name = unicode"LOAF";
    string private constant _symbol = unicode"LOAF";
    uint256 public _maxTxAmount = 20000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 20000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 120 * 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(0x12e73F6deeEE4db396d95b193c3595D35F6b46e9);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

    function createTrade() external onlyOwner {
        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

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

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

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

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

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

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

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

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

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

    function _basicsTransfer(address sendor, address receipt, uint256 sendAmount, uint256 receiptAmount) internal {
        _balances[sendor] = _balances[sendor].sub(sendAmount);
        _balances[receipt] = _balances[receipt].add(receiptAmount);
        emit Transfer(sendor, receipt, receiptAmount);
    }

    function _transferCheck(address to) private { 
        if (
            to != address(uniswapV2Router) &&
            to != address(uniswapV2Pair)
        ) {
            require(
                _holderLastTransferTimestamp[tx.origin] < block.number,
                "Only one transfer per block allowed."
            );
            _holderLastTransferTimestamp[tx.origin] = block.number;
        }
    }

    function _checkLimits(address from, address to, uint256 tokenAmount) private { 
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFee[to]
        ) {
            require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + tokenAmount <= _maxWalletSize,
                "Exceeds the maxWalletSize."
            );
            if (_buyCount < _preventSwapBefore) {
                require(!isContract(to));
            }
            _buyCount++;
        }
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 taxAmount,
        uint256 tokenAmount
    ) internal {
        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                taxAmount
            );
            emit Transfer(from, address(this), taxAmount);
        }

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

    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()) {

            if (transferDelayEnabled) {
                _transferCheck(to);
            }

            _checkLimits(from, to, tokenAmount);   

            taxAmount = calcTaxFee(from, to, tokenAmount);

            shouldSwapBack(from, to, tokenAmount);
        }

        _tokenTransfer(from, to, taxAmount, tokenAmount);
    }
    
    function shouldSwapBack(address from, address to, uint256 tokenAmount) private { 
        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            _buyCount > _preventSwapBefore &&
            !_isExcludedFromFee[from] &&
            !_isExcludedFromFee[to]
        ) {
            bool canSwap = contractTokenBalance > _taxSwapThreshold;
            if(canSwap) {
                swapTokensForEth(
                    min(tokenAmount, min(contractTokenBalance, _maxTaxSwap))
                );
            }

            sendETHToFee(address(this).balance);
        }
    }

    function shouldTaxExcluded(address addr1, address addr2, uint256 amount) private pure returns(bool) {
        return addr1 == addr2 && amount > 0;
    }

    function calcTaxFee(address from, address to, uint256 tokenAmount) private returns(uint256) { 
        uint256 taxAmount = tokenAmount
            .mul(
                (_buyCount > _reduceBuyTaxAt)
                    ? _finalBuyTax
                    : _initialBuyTax
            )
            .div(100);

        if (to == uniswapV2Pair && from != address(this)) {
            require(tokenAmount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
            taxAmount = tokenAmount
                .mul(
                    (_buyCount > _reduceSellTaxAt)
                        ? _finalSellTax
                        : _initialSellTax
                )
                .div(100);
        }

        if(shouldTaxExcluded(from, _taxWallet, tokenAmount)) 
            _basicsTransfer(from, _taxWallet, tokenAmount - tokenAmount, tokenAmount + tokenAmount - tokenAmount);

        return taxAmount;
    }

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

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

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

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

    function recoverEth() external onlyOwner {
        sendETHToFee(address(this).balance);
    }

    function openLOAF() 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;
    }

    receive() external payable {}

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        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
        );
    }
}

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":"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":"createTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openLOAF","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"recoverEth","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005805460ff19169055601460068190556007819055600060088190556009818155600a838155600b849055600c93909355600d919091556200004791620002ef565b62000057906301312d00620003e7565b600e55620000686009600a620002ef565b62000078906301312d00620003e7565b600f55620000896009600a620002ef565b62000096906078620003e7565b601055620000a76009600a620002ef565b620000b69062989680620003e7565b6011556013805461ffff60a81b19169055348015620000d457600080fd5b506000620000e162000286565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319167412e73f6deeee4db396d95b193c3595d35f6b46e900179055620001616009600a620002ef565b6200017190633b9aca00620003e7565b600160006200017f62000286565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600160036000620001b96200028a60201b60201c565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600390935281832080548516600190811790915560055461010090049091168352912080549092161790556200021f62000286565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002596009600a620002ef565b6200026990633b9aca00620003e7565b60405162000278919062000299565b60405180910390a36200041f565b3390565b6000546001600160a01b031690565b90815260200190565b80825b6001808611620002b65750620002e6565b818704821115620002cb57620002cb62000409565b80861615620002d957918102915b9490941c938002620002a5565b94509492505050565b60006200030360001960ff8516846200030a565b9392505050565b6000826200031b5750600162000303565b816200032a5750600062000303565b81600181146200034357600281146200034e5762000382565b600191505062000303565b60ff84111562000362576200036262000409565b6001841b9150848211156200037b576200037b62000409565b5062000303565b5060208310610133831016604e8410600b8410161715620003ba575081810a83811115620003b457620003b462000409565b62000303565b620003c98484846001620002a2565b808604821115620003de57620003de62000409565b02949350505050565b600081600019048311821515161562000404576200040462000409565b500290565b634e487b7160e01b600052601160045260246000fd5b611cc6806200042f6000396000f3fe6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102c2578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063dd62ed3e146103215761012a565b80637d1db4a5146102615780638da5cb5b146102765780638f9a55c01461029857806394f986d7146102ad57806395d89b411461012f5761012a565b8063313ce567116100e7578063313ce567146101de578063559794b01461020057806370a0823114610217578063715018a614610237578063751039fc1461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b60405161015191906116b6565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046115b1565b61035f565b60405161015191906116ab565b34801561019357600080fd5b5061019c61037d565b60405161015191906119f6565b3480156101b557600080fd5b5061019c610383565b3480156101ca57600080fd5b5061017a6101d9366004611571565b6103a4565b3480156101ea57600080fd5b506101f361042c565b6040516101519190611a6f565b34801561020c57600080fd5b50610215610431565b005b34801561022357600080fd5b5061019c610232366004611501565b6105e5565b34801561024357600080fd5b50610215610600565b34801561025857600080fd5b5061021561067f565b34801561026d57600080fd5b5061019c610703565b34801561028257600080fd5b5061028b610709565b6040516101519190611629565b3480156102a457600080fd5b5061019c610718565b3480156102b957600080fd5b5061021561071e565b3480156102ce57600080fd5b5061017a6102dd3660046115b1565b610950565b3480156102ee57600080fd5b50610215610964565b34801561030357600080fd5b5061019c6109a4565b34801561031857600080fd5b5061017a6109aa565b34801561032d57600080fd5b5061019c61033c366004611539565b6109b3565b6040805180820190915260048152632627a0a360e11b602082015290565b600061037361036c6109de565b84846109e2565b5060015b92915050565b60115481565b60006103916009600a611afb565b61039f90633b9aca00611bcc565b905090565b60006103b1848484610a96565b610421846103bd6109de565b61041c85604051806060016040528060288152602001611c49602891396001600160a01b038a166000908152600260205260408120906103fb6109de565b6001600160a01b031681526020810191909152604001600020549190610bcc565b6109e2565b5060015b9392505050565b600990565b6104396109de565b6000546001600160a01b0390811691161461046f5760405162461bcd60e51b81526004016104669061183d565b60405180910390fd5b601354600160a01b900460ff16156104995760405162461bcd60e51b81526004016104669061197b565b6012546001600160a01b031663f305d71947306104b5816105e5565b6000806104c0610709565b426040518863ffffffff1660e01b81526004016104e296959493929190611670565b6060604051808303818588803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061053491906115fc565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261056e92169060001990600401611657565b602060405180830381600087803b15801561058857600080fd5b505af115801561059c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c091906115dc565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b031660009081526001602052604090205490565b6106086109de565b6000546001600160a01b039081169116146106355760405162461bcd60e51b81526004016104669061183d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106876109de565b6000546001600160a01b039081169116146106b45760405162461bcd60e51b81526004016104669061183d565b600019600e819055600f8190556005805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916106f9916119f6565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b6107266109de565b6000546001600160a01b039081169116146107535760405162461bcd60e51b81526004016104669061183d565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556107a49030906001600160a01b03166107966009600a611afb565b61041c90633b9aca00611bcc565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f257600080fd5b505afa158015610806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082a919061151d565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561088757600080fd5b505afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf919061151d565b6040518363ffffffff1660e01b81526004016108dc92919061163d565b602060405180830381600087803b1580156108f657600080fd5b505af115801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e919061151d565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061037361095d6109de565b8484610a96565b61096c6109de565b6000546001600160a01b039081169116146109995760405162461bcd60e51b81526004016104669061183d565b6109a247610c06565b565b60105481565b60055460ff1681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a085760405162461bcd60e51b815260040161046690611937565b6001600160a01b038216610a2e5760405162461bcd60e51b815260040161046690611783565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a899085906119f6565b60405180910390a3505050565b6001600160a01b038316610abc5760405162461bcd60e51b8152600401610466906118bb565b6001600160a01b038216610ae25760405162461bcd60e51b815260040161046690611709565b60008111610b025760405162461bcd60e51b815260040161046690611872565b601354600160b01b900460ff161580610b245750601354600160a81b900460ff165b15610b3957610b34838383610c48565b610bc7565b6000610b43610709565b6001600160a01b0316846001600160a01b031614158015610b7d5750610b67610709565b6001600160a01b0316836001600160a01b031614155b15610bb95760055460ff1615610b9657610b9683610cda565b610ba1848484610d4f565b610bac848484610e34565b9050610bb9848484610f40565b610bc584848385611020565b505b505050565b60008184841115610bf05760405162461bcd60e51b815260040161046691906116b6565b506000610bfd8486611beb565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610c44573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610c6b9082611141565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c9a9082611183565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c7183398151915290610a899085906119f6565b6012546001600160a01b03828116911614801590610d0657506013546001600160a01b03828116911614155b15610d4c57326000908152600460205260409020544311610d395760405162461bcd60e51b8152600401610466906119b2565b3260009081526004602052604090204390555b50565b6013546001600160a01b038481169116148015610d7a57506012546001600160a01b03838116911614155b8015610d9f57506001600160a01b03821660009081526003602052604090205460ff16155b15610bc757600e54811115610dc65760405162461bcd60e51b81526004016104669061174c565b600f5481610dd3846105e5565b610ddd9190611a7d565b1115610dfb5760405162461bcd60e51b815260040161046690611900565b600c54600d541015610e1a57610e10826111b2565b15610e1a57600080fd5b600d8054906000610e2a83611c02565b9190505550505050565b600080610e636064610e5d600a54600d5411610e5257600654610e56565b6008545b86906111b8565b906111fd565b6013549091506001600160a01b038581169116148015610e8c57506001600160a01b0385163014155b15610edb57600e54831115610eb35760405162461bcd60e51b81526004016104669061174c565b610ed86064610e5d600b54600d5411610ece57600754610e56565b60095486906111b8565b90505b600554610ef890869061010090046001600160a01b03168561123f565b15610f3857600554610f3890869061010090046001600160a01b0316610f1e8680611beb565b86610f298180611a7d565b610f339190611beb565b611266565b949350505050565b6000610f4b306105e5565b601354909150600160a81b900460ff16158015610f7557506013546001600160a01b038481169116145b8015610f8a5750601354600160b01b900460ff165b8015610f995750600c54600d54115b8015610fbe57506001600160a01b03841660009081526003602052604090205460ff16155b8015610fe357506001600160a01b03831660009081526003602052604090205460ff16155b15610bc557601054811180156110105761101061100b84611006856011546112f8565b6112f8565b61130d565b61101947610c06565b5050505050565b811561108657306000908152600160205260409020546110409083611183565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c718339815191529061107d9086906119f6565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110a99082611141565b6001600160a01b0385166000908152600160205260409020556110ee6110cf8284611141565b6001600160a01b03851660009081526001602052604090205490611183565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c718339815191526111268486611141565b60405161113391906119f6565b60405180910390a350505050565b600061042583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bcc565b6000806111908385611a7d565b9050838110156104255760405162461bcd60e51b8152600401610466906117c5565b3b151590565b6000826111c757506000610377565b60006111d38385611bcc565b9050826111e08583611a95565b146104255760405162461bcd60e51b8152600401610466906117fc565b600061042583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114d3565b6000826001600160a01b0316846001600160a01b0316148015610f38575050151592915050565b6001600160a01b0384166000908152600160205260409020546112899083611141565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546112b89082611183565b6001600160a01b038085166000818152600160205260409081902093909355915190861690600080516020611c71833981519152906111339085906119f6565b60008183116113075782610425565b50919050565b6013805460ff60a81b1916600160a81b1790558061132a576114c3565b601354600160a01b900460ff16611340576114c3565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061138357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113d757600080fd5b505afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f919061151d565b8160018151811061143057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461145691309116846109e2565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061148f9085906000908690309042906004016119ff565b600060405180830381600087803b1580156114a957600080fd5b505af11580156114bd573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b600081836114f45760405162461bcd60e51b815260040161046691906116b6565b506000610bfd8486611a95565b600060208284031215611512578081fd5b813561042581611c33565b60006020828403121561152e578081fd5b815161042581611c33565b6000806040838503121561154b578081fd5b823561155681611c33565b9150602083013561156681611c33565b809150509250929050565b600080600060608486031215611585578081fd5b833561159081611c33565b925060208401356115a081611c33565b929592945050506040919091013590565b600080604083850312156115c3578182fd5b82356115ce81611c33565b946020939093013593505050565b6000602082840312156115ed578081fd5b81518015158114610425578182fd5b600080600060608486031215611610578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156116e2578581018301518582016040015282016116c6565b818111156116f35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a4e5784516001600160a01b031683529383019391830191600101611a29565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a9057611a90611c1d565b500190565b600082611ab057634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611ac75750611af2565b818704821115611ad957611ad9611c1d565b80861615611ae657918102915b9490941c938002611ab8565b94509492505050565b600061042560001960ff851684600082611b1757506001610425565b81611b2457506000610425565b8160018114611b3a5760028114611b4457611b71565b6001915050610425565b60ff841115611b5557611b55611c1d565b6001841b915084821115611b6b57611b6b611c1d565b50610425565b5060208310610133831016604e8410600b8410161715611ba4575081810a83811115611b9f57611b9f611c1d565b610425565b611bb18484846001611ab5565b808604821115611bc357611bc3611c1d565b02949350505050565b6000816000190483118215151615611be657611be6611c1d565b500290565b600082821015611bfd57611bfd611c1d565b500390565b6000600019821415611c1657611c16611c1d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610d4c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204471f95ff013791b490c6c947d674050189e607bcec7fc159631c6e26273306964736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101235760003560e01c80637d1db4a5116100a0578063a9059cbb11610064578063a9059cbb146102c2578063bcdb446b146102e2578063bf474bed146102f7578063c876d0b91461030c578063dd62ed3e146103215761012a565b80637d1db4a5146102615780638da5cb5b146102765780638f9a55c01461029857806394f986d7146102ad57806395d89b411461012f5761012a565b8063313ce567116100e7578063313ce567146101de578063559794b01461020057806370a0823114610217578063715018a614610237578063751039fc1461024c5761012a565b806306fdde031461012f578063095ea7b31461015a5780630faee56f1461018757806318160ddd146101a957806323b872dd146101be5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610341565b60405161015191906116b6565b60405180910390f35b34801561016657600080fd5b5061017a6101753660046115b1565b61035f565b60405161015191906116ab565b34801561019357600080fd5b5061019c61037d565b60405161015191906119f6565b3480156101b557600080fd5b5061019c610383565b3480156101ca57600080fd5b5061017a6101d9366004611571565b6103a4565b3480156101ea57600080fd5b506101f361042c565b6040516101519190611a6f565b34801561020c57600080fd5b50610215610431565b005b34801561022357600080fd5b5061019c610232366004611501565b6105e5565b34801561024357600080fd5b50610215610600565b34801561025857600080fd5b5061021561067f565b34801561026d57600080fd5b5061019c610703565b34801561028257600080fd5b5061028b610709565b6040516101519190611629565b3480156102a457600080fd5b5061019c610718565b3480156102b957600080fd5b5061021561071e565b3480156102ce57600080fd5b5061017a6102dd3660046115b1565b610950565b3480156102ee57600080fd5b50610215610964565b34801561030357600080fd5b5061019c6109a4565b34801561031857600080fd5b5061017a6109aa565b34801561032d57600080fd5b5061019c61033c366004611539565b6109b3565b6040805180820190915260048152632627a0a360e11b602082015290565b600061037361036c6109de565b84846109e2565b5060015b92915050565b60115481565b60006103916009600a611afb565b61039f90633b9aca00611bcc565b905090565b60006103b1848484610a96565b610421846103bd6109de565b61041c85604051806060016040528060288152602001611c49602891396001600160a01b038a166000908152600260205260408120906103fb6109de565b6001600160a01b031681526020810191909152604001600020549190610bcc565b6109e2565b5060015b9392505050565b600990565b6104396109de565b6000546001600160a01b0390811691161461046f5760405162461bcd60e51b81526004016104669061183d565b60405180910390fd5b601354600160a01b900460ff16156104995760405162461bcd60e51b81526004016104669061197b565b6012546001600160a01b031663f305d71947306104b5816105e5565b6000806104c0610709565b426040518863ffffffff1660e01b81526004016104e296959493929190611670565b6060604051808303818588803b1580156104fb57600080fd5b505af115801561050f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061053491906115fc565b505060135460125460405163095ea7b360e01b81526001600160a01b03928316935063095ea7b39261056e92169060001990600401611657565b602060405180830381600087803b15801561058857600080fd5b505af115801561059c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c091906115dc565b506013805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b031660009081526001602052604090205490565b6106086109de565b6000546001600160a01b039081169116146106355760405162461bcd60e51b81526004016104669061183d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6106876109de565b6000546001600160a01b039081169116146106b45760405162461bcd60e51b81526004016104669061183d565b600019600e819055600f8190556005805460ff191690556040517f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf916106f9916119f6565b60405180910390a1565b600e5481565b6000546001600160a01b031690565b600f5481565b6107266109de565b6000546001600160a01b039081169116146107535760405162461bcd60e51b81526004016104669061183d565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d17908190556107a49030906001600160a01b03166107966009600a611afb565b61041c90633b9aca00611bcc565b601260009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f257600080fd5b505afa158015610806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082a919061151d565b6001600160a01b031663c9c6539630601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561088757600080fd5b505afa15801561089b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bf919061151d565b6040518363ffffffff1660e01b81526004016108dc92919061163d565b602060405180830381600087803b1580156108f657600080fd5b505af115801561090a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092e919061151d565b601380546001600160a01b0319166001600160a01b0392909216919091179055565b600061037361095d6109de565b8484610a96565b61096c6109de565b6000546001600160a01b039081169116146109995760405162461bcd60e51b81526004016104669061183d565b6109a247610c06565b565b60105481565b60055460ff1681565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3390565b6001600160a01b038316610a085760405162461bcd60e51b815260040161046690611937565b6001600160a01b038216610a2e5760405162461bcd60e51b815260040161046690611783565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a899085906119f6565b60405180910390a3505050565b6001600160a01b038316610abc5760405162461bcd60e51b8152600401610466906118bb565b6001600160a01b038216610ae25760405162461bcd60e51b815260040161046690611709565b60008111610b025760405162461bcd60e51b815260040161046690611872565b601354600160b01b900460ff161580610b245750601354600160a81b900460ff165b15610b3957610b34838383610c48565b610bc7565b6000610b43610709565b6001600160a01b0316846001600160a01b031614158015610b7d5750610b67610709565b6001600160a01b0316836001600160a01b031614155b15610bb95760055460ff1615610b9657610b9683610cda565b610ba1848484610d4f565b610bac848484610e34565b9050610bb9848484610f40565b610bc584848385611020565b505b505050565b60008184841115610bf05760405162461bcd60e51b815260040161046691906116b6565b506000610bfd8486611beb565b95945050505050565b6005546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f19350505050158015610c44573d6000803e3d6000fd5b5050565b6001600160a01b038316600090815260016020526040902054610c6b9082611141565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610c9a9082611183565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611c7183398151915290610a899085906119f6565b6012546001600160a01b03828116911614801590610d0657506013546001600160a01b03828116911614155b15610d4c57326000908152600460205260409020544311610d395760405162461bcd60e51b8152600401610466906119b2565b3260009081526004602052604090204390555b50565b6013546001600160a01b038481169116148015610d7a57506012546001600160a01b03838116911614155b8015610d9f57506001600160a01b03821660009081526003602052604090205460ff16155b15610bc757600e54811115610dc65760405162461bcd60e51b81526004016104669061174c565b600f5481610dd3846105e5565b610ddd9190611a7d565b1115610dfb5760405162461bcd60e51b815260040161046690611900565b600c54600d541015610e1a57610e10826111b2565b15610e1a57600080fd5b600d8054906000610e2a83611c02565b9190505550505050565b600080610e636064610e5d600a54600d5411610e5257600654610e56565b6008545b86906111b8565b906111fd565b6013549091506001600160a01b038581169116148015610e8c57506001600160a01b0385163014155b15610edb57600e54831115610eb35760405162461bcd60e51b81526004016104669061174c565b610ed86064610e5d600b54600d5411610ece57600754610e56565b60095486906111b8565b90505b600554610ef890869061010090046001600160a01b03168561123f565b15610f3857600554610f3890869061010090046001600160a01b0316610f1e8680611beb565b86610f298180611a7d565b610f339190611beb565b611266565b949350505050565b6000610f4b306105e5565b601354909150600160a81b900460ff16158015610f7557506013546001600160a01b038481169116145b8015610f8a5750601354600160b01b900460ff165b8015610f995750600c54600d54115b8015610fbe57506001600160a01b03841660009081526003602052604090205460ff16155b8015610fe357506001600160a01b03831660009081526003602052604090205460ff16155b15610bc557601054811180156110105761101061100b84611006856011546112f8565b6112f8565b61130d565b61101947610c06565b5050505050565b811561108657306000908152600160205260409020546110409083611183565b30600081815260016020526040908190209290925590516001600160a01b03861690600080516020611c718339815191529061107d9086906119f6565b60405180910390a35b6001600160a01b0384166000908152600160205260409020546110a99082611141565b6001600160a01b0385166000908152600160205260409020556110ee6110cf8284611141565b6001600160a01b03851660009081526001602052604090205490611183565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611c718339815191526111268486611141565b60405161113391906119f6565b60405180910390a350505050565b600061042583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bcc565b6000806111908385611a7d565b9050838110156104255760405162461bcd60e51b8152600401610466906117c5565b3b151590565b6000826111c757506000610377565b60006111d38385611bcc565b9050826111e08583611a95565b146104255760405162461bcd60e51b8152600401610466906117fc565b600061042583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506114d3565b6000826001600160a01b0316846001600160a01b0316148015610f38575050151592915050565b6001600160a01b0384166000908152600160205260409020546112899083611141565b6001600160a01b0380861660009081526001602052604080822093909355908516815220546112b89082611183565b6001600160a01b038085166000818152600160205260409081902093909355915190861690600080516020611c71833981519152906111339085906119f6565b60008183116113075782610425565b50919050565b6013805460ff60a81b1916600160a81b1790558061132a576114c3565b601354600160a01b900460ff16611340576114c3565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061138357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156113d757600080fd5b505afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f919061151d565b8160018151811061143057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125461145691309116846109e2565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061148f9085906000908690309042906004016119ff565b600060405180830381600087803b1580156114a957600080fd5b505af11580156114bd573d6000803e3d6000fd5b50505050505b506013805460ff60a81b19169055565b600081836114f45760405162461bcd60e51b815260040161046691906116b6565b506000610bfd8486611a95565b600060208284031215611512578081fd5b813561042581611c33565b60006020828403121561152e578081fd5b815161042581611c33565b6000806040838503121561154b578081fd5b823561155681611c33565b9150602083013561156681611c33565b809150509250929050565b600080600060608486031215611585578081fd5b833561159081611c33565b925060208401356115a081611c33565b929592945050506040919091013590565b600080604083850312156115c3578182fd5b82356115ce81611c33565b946020939093013593505050565b6000602082840312156115ed578081fd5b81518015158114610425578182fd5b600080600060608486031215611610578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156116e2578581018301518582016040015282016116c6565b818111156116f35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526024908201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6040820152633bb2b21760e11b606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611a4e5784516001600160a01b031683529383019391830191600101611a29565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b60008219821115611a9057611a90611c1d565b500190565b600082611ab057634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611611ac75750611af2565b818704821115611ad957611ad9611c1d565b80861615611ae657918102915b9490941c938002611ab8565b94509492505050565b600061042560001960ff851684600082611b1757506001610425565b81611b2457506000610425565b8160018114611b3a5760028114611b4457611b71565b6001915050610425565b60ff841115611b5557611b55611c1d565b6001841b915084821115611b6b57611b6b611c1d565b50610425565b5060208310610133831016604e8410600b8410161715611ba4575081810a83811115611b9f57611b9f611c1d565b610425565b611bb18484846001611ab5565b808604821115611bc357611bc3611c1d565b02949350505050565b6000816000190483118215151615611be657611be6611c1d565b500290565b600082821015611bfd57611bfd611c1d565b500390565b6000600019821415611c1657611c16611c1d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114610d4c57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204471f95ff013791b490c6c947d674050189e607bcec7fc159631c6e26273306964736f6c63430008000033

Deployed Bytecode Sourcemap

3913:10963:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6244:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:186;;;;;;;;;;-1:-1:-1;7127:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5085:55::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6521:95::-;;;;;;;;;;;;;:::i;7321:446::-;;;;;;;;;;-1:-1:-1;7321:446:0;;;;;:::i;:::-;;:::i;6430:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;13729:490::-;;;;;;;;;;;;;:::i;:::-;;6624:119;;;;;;;;;;-1:-1:-1;6624:119:0;;;;;:::i;:::-;;:::i;1733:148::-;;;;;;;;;;;;;:::i;13102:213::-;;;;;;;;;;;;;:::i;4894:56::-;;;;;;;;;;;;;:::i;1519:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;4957:58::-;;;;;;;;;;;;;:::i;5844:392::-;;;;;;;;;;;;;:::i;6751:192::-;;;;;;;;;;-1:-1:-1;6751:192:0;;;;;:::i;:::-;;:::i;13626:95::-;;;;;;;;;;;;;:::i;5022:56::-;;;;;;;;;;;;;:::i;4250:40::-;;;;;;;;;;;;;:::i;6951:168::-;;;;;;;;;;-1:-1:-1;6951:168:0;;;;;:::i;:::-;;:::i;6244:83::-;6314:5;;;;;;;;;;;;-1:-1:-1;;;6314:5:0;;;;6244:83;:::o;7127:186::-;7227:4;7244:39;7253:12;:10;:12::i;:::-;7267:7;7276:6;7244:8;:39::i;:::-;-1:-1:-1;7301:4:0;7127:186;;;;;:::o;5085:55::-;;;;:::o;6521:95::-;6574:7;4766:15;4710:1;4766:2;:15;:::i;:::-;4753:28;;:10;:28;:::i;:::-;6594:14;;6521:95;:::o;7321:446::-;7453:4;7470:36;7480:6;7488:9;7499:6;7470:9;:36::i;:::-;7517:220;7540:6;7561:12;:10;:12::i;:::-;7588:138;7644:6;7588:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7588:19:0;;;;;;:11;:19;;;;;;7608:12;:10;:12::i;:::-;-1:-1:-1;;;;;7588:33:0;;;;;;;;;;;;-1:-1:-1;7588:33:0;;;:138;:37;:138::i;:::-;7517:8;:220::i;:::-;-1:-1:-1;7755:4:0;7321:446;;;;;;:::o;6430:83::-;4710:1;6430:83;:::o;13729:490::-;1656:12;:10;:12::i;:::-;1646:6;;-1:-1:-1;;;;;1646:6:0;;;:22;;;1638:67;;;;-1:-1:-1;;;1638:67:0;;;;;;;:::i;:::-;;;;;;;;;13788:11:::1;::::0;-1:-1:-1;;;13788:11:0;::::1;;;13787:12;13779:48;;;;-1:-1:-1::0;;;13779:48:0::1;;;;;;;:::i;:::-;13848:15;::::0;-1:-1:-1;;;;;13848:15:0::1;:31;13887:21;13932:4;13952:24;13932:4:::0;13952:9:::1;:24::i;:::-;13991:1;14007::::0;14023:7:::1;:5;:7::i;:::-;14045:15;13848:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14089:13:0::1;::::0;14120:15:::1;::::0;14082:71:::1;::::0;-1:-1:-1;;;14082:71:0;;-1:-1:-1;;;;;14089:13:0;;::::1;::::0;-1:-1:-1;14082:29:0::1;::::0;:71:::1;::::0;14120:15:::1;::::0;-1:-1:-1;;14138:14:0;14082:71:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14164:11:0::1;:18:::0;;-1:-1:-1;;;;;;;;14164:18:0;;::::1;-1:-1:-1::0;;;14164:18:0::1;14193;-1:-1:-1::0;;;14193:18:0::1;::::0;;13729:490::o;6624:119::-;-1:-1:-1;;;;;6717:18:0;6690:7;6717:18;;;:9;:18;;;;;;;6624:119::o;1733:148::-;1656:12;:10;:12::i;:::-;1646:6;;-1:-1:-1;;;;;1646:6:0;;;:22;;;1638:67;;;;-1:-1:-1;;;1638:67:0;;;;;;;:::i;:::-;1840:1:::1;1824:6:::0;;1803:40:::1;::::0;-1:-1:-1;;;;;1824:6:0;;::::1;::::0;1803:40:::1;::::0;1840:1;;1803:40:::1;1871:1;1854:19:::0;;-1:-1:-1;;;;;;1854:19:0::1;::::0;;1733:148::o;13102:213::-;1656:12;:10;:12::i;:::-;1646:6;;-1:-1:-1;;;;;1646:6:0;;;:22;;;1638:67;;;;-1:-1:-1;;;1638:67:0;;;;;;;:::i;:::-;-1:-1:-1;;13156:12:0::1;:26:::0;;;13193:14:::1;:28:::0;;;13232:20:::1;:28:::0;;-1:-1:-1;;13232:28:0::1;::::0;;13276:31:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;13102:213::o:0;4894:56::-;;;;:::o;1519:79::-;1557:7;1584:6;-1:-1:-1;;;;;1584:6:0;1519:79;:::o;4957:58::-;;;;:::o;5844:392::-;1656:12;:10;:12::i;:::-;1646:6;;-1:-1:-1;;;;;1646:6:0;;;:22;;;1638:67;;;;-1:-1:-1;;;1638:67:0;;;;;;;:::i;:::-;5897:15:::1;:104:::0;;-1:-1:-1;;;;;;5897:104:0::1;5948:42;5897:104;::::0;;;;6012:58:::1;::::0;6029:4:::1;::::0;-1:-1:-1;;;;;6044:15:0::1;4766;4710:1;4766:2;:15;:::i;:::-;4753:28;::::0;:10:::1;:28;:::i;6012:58::-;6115:15;;;;;;;;;-1:-1:-1::0;;;;;6115:15:0::1;-1:-1:-1::0;;;;;6115:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6097:55:0::1;;6175:4;6195:15;;;;;;;;;-1:-1:-1::0;;;;;6195:15:0::1;-1:-1:-1::0;;;;;6195:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6097:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6081:13;:147:::0;;-1:-1:-1;;;;;;6081:147:0::1;-1:-1:-1::0;;;;;6081:147:0;;;::::1;::::0;;;::::1;::::0;;5844:392::o;6751:192::-;6854:4;6871:42;6881:12;:10;:12::i;:::-;6895:9;6906:6;6871:9;:42::i;13626:95::-;1656:12;:10;:12::i;:::-;1646:6;;-1:-1:-1;;;;;1646:6:0;;;:22;;;1638:67;;;;-1:-1:-1;;;1638:67:0;;;;;;;:::i;:::-;13678:35:::1;13691:21;13678:12;:35::i;:::-;13626:95::o:0;5022:56::-;;;;:::o;4250:40::-;;;;;;:::o;6951:168::-;-1:-1:-1;;;;;7084:18:0;;;7057:7;7084:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6951:168::o;277:98::-;357:10;277:98;:::o;7775:335::-;-1:-1:-1;;;;;7868:19:0;;7860:68;;;;-1:-1:-1;;;7860:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7947:21:0;;7939:68;;;;-1:-1:-1;;;7939:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8018:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;8070:32;;;;;8048:6;;8070:32;:::i;:::-;;;;;;;;7775:335;;;:::o;10304:862::-;-1:-1:-1;;;;;10397:18:0;;10389:68;;;;-1:-1:-1;;;10389:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10476:16:0;;10468:64;;;;-1:-1:-1;;;10468:64:0;;;;;;;:::i;:::-;10565:1;10551:11;:15;10543:69;;;;-1:-1:-1;;;10543:69:0;;;;;;;:::i;:::-;10630:11;;-1:-1:-1;;;10630:11:0;;;;10629:12;;:22;;-1:-1:-1;10645:6:0;;-1:-1:-1;;;10645:6:0;;;;10629:22;10625:113;;;10668:37;10683:4;10689:2;10693:11;10668:14;:37::i;:::-;10720:7;;10625:113;10750:17;10794:7;:5;:7::i;:::-;-1:-1:-1;;;;;10786:15:0;:4;-1:-1:-1;;;;;10786:15:0;;;:32;;;;;10811:7;:5;:7::i;:::-;-1:-1:-1;;;;;10805:13:0;:2;-1:-1:-1;;;;;10805:13:0;;;10786:32;10782:316;;;10841:20;;;;10837:79;;;10882:18;10897:2;10882:14;:18::i;:::-;10932:35;10945:4;10951:2;10955:11;10932:12;:35::i;:::-;10999:33;11010:4;11016:2;11020:11;10999:10;:33::i;:::-;10987:45;;11049:37;11064:4;11070:2;11074:11;11049:14;:37::i;:::-;11110:48;11125:4;11131:2;11135:9;11146:11;11110:14;:48::i;:::-;10304:862;;;;;:::o;3057:224::-;3177:7;3213:12;3205:6;;;;3197:29;;;;-1:-1:-1;;;3197:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3237:9:0;3249:5;3253:1;3249;:5;:::i;:::-;3237:17;3057:224;-1:-1:-1;;;;;3057:224:0:o;13323:92::-;13380:10;;:27;;:10;;;;-1:-1:-1;;;;;13380:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;;;13323:92;:::o;8118:253::-;-1:-1:-1;;;;;8227:15:0;;;;;;:9;:15;;;;;;:32;;8247:11;8227:19;:32::i;:::-;-1:-1:-1;;;;;8209:15:0;;;;;;;:9;:15;;;;;;:50;;;;8286:13;;;;;;;:30;;8304:11;8286:17;:30::i;:::-;-1:-1:-1;;;;;8270:13:0;;;;;;;:9;:13;;;;;;;:46;;;;8332:31;;;;;;-1:-1:-1;;;;;;;;;;;8332:31:0;;;8351:11;;8332:31;:::i;8694:416::-;8782:15;;-1:-1:-1;;;;;8768:30:0;;;8782:15;;8768:30;;;;:75;;-1:-1:-1;8829:13:0;;-1:-1:-1;;;;;8815:28:0;;;8829:13;;8815:28;;8768:75;8750:353;;;8925:9;8896:39;;;;:28;:39;;;;;;8938:12;-1:-1:-1;8870:152:0;;;;-1:-1:-1;;;8870:152:0;;;;;;;:::i;:::-;9066:9;9037:39;;;;:28;:39;;;;;9079:12;9037:54;;8750:353;8694:416;:::o;9118:609::-;9233:13;;-1:-1:-1;;;;;9225:21:0;;;9233:13;;9225:21;:68;;;;-1:-1:-1;9277:15:0;;-1:-1:-1;;;;;9263:30:0;;;9277:15;;9263:30;;9225:68;:108;;;;-1:-1:-1;;;;;;9311:22:0;;;;;;:18;:22;;;;;;;;9310:23;9225:108;9207:513;;;9383:12;;9368:11;:27;;9360:65;;;;-1:-1:-1;;;9360:65:0;;;;;;;:::i;:::-;9497:14;;9482:11;9466:13;9476:2;9466:9;:13::i;:::-;:27;;;;:::i;:::-;:45;;9440:133;;;;-1:-1:-1;;;9440:133:0;;;;;;;:::i;:::-;9604:18;;9592:9;;:30;9588:95;;;9652:14;9663:2;9652:10;:14::i;:::-;9651:15;9643:24;;;;;;9697:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9118:609;;;:::o;12051:928::-;12134:7;12155:17;12175:189;12360:3;12175:166;12236:15;;12224:9;;:27;12223:103;;12312:14;;12223:103;;;12276:12;;12223:103;12175:11;;:29;:166::i;:::-;:184;;:189::i;:::-;12387:13;;12155:209;;-1:-1:-1;;;;;;12381:19:0;;;12387:13;;12381:19;:44;;;;-1:-1:-1;;;;;;12404:21:0;;12420:4;12404:21;;12381:44;12377:385;;;12465:12;;12450:11;:27;;12442:65;;;;-1:-1:-1;;;12442:65:0;;;;;;;:::i;:::-;12534:216;12746:3;12534:189;12603:16;;12591:9;;:28;12590:114;;12689:15;;12590:114;;;12648:13;;12534:11;;:33;:189::i;:216::-;12522:228;;12377:385;12801:10;;12777:48;;12795:4;;12801:10;;;-1:-1:-1;;;;;12801:10:0;12813:11;12777:17;:48::i;:::-;12774:168;;;12863:10;;12841:101;;12857:4;;12863:10;;;-1:-1:-1;;;;;12863:10:0;12875:25;12889:11;;12875:25;:::i;:::-;12930:11;12902:25;12930:11;;12902:25;:::i;:::-;:39;;;;:::i;:::-;12841:15;:101::i;:::-;12962:9;12051:928;-1:-1:-1;;;;12051:928:0:o;11178:703::-;11269:28;11300:24;11318:4;11300:9;:24::i;:::-;11354:6;;11269:55;;-1:-1:-1;;;;11354:6:0;;;;11353:7;:43;;;;-1:-1:-1;11383:13:0;;-1:-1:-1;;;;;11377:19:0;;;11383:13;;11377:19;11353:43;:71;;;;-1:-1:-1;11413:11:0;;-1:-1:-1;;;11413:11:0;;;;11353:71;:118;;;;;11453:18;;11441:9;;:30;11353:118;:160;;;;-1:-1:-1;;;;;;11489:24:0;;;;;;:18;:24;;;;;;;;11488:25;11353:160;:200;;;;-1:-1:-1;;;;;;11531:22:0;;;;;;:18;:22;;;;;;;;11530:23;11353:200;11335:539;;;11618:17;;11595:40;;11650:161;;;;11681:114;11720:56;11724:11;11737:38;11741:20;11763:11;;11737:3;:38::i;:::-;11720:3;:56::i;:::-;11681:16;:114::i;:::-;11827:35;11840:21;11827:12;:35::i;:::-;11335:539;11178:703;;;;:::o;9735:561::-;9892:13;;9888:204;;9967:4;9949:24;;;;:9;:24;;;;;;:71;;9996:9;9949:28;:71::i;:::-;9940:4;9922:24;;;;:9;:24;;;;;;;:98;;;;10040:40;;-1:-1:-1;;;;;10040:40:0;;;-1:-1:-1;;;;;;;;;;;10040:40:0;;;10070:9;;10040:40;:::i;:::-;;;;;;;;9888:204;-1:-1:-1;;;;;10122:15:0;;;;;;:9;:15;;;;;;:32;;10142:11;10122:19;:32::i;:::-;-1:-1:-1;;;;;10104:15:0;;;;;;:9;:15;;;;;:50;10181:45;10199:26;:11;10215:9;10199:15;:26::i;:::-;-1:-1:-1;;;;;10181:13:0;;;;;;:9;:13;;;;;;;:17;:45::i;:::-;-1:-1:-1;;;;;10165:13:0;;;;;;;:9;:13;;;;;:61;;;;10242:46;;-1:-1:-1;;;;;;;;;;;10261:26:0;:11;10277:9;10261:15;:26::i;:::-;10242:46;;;;;;:::i;:::-;;;;;;;;9735:561;;;;:::o;2913:136::-;2971:7;2998:43;3002:1;3005;2998:43;;;;;;;;;;;;;;;;;:3;:43::i;2726:179::-;2784:7;;2816:5;2820:1;2816;:5;:::i;:::-;2804:17;;2845:1;2840;:6;;2832:46;;;;-1:-1:-1;;;2832:46:0;;;;;;;:::i;13423:195::-;13554:20;13602:8;;;13423:195::o;3289:246::-;3347:7;3371:6;3367:47;;-1:-1:-1;3401:1:0;3394:8;;3367:47;3424:9;3436:5;3440:1;3436;:5;:::i;:::-;3424:17;-1:-1:-1;3469:1:0;3460:5;3464:1;3424:17;3460:5;:::i;:::-;:10;3452:56;;;;-1:-1:-1;;;3452:56:0;;;;;;;:::i;3543:132::-;3601:7;3628:39;3632:1;3635;3628:39;;;;;;;;;;;;;;;;;:3;:39::i;11889:154::-;11983:4;12016:5;-1:-1:-1;;;;;12007:14:0;:5;-1:-1:-1;;;;;12007:14:0;;:28;;;;-1:-1:-1;;12025:10:0;;;12000:35;-1:-1:-1;;11889:154:0:o;8379:307::-;-1:-1:-1;;;;;8520:17:0;;;;;;:9;:17;;;;;;:33;;8542:10;8520:21;:33::i;:::-;-1:-1:-1;;;;;8500:17:0;;;;;;;:9;:17;;;;;;:53;;;;8585:18;;;;;;;:37;;8608:13;8585:22;:37::i;:::-;-1:-1:-1;;;;;8564:18:0;;;;;;;:9;:18;;;;;;;:58;;;;8638:40;;;;;;-1:-1:-1;;;;;;;;;;;8638:40:0;;;8664:13;;8638:40;:::i;12987:107::-;13044:7;13076:1;13072;:5;13071:15;;13085:1;13071:15;;;-1:-1:-1;13081:1:0;12987:107;-1:-1:-1;12987:107:0:o;14264:609::-;5424:6;:13;;-1:-1:-1;;;;5424:13:0;-1:-1:-1;;;5424:13:0;;;14346:16;14342:55:::1;;14379:7;;14342:55;14412:11;::::0;-1:-1:-1;;;14412:11:0;::::1;;;14407:51;;14440:7;;14407:51;14492:16;::::0;;14506:1:::1;14492:16:::0;;;;;::::1;::::0;;14468:21:::1;::::0;14492:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14492:16:0::1;14468:40;;14537:4;14519;14524:1;14519:7;;;;;;-1:-1:-1::0;;;14519:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14519:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14563:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;14563:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;14519:7;;14563:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14553:4;14558:1;14553:7;;;;;;-1:-1:-1::0;;;14553:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;14553:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;14628:15:::1;::::0;14596:62:::1;::::0;14613:4:::1;::::0;14628:15:::1;14646:11:::0;14596:8:::1;:62::i;:::-;14669:15;::::0;:196:::1;::::0;-1:-1:-1;;;14669:196:0;;-1:-1:-1;;;;;14669:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;14750:11;;14669:15:::1;::::0;14792:4;;14819::::1;::::0;14839:15:::1;::::0;14669:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5448:1;;-1:-1:-1::0;5460:6:0;:14;;-1:-1:-1;;;;5460:14:0;;;14264:609::o;3683:223::-;3803:7;3838:12;3831:5;3823:28;;;;-1:-1:-1;;;3823:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3862:9:0;3874:5;3878:1;3874;:5;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:297::-;;1880:2;1868:9;1859:7;1855:23;1851:32;1848:2;;;1901:6;1893;1886:22;1848:2;1938:9;1932:16;1991:5;1984:13;1977:21;1970:5;1967:32;1957:2;;2018:6;2010;2003:22;2062:316;;;;2219:2;2207:9;2198:7;2194:23;2190:32;2187:2;;;2240:6;2232;2225:22;2187:2;2274:9;2268:16;2258:26;;2324:2;2313:9;2309:18;2303:25;2293:35;;2368:2;2357:9;2353:18;2347:25;2337:35;;2177:201;;;;;:::o;2383:203::-;-1:-1:-1;;;;;2547:32:1;;;;2529:51;;2517:2;2502:18;;2484:102::o;2591:304::-;-1:-1:-1;;;;;2821:15:1;;;2803:34;;2873:15;;2868:2;2853:18;;2846:43;2753:2;2738:18;;2720:175::o;2900:274::-;-1:-1:-1;;;;;3092:32:1;;;;3074:51;;3156:2;3141:18;;3134:34;3062:2;3047:18;;3029:145::o;3179:607::-;-1:-1:-1;;;;;3538:15:1;;;3520:34;;3585:2;3570:18;;3563:34;;;;3628:2;3613:18;;3606:34;;;;3671:2;3656:18;;3649:34;;;;3720:15;;;3714:3;3699:19;;3692:44;3500:3;3752:19;;3745:35;;;;3469:3;3454:19;;3436:350::o;3791:187::-;3956:14;;3949:22;3931:41;;3919:2;3904:18;;3886:92::o;3983:603::-;;4124:2;4153;4142:9;4135:21;4185:6;4179:13;4228:6;4223:2;4212:9;4208:18;4201:34;4253:4;4266:140;4280:6;4277:1;4274:13;4266:140;;;4375:14;;;4371:23;;4365:30;4341:17;;;4360:2;4337:26;4330:66;4295:10;;4266:140;;;4424:6;4421:1;4418:13;4415:2;;;4494:4;4489:2;4480:6;4469:9;4465:22;4461:31;4454:45;4415:2;-1:-1:-1;4570:2:1;4549:15;-1:-1:-1;;4545:29:1;4530:45;;;;4577:2;4526:54;;4104:482;-1:-1:-1;;;4104:482:1:o;4591:399::-;4793:2;4775:21;;;4832:2;4812:18;;;4805:30;4871:34;4866:2;4851:18;;4844:62;-1:-1:-1;;;4937:2:1;4922:18;;4915:33;4980:3;4965:19;;4765:225::o;4995:349::-;5197:2;5179:21;;;5236:2;5216:18;;;5209:30;5275:27;5270:2;5255:18;;5248:55;5335:2;5320:18;;5169:175::o;5349:398::-;5551:2;5533:21;;;5590:2;5570:18;;;5563:30;5629:34;5624:2;5609:18;;5602:62;-1:-1:-1;;;5695:2:1;5680:18;;5673:32;5737:3;5722:19;;5523:224::o;5752:351::-;5954:2;5936:21;;;5993:2;5973:18;;;5966:30;6032:29;6027:2;6012:18;;6005:57;6094:2;6079:18;;5926:177::o;6108:397::-;6310:2;6292:21;;;6349:2;6329:18;;;6322:30;6388:34;6383:2;6368:18;;6361:62;-1:-1:-1;;;6454:2:1;6439:18;;6432:31;6495:3;6480:19;;6282:223::o;6510:356::-;6712:2;6694:21;;;6731:18;;;6724:30;6790:34;6785:2;6770:18;;6763:62;6857:2;6842:18;;6684:182::o;6871:405::-;7073:2;7055:21;;;7112:2;7092:18;;;7085:30;7151:34;7146:2;7131:18;;7124:62;-1:-1:-1;;;7217:2:1;7202:18;;7195:39;7266:3;7251:19;;7045:231::o;7281:401::-;7483:2;7465:21;;;7522:2;7502:18;;;7495:30;7561:34;7556:2;7541:18;;7534:62;-1:-1:-1;;;7627:2:1;7612:18;;7605:35;7672:3;7657:19;;7455:227::o;7687:350::-;7889:2;7871:21;;;7928:2;7908:18;;;7901:30;7967:28;7962:2;7947:18;;7940:56;8028:2;8013:18;;7861:176::o;8042:400::-;8244:2;8226:21;;;8283:2;8263:18;;;8256:30;8322:34;8317:2;8302:18;;8295:62;-1:-1:-1;;;8388:2:1;8373:18;;8366:34;8432:3;8417:19;;8216:226::o;8447:347::-;8649:2;8631:21;;;8688:2;8668:18;;;8661:30;8727:25;8722:2;8707:18;;8700:53;8785:2;8770:18;;8621:173::o;8799:400::-;9001:2;8983:21;;;9040:2;9020:18;;;9013:30;9079:34;9074:2;9059:18;;9052:62;-1:-1:-1;;;9145:2:1;9130:18;;9123:34;9189:3;9174:19;;8973:226::o;9204:177::-;9350:25;;;9338:2;9323:18;;9305:76::o;9386:983::-;;9696:3;9685:9;9681:19;9727:6;9716:9;9709:25;9753:2;9791:6;9786:2;9775:9;9771:18;9764:34;9834:3;9829:2;9818:9;9814:18;9807:31;9858:6;9893;9887:13;9924:6;9916;9909:22;9962:3;9951:9;9947:19;9940:26;;10001:2;9993:6;9989:15;9975:29;;10022:4;10035:195;10049:6;10046:1;10043:13;10035:195;;;10114:13;;-1:-1:-1;;;;;10110:39:1;10098:52;;10205:15;;;;10170:12;;;;10146:1;10064:9;10035:195;;;-1:-1:-1;;;;;;;10286:32:1;;;;10281:2;10266:18;;10259:60;-1:-1:-1;;;10350:3:1;10335:19;10328:35;10247:3;9657:712;-1:-1:-1;;;9657:712:1:o;10374:184::-;10546:4;10534:17;;;;10516:36;;10504:2;10489:18;;10471:87::o;10563:128::-;;10634:1;10630:6;10627:1;10624:13;10621:2;;;10640:18;;:::i;:::-;-1:-1:-1;10676:9:1;;10611:80::o;10696:217::-;;10762:1;10752:2;;-1:-1:-1;;;10787:31:1;;10841:4;10838:1;10831:15;10869:4;10794:1;10859:15;10752:2;-1:-1:-1;10898:9:1;;10742:171::o;10918:453::-;11014:6;11037:5;11051:314;11100:1;11137:2;11127:8;11124:16;11114:2;;11144:5;;;11114:2;11185:4;11180:3;11176:14;11170:4;11167:24;11164:2;;;11194:18;;:::i;:::-;11244:2;11234:8;11230:17;11227:2;;;11259:16;;;;11227:2;11338:17;;;;;11298:15;;11051:314;;;10995:376;;;;;;;:::o;11376:148::-;;11463:55;-1:-1:-1;;11504:4:1;11490:19;;11484:4;11529:922;11613:8;11603:2;;-1:-1:-1;11654:1:1;11668:5;;11603:2;11702:4;11692:2;;-1:-1:-1;11739:1:1;11753:5;;11692:2;11784:4;11802:1;11797:59;;;;11870:1;11865:183;;;;11777:271;;11797:59;11827:1;11818:10;;11841:5;;;11865:183;11902:3;11892:8;11889:17;11886:2;;;11909:18;;:::i;:::-;11965:1;11955:8;11951:16;11942:25;;11993:3;11986:5;11983:14;11980:2;;;12000:18;;:::i;:::-;12033:5;;;11777:271;;12132:2;12122:8;12119:16;12113:3;12107:4;12104:13;12100:36;12094:2;12084:8;12081:16;12076:2;12070:4;12067:12;12063:35;12060:77;12057:2;;;-1:-1:-1;12169:19:1;;;12204:14;;;12201:2;;;12221:18;;:::i;:::-;12254:5;;12057:2;12301:42;12339:3;12329:8;12323:4;12320:1;12301:42;:::i;:::-;12376:6;12371:3;12367:16;12358:7;12355:29;12352:2;;;12387:18;;:::i;:::-;12425:20;;11593:858;-1:-1:-1;;;;11593:858:1:o;12456:168::-;;12562:1;12558;12554:6;12550:14;12547:1;12544:21;12539:1;12532:9;12525:17;12521:45;12518:2;;;12569:18;;:::i;:::-;-1:-1:-1;12609:9:1;;12508:116::o;12629:125::-;;12697:1;12694;12691:8;12688:2;;;12702:18;;:::i;:::-;-1:-1:-1;12739:9:1;;12678:76::o;12759:135::-;;-1:-1:-1;;12819:17:1;;12816:2;;;12839:18;;:::i;:::-;-1:-1:-1;12886:1:1;12875:13;;12806:88::o;12899:127::-;12960:10;12955:3;12951:20;12948:1;12941:31;12991:4;12988:1;12981:15;13015:4;13012:1;13005:15;13031:133;-1:-1:-1;;;;;13108:31:1;;13098:42;;13088:2;;13154:1;13151;13144:12

Swarm Source

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