ETH Price: $2,384.80 (-0.76%)

Token

YUZI ($YUZI)
 

Overview

Max Total Supply

10,000,000,000 $YUZI

Holders

15

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
Ethereum Pro: Deployer 2
Balance
345,755,088.807721986276963203 $YUZI

Value
$0.00
0x0fe60E55a8C0700b47d4a2663079c445Fc4A5893
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:
YUZI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-29
*/

// TG : https://t.me/YUZUETH

// TW : https://twitter.com/YUZU_ETH

// Medium : https://medium.com/@YUZUETH

/***

TG: https://t.me/YUZUETH

Website: https://YUZUETH.io (Temporarily Down)

Twitter : https://twitter.com/YUZUETH

Join Our Tg For More Update.

Buy And Sell Tax : 2%

 ***/

// YUZU IS HERE TO TAKE BACK WHAT OUR ANCESTORS MADE.

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address _owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        YUZU[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }

    mapping(address => bool) internal YUZU;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    modifier PINKL() {
        require(isPINKL(msg.sender), "!PINKL"); _;
    }

    function isPINKL(address adr) public view returns (bool) {
        return YUZU[adr];
    }
    
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract YUZI is Ownable, IERC20 {

    using SafeMath for uint256;

    string private constant _name = "YUZI";
    string private constant _symbol = "$YUZI";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    uint8 private constant _decimals = 18;
    uint256 private _totalSupply = 10000000000 * (10**_decimals);

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    uint256 public _maxTxAmount = (_totalSupply * 35) / 1000;
    uint256 public _walletMax = (_totalSupply * 40) / 1000;

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public LPtax = 1;
    uint256 public MarketingTax = 1;
    uint256 public DevelopmentTax = 0;

    uint256 public NetFee = 1;
    uint256 public NetSellFee = 2;

    bool public TakeBFee = true;
    bool public TakeSFee = true;
    bool public TakeTFee = true;

    address private LIQRECEIVER;
    address private DEVLOPWAL;
    address private MARKETWAL;

    DexRouter public router;
    address public pair;
    mapping(address => bool) public isPair;

    uint256 public launchedAt;

    bool public tradingOpen = true;
    bool private inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public ThresholdValue = (_totalSupply * 24) / 10000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

    modifier lockTheSwap() {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor() {
        router = DexRouter(routerAddress);
        pair = DexFactory(router.factory()).createPair(
            router.WETH(),
            address(this)
        );

        isPair[pair] = true;

        LIQRECEIVER = msg.sender;
        DEVLOPWAL = 0xeD43B269c34f35ad0eB7DBf26fd502737508cA0b;
        MARKETWAL = 0xeD43B269c34f35ad0eB7DBf26fd502737508cA0b;

        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD] = true;
        isFeeExempt[routerAddress] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;

        isFeeExempt[DEVLOPWAL] = true;
        NetFee = LPtax.add(MarketingTax).add(DevelopmentTax);
        NetSellFee = NetFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

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

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

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function getOwner() external view override returns (address) {
        return owner();
    }

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function BSTAlteration(
        uint256 LiqFee,
        uint256 MarketFee,
        uint256 DevelopFee,
        uint256 addon
    ) public PINKL {
        LPtax = LiqFee;
        MarketingTax = MarketFee;
        DevelopmentTax = DevelopFee;
        NetFee = LPtax.add(MarketingTax).add(DevelopmentTax);
        NetSellFee = NetFee + addon;
    }


    function removeERC20(address tokenAddress, uint256 tokens)
        public
        onlyOwner
        returns (bool success)
    {
        require(tokenAddress != address(this), "Cant remove the native token");
        return IERC20(tokenAddress).transfer(msg.sender, tokens);
    }

    function removeEther(uint256 amountPercentage) external onlyOwner {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(
            amount <= _maxTxAmount || isTxLimitExempt[sender],
            "TX Limit Exceeded"
        );
    }

    function failsCaptcha(address addr) internal view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(addr)
        }
        return size > 0;
    }

    function transfer(address recipient, uint256 amount)
        external
        override
        returns (bool)
    {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(
            amount,
            "Insufficient Balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender]
                .sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (inSwapAndLiquify) {
            return _basicTransfer(sender, recipient, amount);
        }
        if (!YUZU[sender] && !YUZU[recipient]) {
            require(tradingOpen, "");
        }
        if (
            isPair[recipient] &&
            !inSwapAndLiquify &&
            swapAndLiquifyEnabled &&
            _balances[address(this)] >= ThresholdValue
        ) {
            swapBackAndPair();
        }
        if (!launched() && isPair[recipient]) {
            require(_balances[sender] > 0, "");
            launch();
        }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "");

        if (!isTxLimitExempt[recipient]) {
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient]
            ? takefees(sender, recipient, amount)
            : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function takefees(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (uint256) {
        uint256 feeApplicable = 0;
        if (isPair[recipient] && TakeSFee) {
            feeApplicable = NetSellFee;
        }
        if (isPair[sender] && TakeBFee) {
            feeApplicable = NetFee;
        }
        if (!isPair[sender] && !isPair[recipient]) {
            if (TakeTFee) {
                feeApplicable = NetSellFee;
            } else {
                feeApplicable = 0;
            }
        }

        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function swapBackAndPair() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify
            .mul(LPtax)
            .div(NetFee)
            .div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = NetFee.sub(LPtax.div(2));

        uint256 amountETHLiquidity = amountETH
            .mul(LPtax)
            .div(totalETHFee)
            .div(2);
        uint256 amountETHMarketing = amountETH.mul(MarketingTax).div(
            totalETHFee
        );
        uint256 amountETHDev = amountETH.mul(DevelopmentTax).div(totalETHFee);

        (bool tmpSuccess1, ) = payable(DEVLOPWAL).call{
            value: amountETHMarketing,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        (tmpSuccess1, ) = payable(MARKETWAL).call{
            value: amountETHDev,
            gas: 30000
        }("");
        tmpSuccess1 = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                LIQRECEIVER,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

}

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":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","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":"uint256","name":"LiqFee","type":"uint256"},{"internalType":"uint256","name":"MarketFee","type":"uint256"},{"internalType":"uint256","name":"DevelopFee","type":"uint256"},{"internalType":"uint256","name":"addon","type":"uint256"}],"name":"BSTAlteration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DevelopmentTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LPtax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NetFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NetSellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TakeBFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TakeSFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TakeTFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ThresholdValue","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":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isPINKL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"removeERC20","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"removeEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract DexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620000386012600a6200065f565b62000049906402540be40062000677565b6003556103e8600354602362000060919062000677565b6200006c919062000691565b6006556103e8600354602862000083919062000677565b6200008f919062000691565b6007556001600a819055600b8190556000600c55600d556002600e55600f80546201010162ffffff199091161790556016805463ffff00ff19166201000117905560035461271090620000e490601862000677565b620000f0919062000691565b6017553480156200010057600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001de9190620006b4565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000240573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002669190620006b4565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d99190620006b4565b601380546001600160a01b03199081166001600160a01b0393841690811783556000908152601460209081526040808320805460ff199081166001908117909255600f80546301000000600160b81b0319163363010000008102919091179091556010805473ed43b269c34f35ad0eb7dbf26fd502737508ca0b90891681178255601180549099161790975530808752600586528487206012548b16885286528487206000199081905589548b168852858820558187526008808752858820805485168617905590875284872080548416851790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd0933429980548416851790556002548a168752848720805484168517905590865260098552838620805483168417905596548816855282852080548216831790557f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb1930750037858054821683179055945490961683529381529290208054909116909217909155600c54600b54600a546200048493620004709290620004dd811b62000c8317901c565b620004dd60201b62000c831790919060201c565b600d819055600e5560035433600081815260046020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006f5565b600080620004ec8385620006df565b905083811015620005435760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620005a35781600019048211156200058757620005876200054c565b808516156200059557918102915b93841c939080029062000567565b509250929050565b600082620005bc5750600162000546565b81620005cb5750600062000546565b8160018114620005e45760028114620005ef576200060f565b600191505062000546565b60ff8411156200060357620006036200054c565b50506001821b62000546565b5060208310610133831016604e8410600b841016171562000634575081810a62000546565b62000640838362000562565b80600019048211156200065757620006576200054c565b029392505050565b60006200067060ff841683620005ab565b9392505050565b80820281158282048414176200054657620005466200054c565b600082620006af57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620006c757600080fd5b81516001600160a01b03811681146200054357600080fd5b808201808211156200054657620005466200054c565b611a4c80620007056000396000f3fe6080604052600436106102345760003560e01c8063893d20e81161012e578063c31d0c3c116100ab578063e68678a51161006f578063e68678a5146106e3578063f2fde38b146106fd578063f6c5367e1461071d578063f887ea401461073d578063ffb54a991461075d57600080fd5b8063c31d0c3c14610617578063d321964814610636578063da00097d1461064c578063dd62ed3e1461066d578063e5e31b13146106b357600080fd5b80639d76c634116100f25780639d76c6341461058b578063a8aa1b31146105ab578063a9059cbb146105cb578063bf44891f146105eb578063bf56b3711461060157600080fd5b8063893d20e8146104a45780638b42507f146104d65780638da5cb5b1461050657806395d89b411461052457806399f53ba51461055257600080fd5b80633f4218e0116101bc578063715018a611610180578063715018a614610421578063787a051b146104385780637d1db4a514610458578063807c2d9c1461046e5780638637b0691461048457600080fd5b80633f4218e0146103655780634a74bb0214610395578063571ac8b0146103b55780636a76c25a146103d557806370a08231146103eb57600080fd5b806323b872dd1161020357806323b872dd146102e85780632b112e4914610308578063313ce5671461031d57806332f638e0146103395780633cf5a4601461034f57600080fd5b806306fdde0314610240578063095ea7b31461027f57806314b2e56c146102af57806318160ddd146102d357600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600481526359555a4960e01b60208201525b6040516102769190611704565b60405180910390f35b34801561028b57600080fd5b5061029f61029a36600461176a565b610777565b6040519015158152602001610276565b3480156102bb57600080fd5b506102c5600d5481565b604051908152602001610276565b3480156102df57600080fd5b506003546102c5565b3480156102f457600080fd5b5061029f610303366004611796565b6107e4565b34801561031457600080fd5b506102c56108a6565b34801561032957600080fd5b5060405160128152602001610276565b34801561034557600080fd5b506102c5600a5481565b34801561035b57600080fd5b506102c560175481565b34801561037157600080fd5b5061029f6103803660046117d7565b60086020526000908152604090205460ff1681565b3480156103a157600080fd5b5060165461029f9062010000900460ff1681565b3480156103c157600080fd5b5061029f6103d03660046117d7565b610917565b3480156103e157600080fd5b506102c5600c5481565b3480156103f757600080fd5b506102c56104063660046117d7565b6001600160a01b031660009081526004602052604090205490565b34801561042d57600080fd5b50610436610925565b005b34801561044457600080fd5b506104366104533660046117f4565b6109a2565b34801561046457600080fd5b506102c560065481565b34801561047a57600080fd5b506102c560075481565b34801561049057600080fd5b5061029f61049f36600461176a565b610a14565b3480156104b057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b3480156104e257600080fd5b5061029f6104f13660046117d7565b60096020526000908152604090205460ff1681565b34801561051257600080fd5b506000546001600160a01b03166104be565b34801561053057600080fd5b506040805180820190915260058152642459555a4960d81b6020820152610269565b34801561055e57600080fd5b5061029f61056d3660046117d7565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561059757600080fd5b50600f5461029f9062010000900460ff1681565b3480156105b757600080fd5b506013546104be906001600160a01b031681565b3480156105d757600080fd5b5061029f6105e636600461176a565b610b08565b3480156105f757600080fd5b506102c5600b5481565b34801561060d57600080fd5b506102c560155481565b34801561062357600080fd5b50600f5461029f90610100900460ff1681565b34801561064257600080fd5b506102c5600e5481565b34801561065857600080fd5b5060165461029f906301000000900460ff1681565b34801561067957600080fd5b506102c561068836600461180d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b5061029f6106ce3660046117d7565b60146020526000908152604090205460ff1681565b3480156106ef57600080fd5b50600f5461029f9060ff1681565b34801561070957600080fd5b506104366107183660046117d7565b610b15565b34801561072957600080fd5b50610436610738366004611846565b610bff565b34801561074957600080fd5b506012546104be906001600160a01b031681565b34801561076957600080fd5b5060165461029f9060ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d29086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610891576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260058252838120338252909152919091205461086c918490610ce2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b61089c848484610d1c565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54600354919261091292909161090c9190610fba565b90610fba565b905090565b60006107de82600019610777565b6000546001600160a01b031633146109585760405162461bcd60e51b815260040161094f90611878565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109cc5760405162461bcd60e51b815260040161094f90611878565b47336108fc60646109dd85856118c3565b6109e791906118da565b6040518115909202916000818181858888f19350505050158015610a0f573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a3f5760405162461bcd60e51b815260040161094f90611878565b306001600160a01b03841603610a975760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161094f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f91906118fc565b600061089f338484610d1c565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040161094f90611878565b6001600160a01b038116610ba45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526001602052604090205460ff16610c475760405162461bcd60e51b81526020600482015260066024820152650854125392d360d21b604482015260640161094f565b600a849055600b839055600c829055610c6a82610c648686610c83565b90610c83565b600d819055610c7a90829061191e565b600e5550505050565b600080610c90838561191e565b90508381101561089f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161094f565b60008184841115610d065760405162461bcd60e51b815260040161094f9190611704565b506000610d138486611931565b95945050505050565b601654600090610100900460ff1615610d4157610d3a848484610ffc565b905061089f565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8357506001600160a01b03831660009081526001602052604090205460ff16155b15610db45760165460ff16610db45760405162461bcd60e51b8152602060048201526000602482015260440161094f565b6001600160a01b03831660009081526014602052604090205460ff168015610de45750601654610100900460ff16155b8015610df8575060165462010000900460ff165b8015610e1557506017543060009081526004602052604090205410155b15610e2257610e226110e2565b601554158015610e4a57506001600160a01b03831660009081526014602052604090205460ff165b15610e97576001600160a01b038416600090815260046020526040902054610e8e5760405162461bcd60e51b8152602060048201526000602482015260440161094f565b610e9743601555565b604080516020808201835260008083526001600160a01b038816815260049091529190912054610ec8918490610ce2565b6001600160a01b038516600090815260046020908152604080832093909355600890529081205460ff16158015610f1857506001600160a01b03841660009081526008602052604090205460ff16155b610f225782610f2d565b610f2d8585856114a8565b6001600160a01b038516600090815260046020526040902054909150610f539082610c83565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa79085815260200190565b60405180910390a3506001949350505050565b600061089f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461104d918490610ce2565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461107c9083610c83565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260046020526040812054600d54600a549192916111259160029161111f919082908790611617565b90611699565b905060006111338383610fba565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061116d5761116d611944565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea919061195a565b816001815181106111fd576111fd611944565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611243908590600090869030904290600401611977565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b5050600a54479250600091506112959061128c906002611699565b600d5490610fba565b905060006112b7600261111f8461111f600a548861161790919063ffffffff16565b905060006112d48361111f600b548761161790919063ffffffff16565b905060006112f18461111f600c548861161790919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611348576040519150601f19603f3d011682016040523d82523d6000602084013e61134d565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a5576040519150601f19603f3d011682016040523d82523d6000602084013e6113aa565b606091505b5060009250508915905061149157601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af115801561142f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145491906119e8565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114d95750600f54610100900460ff165b156114e35750600e545b6001600160a01b03851660009081526014602052604090205460ff16801561150d5750600f5460ff165b156115175750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155957506001600160a01b03841660009081526014602052604090205460ff16155b1561157c57600f5462010000900460ff16156115785750600e5461157c565b5060005b600061158d606461111f8685611617565b306000908152600460205260409020549091506115aa9082610c83565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fb9085815260200190565b60405180910390a361160d8482610fba565b9695505050505050565b600082600003611629575060006107de565b600061163583856118c3565b90508261164285836118da565b1461089f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161094f565b600061089f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116f75760405162461bcd60e51b815260040161094f9190611704565b506000610d1384866118da565b600060208083528351808285015260005b8181101561173157858101830151858201604001528201611715565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176757600080fd5b50565b6000806040838503121561177d57600080fd5b823561178881611752565b946020939093013593505050565b6000806000606084860312156117ab57600080fd5b83356117b681611752565b925060208401356117c681611752565b929592945050506040919091013590565b6000602082840312156117e957600080fd5b813561089f81611752565b60006020828403121561180657600080fd5b5035919050565b6000806040838503121561182057600080fd5b823561182b81611752565b9150602083013561183b81611752565b809150509250929050565b6000806000806080858703121561185c57600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107de576107de6118ad565b6000826118f757634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561190e57600080fd5b8151801515811461089f57600080fd5b808201808211156107de576107de6118ad565b818103818111156107de576107de6118ad565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561196c57600080fd5b815161089f81611752565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c75784516001600160a01b0316835293830193918301916001016119a2565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119fd57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201ee4f5355f27a1685bf268095d475c8d0c2beb5f35420f6818c907cc6e3c409964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102345760003560e01c8063893d20e81161012e578063c31d0c3c116100ab578063e68678a51161006f578063e68678a5146106e3578063f2fde38b146106fd578063f6c5367e1461071d578063f887ea401461073d578063ffb54a991461075d57600080fd5b8063c31d0c3c14610617578063d321964814610636578063da00097d1461064c578063dd62ed3e1461066d578063e5e31b13146106b357600080fd5b80639d76c634116100f25780639d76c6341461058b578063a8aa1b31146105ab578063a9059cbb146105cb578063bf44891f146105eb578063bf56b3711461060157600080fd5b8063893d20e8146104a45780638b42507f146104d65780638da5cb5b1461050657806395d89b411461052457806399f53ba51461055257600080fd5b80633f4218e0116101bc578063715018a611610180578063715018a614610421578063787a051b146104385780637d1db4a514610458578063807c2d9c1461046e5780638637b0691461048457600080fd5b80633f4218e0146103655780634a74bb0214610395578063571ac8b0146103b55780636a76c25a146103d557806370a08231146103eb57600080fd5b806323b872dd1161020357806323b872dd146102e85780632b112e4914610308578063313ce5671461031d57806332f638e0146103395780633cf5a4601461034f57600080fd5b806306fdde0314610240578063095ea7b31461027f57806314b2e56c146102af57806318160ddd146102d357600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b5060408051808201909152600481526359555a4960e01b60208201525b6040516102769190611704565b60405180910390f35b34801561028b57600080fd5b5061029f61029a36600461176a565b610777565b6040519015158152602001610276565b3480156102bb57600080fd5b506102c5600d5481565b604051908152602001610276565b3480156102df57600080fd5b506003546102c5565b3480156102f457600080fd5b5061029f610303366004611796565b6107e4565b34801561031457600080fd5b506102c56108a6565b34801561032957600080fd5b5060405160128152602001610276565b34801561034557600080fd5b506102c5600a5481565b34801561035b57600080fd5b506102c560175481565b34801561037157600080fd5b5061029f6103803660046117d7565b60086020526000908152604090205460ff1681565b3480156103a157600080fd5b5060165461029f9062010000900460ff1681565b3480156103c157600080fd5b5061029f6103d03660046117d7565b610917565b3480156103e157600080fd5b506102c5600c5481565b3480156103f757600080fd5b506102c56104063660046117d7565b6001600160a01b031660009081526004602052604090205490565b34801561042d57600080fd5b50610436610925565b005b34801561044457600080fd5b506104366104533660046117f4565b6109a2565b34801561046457600080fd5b506102c560065481565b34801561047a57600080fd5b506102c560075481565b34801561049057600080fd5b5061029f61049f36600461176a565b610a14565b3480156104b057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b3480156104e257600080fd5b5061029f6104f13660046117d7565b60096020526000908152604090205460ff1681565b34801561051257600080fd5b506000546001600160a01b03166104be565b34801561053057600080fd5b506040805180820190915260058152642459555a4960d81b6020820152610269565b34801561055e57600080fd5b5061029f61056d3660046117d7565b6001600160a01b031660009081526001602052604090205460ff1690565b34801561059757600080fd5b50600f5461029f9062010000900460ff1681565b3480156105b757600080fd5b506013546104be906001600160a01b031681565b3480156105d757600080fd5b5061029f6105e636600461176a565b610b08565b3480156105f757600080fd5b506102c5600b5481565b34801561060d57600080fd5b506102c560155481565b34801561062357600080fd5b50600f5461029f90610100900460ff1681565b34801561064257600080fd5b506102c5600e5481565b34801561065857600080fd5b5060165461029f906301000000900460ff1681565b34801561067957600080fd5b506102c561068836600461180d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156106bf57600080fd5b5061029f6106ce3660046117d7565b60146020526000908152604090205460ff1681565b3480156106ef57600080fd5b50600f5461029f9060ff1681565b34801561070957600080fd5b506104366107183660046117d7565b610b15565b34801561072957600080fd5b50610436610738366004611846565b610bff565b34801561074957600080fd5b506012546104be906001600160a01b031681565b34801561076957600080fd5b5060165461029f9060ff1681565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107d29086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001914610891576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260058252838120338252909152919091205461086c918490610ce2565b6001600160a01b03851660009081526005602090815260408083203384529091529020555b61089c848484610d1c565b90505b9392505050565b60046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec5461dead60009081527f42c63635470f1fb1d6d4b6441c413cb435b1ebb6fedd1896dd5e25d1399147dd54600354919261091292909161090c9190610fba565b90610fba565b905090565b60006107de82600019610777565b6000546001600160a01b031633146109585760405162461bcd60e51b815260040161094f90611878565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109cc5760405162461bcd60e51b815260040161094f90611878565b47336108fc60646109dd85856118c3565b6109e791906118da565b6040518115909202916000818181858888f19350505050158015610a0f573d6000803e3d6000fd5b505050565b600080546001600160a01b03163314610a3f5760405162461bcd60e51b815260040161094f90611878565b306001600160a01b03841603610a975760405162461bcd60e51b815260206004820152601c60248201527f43616e742072656d6f766520746865206e617469766520746f6b656e00000000604482015260640161094f565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb906044016020604051808303816000875af1158015610ae4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f91906118fc565b600061089f338484610d1c565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b815260040161094f90611878565b6001600160a01b038116610ba45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161094f565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526001602052604090205460ff16610c475760405162461bcd60e51b81526020600482015260066024820152650854125392d360d21b604482015260640161094f565b600a849055600b839055600c829055610c6a82610c648686610c83565b90610c83565b600d819055610c7a90829061191e565b600e5550505050565b600080610c90838561191e565b90508381101561089f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161094f565b60008184841115610d065760405162461bcd60e51b815260040161094f9190611704565b506000610d138486611931565b95945050505050565b601654600090610100900460ff1615610d4157610d3a848484610ffc565b905061089f565b6001600160a01b03841660009081526001602052604090205460ff16158015610d8357506001600160a01b03831660009081526001602052604090205460ff16155b15610db45760165460ff16610db45760405162461bcd60e51b8152602060048201526000602482015260440161094f565b6001600160a01b03831660009081526014602052604090205460ff168015610de45750601654610100900460ff16155b8015610df8575060165462010000900460ff165b8015610e1557506017543060009081526004602052604090205410155b15610e2257610e226110e2565b601554158015610e4a57506001600160a01b03831660009081526014602052604090205460ff165b15610e97576001600160a01b038416600090815260046020526040902054610e8e5760405162461bcd60e51b8152602060048201526000602482015260440161094f565b610e9743601555565b604080516020808201835260008083526001600160a01b038816815260049091529190912054610ec8918490610ce2565b6001600160a01b038516600090815260046020908152604080832093909355600890529081205460ff16158015610f1857506001600160a01b03841660009081526008602052604090205460ff16155b610f225782610f2d565b610f2d8585856114a8565b6001600160a01b038516600090815260046020526040902054909150610f539082610c83565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610fa79085815260200190565b60405180910390a3506001949350505050565b600061089f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ce2565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260049091529182205461104d918490610ce2565b6001600160a01b03808616600090815260046020526040808220939093559085168152205461107c9083610c83565b6001600160a01b0380851660008181526004602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110d09086815260200190565b60405180910390a35060019392505050565b6016805461ff00191661010017905530600090815260046020526040812054600d54600a549192916111259160029161111f919082908790611617565b90611699565b905060006111338383610fba565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061116d5761116d611944565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156111c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ea919061195a565b816001815181106111fd576111fd611944565b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611243908590600090869030904290600401611977565b600060405180830381600087803b15801561125d57600080fd5b505af1158015611271573d6000803e3d6000fd5b5050600a54479250600091506112959061128c906002611699565b600d5490610fba565b905060006112b7600261111f8461111f600a548861161790919063ffffffff16565b905060006112d48361111f600b548761161790919063ffffffff16565b905060006112f18461111f600c548861161790919063ffffffff16565b6010546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611348576040519150601f19603f3d011682016040523d82523d6000602084013e61134d565b606091505b5050601154604051600093506001600160a01b03909116915061753090849084818181858888f193505050503d80600081146113a5576040519150601f19603f3d011682016040523d82523d6000602084013e6113aa565b606091505b5060009250508915905061149157601254600f5460405163f305d71960e01b8152306004820152602481018c905260006044820181905260648201526001600160a01b036301000000909204821660848201524260a482015291169063f305d71990869060c40160606040518083038185885af115801561142f573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061145491906119e8565b505060408051868152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506016805461ff00191690555050505050505050565b6001600160a01b038216600090815260146020526040812054819060ff1680156114d95750600f54610100900460ff165b156114e35750600e545b6001600160a01b03851660009081526014602052604090205460ff16801561150d5750600f5460ff165b156115175750600d545b6001600160a01b03851660009081526014602052604090205460ff1615801561155957506001600160a01b03841660009081526014602052604090205460ff16155b1561157c57600f5462010000900460ff16156115785750600e5461157c565b5060005b600061158d606461111f8685611617565b306000908152600460205260409020549091506115aa9082610c83565b30600081815260046020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115fb9085815260200190565b60405180910390a361160d8482610fba565b9695505050505050565b600082600003611629575060006107de565b600061163583856118c3565b90508261164285836118da565b1461089f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161094f565b600061089f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836116f75760405162461bcd60e51b815260040161094f9190611704565b506000610d1384866118da565b600060208083528351808285015260005b8181101561173157858101830151858201604001528201611715565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461176757600080fd5b50565b6000806040838503121561177d57600080fd5b823561178881611752565b946020939093013593505050565b6000806000606084860312156117ab57600080fd5b83356117b681611752565b925060208401356117c681611752565b929592945050506040919091013590565b6000602082840312156117e957600080fd5b813561089f81611752565b60006020828403121561180657600080fd5b5035919050565b6000806040838503121561182057600080fd5b823561182b81611752565b9150602083013561183b81611752565b809150509250929050565b6000806000806080858703121561185c57600080fd5b5050823594602084013594506040840135936060013592509050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107de576107de6118ad565b6000826118f757634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561190e57600080fd5b8151801515811461089f57600080fd5b808201808211156107de576107de6118ad565b818103818111156107de576107de6118ad565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561196c57600080fd5b815161089f81611752565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119c75784516001600160a01b0316835293830193918301916001016119a2565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156119fd57600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212201ee4f5355f27a1685bf268095d475c8d0c2beb5f35420f6818c907cc6e3c409964736f6c63430008110033

Deployed Bytecode Sourcemap

5106:10596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8063:94;;;;;;;;;;-1:-1:-1;8144:5:0;;;;;;;;;;;;-1:-1:-1;;;8144:5:0;;;;8063:94;;;;;;;:::i;:::-;;;;;;;;9058:248;;;;;;;;;;-1:-1:-1;9058:248:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;9058:248:0;1023:187:1;6107:25:0;;;;;;;;;;;;;;;;;;;1361::1;;;1349:2;1334:18;6107:25:0;1215:177:1;8373:102:0;;;;;;;;;;-1:-1:-1;8455:12:0;;8373:102;;11509:422;;;;;;;;;;-1:-1:-1;11509:422:0;;;;;:::i;:::-;;:::i;8908:142::-;;;;;;;;;;;;;:::i;8271:94::-;;;;;;;;;;-1:-1:-1;8271:94:0;;5558:2;2000:36:1;;1988:2;1973:18;8271:94:0;1858:184:1;5996:24:0;;;;;;;;;;;;;;;;6692:59;;;;;;;;;;;;;;;;5890:43;;;;;;;;;;-1:-1:-1;5890:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6591:40;;;;;;;;;;-1:-1:-1;6591:40:0;;;;;;;;;;;10186:122;;;;;;;;;;-1:-1:-1;10186:122:0;;;;;:::i;:::-;;:::i;6065:33::-;;;;;;;;;;;;;;;;8585:119;;;;;;;;;;-1:-1:-1;8585:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8678:18:0;8651:7;8678:18;;;:9;:18;;;;;;;8585:119;4662:148;;;;;;;;;;;;;:::i;:::-;;9975:203;;;;;;;;;;-1:-1:-1;9975:203:0;;;;;:::i;:::-;;:::i;5764:56::-;;;;;;;;;;;;;;;;5827:54;;;;;;;;;;;;;;;;9680:287;;;;;;;;;;-1:-1:-1;9680:287:0;;;;;:::i;:::-;;:::i;8483:94::-;;;;;;;;;;-1:-1:-1;8535:7:0;4326:6;-1:-1:-1;;;;;4326:6:0;8483:94;;;-1:-1:-1;;;;;2648:32:1;;;2630:51;;2618:2;2603:18;8483:94:0;2484:203:1;5940:47:0;;;;;;;;;;-1:-1:-1;5940:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4261:79;;;;;;;;;;-1:-1:-1;4299:7:0;4326:6;-1:-1:-1;;;;;4326:6:0;4261:79;;8165:98;;;;;;;;;;-1:-1:-1;8248:7:0;;;;;;;;;;;;-1:-1:-1;;;8248:7:0;;;;8165:98;;4558:92;;;;;;;;;;-1:-1:-1;4558:92:0;;;;;:::i;:::-;-1:-1:-1;;;;;4633:9:0;4609:4;4633:9;;;:4;:9;;;;;;;;;4558:92;6245:27;;;;;;;;;;-1:-1:-1;6245:27:0;;;;;;;;;;;6411:19;;;;;;;;;;-1:-1:-1;6411:19:0;;;;-1:-1:-1;;;;;6411:19:0;;;10904:188;;;;;;;;;;-1:-1:-1;10904:188:0;;;;;:::i;:::-;;:::i;6027:31::-;;;;;;;;;;;;;;;;6484:25;;;;;;;;;;;;;;;;6211:27;;;;;;;;;;-1:-1:-1;6211:27:0;;;;;;;;;;;6139:29;;;;;;;;;;;;;;;;6638:45;;;;;;;;;;-1:-1:-1;6638:45:0;;;;;;;;;;;8712:188;;;;;;;;;;-1:-1:-1;8712:188:0;;;;;:::i;:::-;-1:-1:-1;;;;;8864:19:0;;;8832:7;8864:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8712:188;6437:38;;;;;;;;;;-1:-1:-1;6437:38:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6177:27;;;;;;;;;;-1:-1:-1;6177:27:0;;;;;;;;4818:281;;;;;;;;;;-1:-1:-1;4818:281:0;;;;;:::i;:::-;;:::i;9314:356::-;;;;;;;;;;-1:-1:-1;9314:356:0;;;;;:::i;:::-;;:::i;6381:23::-;;;;;;;;;;-1:-1:-1;6381:23:0;;;;-1:-1:-1;;;;;6381:23:0;;;6518:30;;;;;;;;;;-1:-1:-1;6518:30:0;;;;;;;;9058:248;9194:10;9160:4;9182:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9182:32:0;;;;;;;;;;:41;;;9239:37;9160:4;;9182:32;;9239:37;;;;9217:6;1361:25:1;;1349:2;1334:18;;1215:177;9239:37:0;;;;;;;;-1:-1:-1;9294:4:0;9058:248;;;;;:::o;11509:422::-;-1:-1:-1;;;;;11664:19:0;;11643:4;11664:19;;;:11;:19;;;;;;;;11684:10;11664:31;;;;;;;;-1:-1:-1;;11664:52:0;11660:206;;11767:87;;;;;;;;;;;-1:-1:-1;;;11767:87:0;;;;;;;;-1:-1:-1;;;;;11767:19:0;;-1:-1:-1;11767:19:0;;;:11;:19;;;;;11787:10;11767:31;;;;;;;;;;:87;;11821:6;;11767:53;:87::i;:::-;-1:-1:-1;;;;;11733:19:0;;;;;;:11;:19;;;;;;;;11753:10;11733:31;;;;;;;:121;11660:206;11883:40;11897:6;11905:9;11916:6;11883:13;:40::i;:::-;11876:47;;11509:422;;;;;;:::o;8908:142::-;8678:9;:18;;;;5310:42;8961:7;8678:18;;;;;8988:12;;8961:7;;8988:54;;8678:18;;8988:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;8981:61;;8908:142;:::o;10186:122::-;10241:4;10265:35;10273:7;-1:-1:-1;;10265:7:0;:35::i;4662:148::-;4388:6;;-1:-1:-1;;;;;4388:6:0;3692:10;4388:22;4380:67;;;;-1:-1:-1;;;4380:67:0;;;;;;;:::i;:::-;;;;;;;;;4769:1:::1;4753:6:::0;;4732:40:::1;::::0;-1:-1:-1;;;;;4753:6:0;;::::1;::::0;4732:40:::1;::::0;4769:1;;4732:40:::1;4800:1;4783:19:::0;;-1:-1:-1;;;;;;4783:19:0::1;::::0;;4662:148::o;9975:203::-;4388:6;;-1:-1:-1;;;;;4388:6:0;3692:10;4388:22;4380:67;;;;-1:-1:-1;;;4380:67:0;;;;;;;:::i;:::-;10072:21:::1;10112:10;10104:66;10166:3;10134:28;10146:16:::0;10072:21;10134:28:::1;:::i;:::-;10133:36;;;;:::i;:::-;10104:66;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;10041:137;9975:203:::0;:::o;9680:287::-;9792:12;4388:6;;-1:-1:-1;;;;;4388:6:0;3692:10;4388:22;4380:67;;;;-1:-1:-1;;;4380:67:0;;;;;;;:::i;:::-;9854:4:::1;-1:-1:-1::0;;;;;9830:29:0;::::1;::::0;9822:70:::1;;;::::0;-1:-1:-1;;;9822:70:0;;4790:2:1;9822:70:0::1;::::0;::::1;4772:21:1::0;4829:2;4809:18;;;4802:30;4868;4848:18;;;4841:58;4916:18;;9822:70:0::1;4588:352:1::0;9822:70:0::1;9910:49;::::0;-1:-1:-1;;;9910:49:0;;9940:10:::1;9910:49;::::0;::::1;5119:51:1::0;5186:18;;;5179:34;;;-1:-1:-1;;;;;9910:29:0;::::1;::::0;::::1;::::0;5092:18:1;;9910:49:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10904:188::-:0;11011:4;11040:44;11054:10;11066:9;11077:6;11040:13;:44::i;4818:281::-;4388:6;;-1:-1:-1;;;;;4388:6:0;3692:10;4388:22;4380:67;;;;-1:-1:-1;;;4380:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4921:22:0;::::1;4899:110;;;::::0;-1:-1:-1;;;4899:110:0;;5708:2:1;4899:110:0::1;::::0;::::1;5690:21:1::0;5747:2;5727:18;;;5720:30;5786:34;5766:18;;;5759:62;-1:-1:-1;;;5837:18:1;;;5830:36;5883:19;;4899:110:0::1;5506:402:1::0;4899:110:0::1;5046:6;::::0;;5025:38:::1;::::0;-1:-1:-1;;;;;5025:38:0;;::::1;::::0;5046:6;::::1;::::0;5025:38:::1;::::0;::::1;5074:6;:17:::0;;-1:-1:-1;;;;;;5074:17:0::1;-1:-1:-1::0;;;;;5074:17:0;;;::::1;::::0;;;::::1;::::0;;4818:281::o;9314:356::-;4517:10;4609:4;4633:9;;;:4;:9;;;;;;;;4501:38;;;;-1:-1:-1;;;4501:38:0;;6115:2:1;4501:38:0;;;6097:21:1;6154:1;6134:18;;;6127:29;-1:-1:-1;;;6172:18:1;;;6165:36;6218:18;;4501:38:0;5913:329:1;4501:38:0;9474:5:::1;:14:::0;;;9499:12:::1;:24:::0;;;9534:14:::1;:27:::0;;;9581:43:::1;9551:10:::0;9581:23:::1;9482:6:::0;9514:9;9581::::1;:23::i;:::-;:27:::0;::::1;:43::i;:::-;9572:6;:52:::0;;;9648:14:::1;::::0;9657:5;;9648:14:::1;:::i;:::-;9635:10;:27:::0;-1:-1:-1;;;;9314:356:0:o;452:179::-;510:7;;542:5;546:1;542;:5;:::i;:::-;530:17;;571:1;566;:6;;558:46;;;;-1:-1:-1;;;558:46:0;;6579:2:1;558:46:0;;;6561:21:1;6618:2;6598:18;;;6591:30;6657:29;6637:18;;;6630:57;6704:18;;558:46:0;6377:351:1;783:224:0;903:7;939:12;931:6;;;;923:29;;;;-1:-1:-1;;;923:29:0;;;;;;;;:::i;:::-;-1:-1:-1;963:9:0;975:5;979:1;975;:5;:::i;:::-;963:17;783:224;-1:-1:-1;;;;;783:224:0:o;11939:1167::-;12086:16;;12065:4;;12086:16;;;;;12082:97;;;12126:41;12141:6;12149:9;12160:6;12126:14;:41::i;:::-;12119:48;;;;12082:97;-1:-1:-1;;;;;12194:12:0;;;;;;:4;:12;;;;;;;;12193:13;:33;;;;-1:-1:-1;;;;;;12211:15:0;;;;;;:4;:15;;;;;;;;12210:16;12193:33;12189:90;;;12251:11;;;;12243:24;;;;-1:-1:-1;;;12243:24:0;;7068:2:1;12243:24:0;;;7050:21:1;-1:-1:-1;7087:18:1;;;7080:29;7126:18;;12243:24:0;6866:284:1;12243:24:0;-1:-1:-1;;;;;12307:17:0;;;;;;:6;:17;;;;;;;;:51;;;;-1:-1:-1;12342:16:0;;;;;;;12341:17;12307:51;:89;;;;-1:-1:-1;12375:21:0;;;;;;;12307:89;:148;;;;-1:-1:-1;12441:14:0;;12431:4;12413:24;;;;:9;:24;;;;;;:42;;12307:148;12289:222;;;12482:17;:15;:17::i;:::-;10383:10;;:15;;;12525:32;;-1:-1:-1;;;;;;12540:17:0;;;;;;:6;:17;;;;;;;;12525:32;12521:122;;;-1:-1:-1;;;;;12582:17:0;;12602:1;12582:17;;;:9;:17;;;;;;12574:34;;;;-1:-1:-1;;;12574:34:0;;7068:2:1;12574:34:0;;;7050:21:1;-1:-1:-1;7087:18:1;;;7080:29;7126:18;;12574:34:0;6866:284:1;12574:34:0;12623:8;10465:12;10452:10;:25;10414:71;12623:8;12702:33;;;;;;;;;-1:-1:-1;12702:33:0;;;-1:-1:-1;;;;;12702:17:0;;;;:9;:17;;;;;;;;:33;;12724:6;;12702:21;:33::i;:::-;-1:-1:-1;;;;;12682:17:0;;;;;;:9;:17;;;;;;;;:53;;;;12828:11;:19;;;;;;;;12827:20;:47;;;;-1:-1:-1;;;;;;12852:22:0;;;;;;:11;:22;;;;;;;;12851:23;12827:47;:120;;12941:6;12827:120;;;12890:35;12899:6;12907:9;12918:6;12890:8;:35::i;:::-;-1:-1:-1;;;;;12981:20:0;;;;;;:9;:20;;;;;;12805:142;;-1:-1:-1;12981:37:0;;12805:142;12981:24;:37::i;:::-;-1:-1:-1;;;;;12958:20:0;;;;;;;:9;:20;;;;;;;:60;;;;13036:40;;;;;;;;;;13064:11;1361:25:1;;1349:2;1334:18;;1215:177;13036:40:0;;;;;;;;-1:-1:-1;13094:4:0;;11939:1167;-1:-1:-1;;;;11939:1167:0:o;639:136::-;697:7;724:43;728:1;731;724:43;;;;;;;;;;;;;;;;;:3;:43::i;11100:401::-;11264:90;;;;;;;;;;;-1:-1:-1;;;11264:90:0;;;;;;;;-1:-1:-1;;;;;11264:17:0;;11227:4;11264:17;;;:9;:17;;;;;;;:90;;11300:6;;11264:21;:90::i;:::-;-1:-1:-1;;;;;11244:17:0;;;;;;;:9;:17;;;;;;:110;;;;11388:20;;;;;;;:32;;11413:6;11388:24;:32::i;:::-;-1:-1:-1;;;;;11365:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11436:35;;;;;;;;;;11464:6;1361:25:1;;1349:2;1334:18;;1215:177;11436:35:0;;;;;;;;-1:-1:-1;11489:4:0;11100:401;;;;;:::o;13942:1755::-;6858:16;:23;;-1:-1:-1;;6858:23:0;;;;;14045:4:::1;6858:23:::0;14027:24;;;:9:::1;:24;::::0;;;;;14147:6:::1;::::0;14122:5:::1;::::0;14027:24;;6858:23;14088:87:::1;::::0;14173:1:::1;::::0;14088:66:::1;::::0;14147:6;14088:66;;14027:24;;14088:33:::1;:40::i;:::-;:58:::0;::::1;:66::i;:87::-;14062:113:::0;-1:-1:-1;14186:20:0::1;14209:36;:15:::0;14062:113;14209:19:::1;:36::i;:::-;14282:16;::::0;;14296:1:::1;14282:16:::0;;;;;::::1;::::0;;14186:59;;-1:-1:-1;14258:21:0::1;::::0;14282:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;14282:16:0::1;14258:40;;14327:4;14309;14314:1;14309:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14309:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;14353:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;14353:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;14309:7;;14353:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14343:4;14348:1;14343:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14343:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;14379:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;14379:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;14451:12;;14379:6:::1;::::0;14494:4;;14521::::1;::::0;14541:15:::1;::::0;14379:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;14667:5:0::1;::::0;14600:21:::1;::::0;-1:-1:-1;14580:17:0::1;::::0;-1:-1:-1;14656:24:0::1;::::0;14667:12:::1;::::0;14677:1:::1;14667:9;:12::i;:::-;14656:6;::::0;;:10:::1;:24::i;:::-;14634:46;;14693:26;14722:86;14806:1;14722:65;14775:11;14722:34;14750:5;;14722:9;:27;;:34;;;;:::i;:86::-;14693:115;;14819:26;14848:68;14894:11;14848:27;14862:12;;14848:9;:13;;:27;;;;:::i;:68::-;14819:97;;14927:20;14950:46;14984:11;14950:29;14964:14;;14950:9;:13;;:29;;;;:::i;:46::-;15040:9;::::0;15032:103:::1;::::0;14927:69;;-1:-1:-1;15010:16:0::1;::::0;-1:-1:-1;;;;;15040:9:0;;::::1;::::0;15115:5:::1;::::0;15077:18;;15010:16;15032:103;15010:16;15032:103;15077:18;15040:9;15115:5;15032:103:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;15204:9:0::1;::::0;15196:97:::1;::::0;15160:5:::1;::::0;-1:-1:-1;;;;;;15204:9:0;;::::1;::::0;-1:-1:-1;15273:5:0::1;::::0;15241:12;;15160:5;15196:97;15160:5;15196:97;15241:12;15204:9;15273:5;15196:97:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;15318:5:0::1;::::0;-1:-1:-1;;15340:19:0;;;-1:-1:-1;15336:354:0::1;;15376:6;::::0;15550:11:::1;::::0;15376:234:::1;::::0;-1:-1:-1;;;15376:234:0;;15452:4:::1;15376:234;::::0;::::1;9211:34:1::0;9261:18;;;9254:34;;;-1:-1:-1;9304:18:1;;;9297:34;;;9347:18;;;9340:34;-1:-1:-1;;;;;15550:11:0;;;::::1;::::0;::::1;9390:19:1::0;;;9383:44;15580:15:0::1;9443:19:1::0;;;9436:35;15376:6:0;::::1;::::0;:22:::1;::::0;15406:18;;9145:19:1;;15376:234:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;15630:48:0::1;::::0;;9967:25:1;;;10023:2;10008:18;;10001:34;;;15630:48:0::1;::::0;-1:-1:-1;9940:18:1;15630:48:0::1;;;;;;;15336:354;-1:-1:-1::0;;6904:16:0;:24;;-1:-1:-1;;6904:24:0;;;-1:-1:-1;;;;;;;;13942:1755:0:o;13114:820::-;-1:-1:-1;;;;;13295:17:0;;13235:7;13295:17;;;:6;:17;;;;;;13235:7;;13295:17;;:29;;;;-1:-1:-1;13316:8:0;;;;;;;13295:29;13291:88;;;-1:-1:-1;13357:10:0;;13291:88;-1:-1:-1;;;;;13393:14:0;;;;;;:6;:14;;;;;;;;:26;;;;-1:-1:-1;13411:8:0;;;;13393:26;13389:81;;;-1:-1:-1;13452:6:0;;13389:81;-1:-1:-1;;;;;13485:14:0;;;;;;:6;:14;;;;;;;;13484:15;:37;;;;-1:-1:-1;;;;;;13504:17:0;;;;;;:6;:17;;;;;;;;13503:18;13484:37;13480:202;;;13542:8;;;;;;;13538:133;;;-1:-1:-1;13587:10:0;;13538:133;;;-1:-1:-1;13654:1:0;13538:133;13694:17;13714:34;13744:3;13714:25;:6;13725:13;13714:10;:25::i;:34::-;13806:4;13788:24;;;;:9;:24;;;;;;13694:54;;-1:-1:-1;13788:39:0;;13694:54;13788:28;:39::i;:::-;13779:4;13761:24;;;;:9;:24;;;;;;;:66;;;;13843:42;;-1:-1:-1;;;;;13843:42:0;;;;;;;13875:9;1361:25:1;;1349:2;1334:18;;1215:177;13843:42:0;;;;;;;;13905:21;:6;13916:9;13905:10;:21::i;:::-;13898:28;13114:820;-1:-1:-1;;;;;;13114:820:0:o;1015:246::-;1073:7;1097:1;1102;1097:6;1093:47;;-1:-1:-1;1127:1:0;1120:8;;1093:47;1150:9;1162:5;1166:1;1162;:5;:::i;:::-;1150:17;-1:-1:-1;1195:1:0;1186:5;1190:1;1150:17;1186:5;:::i;:::-;:10;1178:56;;;;-1:-1:-1;;;1178:56:0;;10248:2:1;1178:56:0;;;10230:21:1;10287:2;10267:18;;;10260:30;10326:34;10306:18;;;10299:62;-1:-1:-1;;;10377:18:1;;;10370:31;10418:19;;1178:56:0;10046:397:1;1269:132:0;1327:7;1354:39;1358:1;1361;1354:39;;;;;;;;;;;;;;;;;1529:7;1564:12;1557:5;1549:28;;;;-1:-1:-1;;;1549:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1588:9:0;1600:5;1604:1;1600;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:180::-;2358:6;2411:2;2399:9;2390:7;2386:23;2382:32;2379:52;;;2427:1;2424;2417:12;2379:52;-1:-1:-1;2450:23:1;;2299:180;-1:-1:-1;2299:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3085:385::-;3171:6;3179;3187;3195;3248:3;3236:9;3227:7;3223:23;3219:33;3216:53;;;3265:1;3262;3255:12;3216:53;-1:-1:-1;;3288:23:1;;;3358:2;3343:18;;3330:32;;-1:-1:-1;3409:2:1;3394:18;;3381:32;;3460:2;3445:18;3432:32;;-1:-1:-1;3085:385:1;-1:-1:-1;3085:385:1:o;3700:356::-;3902:2;3884:21;;;3921:18;;;3914:30;3980:34;3975:2;3960:18;;3953:62;4047:2;4032:18;;3700:356::o;4061:127::-;4122:10;4117:3;4113:20;4110:1;4103:31;4153:4;4150:1;4143:15;4177:4;4174:1;4167:15;4193:168;4266:9;;;4297;;4314:15;;;4308:22;;4294:37;4284:71;;4335:18;;:::i;4366:217::-;4406:1;4432;4422:132;;4476:10;4471:3;4467:20;4464:1;4457:31;4511:4;4508:1;4501:15;4539:4;4536:1;4529:15;4422:132;-1:-1:-1;4568:9:1;;4366:217::o;5224:277::-;5291:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:52;;;5360:1;5357;5350:12;5312:52;5392:9;5386:16;5445:5;5438:13;5431:21;5424:5;5421:32;5411:60;;5467:1;5464;5457:12;6247:125;6312:9;;;6333:10;;;6330:36;;;6346:18;;:::i;6733:128::-;6800:9;;;6821:11;;;6818:37;;;6835:18;;:::i;7287:127::-;7348:10;7343:3;7339:20;7336:1;7329:31;7379:4;7376:1;7369:15;7403:4;7400:1;7393:15;7419:251;7489:6;7542:2;7530:9;7521:7;7517:23;7513:32;7510:52;;;7558:1;7555;7548:12;7510:52;7590:9;7584:16;7609:31;7634:5;7609:31;:::i;7675:980::-;7937:4;7985:3;7974:9;7970:19;8016:6;8005:9;7998:25;8042:2;8080:6;8075:2;8064:9;8060:18;8053:34;8123:3;8118:2;8107:9;8103:18;8096:31;8147:6;8182;8176:13;8213:6;8205;8198:22;8251:3;8240:9;8236:19;8229:26;;8290:2;8282:6;8278:15;8264:29;;8311:1;8321:195;8335:6;8332:1;8329:13;8321:195;;;8400:13;;-1:-1:-1;;;;;8396:39:1;8384:52;;8491:15;;;;8456:12;;;;8432:1;8350:9;8321:195;;;-1:-1:-1;;;;;;;8572:32:1;;;;8567:2;8552:18;;8545:60;-1:-1:-1;;;8636:3:1;8621:19;8614:35;8533:3;7675:980;-1:-1:-1;;;7675:980:1:o;9482:306::-;9570:6;9578;9586;9639:2;9627:9;9618:7;9614:23;9610:32;9607:52;;;9655:1;9652;9645:12;9607:52;9684:9;9678:16;9668:26;;9734:2;9723:9;9719:18;9713:25;9703:35;;9778:2;9767:9;9763:18;9757:25;9747:35;;9482:306;;;;;:::o

Swarm Source

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