ETH Price: $3,328.41 (-3.93%)

Token

OrdiZK (OZK)
 

Overview

Max Total Supply

1,000,000,000 OZK

Holders

2,772

Market

Price

$0.00 @ 0.000000 ETH

Onchain Market Cap

$28,960.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
7,564.523081515 OZK

Value
$0.22 ( ~6.60976216136597E-05 Eth) [0.0008%]
0xB71B91b004CAC3d8cbA99E185B94e87d3Ed0daf3
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

$OZK, the native token of OrdiZK, stands as a key to enhanced privacy and security within the dynamic BRC-20 ecosystem.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
OrdiZK

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-08
*/

/*
    https://ordizk.io
    https://ordizk.gitbook.io
    https://x.com/OrdiZK_
    https://t.me/ordizk
    https://t.me/ordizk_bridge_bot
*/


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

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 {
    error NotOwner();

    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        if (_owner != msg.sender) revert NotOwner();
        _;
    }

    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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract OrdiZK is IERC20, Ownable {
    error TradingAlreadyOpen();
    error ZeroAddress();
    error ZeroAmount();
    error ZeroValue();
    error ZeroToken();
    error TaxTooHigh();
    error NotSelf();
    error Unauthorized();

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromLimits;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    address payable private _taxWallet;
    uint256 private _firstBlock;

    uint256 private _initialBuyTax = 30;
    uint256 private _initialSellTax = 45;
    uint256 private _finalBuyTax = 5;
    uint256 private _finalSellTax = 5;
    uint256 private _reduceBuyTaxAt = 24;
    uint256 private _reduceSellTaxAt = 30;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _DECIMALS = 9;
    uint256 private constant _TOTAL = 1000000000 * 10 ** _DECIMALS;
    string private constant _NAME = unicode"OrdiZK";
    string private constant _SYMBOL = unicode"OZK";
    uint256 public maxTx = 20000000 * 10 ** _DECIMALS;
    uint256 public maxWallet = 20000000 * 10 ** _DECIMALS;
    uint256 public swapThreshold = 10000000 * 10 ** _DECIMALS;
    uint256 public maxTaxSwap = 10000000 * 10 ** _DECIMALS;

    IUniswapV2Router02 private constant _UNISWAP_V2_ROUTER =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private _uniswapV2Pair;
    bool public lpAdded;
    bool private _inSwap = false;
    bool private _swapEnabled = false;

    event MaxTxAmountUpdated(uint256 maxTx);

    constructor() {
        _taxWallet = payable(msg.sender);
        _balances[msg.sender] = _TOTAL;

        _isExcludedFromLimits[tx.origin] = true;
        _isExcludedFromLimits[address(0)] = true;
        _isExcludedFromLimits[address(0xdead)] = true;
        _isExcludedFromLimits[address(this)] = true;
        _isExcludedFromLimits[address(_UNISWAP_V2_ROUTER)] = true;

        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[tx.origin] = true;

        emit Transfer(address(0), msg.sender, _TOTAL);
    }

    receive() external payable {}

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        _transfer(sender, recipient, amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        if (owner == address(0)) revert ZeroAddress();
        if (spender == address(0)) revert ZeroAddress();
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        if (from == address(0)) revert ZeroAddress();
        if (to == address(0)) revert ZeroAddress();
        if (amount == 0) revert ZeroAmount();

        require(!bots[from] && !bots[to], "shoo");

        if (maxWallet != _TOTAL && !_isExcludedFromLimits[to]) {
            require(balanceOf(to) + amount <= maxWallet, "Exceeds maxWalletSize");
        }

        if (maxTx != _TOTAL && !_isExcludedFromLimits[from]) {
            require(amount <= maxTx, "Exceeds maxTx");
        }

        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !_inSwap && contractTokenBalance >= swapThreshold && _swapEnabled && _buyCount > _preventSwapBefore
                && to == _uniswapV2Pair && !_isExcludedFromFee[from]
        ) {
            _swapTokensForEth(_min(amount, _min(contractTokenBalance, maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                _sendETHToFee(contractETHBalance);
            }
        }

        uint256 taxAmount = 0;
        if (!_inSwap && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            // sell
            if (to == _uniswapV2Pair) {
                taxAmount = (amount * ((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax)) / 100;
            }
            // buy
            else if (from == _uniswapV2Pair) {
                if (_firstBlock + 25 > block.number) {
                    require(!_isContract(to), "contract");
                }
                taxAmount = (amount * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)) / 100;
                ++_buyCount;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);
    }

    function removeLimits() external onlyOwner {
        maxTx = _TOTAL;
        maxWallet = _TOTAL;
        emit MaxTxAmountUpdated(_TOTAL);
    }

    function setBots(address[] memory bots_, bool isBot_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = isBot_;
        }
    }

    function openTrading(uint256 amount) external payable onlyOwner {
        if (lpAdded) revert TradingAlreadyOpen();
        if (msg.value == 0) revert ZeroValue();
        if (amount == 0) revert ZeroToken();
        _transfer(msg.sender, address(this), amount);
        _approve(address(this), address(_UNISWAP_V2_ROUTER), _TOTAL);

        _uniswapV2Pair =
            IUniswapV2Factory(_UNISWAP_V2_ROUTER.factory()).createPair(address(this), _UNISWAP_V2_ROUTER.WETH());
        _isExcludedFromLimits[_uniswapV2Pair] = true;

        _UNISWAP_V2_ROUTER.addLiquidityETH{value: address(this).balance}(
            address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp
        );
        IERC20(_uniswapV2Pair).approve(address(_UNISWAP_V2_ROUTER), type(uint256).max);
        _swapEnabled = true;
        lpAdded = true;
        _firstBlock = block.number;
    }

    function lowerTaxes(uint256 buyTax_, uint256 sellTax_) external onlyOwner {
        if (buyTax_ > _finalBuyTax) { revert TaxTooHigh(); }
        if (sellTax_ > _finalSellTax) { revert TaxTooHigh(); }

        _finalBuyTax = buyTax_;
        _finalSellTax = sellTax_;
    }

    function clearStuck() external {
        (bool success,) = _taxWallet.call{value: address(this).balance}("");
        require(success);
    }

    function clearStuckSelf() external {
        if (msg.sender != _taxWallet) { revert Unauthorized(); }
        _transfer(address(this), _taxWallet, balanceOf(address(this)));
    }

    function clearStuckToken(address token) external {
        if (token == address(this)) { revert NotSelf(); }
        IERC20(token).transfer(_taxWallet, IERC20(token).balanceOf(address(this)));
    }

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

    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 {
        _inSwap = true;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _UNISWAP_V2_ROUTER.WETH();
        _approve(address(this), address(_UNISWAP_V2_ROUTER), tokenAmount);
        _UNISWAP_V2_ROUTER.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount, 0, path, address(this), block.timestamp
        );
        _inSwap = false;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NotSelf","type":"error"},{"inputs":[],"name":"TaxTooHigh","type":"error"},{"inputs":[],"name":"TradingAlreadyOpen","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"inputs":[],"name":"ZeroAmount","type":"error"},{"inputs":[],"name":"ZeroToken","type":"error"},{"inputs":[],"name":"ZeroValue","type":"error"},{"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":"maxTx","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":[{"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":"clearStuck","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckSelf","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"clearStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax_","type":"uint256"},{"internalType":"uint256","name":"sellTax_","type":"uint256"}],"name":"lowerTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lpAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"isBot_","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"}]

6080604052601e600855602d6009556005600a556005600b556018600c55601e600d556014600e555f600f556009600a6200003b919062000374565b6200004b906301312d006200038b565b6010556200005c6009600a62000374565b6200006c906301312d006200038b565b6011556200007d6009600a62000374565b6200008c90629896806200038b565b6012556200009d6009600a62000374565b620000ac90629896806200038b565b6013556014805461ffff60a81b19169055348015620000c9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600680546001600160a01b031916331790556200012a6009600a62000374565b6200013a90633b9aca006200038b565b335f818152600160208181526040808420959095553280845260038252858420805460ff1990811685179091557f3617319a054d772f909f7c479a2cebe5066e836a939412e32403c99029b92eff80548216851790557f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c805482168517905530855286852080548216851790557ffb19a963956c9cb662dd3ae48988c4b90766df71ea130109840abe0a1b23dba88054821685179055600490925285842080548316841790558352938220805490941617909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200023e6009600a62000374565b6200024e90633b9aca006200038b565b60405190815260200160405180910390a3620003a5565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002b957815f19048211156200029d576200029d62000265565b80851615620002ab57918102915b93841c93908002906200027e565b509250929050565b5f82620002d1575060016200036e565b81620002df57505f6200036e565b8160018114620002f85760028114620003035762000323565b60019150506200036e565b60ff84111562000317576200031762000265565b50506001821b6200036e565b5060208310610133831016604e8410600b841016171562000348575081810a6200036e565b62000354838362000279565b805f19048211156200036a576200036a62000265565b0290505b92915050565b5f6200038460ff841683620002c1565b9392505050565b80820281158282048414176200036e576200036e62000265565b6119fb80620003b35f395ff3fe60806040526004361061014a575f3560e01c80637437681e116100b35780639c0db5f31161006d5780639c0db5f3146103a7578063a9059cbb146103c6578063af8deddb146103e5578063d163364914610405578063dd62ed3e14610418578063f8b45b051461045c575f80fd5b80637437681e146102fa578063751039fc1461030f5780638da5cb5b146103235780638de5c0641461034957806395d89b411461035d5780639be953b314610388575f80fd5b80633bbac579116101045780633bbac5791461023157806357d0a9821461026857806362997f8c146102895780636481f2011461029e57806370a08231146102b2578063715018a6146102e6575f80fd5b80630445b6671461015557806306fdde031461017d578063095ea7b3146101b457806318160ddd146101e357806323b872dd146101f7578063313ce56714610216575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60125481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b506040805180820190915260068152654f7264695a4b60d01b60208201525b60405161017491906114f3565b3480156101bf575f80fd5b506101d36101ce366004611563565b610471565b6040519015158152602001610174565b3480156101ee575f80fd5b5061016a610487565b348015610202575f80fd5b506101d361021136600461158d565b6104a7565b348015610221575f80fd5b5060405160098152602001610174565b34801561023c575f80fd5b506101d361024b3660046115cb565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610273575f80fd5b506102876102823660046115e6565b6104f5565b005b348015610294575f80fd5b5061016a60135481565b3480156102a9575f80fd5b50610287610570565b3480156102bd575f80fd5b5061016a6102cc3660046115cb565b6001600160a01b03165f9081526001602052604090205490565b3480156102f1575f80fd5b506102876105c1565b348015610305575f80fd5b5061016a60105481565b34801561031a575f80fd5b50610287610633565b34801561032e575f80fd5b505f546040516001600160a01b039091168152602001610174565b348015610354575f80fd5b506102876106e5565b348015610368575f80fd5b506040805180820190915260038152624f5a4b60e81b60208201526101a7565b348015610393575f80fd5b506102876103a23660046115cb565b610744565b3480156103b2575f80fd5b506102876103c1366004611632565b610852565b3480156103d1575f80fd5b506101d36103e0366004611563565b6108db565b3480156103f0575f80fd5b506014546101d390600160a01b900460ff1681565b610287610413366004611704565b6108e7565b348015610423575f80fd5b5061016a61043236600461171b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610467575f80fd5b5061016a60115481565b5f61047d338484610cd7565b5060015b92915050565b5f6104946009600a611846565b6104a290633b9aca00611854565b905090565b6001600160a01b0383165f9081526002602090815260408083203380855292528220546104e09186916104db90869061186b565b610cd7565b6104eb848484610d85565b5060019392505050565b5f546001600160a01b0316331461051f576040516330cd747160e01b815260040160405180910390fd5b600a5482111561054257604051632bc7b84d60e21b815260040160405180910390fd5b600b5481111561056557604051632bc7b84d60e21b815260040160405180910390fd5b600a91909155600b55565b6006546001600160a01b0316331461059a576040516282b42960e81b815260040160405180910390fd5b600654305f818152600160205260409020546105bf926001600160a01b031690610d85565b565b5f546001600160a01b031633146105eb576040516330cd747160e01b815260040160405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461065d576040516330cd747160e01b815260040160405180910390fd5b6106696009600a611846565b61067790633b9aca00611854565b6010556106866009600a611846565b61069490633b9aca00611854565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106c46009600a611846565b6106d290633b9aca00611854565b60405190815260200160405180910390a1565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f811461072f576040519150601f19603f3d011682016040523d82523d5f602084013e610734565b606091505b5050905080610741575f80fd5b50565b306001600160a01b0382160361076d576040516314e1dbf760e11b815260040160405180910390fd5b6006546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e2919061187e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084e9190611895565b5050565b5f546001600160a01b0316331461087c576040516330cd747160e01b815260040160405180910390fd5b5f5b82518110156108d6578160055f85848151811061089d5761089d6118b0565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161087e565b505050565b5f61047d338484610d85565b5f546001600160a01b03163314610911576040516330cd747160e01b815260040160405180910390fd5b601454600160a01b900460ff161561093c5760405163250856ab60e21b815260040160405180910390fd5b345f0361095c57604051637c946ed760e01b815260040160405180910390fd5b805f0361097c5760405163ad1991f560e01b815260040160405180910390fd5b610987333083610d85565b6109ba30737a250d5630b4cf539739df2c5dacb4c659f2488d6109ac6009600a611846565b6104db90633b9aca00611854565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e91906118c4565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab191906118c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1f91906118c4565b601480546001600160a01b03929092166001600160a01b0319909216821790555f908152600360205260409020805460ff19166001179055737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7194730610b91816001600160a01b03165f9081526001602052604090205490565b5f80610ba45f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c2f91906118df565b505060145460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610c94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb89190611895565b50506014805462ff00ff60a01b19166201000160a01b17905543600755565b6001600160a01b038316610cfe5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216610d255760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dac5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216610dd35760405163d92e233d60e01b815260040160405180910390fd5b805f03610df357604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f9081526005602052604090205460ff16158015610e3357506001600160a01b0382165f9081526005602052604090205460ff16155b610e715760405162461bcd60e51b8152600401610e689060208082526004908201526373686f6f60e01b604082015260600190565b60405180910390fd5b610e7d6009600a611846565b610e8b90633b9aca00611854565b60115414158015610eb457506001600160a01b0382165f9081526003602052604090205460ff16155b15610f2b5760115481610edb846001600160a01b03165f9081526001602052604090205490565b610ee5919061190a565b1115610f2b5760405162461bcd60e51b815260206004820152601560248201527445786365656473206d617857616c6c657453697a6560581b6044820152606401610e68565b610f376009600a611846565b610f4590633b9aca00611854565b60105414158015610f6e57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb557601054811115610fb55760405162461bcd60e51b815260206004820152600d60248201526c08af0c6cacac8e640dac2f0a8f609b1b6044820152606401610e68565b305f90815260016020526040902054601454600160a81b900460ff16158015610fe057506012548110155b8015610ff55750601454600160b01b900460ff165b80156110045750600e54600f54115b801561101d57506014546001600160a01b038481169116145b801561104157506001600160a01b0384165f9081526004602052604090205460ff16155b156110755761106361105e83611059846013546112fc565b6112fc565b611313565b47801561107357611073816114bc565b505b6014545f90600160a81b900460ff161580156110a957506001600160a01b0385165f9081526004602052604090205460ff16155b80156110cd57506001600160a01b0384165f9081526004602052604090205460ff16155b156111c4576014546001600160a01b039081169085160361111c576064600d54600f54116110fd57600954611101565b600b545b61110b9085611854565b611115919061191d565b90506111c4565b6014546001600160a01b03908116908616036111c457436007546019611142919061190a565b111561118257833b156111825760405162461bcd60e51b815260206004820152600860248201526718dbdb9d1c9858dd60c21b6044820152606401610e68565b6064600c54600f54116111975760085461119b565b600a545b6111a59085611854565b6111af919061191d565b9050600f5f81546111bf9061193c565b909155505b801561123d57305f908152600160205260409020546111e490829061190a565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461126090849061186b565b6001600160a01b038087165f908152600160205260408082209390935590861681522054819061129190859061190a565b61129b919061186b565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e4848761186b565b60405190815260200160405180910390a35050505050565b5f81831161130a578261130c565b815b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611359576113596118b0565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ed91906118c4565b81600181518110611400576114006118b0565b60200260200101906001600160a01b031690816001600160a01b03168152505061143f30737a250d5630b4cf539739df2c5dacb4c659f2488d84610cd7565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061147e9085905f90869030904290600401611954565b5f604051808303815f87803b158015611495575f80fd5b505af11580156114a7573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561084e573d5f803e3d5ffd5b5f602080835283518060208501525f5b8181101561151f57858101830151858201604001528201611503565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610741575f80fd5b803561155e8161153f565b919050565b5f8060408385031215611574575f80fd5b823561157f8161153f565b946020939093013593505050565b5f805f6060848603121561159f575f80fd5b83356115aa8161153f565b925060208401356115ba8161153f565b929592945050506040919091013590565b5f602082840312156115db575f80fd5b813561130c8161153f565b5f80604083850312156115f7575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b8015158114610741575f80fd5b803561155e8161161a565b5f8060408385031215611643575f80fd5b823567ffffffffffffffff8082111561165a575f80fd5b818501915085601f83011261166d575f80fd5b813560208282111561168157611681611606565b8160051b604051601f19603f830116810181811086821117156116a6576116a6611606565b6040529283528183019350848101820192898411156116c3575f80fd5b948201945b838610156116e8576116d986611553565b855294820194938201936116c8565b96506116f79050878201611627565b9450505050509250929050565b5f60208284031215611714575f80fd5b5035919050565b5f806040838503121561172c575f80fd5b82356117378161153f565b915060208301356117478161153f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a057815f190482111561178657611786611752565b8085161561179357918102915b93841c939080029061176b565b509250929050565b5f826117b657506001610481565b816117c257505f610481565b81600181146117d857600281146117e2576117fe565b6001915050610481565b60ff8411156117f3576117f3611752565b50506001821b610481565b5060208310610133831016604e8410600b8410161715611821575081810a610481565b61182b8383611766565b805f190482111561183e5761183e611752565b029392505050565b5f61130c60ff8416836117a8565b808202811582820484141761048157610481611752565b8181038181111561048157610481611752565b5f6020828403121561188e575f80fd5b5051919050565b5f602082840312156118a5575f80fd5b815161130c8161161a565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118d4575f80fd5b815161130c8161153f565b5f805f606084860312156118f1575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561048157610481611752565b5f8261193757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6001820161194d5761194d611752565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a45784516001600160a01b03168352938301939183019160010161197f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208e742ae71c061971cf24ef6c53e4a09884c27df3d6748be4d3819356a825458064736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c80637437681e116100b35780639c0db5f31161006d5780639c0db5f3146103a7578063a9059cbb146103c6578063af8deddb146103e5578063d163364914610405578063dd62ed3e14610418578063f8b45b051461045c575f80fd5b80637437681e146102fa578063751039fc1461030f5780638da5cb5b146103235780638de5c0641461034957806395d89b411461035d5780639be953b314610388575f80fd5b80633bbac579116101045780633bbac5791461023157806357d0a9821461026857806362997f8c146102895780636481f2011461029e57806370a08231146102b2578063715018a6146102e6575f80fd5b80630445b6671461015557806306fdde031461017d578063095ea7b3146101b457806318160ddd146101e357806323b872dd146101f7578063313ce56714610216575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b5061016a60125481565b6040519081526020015b60405180910390f35b348015610188575f80fd5b506040805180820190915260068152654f7264695a4b60d01b60208201525b60405161017491906114f3565b3480156101bf575f80fd5b506101d36101ce366004611563565b610471565b6040519015158152602001610174565b3480156101ee575f80fd5b5061016a610487565b348015610202575f80fd5b506101d361021136600461158d565b6104a7565b348015610221575f80fd5b5060405160098152602001610174565b34801561023c575f80fd5b506101d361024b3660046115cb565b6001600160a01b03165f9081526005602052604090205460ff1690565b348015610273575f80fd5b506102876102823660046115e6565b6104f5565b005b348015610294575f80fd5b5061016a60135481565b3480156102a9575f80fd5b50610287610570565b3480156102bd575f80fd5b5061016a6102cc3660046115cb565b6001600160a01b03165f9081526001602052604090205490565b3480156102f1575f80fd5b506102876105c1565b348015610305575f80fd5b5061016a60105481565b34801561031a575f80fd5b50610287610633565b34801561032e575f80fd5b505f546040516001600160a01b039091168152602001610174565b348015610354575f80fd5b506102876106e5565b348015610368575f80fd5b506040805180820190915260038152624f5a4b60e81b60208201526101a7565b348015610393575f80fd5b506102876103a23660046115cb565b610744565b3480156103b2575f80fd5b506102876103c1366004611632565b610852565b3480156103d1575f80fd5b506101d36103e0366004611563565b6108db565b3480156103f0575f80fd5b506014546101d390600160a01b900460ff1681565b610287610413366004611704565b6108e7565b348015610423575f80fd5b5061016a61043236600461171b565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610467575f80fd5b5061016a60115481565b5f61047d338484610cd7565b5060015b92915050565b5f6104946009600a611846565b6104a290633b9aca00611854565b905090565b6001600160a01b0383165f9081526002602090815260408083203380855292528220546104e09186916104db90869061186b565b610cd7565b6104eb848484610d85565b5060019392505050565b5f546001600160a01b0316331461051f576040516330cd747160e01b815260040160405180910390fd5b600a5482111561054257604051632bc7b84d60e21b815260040160405180910390fd5b600b5481111561056557604051632bc7b84d60e21b815260040160405180910390fd5b600a91909155600b55565b6006546001600160a01b0316331461059a576040516282b42960e81b815260040160405180910390fd5b600654305f818152600160205260409020546105bf926001600160a01b031690610d85565b565b5f546001600160a01b031633146105eb576040516330cd747160e01b815260040160405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461065d576040516330cd747160e01b815260040160405180910390fd5b6106696009600a611846565b61067790633b9aca00611854565b6010556106866009600a611846565b61069490633b9aca00611854565b6011557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106c46009600a611846565b6106d290633b9aca00611854565b60405190815260200160405180910390a1565b6006546040515f916001600160a01b03169047908381818185875af1925050503d805f811461072f576040519150601f19603f3d011682016040523d82523d5f602084013e610734565b606091505b5050905080610741575f80fd5b50565b306001600160a01b0382160361076d576040516314e1dbf760e11b815260040160405180910390fd5b6006546040516370a0823160e01b81523060048201526001600160a01b038381169263a9059cbb9291169083906370a0823190602401602060405180830381865afa1580156107be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107e2919061187e565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af115801561082a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061084e9190611895565b5050565b5f546001600160a01b0316331461087c576040516330cd747160e01b815260040160405180910390fd5b5f5b82518110156108d6578160055f85848151811061089d5761089d6118b0565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161087e565b505050565b5f61047d338484610d85565b5f546001600160a01b03163314610911576040516330cd747160e01b815260040160405180910390fd5b601454600160a01b900460ff161561093c5760405163250856ab60e21b815260040160405180910390fd5b345f0361095c57604051637c946ed760e01b815260040160405180910390fd5b805f0361097c5760405163ad1991f560e01b815260040160405180910390fd5b610987333083610d85565b6109ba30737a250d5630b4cf539739df2c5dacb4c659f2488d6109ac6009600a611846565b6104db90633b9aca00611854565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a2e91906118c4565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab191906118c4565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610afb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1f91906118c4565b601480546001600160a01b03929092166001600160a01b0319909216821790555f908152600360205260409020805460ff19166001179055737a250d5630b4cf539739df2c5dacb4c659f2488d63f305d7194730610b91816001600160a01b03165f9081526001602052604090205490565b5f80610ba45f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c0a573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c2f91906118df565b505060145460405163095ea7b360e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d60048201525f1960248201526001600160a01b03909116915063095ea7b3906044016020604051808303815f875af1158015610c94573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cb89190611895565b50506014805462ff00ff60a01b19166201000160a01b17905543600755565b6001600160a01b038316610cfe5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216610d255760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610dac5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b038216610dd35760405163d92e233d60e01b815260040160405180910390fd5b805f03610df357604051631f2a200560e01b815260040160405180910390fd5b6001600160a01b0383165f9081526005602052604090205460ff16158015610e3357506001600160a01b0382165f9081526005602052604090205460ff16155b610e715760405162461bcd60e51b8152600401610e689060208082526004908201526373686f6f60e01b604082015260600190565b60405180910390fd5b610e7d6009600a611846565b610e8b90633b9aca00611854565b60115414158015610eb457506001600160a01b0382165f9081526003602052604090205460ff16155b15610f2b5760115481610edb846001600160a01b03165f9081526001602052604090205490565b610ee5919061190a565b1115610f2b5760405162461bcd60e51b815260206004820152601560248201527445786365656473206d617857616c6c657453697a6560581b6044820152606401610e68565b610f376009600a611846565b610f4590633b9aca00611854565b60105414158015610f6e57506001600160a01b0383165f9081526003602052604090205460ff16155b15610fb557601054811115610fb55760405162461bcd60e51b815260206004820152600d60248201526c08af0c6cacac8e640dac2f0a8f609b1b6044820152606401610e68565b305f90815260016020526040902054601454600160a81b900460ff16158015610fe057506012548110155b8015610ff55750601454600160b01b900460ff165b80156110045750600e54600f54115b801561101d57506014546001600160a01b038481169116145b801561104157506001600160a01b0384165f9081526004602052604090205460ff16155b156110755761106361105e83611059846013546112fc565b6112fc565b611313565b47801561107357611073816114bc565b505b6014545f90600160a81b900460ff161580156110a957506001600160a01b0385165f9081526004602052604090205460ff16155b80156110cd57506001600160a01b0384165f9081526004602052604090205460ff16155b156111c4576014546001600160a01b039081169085160361111c576064600d54600f54116110fd57600954611101565b600b545b61110b9085611854565b611115919061191d565b90506111c4565b6014546001600160a01b03908116908616036111c457436007546019611142919061190a565b111561118257833b156111825760405162461bcd60e51b815260206004820152600860248201526718dbdb9d1c9858dd60c21b6044820152606401610e68565b6064600c54600f54116111975760085461119b565b600a545b6111a59085611854565b6111af919061191d565b9050600f5f81546111bf9061193c565b909155505b801561123d57305f908152600160205260409020546111e490829061190a565b305f81815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112349085815260200190565b60405180910390a35b6001600160a01b0385165f9081526001602052604090205461126090849061186b565b6001600160a01b038087165f908152600160205260408082209390935590861681522054819061129190859061190a565b61129b919061186b565b6001600160a01b038086165f8181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e4848761186b565b60405190815260200160405180910390a35050505050565b5f81831161130a578261130c565b815b9392505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110611359576113596118b0565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113ed91906118c4565b81600181518110611400576114006118b0565b60200260200101906001600160a01b031690816001600160a01b03168152505061143f30737a250d5630b4cf539739df2c5dacb4c659f2488d84610cd7565b60405163791ac94760e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d9063791ac9479061147e9085905f90869030904290600401611954565b5f604051808303815f87803b158015611495575f80fd5b505af11580156114a7573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6006546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561084e573d5f803e3d5ffd5b5f602080835283518060208501525f5b8181101561151f57858101830151858201604001528201611503565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610741575f80fd5b803561155e8161153f565b919050565b5f8060408385031215611574575f80fd5b823561157f8161153f565b946020939093013593505050565b5f805f6060848603121561159f575f80fd5b83356115aa8161153f565b925060208401356115ba8161153f565b929592945050506040919091013590565b5f602082840312156115db575f80fd5b813561130c8161153f565b5f80604083850312156115f7575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b8015158114610741575f80fd5b803561155e8161161a565b5f8060408385031215611643575f80fd5b823567ffffffffffffffff8082111561165a575f80fd5b818501915085601f83011261166d575f80fd5b813560208282111561168157611681611606565b8160051b604051601f19603f830116810181811086821117156116a6576116a6611606565b6040529283528183019350848101820192898411156116c3575f80fd5b948201945b838610156116e8576116d986611553565b855294820194938201936116c8565b96506116f79050878201611627565b9450505050509250929050565b5f60208284031215611714575f80fd5b5035919050565b5f806040838503121561172c575f80fd5b82356117378161153f565b915060208301356117478161153f565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156117a057815f190482111561178657611786611752565b8085161561179357918102915b93841c939080029061176b565b509250929050565b5f826117b657506001610481565b816117c257505f610481565b81600181146117d857600281146117e2576117fe565b6001915050610481565b60ff8411156117f3576117f3611752565b50506001821b610481565b5060208310610133831016604e8410600b8410161715611821575081810a610481565b61182b8383611766565b805f190482111561183e5761183e611752565b029392505050565b5f61130c60ff8416836117a8565b808202811582820484141761048157610481611752565b8181038181111561048157610481611752565b5f6020828403121561188e575f80fd5b5051919050565b5f602082840312156118a5575f80fd5b815161130c8161161a565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156118d4575f80fd5b815161130c8161153f565b5f805f606084860312156118f1575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561048157610481611752565b5f8261193757634e487b7160e01b5f52601260045260245ffd5b500490565b5f6001820161194d5761194d611752565b5060010190565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156119a45784516001600160a01b03168352938301939183019160010161197f565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208e742ae71c061971cf24ef6c53e4a09884c27df3d6748be4d3819356a825458064736f6c63430008170033

Deployed Bytecode Sourcemap

2362:9142:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3648:57;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;3648:57:0;;;;;;;;4688:83;;;;;;;;;;-1:-1:-1;4758:5:0;;;;;;;;;;;;-1:-1:-1;;;4758:5:0;;;;4688:83;;;;;;;:::i;5518:159::-;;;;;;;;;;-1:-1:-1;5518:159:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;5518:159:0;1344:187:1;4965:94:0;;;;;;;;;;;;;:::i;5685:262::-;;;;;;;;;;-1:-1:-1;5685:262:0;;;;;:::i;:::-;;:::i;4874:83::-;;;;;;;;;;-1:-1:-1;4874:83:0;;3348:1;2139:36:1;;2127:2;2112:18;4874:83:0;1997:184:1;10506:86:0;;;;;;;;;;-1:-1:-1;10506:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;10577:7:0;10553:4;10577:7;;;:4;:7;;;;;;;;;10506:86;9669:278;;;;;;;;;;-1:-1:-1;9669:278:0;;;;;:::i;:::-;;:::i;:::-;;3712:54;;;;;;;;;;;;;;;;10107:182;;;;;;;;;;;;;:::i;5067:119::-;;;;;;;;;;-1:-1:-1;5067:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5160:18:0;5133:7;5160:18;;;:9;:18;;;;;;;5067:119;1415:148;;;;;;;;;;;;;:::i;3532:49::-;;;;;;;;;;;;;;;;8419:147;;;;;;;;;;;;;:::i;1225:79::-;;;;;;;;;;-1:-1:-1;1263:7:0;1290:6;1225:79;;-1:-1:-1;;;;;1290:6:0;;;2837:51:1;;2825:2;2810:18;1225:79:0;2691:203:1;9955:144:0;;;;;;;;;;;;;:::i;4779:87::-;;;;;;;;;;-1:-1:-1;4851:7:0;;;;;;;;;;;;-1:-1:-1;;;4851:7:0;;;;4779:87;;10297:201;;;;;;;;;;-1:-1:-1;10297:201:0;;;;;:::i;:::-;;:::i;8574:182::-;;;;;;;;;;-1:-1:-1;8574:182:0;;;;;:::i;:::-;;:::i;5194:165::-;;;;;;;;;;-1:-1:-1;5194:165:0;;;;;:::i;:::-;;:::i;3947:19::-;;;;;;;;;;-1:-1:-1;3947:19:0;;;;-1:-1:-1;;;3947:19:0;;;;;;8764:897;;;;;;:::i;:::-;;:::i;5367:143::-;;;;;;;;;;-1:-1:-1;5367:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5475:18:0;;;5448:7;5475:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5367:143;3588:53;;;;;;;;;;;;;;;;5518:159;5593:4;5610:37;5619:10;5631:7;5640:6;5610:8;:37::i;:::-;-1:-1:-1;5665:4:0;5518:159;;;;;:::o;4965:94::-;5018:7;3403:15;3348:1;3403:2;:15;:::i;:::-;3390:28;;:10;:28;:::i;:::-;5038:13;;4965:94;:::o;5685:262::-;-1:-1:-1;;;;;5829:19:0;;5783:4;5829:19;;;:11;:19;;;;;;;;5817:10;5829:31;;;;;;;;5800:70;;5809:6;;5829:40;;5863:6;;5829:40;:::i;:::-;5800:8;:70::i;:::-;5881:36;5891:6;5899:9;5910:6;5881:9;:36::i;:::-;-1:-1:-1;5935:4:0;5685:262;;;;;:::o;9669:278::-;1348:6;;-1:-1:-1;;;;;1348:6:0;1358:10;1348:20;1344:43;;1377:10;;-1:-1:-1;;;1377:10:0;;;;;;;;;;;1344:43;9768:12:::1;;9758:7;:22;9754:52;;;9791:12;;-1:-1:-1::0;;;9791:12:0::1;;;;;;;;;;;9754:52;9831:13;;9820:8;:24;9816:54;;;9855:12;;-1:-1:-1::0;;;9855:12:0::1;;;;;;;;;;;9816:54;9882:12;:22:::0;;;;9915:13:::1;:24:::0;9669:278::o;10107:182::-;10171:10;;-1:-1:-1;;;;;10171:10:0;10157;:24;10153:56;;10192:14;;-1:-1:-1;;;10192:14:0;;;;;;;;;;;10153:56;10244:10;;10237:4;5133:7;5160:18;;;:9;:18;;;;;;10219:62;;-1:-1:-1;;;;;10244:10:0;;10219:9;:62::i;:::-;10107:182::o;1415:148::-;1348:6;;-1:-1:-1;;;;;1348:6:0;1358:10;1348:20;1344:43;;1377:10;;-1:-1:-1;;;1377:10:0;;;;;;;;;;;1344:43;1522:1:::1;1506:6:::0;;1485:40:::1;::::0;-1:-1:-1;;;;;1506:6:0;;::::1;::::0;1485:40:::1;::::0;1522:1;;1485:40:::1;1553:1;1536:19:::0;;-1:-1:-1;;;;;;1536:19:0::1;::::0;;1415:148::o;8419:147::-;1348:6;;-1:-1:-1;;;;;1348:6:0;1358:10;1348:20;1344:43;;1377:10;;-1:-1:-1;;;1377:10:0;;;;;;;;;;;1344:43;3403:15:::1;3348:1;3403:2;:15;:::i;:::-;3390:28;::::0;:10:::1;:28;:::i;:::-;8473:5;:14:::0;3403:15:::1;3348:1;3403:2;:15;:::i;:::-;3390:28;::::0;:10:::1;:28;:::i;:::-;8498:9;:18:::0;8532:26:::1;3403:15;3348:1;3403:2;:15;:::i;:::-;3390:28;::::0;:10:::1;:28;:::i;:::-;8532:26;::::0;160:25:1;;;148:2;133:18;8532:26:0::1;;;;;;;8419:147::o:0;9955:144::-;10015:10;;:49;;9998:12;;-1:-1:-1;;;;;10015:10:0;;10038:21;;9998:12;10015:49;9998:12;10015:49;10038:21;10015:10;:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9997:67;;;10083:7;10075:16;;;;;;9986:113;9955:144::o;10297:201::-;10378:4;-1:-1:-1;;;;;10361:22:0;;;10357:49;;10394:9;;-1:-1:-1;;;10394:9:0;;;;;;;;;;;10357:49;10439:10;;10451:38;;-1:-1:-1;;;10451:38:0;;10483:4;10451:38;;;2837:51:1;-1:-1:-1;;;;;10416:22:0;;;;;;10439:10;;;10416:22;;10451:23;;2810:18:1;;10451:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10416:74;;-1:-1:-1;;;;;;10416:74:0;;;;;;;-1:-1:-1;;;;;7475:32:1;;;10416:74:0;;;7457:51:1;7524:18;;;7517:34;7430:18;;10416:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10297:201;:::o;8574:182::-;1348:6;;-1:-1:-1;;;;;1348:6:0;1358:10;1348:20;1344:43;;1377:10;;-1:-1:-1;;;1377:10:0;;;;;;;;;;;1344:43;8661:9:::1;8656:93;8680:5;:12;8676:1;:16;8656:93;;;8731:6;8714:4;:14;8719:5;8725:1;8719:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8714:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8714:14:0;:23;;-1:-1:-1;;8714:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;8694:3:0::1;8656:93;;;;8574:182:::0;;:::o;5194:165::-;5272:4;5289:40;5299:10;5311:9;5322:6;5289:9;:40::i;8764:897::-;1348:6;;-1:-1:-1;;;;;1348:6:0;1358:10;1348:20;1344:43;;1377:10;;-1:-1:-1;;;1377:10:0;;;;;;;;;;;1344:43;8843:7:::1;::::0;-1:-1:-1;;;8843:7:0;::::1;;;8839:40;;;8859:20;;-1:-1:-1::0;;;8859:20:0::1;;;;;;;;;;;8839:40;8894:9;8907:1;8894:14:::0;8890:38:::1;;8917:11;;-1:-1:-1::0;;;8917:11:0::1;;;;;;;;;;;8890:38;8943:6;8953:1;8943:11:::0;8939:35:::1;;8963:11;;-1:-1:-1::0;;;8963:11:0::1;;;;;;;;;;;8939:35;8985:44;8995:10;9015:4;9022:6;8985:9;:44::i;:::-;9040:60;9057:4;3860:42;3403:15;3348:1;3403:2;:15;:::i;:::-;3390:28;::::0;:10:::1;:28;:::i;9040:60::-;3860:42;-1:-1:-1::0;;;;;9161:26:0::1;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9143:58:0::1;;9210:4;3860:42;-1:-1:-1::0;;;;;9217:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9143:100;::::0;-1:-1:-1;;;;;;9143:100:0::1;::::0;;;;;;-1:-1:-1;;;;;8430:15:1;;;9143:100:0::1;::::0;::::1;8412:34:1::0;8482:15;;8462:18;;;8455:43;8347:18;;9143:100:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9113:14;:130:::0;;-1:-1:-1;;;;;9113:130:0;;;::::1;-1:-1:-1::0;;;;;;9113:130:0;;::::1;::::0;::::1;::::0;;:14:::1;9254:37:::0;;;:21:::1;:37;::::0;;;;:44;;-1:-1:-1;;9254:44:0::1;9113:130:::0;9254:44:::1;::::0;;3860:42:::1;9311:34;9353:21;9398:4;9405:24;9398:4:::0;-1:-1:-1;;;;;5160:18:0;5133:7;5160:18;;;:9;:18;;;;;;;5067:119;9405:24:::1;9431:1;9434::::0;9437:7:::1;1263::::0;1290:6;-1:-1:-1;;;;;1290:6:0;;1225:79;9437:7:::1;9311:161;::::0;::::1;::::0;;;-1:-1:-1;;;;;;9311:161:0;;;-1:-1:-1;;;;;8868:15:1;;;9311:161:0::1;::::0;::::1;8850:34:1::0;8900:18;;;8893:34;;;;8943:18;;;8936:34;;;;8986:18;;;8979:34;9050:15;;;9029:19;;;9022:44;9446:15:0::1;9082:19:1::0;;;9075:35;8784:19;;9311:161:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9490:14:0::1;::::0;9483:78:::1;::::0;-1:-1:-1;;;9483:78:0;;3860:42:::1;9483:78;::::0;::::1;7457:51:1::0;-1:-1:-1;;7524:18:1;;;7517:34;-1:-1:-1;;;;;9490:14:0;;::::1;::::0;-1:-1:-1;9483:30:0::1;::::0;7430:18:1;;9483:78:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;9572:12:0::1;:19:::0;;-1:-1:-1;;;;9602:14:0;-1:-1:-1;;;9602:14:0;;;9641:12:::1;9627:11;:26:::0;8764:897::o;5955:291::-;-1:-1:-1;;;;;6044:19:0;;6040:45;;6072:13;;-1:-1:-1;;;6072:13:0;;;;;;;;;;;6040:45;-1:-1:-1;;;;;6100:21:0;;6096:47;;6130:13;;-1:-1:-1;;;6130:13:0;;;;;;;;;;;6096:47;-1:-1:-1;;;;;6154:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6206:32;;160:25:1;;;6206:32:0;;133:18:1;6206:32:0;;;;;;;5955:291;;;:::o;6254:2157::-;-1:-1:-1;;;;;6338:18:0;;6334:44;;6365:13;;-1:-1:-1;;;6365:13:0;;;;;;;;;;;6334:44;-1:-1:-1;;;;;6393:16:0;;6389:42;;6418:13;;-1:-1:-1;;;6418:13:0;;;;;;;;;;;6389:42;6446:6;6456:1;6446:11;6442:36;;6466:12;;-1:-1:-1;;;6466:12:0;;;;;;;;;;;6442:36;-1:-1:-1;;;;;6500:10:0;;;;;;:4;:10;;;;;;;;6499:11;:24;;;;-1:-1:-1;;;;;;6515:8:0;;;;;;:4;:8;;;;;;;;6514:9;6499:24;6491:41;;;;-1:-1:-1;;;6491:41:0;;;;;;9913:2:1;9895:21;;;9952:1;9932:18;;;9925:29;-1:-1:-1;;;9985:2:1;9970:18;;9963:34;10029:2;10014:18;;9711:327;6491:41:0;;;;;;;;;3403:15;3348:1;3403:2;:15;:::i;:::-;3390:28;;:10;:28;:::i;:::-;6549:9;;:19;;:49;;;;-1:-1:-1;;;;;;6573:25:0;;;;;;:21;:25;;;;;;;;6572:26;6549:49;6545:151;;;6649:9;;6639:6;6623:13;6633:2;-1:-1:-1;;;;;5160:18:0;5133:7;5160:18;;;:9;:18;;;;;;;5067:119;6623:13;:22;;;;:::i;:::-;:35;;6615:69;;;;-1:-1:-1;;;6615:69:0;;10375:2:1;6615:69:0;;;10357:21:1;10414:2;10394:18;;;10387:30;-1:-1:-1;;;10433:18:1;;;10426:51;10494:18;;6615:69:0;10173:345:1;6615:69:0;3403:15;3348:1;3403:2;:15;:::i;:::-;3390:28;;:10;:28;:::i;:::-;6712:5;;:15;;:47;;;;-1:-1:-1;;;;;;6732:27:0;;;;;;:21;:27;;;;;;;;6731:28;6712:47;6708:121;;;6794:5;;6784:6;:15;;6776:41;;;;-1:-1:-1;;;6776:41:0;;10725:2:1;6776:41:0;;;10707:21:1;10764:2;10744:18;;;10737:30;-1:-1:-1;;;10783:18:1;;;10776:43;10836:18;;6776:41:0;10523:337:1;6776:41:0;6890:4;6841:28;5160:18;;;:9;:18;;;;;;6926:7;;-1:-1:-1;;;6926:7:0;;;;6925:8;:49;;;;;6961:13;;6937:20;:37;;6925:49;:65;;;;-1:-1:-1;6978:12:0;;-1:-1:-1;;;6978:12:0;;;;6925:65;:99;;;;;7006:18;;6994:9;;:30;6925:99;:140;;;;-1:-1:-1;7051:14:0;;-1:-1:-1;;;;;7045:20:0;;;7051:14;;7045:20;6925:140;:169;;;;-1:-1:-1;;;;;;7070:24:0;;;;;;:18;:24;;;;;;;;7069:25;6925:169;6907:472;;;7121:71;7139:52;7144:6;7152:38;7157:20;7179:10;;7152:4;:38::i;:::-;7139:4;:52::i;:::-;7121:17;:71::i;:::-;7236:21;7276:22;;7272:96;;7319:33;7333:18;7319:13;:33::i;:::-;7106:273;6907:472;7428:7;;7391:17;;-1:-1:-1;;;7428:7:0;;;;7427:8;:37;;;;-1:-1:-1;;;;;;7440:24:0;;;;;;:18;:24;;;;;;;;7439:25;7427:37;:64;;;;-1:-1:-1;;;;;;7469:22:0;;;;;;:18;:22;;;;;;;;7468:23;7427:64;7423:632;;;7539:14;;-1:-1:-1;;;;;7539:14:0;;;7533:20;;;;7529:515;;7666:3;7610:16;;7598:9;;:28;7597:64;;7646:15;;7597:64;;;7630:13;;7597:64;7587:75;;:6;:75;:::i;:::-;7586:83;;;;:::i;:::-;7574:95;;7529:515;;;7736:14;;-1:-1:-1;;;;;7736:14:0;;;7728:22;;;;7724:320;;7794:12;7775:11;;7789:2;7775:16;;;;:::i;:::-;:31;7771:117;;;10848:20;;10896:8;7831:37;;;;-1:-1:-1;;;7831:37:0;;11289:2:1;7831:37:0;;;11271:21:1;11328:1;11308:18;;;11301:29;-1:-1:-1;;;11346:18:1;;;11339:38;11394:18;;7831:37:0;11087:331:1;7831:37:0;7995:3;7942:15;;7930:9;;:27;7929:61;;7976:14;;7929:61;;;7961:12;;7929:61;7919:72;;:6;:72;:::i;:::-;7918:80;;;;:::i;:::-;7906:92;;8019:9;;8017:11;;;;;:::i;:::-;;;;-1:-1:-1;7724:320:0;8071:13;;8067:169;;8146:4;8128:24;;;;:9;:24;;;;;;:36;;8155:9;;8128:36;:::i;:::-;8119:4;8101:24;;;;:9;:24;;;;;;;:63;;;;8184:40;;-1:-1:-1;;;;;8184:40:0;;;;;;;8214:9;160:25:1;;148:2;133:18;;14:177;8184:40:0;;;;;;;;8067:169;-1:-1:-1;;;;;8264:15:0;;;;;;:9;:15;;;;;;:24;;8282:6;;8264:24;:::i;:::-;-1:-1:-1;;;;;8246:15:0;;;;;;;:9;:15;;;;;;:42;;;;8315:13;;;;;;;8340:9;;8315:22;;8331:6;;8315:22;:::i;:::-;:34;;;;:::i;:::-;-1:-1:-1;;;;;8299:13:0;;;;;;;:9;:13;;;;;:50;;;;8365:38;;;8384:18;8393:9;8384:6;:18;:::i;:::-;8365:38;;160:25:1;;;148:2;133:18;8365:38:0;;;;;;;6323:2088;;6254:2157;;;:::o;10600:108::-;10658:7;10690:1;10686;:5;10685:15;;10699:1;10685:15;;;10695:1;10685:15;10678:22;10600:108;-1:-1:-1;;;10600:108:0:o;10920:480::-;10987:7;:14;;-1:-1:-1;;;;10987:14:0;-1:-1:-1;;;10987:14:0;;;11036:16;;;11050:1;11036:16;;;;;;;;-1:-1:-1;;11036:16:0;;;;;;;;;;-1:-1:-1;11036:16:0;11012:40;;11081:4;11063;11068:1;11063:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;11063:23:0;;;-1:-1:-1;;;;;11063:23:0;;;;;3860:42;-1:-1:-1;;;;;11107:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11097:4;11102:1;11097:7;;;;;;;;:::i;:::-;;;;;;:35;-1:-1:-1;;;;;11097:35:0;;;-1:-1:-1;;;;;11097:35:0;;;;;11143:65;11160:4;3860:42;11196:11;11143:8;:65::i;:::-;11219:147;;-1:-1:-1;;;11219:147:0;;3860:42;;11219:69;;:147;;11303:11;;11316:1;;11319:4;;11333;;11340:15;;11219:147;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11377:7:0;:15;;-1:-1:-1;;;;11377:15:0;;;-1:-1:-1;;;;10920:480:0:o;11408:93::-;11466:10;;:27;;-1:-1:-1;;;;;11466:10:0;;;;:27;;;;;11486:6;;11466:10;:27;:10;:27;11486:6;11466:10;:27;;;;;;;;;;;;;;;;;;;196:548:1;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:456::-;1613:6;1621;1629;1682:2;1670:9;1661:7;1657:23;1653:32;1650:52;;;1698:1;1695;1688:12;1650:52;1737:9;1724:23;1756:31;1781:5;1756:31;:::i;:::-;1806:5;-1:-1:-1;1863:2:1;1848:18;;1835:32;1876:33;1835:32;1876:33;:::i;:::-;1536:456;;1928:7;;-1:-1:-1;;;1982:2:1;1967:18;;;;1954:32;;1536:456::o;2186:247::-;2245:6;2298:2;2286:9;2277:7;2273:23;2269:32;2266:52;;;2314:1;2311;2304:12;2266:52;2353:9;2340:23;2372:31;2397:5;2372:31;:::i;2438:248::-;2506:6;2514;2567:2;2555:9;2546:7;2542:23;2538:32;2535:52;;;2583:1;2580;2573:12;2535:52;-1:-1:-1;;2606:23:1;;;2676:2;2661:18;;;2648:32;;-1:-1:-1;2438:248:1:o;2899:127::-;2960:10;2955:3;2951:20;2948:1;2941:31;2991:4;2988:1;2981:15;3015:4;3012:1;3005:15;3031:118;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;3154:128;3219:20;;3248:28;3219:20;3248:28;:::i;3287:1191::-;3377:6;3385;3438:2;3426:9;3417:7;3413:23;3409:32;3406:52;;;3454:1;3451;3444:12;3406:52;3494:9;3481:23;3523:18;3564:2;3556:6;3553:14;3550:34;;;3580:1;3577;3570:12;3550:34;3618:6;3607:9;3603:22;3593:32;;3663:7;3656:4;3652:2;3648:13;3644:27;3634:55;;3685:1;3682;3675:12;3634:55;3721:2;3708:16;3743:4;3766:2;3762;3759:10;3756:36;;;3772:18;;:::i;:::-;3818:2;3815:1;3811:10;3850:2;3844:9;3913:2;3909:7;3904:2;3900;3896:11;3892:25;3884:6;3880:38;3968:6;3956:10;3953:22;3948:2;3936:10;3933:18;3930:46;3927:72;;;3979:18;;:::i;:::-;4015:2;4008:22;4065:18;;;4099:15;;;;-1:-1:-1;4141:11:1;;;4137:20;;;4169:19;;;4166:39;;;4201:1;4198;4191:12;4166:39;4225:11;;;;4245:148;4261:6;4256:3;4253:15;4245:148;;;4327:23;4346:3;4327:23;:::i;:::-;4315:36;;4278:12;;;;4371;;;;4245:148;;;4412:6;-1:-1:-1;4437:35:1;;-1:-1:-1;4453:18:1;;;4437:35;:::i;:::-;4427:45;;;;;;3287:1191;;;;;:::o;4483:180::-;4542:6;4595:2;4583:9;4574:7;4570:23;4566:32;4563:52;;;4611:1;4608;4601:12;4563:52;-1:-1:-1;4634:23:1;;4483:180;-1:-1:-1;4483:180:1:o;4668:388::-;4736:6;4744;4797:2;4785:9;4776:7;4772:23;4768:32;4765:52;;;4813:1;4810;4803:12;4765:52;4852:9;4839:23;4871:31;4896:5;4871:31;:::i;:::-;4921:5;-1:-1:-1;4978:2:1;4963:18;;4950:32;4991:33;4950:32;4991:33;:::i;:::-;5043:7;5033:17;;;4668:388;;;;;:::o;5061:127::-;5122:10;5117:3;5113:20;5110:1;5103:31;5153:4;5150:1;5143:15;5177:4;5174:1;5167:15;5193:416;5282:1;5319:5;5282:1;5333:270;5354:7;5344:8;5341:21;5333:270;;;5413:4;5409:1;5405:6;5401:17;5395:4;5392:27;5389:53;;;5422:18;;:::i;:::-;5472:7;5462:8;5458:22;5455:55;;;5492:16;;;;5455:55;5571:22;;;;5531:15;;;;5333:270;;;5337:3;5193:416;;;;;:::o;5614:806::-;5663:5;5693:8;5683:80;;-1:-1:-1;5734:1:1;5748:5;;5683:80;5782:4;5772:76;;-1:-1:-1;5819:1:1;5833:5;;5772:76;5864:4;5882:1;5877:59;;;;5950:1;5945:130;;;;5857:218;;5877:59;5907:1;5898:10;;5921:5;;;5945:130;5982:3;5972:8;5969:17;5966:43;;;5989:18;;:::i;:::-;-1:-1:-1;;6045:1:1;6031:16;;6060:5;;5857:218;;6159:2;6149:8;6146:16;6140:3;6134:4;6131:13;6127:36;6121:2;6111:8;6108:16;6103:2;6097:4;6094:12;6090:35;6087:77;6084:159;;;-1:-1:-1;6196:19:1;;;6228:5;;6084:159;6275:34;6300:8;6294:4;6275:34;:::i;:::-;6345:6;6341:1;6337:6;6333:19;6324:7;6321:32;6318:58;;;6356:18;;:::i;:::-;6394:20;;5614:806;-1:-1:-1;;;5614:806:1:o;6425:140::-;6483:5;6512:47;6553:4;6543:8;6539:19;6533:4;6512:47;:::i;6570:168::-;6643:9;;;6674;;6691:15;;;6685:22;;6671:37;6661:71;;6712:18;;:::i;6743:128::-;6810:9;;;6831:11;;;6828:37;;;6845:18;;:::i;7086:184::-;7156:6;7209:2;7197:9;7188:7;7184:23;7180:32;7177:52;;;7225:1;7222;7215:12;7177:52;-1:-1:-1;7248:16:1;;7086:184;-1:-1:-1;7086:184:1:o;7562:245::-;7629:6;7682:2;7670:9;7661:7;7657:23;7653:32;7650:52;;;7698:1;7695;7688:12;7650:52;7730:9;7724:16;7749:28;7771:5;7749:28;:::i;7812:127::-;7873:10;7868:3;7864:20;7861:1;7854:31;7904:4;7901:1;7894:15;7928:4;7925:1;7918:15;7944:251;8014:6;8067:2;8055:9;8046:7;8042:23;8038:32;8035:52;;;8083:1;8080;8073:12;8035:52;8115:9;8109:16;8134:31;8159:5;8134:31;:::i;9121:306::-;9209:6;9217;9225;9278:2;9266:9;9257:7;9253:23;9249:32;9246:52;;;9294:1;9291;9284:12;9246:52;9323:9;9317:16;9307:26;;9373:2;9362:9;9358:18;9352:25;9342:35;;9417:2;9406:9;9402:18;9396:25;9386:35;;9121:306;;;;;:::o;10043:125::-;10108:9;;;10129:10;;;10126:36;;;10142:18;;:::i;10865:217::-;10905:1;10931;10921:132;;10975:10;10970:3;10966:20;10963:1;10956:31;11010:4;11007:1;11000:15;11038:4;11035:1;11028:15;10921:132;-1:-1:-1;11067:9:1;;10865:217::o;11423:135::-;11462:3;11483:17;;;11480:43;;11503:18;;:::i;:::-;-1:-1:-1;11550:1:1;11539:13;;11423:135::o;11563:980::-;11825:4;11873:3;11862:9;11858:19;11904:6;11893:9;11886:25;11930:2;11968:6;11963:2;11952:9;11948:18;11941:34;12011:3;12006:2;11995:9;11991:18;11984:31;12035:6;12070;12064:13;12101:6;12093;12086:22;12139:3;12128:9;12124:19;12117:26;;12178:2;12170:6;12166:15;12152:29;;12199:1;12209:195;12223:6;12220:1;12217:13;12209:195;;;12288:13;;-1:-1:-1;;;;;12284:39:1;12272:52;;12379:15;;;;12344:12;;;;12320:1;12238:9;12209:195;;;-1:-1:-1;;;;;;;12460:32:1;;;;12455:2;12440:18;;12433:60;-1:-1:-1;;;12524:3:1;12509:19;12502:35;12421:3;11563:980;-1:-1:-1;;;11563:980:1:o

Swarm Source

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