ETH Price: $3,489.12 (-0.03%)
Gas: 2 Gwei

Token

BetKing (BET)
 

Overview

Max Total Supply

1,000,000 BET

Holders

58

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
2,312.685966146214074001 BET

Value
$0.00
0xc62E88aD4Af9361B2b251b121eC7184c3A732Ef2
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:
BetToken

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-11-10
*/

// SPDX-License-Identifier: MIT

/**
BetKing is a frictionless and verifiable TG betting bot. you can bet many famous sports on it without KYC.

Website: https://www.betking.games
Docs: https://docs.betking.games
Bot: https://t.me/betkingwinbot
Telegram:  https://t.me/BetKing_portal
Twitter: https://twitter.com/betking_eth

**/
pragma solidity 0.8.0;

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

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

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

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

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

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

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

contract Ownable {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract BetToken is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;

    // tax distribut config
    uint256 private _taxDistributThreshold = 0.1 ether;
    address[] public taxWallets;
    mapping(address => uint) public taxPercentages;

    string private constant _name = unicode"BetKing";
    string private constant _symbol = unicode"BET";
    uint256 private constant _tTotal = 1000000 ether;

    uint256 public maxWalletSize = (_tTotal * 1) / 100;

    uint256 public buyTax = 5;
    uint256 public sellTax = 5;
    uint256 public taxToBlackHole = 1;

    address private blackHole = 0x000000000000000000000000000000000000dEaD;

    uint256 private _taxSwapThreshold = (_tTotal * 1) / 100;
    uint256 private _maxTaxSwap = (_tTotal * 1) / 100;

    uint256 private _highTaxBlock = 0;
    uint256 private _highTax = 5;

    IUniswapV2Router02 private uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private tradingStartBlock;

    bool public tradingOpen = false;

    event MaxWalletSizeUpdated(uint256 maxWalletSize);
    event TaxUpdated(uint256 buyTax, uint256 sellTax);

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

    constructor() {
        _balances[msg.sender] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        // only addresses that excluded from fee can transfer when trading is not open
        if (!tradingOpen) {
            require(
                _isExcludedFromFee[from],
                "This account cannot send tokens until trading is enabled"
            );
        }

        uint256 taxAmount = _getTaxAmount(from, to, amount);

        // swap tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            contractTokenBalance > _taxSwapThreshold
        ) {
            swapTokensForEth(
                min(amount, min(contractTokenBalance, _maxTaxSwap))
            );
            uint256 contractETHBalance = address(this).balance;
            if (
                contractETHBalance > 0 &&
                contractETHBalance > _taxDistributThreshold
            ) {
                distributTaxETH();
            }
        }

        if (taxAmount > 0) {
            // transfer tax to dead address
            uint256 deadTaxAmount = (amount * taxToBlackHole) / 100;
            _balances[blackHole] = _balances[blackHole] + deadTaxAmount;
            emit Transfer(address(this), blackHole, deadTaxAmount);

            // transfer tax to this contract
            _balances[address(this)] =
                _balances[address(this)] +
                taxAmount -
                deadTaxAmount;
            emit Transfer(from, address(this), taxAmount - deadTaxAmount);
        }

        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);
    }

    function _getTaxAmount(
        address from,
        address to,
        uint256 amount
    ) private view returns (uint256) {
        uint256 taxAmount = 0;

        // buy
        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !_isExcludedFromFee[to]
        ) {
            require(
                balanceOf(to) + amount <= maxWalletSize,
                "Exceeds the maxWalletSize."
            );
            taxAmount = block.number >= tradingStartBlock + _highTaxBlock
                ? (amount * buyTax) / 100
                : (amount * _highTax) / 100;
        }

        // sale
        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !_isExcludedFromFee[from]
        ) {
            taxAmount = block.number >= tradingStartBlock + _highTaxBlock
                ? (amount * sellTax) / 100
                : (amount * _highTax) / 100;
        }

        return taxAmount;
    }

    // reduceTax
    function reduceTax(
        uint256 _buyTax,
        uint256 _sellTax,
        uint256 _taxToBlackHole
    ) external onlyOwner {
        require(_buyTax <= buyTax && _sellTax <= sellTax, "Invalid tax");
        require(
            _taxToBlackHole <= _buyTax && _taxToBlackHole <= _sellTax,
            "Invalid tax"
        );

        buyTax = _buyTax;
        sellTax = _sellTax;
        taxToBlackHole = _taxToBlackHole;

        emit TaxUpdated(buyTax, sellTax);
    }

    // add address to _isExcludedFromFee
    function addIsExcludedFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
    }

    function setTaxSwapConfig(
        uint256 taxSwapThreshold,
        uint256 maxTaxSwap
    ) external onlyOwner {
        _taxSwapThreshold = taxSwapThreshold;
        _maxTaxSwap = maxTaxSwap;
    }

    function removeLimits() external onlyOwner {
        maxWalletSize = _tTotal;
        emit MaxWalletSizeUpdated(_tTotal);
    }

    function openTrading(
        uint256 highTaxBlock,
        uint256 highTax,
        uint256 teamShare,
        uint256 _buyTax,
        uint256 _sellTax
    ) external onlyOwner {
        require(!tradingOpen, "trading is already open");
        require(taxWallets.length > 0, "taxWallets is empty");

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) - teamShare,
            0,
            0,
            owner(),
            block.timestamp
        );

        _highTaxBlock = highTaxBlock;
        _highTax = highTax;

        buyTax = _buyTax;
        sellTax = _sellTax;

        swapEnabled = true;
        tradingOpen = true;
        tradingStartBlock = block.number;
    }

    function manualSwap() external {
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            distributTaxETH();
        }
    }

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function distributTaxETH() public {
        for (uint i = 0; i < taxWallets.length; i++) {
            uint256 amount = (address(this).balance *
                taxPercentages[taxWallets[i]]) / 100;
            payable(taxWallets[i]).transfer(amount);
        }
    }

    function setTaxDistributConfig(
        uint256 taxDistributThreshold,
        address[] memory _taxWallets,
        uint[] memory _taxPercentages
    ) external onlyOwner {
        require(
            _taxWallets.length == _taxPercentages.length,
            "taxWallets and taxPercentages length mismatch"
        );

        _taxDistributThreshold = taxDistributThreshold;
        taxWallets = _taxWallets;

        uint count = 0;

        for (uint i = 0; i < _taxWallets.length; i++) {
            taxPercentages[_taxWallets[i]] = _taxPercentages[i];
            count += _taxPercentages[i];
        }

        require(count == 100, "Invalid taxPercentages");
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"MaxWalletSizeUpdated","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":false,"internalType":"uint256","name":"buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"TaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addIsExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","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":"distributTaxETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"highTaxBlock","type":"uint256"},{"internalType":"uint256","name":"highTax","type":"uint256"},{"internalType":"uint256","name":"teamShare","type":"uint256"},{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"},{"internalType":"uint256","name":"_taxToBlackHole","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxDistributThreshold","type":"uint256"},{"internalType":"address[]","name":"_taxWallets","type":"address[]"},{"internalType":"uint256[]","name":"_taxPercentages","type":"uint256[]"}],"name":"setTaxDistributConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxSwapThreshold","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"name":"setTaxSwapConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"taxPercentages","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxToBlackHole","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"taxWallets","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a000060045560646200002969d3c21bcecceda1000000600162000236565b62000035919062000215565b600755600560088190556009556001600a819055600b80546001600160a01b03191661dead179055606490620000779069d3c21bcecceda10000009062000236565b62000083919062000215565b600c5560646200009f69d3c21bcecceda1000000600162000236565b620000ab919062000215565b600d556000600e556005600f55601080546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556011805461ffff60a01b191690556013805460ff191690553480156200010357600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3336000908152600160208190526040822069d3c21bcecceda10000009055906003906200016f620001fd565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526003909252808220805490931660011790925590513391907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620001ef9069d3c21bcecceda1000000906200020c565b60405180910390a362000262565b6000546001600160a01b031690565b90815260200190565b6000826200023157634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156200025d57634e487b7160e01b81526011600452602481fd5b500290565b611d0f80620002726000396000f3fe6080604052600436106101855760003560e01c80637190f01d116100d157806395d89b411161008a578063cc1776d311610064578063cc1776d314610424578063d489e03714610439578063dd62ed3e1461044e578063ffb54a991461046e5761018c565b806395d89b41146103cf578063a9059cbb146103e4578063aafdc930146104045761018c565b80637190f01d14610323578063751039fc146103435780637ebc3d41146103585780638da5cb5b146103785780638f3fa8601461039a578063912c048c146103af5761018c565b8063313ce5671161013e57806351bc3c851161011857806351bc3c85146102b957806367b24608146102ce57806370a08231146102ee578063715018a61461030e5761018c565b8063313ce5671461026257806332b9b3ec146102845780634f7041a5146102a45761018c565b80630204902a1461019157806306fdde03146101bc578063095ea7b3146101de5780630e6a65ef1461020b57806318160ddd1461022d57806323b872dd146102425761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610483565b6040516101b39190611b2c565b60405180910390f35b3480156101c857600080fd5b506101d1610489565b6040516101b3919061187e565b3480156101ea57600080fd5b506101fe6101f9366004611649565b6104aa565b6040516101b39190611873565b34801561021757600080fd5b5061022b610226366004611599565b6104c0565b005b34801561023957600080fd5b506101a6610517565b34801561024e57600080fd5b506101fe61025d366004611609565b610525565b34801561026e57600080fd5b50610277610577565b6040516101b39190611bb3565b34801561029057600080fd5b506101a661029f366004611599565b61057c565b3480156102b057600080fd5b506101a661058e565b3480156102c557600080fd5b5061022b610594565b3480156102da57600080fd5b5061022b6102e9366004611757565b6105c3565b3480156102fa57600080fd5b506101a6610309366004611599565b6105f8565b34801561031a57600080fd5b5061022b610613565b34801561032f57600080fd5b5061022b61033e3660046117d0565b610687565b34801561034f57600080fd5b5061022b610995565b34801561036457600080fd5b5061022b61037336600461168c565b610a07565b34801561038457600080fd5b5061038d610b5e565b6040516101b3919061180a565b3480156103a657600080fd5b506101a6610b6d565b3480156103bb57600080fd5b5061038d6103ca366004611674565b610b73565b3480156103db57600080fd5b506101d1610b9d565b3480156103f057600080fd5b506101fe6103ff366004611649565b610bba565b34801561041057600080fd5b5061022b61041f366004611778565b610bc7565b34801561043057600080fd5b506101a6610c9b565b34801561044557600080fd5b5061022b610ca1565b34801561045a57600080fd5b506101a66104693660046115d1565b610d8b565b34801561047a57600080fd5b506101fe610db6565b600a5481565b6040805180820190915260078152664265744b696e6760c81b602082015290565b60006104b7338484610dbf565b50600192915050565b6000546001600160a01b031633146104f35760405162461bcd60e51b81526004016104ea906119b6565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b69d3c21bcecceda100000090565b6000610532848484610e27565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461056d918691610568908690611c66565b610dbf565b5060019392505050565b601290565b60066020526000908152604090205481565b60085481565b600061059f306105f8565b905080156105b0576105b08161114f565b4780156105bf576105bf610ca1565b5050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016104ea906119b6565b600c91909155600d55565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b0316331461063d5760405162461bcd60e51b81526004016104ea906119b6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104ea906119b6565b60135460ff16156106d45760405162461bcd60e51b81526004016104ea90611ac8565b6005546106f35760405162461bcd60e51b81526004016104ea90611aff565b6010546107159030906001600160a01b031669d3c21bcecceda1000000610dbf565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561076357600080fd5b505afa158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b91906115b5565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f857600080fd5b505afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906115b5565b6040518363ffffffff1660e01b815260040161084d92919061181e565b602060405180830381600087803b15801561086757600080fd5b505af115801561087b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f91906115b5565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730866108d0826105f8565b6108da9190611c66565b6000806108e5610b5e565b426040518863ffffffff1660e01b815260040161090796959493929190611838565b6060604051808303818588803b15801561092057600080fd5b505af1158015610934573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061095991906117a3565b505050600e94909455600f92909255506008556009556011805460ff60a81b1916600160a81b1790556013805460ff1916600117905543601255565b6000546001600160a01b031633146109bf5760405162461bcd60e51b81526004016104ea906119b6565b69d3c21bcecceda100000060078190556040517ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd916109fd91611b2c565b60405180910390a1565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016104ea906119b6565b8051825114610a525760405162461bcd60e51b81526004016104ea90611914565b60048390558151610a6a9060059060208501906114b3565b506000805b8351811015610b3757828181518110610a9857634e487b7160e01b600052603260045260246000fd5b602002602001015160066000868481518110610ac457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550828181518110610b1057634e487b7160e01b600052603260045260246000fd5b602002602001015182610b239190611c0f565b915080610b2f81611c7d565b915050610a6f565b5080606414610b585760405162461bcd60e51b81526004016104ea90611986565b50505050565b6000546001600160a01b031690565b60075481565b60058181548110610b8357600080fd5b6000918252602090912001546001600160a01b0316905081565b60408051808201909152600381526210915560ea1b602082015290565b60006104b7338484610e27565b6000546001600160a01b03163314610bf15760405162461bcd60e51b81526004016104ea906119b6565b6008548311158015610c0557506009548211155b610c215760405162461bcd60e51b81526004016104ea90611961565b828111158015610c315750818111155b610c4d5760405162461bcd60e51b81526004016104ea90611961565b60088390556009829055600a8190556040517fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560590610c8e9085908590611ba5565b60405180910390a1505050565b60095481565b60005b600554811015610d8857600060646006600060058581548110610cd757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054610d069047611c47565b610d109190611c27565b905060058281548110610d3357634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610d73573d6000803e3d6000fd5b50508080610d8090611c7d565b915050610ca4565b50565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60135460ff1681565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e1a908590611b2c565b60405180910390a3505050565b6001600160a01b038216610e4d5760405162461bcd60e51b81526004016104ea906118d1565b60008111610e6d5760405162461bcd60e51b81526004016104ea906119eb565b60135460ff16610eaf576001600160a01b03831660009081526003602052604090205460ff16610eaf5760405162461bcd60e51b81526004016104ea90611a34565b6000610ebc84848461130e565b90506000610ec9306105f8565b601154909150600160a01b900460ff16158015610ef357506011546001600160a01b038581169116145b8015610f085750601154600160a81b900460ff165b8015610f155750600c5481115b15610f5757610f37610f3284610f2d84600d5461149b565b61149b565b61114f565b478015801590610f48575060045481115b15610f5557610f55610ca1565b505b81156110895760006064600a5485610f6f9190611c47565b610f799190611c27565b600b546001600160a01b0316600090815260016020526040902054909150610fa2908290611c0f565b600b80546001600160a01b0390811660009081526001602052604090819020939093559054915191169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ffb908590611b2c565b60405180910390a3306000908152600160205260409020548190611020908590611c0f565b61102a9190611c66565b306000818152600160205260409020919091556001600160a01b0387167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110728487611c66565b60405161107f9190611b2c565b60405180910390a3505b6001600160a01b0385166000908152600160205260409020546110ad908490611c66565b6001600160a01b03808716600090815260016020526040808220939093559086168152205482906110df908590611c0f565b6110e99190611c66565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111338587611c66565b6040516111409190611b2c565b60405180910390a35050505050565b6011805460ff60a01b1916600160a01b1790558061116c576112fe565b60135460ff1661117b576112fe565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111be57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a91906115b5565b8160018151811061126b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010546112919130911684610dbf565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ca908590600090869030904290600401611b35565b600060405180830381600087803b1580156112e457600080fd5b505af11580156112f8573d6000803e3d6000fd5b50505050505b506011805460ff60a01b19169055565b60115460009081906001600160a01b03868116911614801561133e57506010546001600160a01b03858116911614155b801561136357506001600160a01b03841660009081526003602052604090205460ff16155b156113f05760075483611375866105f8565b61137f9190611c0f565b111561139d5760405162461bcd60e51b81526004016104ea90611a91565b600e546012546113ad9190611c0f565b4310156113d3576064600f54846113c49190611c47565b6113ce9190611c27565b6113ed565b6064600854846113e39190611c47565b6113ed9190611c27565b90505b6011546001600160a01b03858116911614801561141657506001600160a01b0385163014155b801561143b57506001600160a01b03851660009081526003602052604090205460ff16155b1561149357600e546012546114509190611c0f565b431015611476576064600f54846114679190611c47565b6114719190611c27565b611490565b6064600954846114869190611c47565b6114909190611c27565b90505b949350505050565b60008183116114aa57826114ac565b815b9392505050565b828054828255906000526020600020908101928215611508579160200282015b8281111561150857825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906114d3565b50611514929150611518565b5090565b5b808211156115145760008155600101611519565b600082601f83011261153d578081fd5b8135602061155261154d83611beb565b611bc1565b828152818101908583018385028701840188101561156e578586fd5b855b8581101561158c57813584529284019290840190600101611570565b5090979650505050505050565b6000602082840312156115aa578081fd5b81356114ac81611cc4565b6000602082840312156115c6578081fd5b81516114ac81611cc4565b600080604083850312156115e3578081fd5b82356115ee81611cc4565b915060208301356115fe81611cc4565b809150509250929050565b60008060006060848603121561161d578081fd5b833561162881611cc4565b9250602084013561163881611cc4565b929592945050506040919091013590565b6000806040838503121561165b578182fd5b823561166681611cc4565b946020939093013593505050565b600060208284031215611685578081fd5b5035919050565b6000806000606084860312156116a0578283fd5b8335925060208085013567ffffffffffffffff808211156116bf578485fd5b818701915087601f8301126116d2578485fd5b81356116e061154d82611beb565b81815284810190848601868402860187018c10156116fc578889fd5b8895505b8386101561172757803561171381611cc4565b835260019590950194918601918601611700565b5096505050604087013592508083111561173f578384fd5b505061174d8682870161152d565b9150509250925092565b60008060408385031215611769578182fd5b50508035926020909101359150565b60008060006060848603121561178c578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156117b7578283fd5b8351925060208401519150604084015190509250925092565b600080600080600060a086880312156117e7578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118aa5785810183015185820160400152820161188e565b818111156118bb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602d908201527f74617857616c6c65747320616e642074617850657263656e7461676573206c6560408201526c0dccee8d040dad2e6dac2e8c6d609b1b606082015260800190565b6020808252600b908201526a092dcecc2d8d2c840e8c2f60ab1b604082015260600190565b602080825260169082015275496e76616c69642074617850657263656e746167657360501b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526038908201527f54686973206163636f756e742063616e6e6f742073656e6420746f6b656e732060408201527f756e74696c2074726164696e6720697320656e61626c65640000000000000000606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526013908201527274617857616c6c65747320697320656d70747960681b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b845784516001600160a01b031683529383019391830191600101611b5f565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611be357611be3611cae565b604052919050565b600067ffffffffffffffff821115611c0557611c05611cae565b5060209081020190565b60008219821115611c2257611c22611c98565b500190565b600082611c4257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c6157611c61611c98565b500290565b600082821015611c7857611c78611c98565b500390565b6000600019821415611c9157611c91611c98565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d8857600080fdfea26469706673582212200cade996b3380fa510be64fb330d69406b1193c460f59423af91192f7ab0328d64736f6c63430008000033

Deployed Bytecode

0x6080604052600436106101855760003560e01c80637190f01d116100d157806395d89b411161008a578063cc1776d311610064578063cc1776d314610424578063d489e03714610439578063dd62ed3e1461044e578063ffb54a991461046e5761018c565b806395d89b41146103cf578063a9059cbb146103e4578063aafdc930146104045761018c565b80637190f01d14610323578063751039fc146103435780637ebc3d41146103585780638da5cb5b146103785780638f3fa8601461039a578063912c048c146103af5761018c565b8063313ce5671161013e57806351bc3c851161011857806351bc3c85146102b957806367b24608146102ce57806370a08231146102ee578063715018a61461030e5761018c565b8063313ce5671461026257806332b9b3ec146102845780634f7041a5146102a45761018c565b80630204902a1461019157806306fdde03146101bc578063095ea7b3146101de5780630e6a65ef1461020b57806318160ddd1461022d57806323b872dd146102425761018c565b3661018c57005b600080fd5b34801561019d57600080fd5b506101a6610483565b6040516101b39190611b2c565b60405180910390f35b3480156101c857600080fd5b506101d1610489565b6040516101b3919061187e565b3480156101ea57600080fd5b506101fe6101f9366004611649565b6104aa565b6040516101b39190611873565b34801561021757600080fd5b5061022b610226366004611599565b6104c0565b005b34801561023957600080fd5b506101a6610517565b34801561024e57600080fd5b506101fe61025d366004611609565b610525565b34801561026e57600080fd5b50610277610577565b6040516101b39190611bb3565b34801561029057600080fd5b506101a661029f366004611599565b61057c565b3480156102b057600080fd5b506101a661058e565b3480156102c557600080fd5b5061022b610594565b3480156102da57600080fd5b5061022b6102e9366004611757565b6105c3565b3480156102fa57600080fd5b506101a6610309366004611599565b6105f8565b34801561031a57600080fd5b5061022b610613565b34801561032f57600080fd5b5061022b61033e3660046117d0565b610687565b34801561034f57600080fd5b5061022b610995565b34801561036457600080fd5b5061022b61037336600461168c565b610a07565b34801561038457600080fd5b5061038d610b5e565b6040516101b3919061180a565b3480156103a657600080fd5b506101a6610b6d565b3480156103bb57600080fd5b5061038d6103ca366004611674565b610b73565b3480156103db57600080fd5b506101d1610b9d565b3480156103f057600080fd5b506101fe6103ff366004611649565b610bba565b34801561041057600080fd5b5061022b61041f366004611778565b610bc7565b34801561043057600080fd5b506101a6610c9b565b34801561044557600080fd5b5061022b610ca1565b34801561045a57600080fd5b506101a66104693660046115d1565b610d8b565b34801561047a57600080fd5b506101fe610db6565b600a5481565b6040805180820190915260078152664265744b696e6760c81b602082015290565b60006104b7338484610dbf565b50600192915050565b6000546001600160a01b031633146104f35760405162461bcd60e51b81526004016104ea906119b6565b60405180910390fd5b6001600160a01b03166000908152600360205260409020805460ff19166001179055565b69d3c21bcecceda100000090565b6000610532848484610e27565b6001600160a01b03841660009081526002602090815260408083203380855292529091205461056d918691610568908690611c66565b610dbf565b5060019392505050565b601290565b60066020526000908152604090205481565b60085481565b600061059f306105f8565b905080156105b0576105b08161114f565b4780156105bf576105bf610ca1565b5050565b6000546001600160a01b031633146105ed5760405162461bcd60e51b81526004016104ea906119b6565b600c91909155600d55565b6001600160a01b031660009081526001602052604090205490565b6000546001600160a01b0316331461063d5760405162461bcd60e51b81526004016104ea906119b6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146106b15760405162461bcd60e51b81526004016104ea906119b6565b60135460ff16156106d45760405162461bcd60e51b81526004016104ea90611ac8565b6005546106f35760405162461bcd60e51b81526004016104ea90611aff565b6010546107159030906001600160a01b031669d3c21bcecceda1000000610dbf565b601060009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561076357600080fd5b505afa158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b91906115b5565b6001600160a01b031663c9c6539630601060009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107f857600080fd5b505afa15801561080c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083091906115b5565b6040518363ffffffff1660e01b815260040161084d92919061181e565b602060405180830381600087803b15801561086757600080fd5b505af115801561087b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089f91906115b5565b601180546001600160a01b0319166001600160a01b039283161790556010541663f305d7194730866108d0826105f8565b6108da9190611c66565b6000806108e5610b5e565b426040518863ffffffff1660e01b815260040161090796959493929190611838565b6060604051808303818588803b15801561092057600080fd5b505af1158015610934573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061095991906117a3565b505050600e94909455600f92909255506008556009556011805460ff60a81b1916600160a81b1790556013805460ff1916600117905543601255565b6000546001600160a01b031633146109bf5760405162461bcd60e51b81526004016104ea906119b6565b69d3c21bcecceda100000060078190556040517ffb1fe1002b7550e87616e67793dbb7d3f437a79c2688c372c66dc170dbcb0efd916109fd91611b2c565b60405180910390a1565b6000546001600160a01b03163314610a315760405162461bcd60e51b81526004016104ea906119b6565b8051825114610a525760405162461bcd60e51b81526004016104ea90611914565b60048390558151610a6a9060059060208501906114b3565b506000805b8351811015610b3757828181518110610a9857634e487b7160e01b600052603260045260246000fd5b602002602001015160066000868481518110610ac457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002081905550828181518110610b1057634e487b7160e01b600052603260045260246000fd5b602002602001015182610b239190611c0f565b915080610b2f81611c7d565b915050610a6f565b5080606414610b585760405162461bcd60e51b81526004016104ea90611986565b50505050565b6000546001600160a01b031690565b60075481565b60058181548110610b8357600080fd5b6000918252602090912001546001600160a01b0316905081565b60408051808201909152600381526210915560ea1b602082015290565b60006104b7338484610e27565b6000546001600160a01b03163314610bf15760405162461bcd60e51b81526004016104ea906119b6565b6008548311158015610c0557506009548211155b610c215760405162461bcd60e51b81526004016104ea90611961565b828111158015610c315750818111155b610c4d5760405162461bcd60e51b81526004016104ea90611961565b60088390556009829055600a8190556040517fb841faf0d1b32571f4ef966a2f35e3ae51f3cdda45318c3da5570a5b2ad8560590610c8e9085908590611ba5565b60405180910390a1505050565b60095481565b60005b600554811015610d8857600060646006600060058581548110610cd757634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054610d069047611c47565b610d109190611c27565b905060058281548110610d3357634e487b7160e01b600052603260045260246000fd5b60009182526020822001546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015610d73573d6000803e3d6000fd5b50508080610d8090611c7d565b915050610ca4565b50565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60135460ff1681565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e1a908590611b2c565b60405180910390a3505050565b6001600160a01b038216610e4d5760405162461bcd60e51b81526004016104ea906118d1565b60008111610e6d5760405162461bcd60e51b81526004016104ea906119eb565b60135460ff16610eaf576001600160a01b03831660009081526003602052604090205460ff16610eaf5760405162461bcd60e51b81526004016104ea90611a34565b6000610ebc84848461130e565b90506000610ec9306105f8565b601154909150600160a01b900460ff16158015610ef357506011546001600160a01b038581169116145b8015610f085750601154600160a81b900460ff165b8015610f155750600c5481115b15610f5757610f37610f3284610f2d84600d5461149b565b61149b565b61114f565b478015801590610f48575060045481115b15610f5557610f55610ca1565b505b81156110895760006064600a5485610f6f9190611c47565b610f799190611c27565b600b546001600160a01b0316600090815260016020526040902054909150610fa2908290611c0f565b600b80546001600160a01b0390811660009081526001602052604090819020939093559054915191169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ffb908590611b2c565b60405180910390a3306000908152600160205260409020548190611020908590611c0f565b61102a9190611c66565b306000818152600160205260409020919091556001600160a01b0387167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110728487611c66565b60405161107f9190611b2c565b60405180910390a3505b6001600160a01b0385166000908152600160205260409020546110ad908490611c66565b6001600160a01b03808716600090815260016020526040808220939093559086168152205482906110df908590611c0f565b6110e99190611c66565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6111338587611c66565b6040516111409190611b2c565b60405180910390a35050505050565b6011805460ff60a01b1916600160a01b1790558061116c576112fe565b60135460ff1661117b576112fe565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106111be57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601054604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561121257600080fd5b505afa158015611226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124a91906115b5565b8160018151811061126b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526010546112919130911684610dbf565b60105460405163791ac94760e01b81526001600160a01b039091169063791ac947906112ca908590600090869030904290600401611b35565b600060405180830381600087803b1580156112e457600080fd5b505af11580156112f8573d6000803e3d6000fd5b50505050505b506011805460ff60a01b19169055565b60115460009081906001600160a01b03868116911614801561133e57506010546001600160a01b03858116911614155b801561136357506001600160a01b03841660009081526003602052604090205460ff16155b156113f05760075483611375866105f8565b61137f9190611c0f565b111561139d5760405162461bcd60e51b81526004016104ea90611a91565b600e546012546113ad9190611c0f565b4310156113d3576064600f54846113c49190611c47565b6113ce9190611c27565b6113ed565b6064600854846113e39190611c47565b6113ed9190611c27565b90505b6011546001600160a01b03858116911614801561141657506001600160a01b0385163014155b801561143b57506001600160a01b03851660009081526003602052604090205460ff16155b1561149357600e546012546114509190611c0f565b431015611476576064600f54846114679190611c47565b6114719190611c27565b611490565b6064600954846114869190611c47565b6114909190611c27565b90505b949350505050565b60008183116114aa57826114ac565b815b9392505050565b828054828255906000526020600020908101928215611508579160200282015b8281111561150857825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906114d3565b50611514929150611518565b5090565b5b808211156115145760008155600101611519565b600082601f83011261153d578081fd5b8135602061155261154d83611beb565b611bc1565b828152818101908583018385028701840188101561156e578586fd5b855b8581101561158c57813584529284019290840190600101611570565b5090979650505050505050565b6000602082840312156115aa578081fd5b81356114ac81611cc4565b6000602082840312156115c6578081fd5b81516114ac81611cc4565b600080604083850312156115e3578081fd5b82356115ee81611cc4565b915060208301356115fe81611cc4565b809150509250929050565b60008060006060848603121561161d578081fd5b833561162881611cc4565b9250602084013561163881611cc4565b929592945050506040919091013590565b6000806040838503121561165b578182fd5b823561166681611cc4565b946020939093013593505050565b600060208284031215611685578081fd5b5035919050565b6000806000606084860312156116a0578283fd5b8335925060208085013567ffffffffffffffff808211156116bf578485fd5b818701915087601f8301126116d2578485fd5b81356116e061154d82611beb565b81815284810190848601868402860187018c10156116fc578889fd5b8895505b8386101561172757803561171381611cc4565b835260019590950194918601918601611700565b5096505050604087013592508083111561173f578384fd5b505061174d8682870161152d565b9150509250925092565b60008060408385031215611769578182fd5b50508035926020909101359150565b60008060006060848603121561178c578283fd5b505081359360208301359350604090920135919050565b6000806000606084860312156117b7578283fd5b8351925060208401519150604084015190509250925092565b600080600080600060a086880312156117e7578081fd5b505083359560208501359550604085013594606081013594506080013592509050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b818110156118aa5785810183015185820160400152820161188e565b818111156118bb5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602d908201527f74617857616c6c65747320616e642074617850657263656e7461676573206c6560408201526c0dccee8d040dad2e6dac2e8c6d609b1b606082015260800190565b6020808252600b908201526a092dcecc2d8d2c840e8c2f60ab1b604082015260600190565b602080825260169082015275496e76616c69642074617850657263656e746167657360501b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526038908201527f54686973206163636f756e742063616e6e6f742073656e6420746f6b656e732060408201527f756e74696c2074726164696e6720697320656e61626c65640000000000000000606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b60208082526013908201527274617857616c6c65747320697320656d70747960681b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611b845784516001600160a01b031683529383019391830191600101611b5f565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b60ff91909116815260200190565b60405181810167ffffffffffffffff81118282101715611be357611be3611cae565b604052919050565b600067ffffffffffffffff821115611c0557611c05611cae565b5060209081020190565b60008219821115611c2257611c22611c98565b500190565b600082611c4257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c6157611c61611c98565b500290565b600082821015611c7857611c78611c98565b500390565b6000600019821415611c9157611c91611c98565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610d8857600080fdfea26469706673582212200cade996b3380fa510be64fb330d69406b1193c460f59423af91192f7ab0328d64736f6c63430008000033

Deployed Bytecode Sourcemap

2682:10463:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3376:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4449:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5323:184::-;;;;;;;;;;-1:-1:-1;5323:184:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9565:119::-;;;;;;;;;;-1:-1:-1;9565:119:0;;;;;:::i;:::-;;:::i;:::-;;4719:95;;;;;;;;;;;;;:::i;5515:296::-;;;;;;;;;;-1:-1:-1;5515:296:0;;;;;:::i;:::-;;:::i;4635:76::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3032:46::-;;;;;;;;;;-1:-1:-1;3032:46:0;;;;;:::i;:::-;;:::i;3311:25::-;;;;;;;;;;;;;:::i;11078:313::-;;;;;;;;;;;;;:::i;9692:206::-;;;;;;;;;;-1:-1:-1;9692:206:0;;;;;:::i;:::-;;:::i;4822:119::-;;;;;;;;;;-1:-1:-1;4822:119:0;;;;;:::i;:::-;;:::i;1677:148::-;;;;;;;;;;;;;:::i;10044:1026::-;;;;;;;;;;-1:-1:-1;10044:1026:0;;;;;:::i;:::-;;:::i;9906:130::-;;;;;;;;;;;;;:::i;12412:693::-;;;;;;;;;;-1:-1:-1;12412:693:0;;;;;:::i;:::-;;:::i;1465:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3252:50::-;;;;;;;;;;;;;:::i;2998:27::-;;;;;;;;;;-1:-1:-1;2998:27:0;;;;;:::i;:::-;;:::i;4540:87::-;;;;;;;;;;;;;:::i;4949:190::-;;;;;;;;;;-1:-1:-1;4949:190:0;;;;;:::i;:::-;;:::i;9025:490::-;;;;;;;;;;-1:-1:-1;9025:490:0;;;;;:::i;:::-;;:::i;3343:26::-;;;;;;;;;;;;;:::i;12131:273::-;;;;;;;;;;;;;:::i;5147:168::-;;;;;;;;;;-1:-1:-1;5147:168:0;;;;;:::i;:::-;;:::i;3968:31::-;;;;;;;;;;;;;:::i;3376:33::-;;;;:::o;4449:83::-;4519:5;;;;;;;;;;;;-1:-1:-1;;;4519:5:0;;;;4449:83;:::o;5323:184::-;5423:4;5440:37;5449:10;5461:7;5470:6;5440:8;:37::i;:::-;-1:-1:-1;5495:4:0;5323:184;;;;:::o;9565:119::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;9642:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;9642:34:0::1;9672:4;9642:34;::::0;;9565:119::o;4719:95::-;3230:13;4719:95;:::o;5515:296::-;5647:4;5664:36;5674:6;5682:9;5693:6;5664:9;:36::i;:::-;-1:-1:-1;;;;;5740:19:0;;;;;;:11;:19;;;;;;;;5728:10;5740:31;;;;;;;;;5711:70;;5720:6;;5740:40;;5774:6;;5740:40;:::i;:::-;5711:8;:70::i;:::-;-1:-1:-1;5799:4:0;5515:296;;;;;:::o;4635:76::-;4701:2;4635:76;:::o;3032:46::-;;;;;;;;;;;;;:::o;3311:25::-;;;;:::o;11078:313::-;11120:20;11143:24;11161:4;11143:9;:24::i;:::-;11120:47;-1:-1:-1;11182:16:0;;11178:79;;11215:30;11232:12;11215:16;:30::i;:::-;11288:21;11324:14;;11320:64;;11355:17;:15;:17::i;:::-;11078:313;;:::o;9692:206::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;9819:17:::1;:36:::0;;;;9866:11:::1;:24:::0;9692:206::o;4822:119::-;-1:-1:-1;;;;;4915:18:0;4888:7;4915:18;;;:9;:18;;;;;;;4822:119::o;1677:148::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;1784:1:::1;1768:6:::0;;1747:40:::1;::::0;-1:-1:-1;;;;;1768:6:0;;::::1;::::0;1747:40:::1;::::0;1784:1;;1747:40:::1;1815:1;1798:19:::0;;-1:-1:-1;;;;;;1798:19:0::1;::::0;;1677:148::o;10044:1026::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;10249:11:::1;::::0;::::1;;10248:12;10240:48;;;;-1:-1:-1::0;;;10240:48:0::1;;;;;;;:::i;:::-;10307:10;:17:::0;10299:53:::1;;;;-1:-1:-1::0;;;10299:53:0::1;;;;;;;:::i;:::-;10397:15;::::0;10365:58:::1;::::0;10382:4:::1;::::0;-1:-1:-1;;;;;10397:15:0::1;3230:13;10365:8;:58::i;:::-;10470:15;;;;;;;;;-1:-1:-1::0;;;;;10470:15:0::1;-1:-1:-1::0;;;;;10470:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10452:55:0::1;;10530:4;10550:15;;;;;;;;;-1:-1:-1::0;;;;;10550:15:0::1;-1:-1:-1::0;;;;;10550:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10452:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10436:13;:147:::0;;-1:-1:-1;;;;;;10436:147:0::1;-1:-1:-1::0;;;;;10436:147:0;;::::1;;::::0;;10596:15:::1;::::0;::::1;:31;10635:21;10680:4;10727:9:::0;10700:24:::1;10680:4:::0;10700:9:::1;:24::i;:::-;:36;;;;:::i;:::-;10751:1;10767::::0;10783:7:::1;:5;:7::i;:::-;10805:15;10596:235;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;10844:13:0::1;:28:::0;;;;10883:8:::1;:18:::0;;;;-1:-1:-1;10914:6:0::1;:16:::0;10941:7:::1;:18:::0;10972:11:::1;:18:::0;;-1:-1:-1;;;;10972:18:0::1;-1:-1:-1::0;;;10972:18:0::1;::::0;;11001:11:::1;:18:::0;;-1:-1:-1;;11001:18:0::1;10986:4;11001:18;::::0;;11050:12:::1;11030:17;:32:::0;10044:1026::o;9906:130::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;3230:13:::1;9960;:23:::0;;;9999:29:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;9906:130::o:0;12412:693::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;12643:15:::1;:22;12621:11;:18;:44;12599:139;;;;-1:-1:-1::0;;;12599:139:0::1;;;;;;;:::i;:::-;12751:22;:46:::0;;;12808:24;;::::1;::::0;:10:::1;::::0;:24:::1;::::0;::::1;::::0;::::1;:::i;:::-;;12845:10;12877:6:::0;12872:166:::1;12893:11;:18;12889:1;:22;12872:166;;;12966:15;12982:1;12966:18;;;;;;-1:-1:-1::0;;;12966:18:0::1;;;;;;;;;;;;;;;12933:14;:30;12948:11;12960:1;12948:14;;;;;;-1:-1:-1::0;;;12948:14:0::1;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;12933:30:0::1;-1:-1:-1::0;;;;;12933:30:0::1;;;;;;;;;;;;:51;;;;13008:15;13024:1;13008:18;;;;;;-1:-1:-1::0;;;13008:18:0::1;;;;;;;;;;;;;;;12999:27;;;;;:::i;:::-;::::0;-1:-1:-1;12913:3:0;::::1;::::0;::::1;:::i;:::-;;;;12872:166;;;;13058:5;13067:3;13058:12;13050:47;;;;-1:-1:-1::0;;;13050:47:0::1;;;;;;;:::i;:::-;1660:1;12412:693:::0;;;:::o;1465:79::-;1503:7;1530:6;-1:-1:-1;;;;;1530:6:0;1465:79;:::o;3252:50::-;;;;:::o;2998:27::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2998:27:0;;-1:-1:-1;2998:27:0;:::o;4540:87::-;4612:7;;;;;;;;;;;;-1:-1:-1;;;4612:7:0;;;;4540:87;:::o;4949:190::-;5052:4;5069:40;5079:10;5091:9;5102:6;5069:9;:40::i;9025:490::-;1592:6;;-1:-1:-1;;;;;1592:6:0;1602:10;1592:20;1584:65;;;;-1:-1:-1;;;1584:65:0;;;;;;;:::i;:::-;9187:6:::1;;9176:7;:17;;:40;;;;;9209:7;;9197:8;:19;;9176:40;9168:64;;;;-1:-1:-1::0;;;9168:64:0::1;;;;;;;:::i;:::-;9284:7;9265:15;:26;;:57;;;;;9314:8;9295:15;:27;;9265:57;9243:118;;;;-1:-1:-1::0;;;9243:118:0::1;;;;;;;:::i;:::-;9374:6;:16:::0;;;9401:7:::1;:18:::0;;;9430:14:::1;:32:::0;;;9480:27:::1;::::0;::::1;::::0;::::1;::::0;9383:7;;9411:8;;9480:27:::1;:::i;:::-;;;;;;;;9025:490:::0;;;:::o;3343:26::-;;;;:::o;12131:273::-;12181:6;12176:221;12197:10;:17;12193:21;;12176:221;;;12236:14;12328:3;12295:14;:29;12310:10;12321:1;12310:13;;;;;;-1:-1:-1;;;12310:13:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:13:0;12295:29;;;;;;;;;;;;;12254:70;;:21;:70;:::i;:::-;12253:78;;;;:::i;:::-;12236:95;;12354:10;12365:1;12354:13;;;;;;-1:-1:-1;;;12354:13:0;;;;;;;;;;;;;;;;;;12346:39;;-1:-1:-1;;;;;12354:13:0;;;;12346:39;;;;;12378:6;;12346:39;12354:13;12346:39;12378:6;12354:13;12346:39;;;;;;;;;;;;;;;;;;;;;12176:221;12216:3;;;;;:::i;:::-;;;;12176:221;;;;12131:273::o;5147:168::-;-1:-1:-1;;;;;5280:18:0;;;5253:7;5280:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5147:168::o;3968:31::-;;;;;;:::o;5819:177::-;-1:-1:-1;;;;;5904:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;5956:32;;;;;5934:6;;5956:32;:::i;:::-;;;;;;;;5819:177;;;:::o;6004:1969::-;-1:-1:-1;;;;;6092:16:0;;6084:64;;;;-1:-1:-1;;;6084:64:0;;;;;;;:::i;:::-;6176:1;6167:6;:10;6159:64;;;;-1:-1:-1;;;6159:64:0;;;;;;;:::i;:::-;6329:11;;;;6324:187;;-1:-1:-1;;;;;6383:24:0;;;;;;:18;:24;;;;;;;;6357:142;;;;-1:-1:-1;;;6357:142:0;;;;;;;:::i;:::-;6523:17;6543:31;6557:4;6563:2;6567:6;6543:13;:31::i;:::-;6523:51;;6619:28;6650:24;6668:4;6650:9;:24::i;:::-;6704:6;;6619:55;;-1:-1:-1;;;;6704:6:0;;;;6703:7;:43;;;;-1:-1:-1;6733:13:0;;-1:-1:-1;;;;;6727:19:0;;;6733:13;;6727:19;6703:43;:71;;;;-1:-1:-1;6763:11:0;;-1:-1:-1;;;6763:11:0;;;;6703:71;:128;;;;;6814:17;;6791:20;:40;6703:128;6685:541;;;6858:101;6893:51;6897:6;6905:38;6909:20;6931:11;;6905:3;:38::i;:::-;6893:3;:51::i;:::-;6858:16;:101::i;:::-;7003:21;7061:22;;;;;:86;;;7125:22;;7104:18;:43;7061:86;7039:176;;;7182:17;:15;:17::i;:::-;6685:541;;7242:13;;7238:558;;7317:21;7369:3;7351:14;;7342:6;:23;;;;:::i;:::-;7341:31;;;;:::i;:::-;7420:9;;-1:-1:-1;;;;;7420:9:0;7410:20;;;;:9;:20;;;;;;7317:55;;-1:-1:-1;7410:36:0;;7317:55;;7410:36;:::i;:::-;7397:9;;;-1:-1:-1;;;;;7397:9:0;;;7387:20;;;;:9;:20;;;;;;;:59;;;;7490:9;;7466:49;;7490:9;;;7483:4;;7466:49;;;;7501:13;;7466:49;:::i;:::-;;;;;;;;7640:4;7622:24;;;;:9;:24;;;;;;7695:13;;7622:53;;7666:9;;7622:53;:::i;:::-;:86;;;;:::i;:::-;7596:4;7578:24;;;;:9;:24;;;;;:130;;;;-1:-1:-1;;;;;7728:56:0;;;7758:25;7770:13;7758:9;:25;:::i;:::-;7728:56;;;;;;:::i;:::-;;;;;;;;7238:558;;-1:-1:-1;;;;;7826:15:0;;;;;;:9;:15;;;;;;:24;;7844:6;;7826:24;:::i;:::-;-1:-1:-1;;;;;7808:15:0;;;;;;;:9;:15;;;;;;:42;;;;7877:13;;;;;;;7902:9;;7877:22;;7893:6;;7877:22;:::i;:::-;:34;;;;:::i;:::-;-1:-1:-1;;;;;7861:13:0;;;;;;;:9;:13;;;;;:50;;;;7927:38;;;7946:18;7955:9;7946:6;:18;:::i;:::-;7927:38;;;;;;:::i;:::-;;;;;;;;6004:1969;;;;;:::o;11514:609::-;4156:6;:13;;-1:-1:-1;;;;4156:13:0;-1:-1:-1;;;4156:13:0;;;11596:16;11592:55:::1;;11629:7;;11592:55;11662:11;::::0;::::1;;11657:51;;11690:7;;11657:51;11742:16;::::0;;11756:1:::1;11742:16:::0;;;;;::::1;::::0;;11718:21:::1;::::0;11742:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11742:16:0::1;11718:40;;11787:4;11769;11774:1;11769:7;;;;;;-1:-1:-1::0;;;11769:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11769:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11813:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11813:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11769:7;;11813:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11803:4;11808:1;11803:7;;;;;;-1:-1:-1::0;;;11803:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;11803:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11878:15:::1;::::0;11846:62:::1;::::0;11863:4:::1;::::0;11878:15:::1;11896:11:::0;11846:8:::1;:62::i;:::-;11919:15;::::0;:196:::1;::::0;-1:-1:-1;;;11919:196:0;;-1:-1:-1;;;;;11919:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12000:11;;11919:15:::1;::::0;12042:4;;12069::::1;::::0;12089:15:::1;::::0;11919:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4180:1;;-1:-1:-1::0;4192:6:0;:14;;-1:-1:-1;;;;4192:14:0;;;11514:609::o;7981:1018::-;8198:13;;8102:7;;;;-1:-1:-1;;;;;8190:21:0;;;8198:13;;8190:21;:68;;;;-1:-1:-1;8242:15:0;;-1:-1:-1;;;;;8228:30:0;;;8242:15;;8228:30;;8190:68;:108;;;;-1:-1:-1;;;;;;8276:22:0;;;;;;:18;:22;;;;;;;;8275:23;8190:108;8172:456;;;8377:13;;8367:6;8351:13;8361:2;8351:9;:13::i;:::-;:22;;;;:::i;:::-;:39;;8325:127;;;;-1:-1:-1;;;8325:127:0;;;;;;;:::i;:::-;8515:13;;8495:17;;:33;;;;:::i;:::-;8479:12;:49;;:137;;8613:3;8601:8;;8592:6;:17;;;;:::i;:::-;8591:25;;;;:::i;:::-;8479:137;;;8568:3;8558:6;;8549;:15;;;;:::i;:::-;8548:23;;;;:::i;:::-;8467:149;;8172:456;8681:13;;-1:-1:-1;;;;;8675:19:0;;;8681:13;;8675:19;:57;;;;-1:-1:-1;;;;;;8711:21:0;;8727:4;8711:21;;8675:57;:99;;;;-1:-1:-1;;;;;;8750:24:0;;;;;;:18;:24;;;;;;;;8749:25;8675:99;8657:306;;;8849:13;;8829:17;;:33;;;;:::i;:::-;8813:12;:49;;:138;;8948:3;8936:8;;8927:6;:17;;;;:::i;:::-;8926:25;;;;:::i;:::-;8813:138;;;8903:3;8892:7;;8883:6;:16;;;;:::i;:::-;8882:24;;;;:::i;:::-;8801:150;;8657:306;8982:9;7981:1018;-1:-1:-1;;;;7981:1018:0:o;11399:107::-;11456:7;11488:1;11484;:5;11483:15;;11497:1;11483:15;;;11493:1;11483:15;11476:22;11399:107;-1:-1:-1;;;11399:107:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:705:1;;127:3;120:4;112:6;108:17;104:27;94:2;;149:5;142;135:20;94:2;189:6;176:20;215:4;239:65;254:49;300:2;254:49;:::i;:::-;239:65;:::i;:::-;338:15;;;369:12;;;;401:15;;;447:11;;;435:24;;431:33;;428:42;-1:-1:-1;425:2:1;;;487:5;480;473:20;425:2;513:5;527:163;541:2;538:1;535:9;527:163;;;598:17;;586:30;;636:12;;;;668;;;;559:1;552:9;527:163;;;-1:-1:-1;708:5:1;;84:635;-1:-1:-1;;;;;;;84:635:1:o;724:259::-;;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:33;947:5;920:33;:::i;988:263::-;;1111:2;1099:9;1090:7;1086:23;1082:32;1079:2;;;1132:6;1124;1117:22;1079:2;1169:9;1163:16;1188:33;1215:5;1188:33;:::i;1256:402::-;;;1385:2;1373:9;1364:7;1360:23;1356:32;1353:2;;;1406:6;1398;1391:22;1353:2;1450:9;1437:23;1469:33;1496:5;1469:33;:::i;:::-;1521:5;-1:-1:-1;1578:2:1;1563:18;;1550:32;1591:35;1550:32;1591:35;:::i;:::-;1645:7;1635:17;;;1343:315;;;;;:::o;1663:470::-;;;;1809:2;1797:9;1788:7;1784:23;1780:32;1777:2;;;1830:6;1822;1815:22;1777:2;1874:9;1861:23;1893:33;1920:5;1893:33;:::i;:::-;1945:5;-1:-1:-1;2002:2:1;1987:18;;1974:32;2015:35;1974:32;2015:35;:::i;:::-;1767:366;;2069:7;;-1:-1:-1;;;2123:2:1;2108:18;;;;2095:32;;1767:366::o;2138:327::-;;;2267:2;2255:9;2246:7;2242:23;2238:32;2235:2;;;2288:6;2280;2273:22;2235:2;2332:9;2319:23;2351:33;2378:5;2351:33;:::i;:::-;2403:5;2455:2;2440:18;;;;2427:32;;-1:-1:-1;;;2225:240:1:o;2470:190::-;;2582:2;2570:9;2561:7;2557:23;2553:32;2550:2;;;2603:6;2595;2588:22;2550:2;-1:-1:-1;2631:23:1;;2540:120;-1:-1:-1;2540:120:1:o;2665:1361::-;;;;2861:2;2849:9;2840:7;2836:23;2832:32;2829:2;;;2882:6;2874;2867:22;2829:2;2923:9;2910:23;2900:33;;2952:2;3005;2994:9;2990:18;2977:32;3028:18;3069:2;3061:6;3058:14;3055:2;;;3090:6;3082;3075:22;3055:2;3133:6;3122:9;3118:22;3108:32;;3178:7;3171:4;3167:2;3163:13;3159:27;3149:2;;3205:6;3197;3190:22;3149:2;3246;3233:16;3269:65;3284:49;3330:2;3284:49;:::i;3269:65::-;3368:15;;;3399:12;;;;3431:11;;;3469;;;3461:20;;3457:29;;3454:42;-1:-1:-1;3451:2:1;;;3514:6;3506;3499:22;3451:2;3541:6;3532:15;;3556:240;3570:2;3567:1;3564:9;3556:240;;;3641:3;3628:17;3658:33;3685:5;3658:33;:::i;:::-;3704:18;;3588:1;3581:9;;;;;3742:12;;;;3774;;3556:240;;;-1:-1:-1;3815:5:1;-1:-1:-1;;;3873:2:1;3858:18;;3845:32;;-1:-1:-1;3889:16:1;;;3886:2;;;3923:6;3915;3908:22;3886:2;;;3951:69;4012:7;4001:8;3990:9;3986:24;3951:69;:::i;:::-;3941:79;;;2819:1207;;;;;:::o;4031:258::-;;;4160:2;4148:9;4139:7;4135:23;4131:32;4128:2;;;4181:6;4173;4166:22;4128:2;-1:-1:-1;;4209:23:1;;;4279:2;4264:18;;;4251:32;;-1:-1:-1;4118:171:1:o;4294:326::-;;;;4440:2;4428:9;4419:7;4415:23;4411:32;4408:2;;;4461:6;4453;4446:22;4408:2;-1:-1:-1;;4489:23:1;;;4559:2;4544:18;;4531:32;;-1:-1:-1;4610:2:1;4595:18;;;4582:32;;4398:222;-1:-1:-1;4398:222:1:o;4625:316::-;;;;4782:2;4770:9;4761:7;4757:23;4753:32;4750:2;;;4803:6;4795;4788:22;4750:2;4837:9;4831:16;4821:26;;4887:2;4876:9;4872:18;4866:25;4856:35;;4931:2;4920:9;4916:18;4910:25;4900:35;;4740:201;;;;;:::o;4946:464::-;;;;;;5126:3;5114:9;5105:7;5101:23;5097:33;5094:2;;;5148:6;5140;5133:22;5094:2;-1:-1:-1;;5176:23:1;;;5246:2;5231:18;;5218:32;;-1:-1:-1;5297:2:1;5282:18;;5269:32;;5348:2;5333:18;;5320:32;;-1:-1:-1;5399:3:1;5384:19;5371:33;;-1:-1:-1;5084:326:1;-1:-1:-1;5084:326:1:o;5415:203::-;-1:-1:-1;;;;;5579:32:1;;;;5561:51;;5549:2;5534:18;;5516:102::o;5623:304::-;-1:-1:-1;;;;;5853:15:1;;;5835:34;;5905:15;;5900:2;5885:18;;5878:43;5785:2;5770:18;;5752:175::o;5932:607::-;-1:-1:-1;;;;;6291:15:1;;;6273:34;;6338:2;6323:18;;6316:34;;;;6381:2;6366:18;;6359:34;;;;6424:2;6409:18;;6402:34;;;;6473:15;;;6467:3;6452:19;;6445:44;6253:3;6505:19;;6498:35;;;;6222:3;6207:19;;6189:350::o;6544:187::-;6709:14;;6702:22;6684:41;;6672:2;6657:18;;6639:92::o;6736:603::-;;6877:2;6906;6895:9;6888:21;6938:6;6932:13;6981:6;6976:2;6965:9;6961:18;6954:34;7006:4;7019:140;7033:6;7030:1;7027:13;7019:140;;;7128:14;;;7124:23;;7118:30;7094:17;;;7113:2;7090:26;7083:66;7048:10;;7019:140;;;7177:6;7174:1;7171:13;7168:2;;;7247:4;7242:2;7233:6;7222:9;7218:22;7214:31;7207:45;7168:2;-1:-1:-1;7323:2:1;7302:15;-1:-1:-1;;7298:29:1;7283:45;;;;7330:2;7279:54;;6857:482;-1:-1:-1;;;6857:482:1:o;7344:399::-;7546:2;7528:21;;;7585:2;7565:18;;;7558:30;7624:34;7619:2;7604:18;;7597:62;-1:-1:-1;;;7690:2:1;7675:18;;7668:33;7733:3;7718:19;;7518:225::o;7748:409::-;7950:2;7932:21;;;7989:2;7969:18;;;7962:30;8028:34;8023:2;8008:18;;8001:62;-1:-1:-1;;;8094:2:1;8079:18;;8072:43;8147:3;8132:19;;7922:235::o;8162:335::-;8364:2;8346:21;;;8403:2;8383:18;;;8376:30;-1:-1:-1;;;8437:2:1;8422:18;;8415:41;8488:2;8473:18;;8336:161::o;8502:346::-;8704:2;8686:21;;;8743:2;8723:18;;;8716:30;-1:-1:-1;;;8777:2:1;8762:18;;8755:52;8839:2;8824:18;;8676:172::o;8853:356::-;9055:2;9037:21;;;9074:18;;;9067:30;9133:34;9128:2;9113:18;;9106:62;9200:2;9185:18;;9027:182::o;9214:405::-;9416:2;9398:21;;;9455:2;9435:18;;;9428:30;9494:34;9489:2;9474:18;;9467:62;-1:-1:-1;;;9560:2:1;9545:18;;9538:39;9609:3;9594:19;;9388:231::o;9624:420::-;9826:2;9808:21;;;9865:2;9845:18;;;9838:30;9904:34;9899:2;9884:18;;9877:62;9975:26;9970:2;9955:18;;9948:54;10034:3;10019:19;;9798:246::o;10049:350::-;10251:2;10233:21;;;10290:2;10270:18;;;10263:30;10329:28;10324:2;10309:18;;10302:56;10390:2;10375:18;;10223:176::o;10404:347::-;10606:2;10588:21;;;10645:2;10625:18;;;10618:30;10684:25;10679:2;10664:18;;10657:53;10742:2;10727:18;;10578:173::o;10756:343::-;10958:2;10940:21;;;10997:2;10977:18;;;10970:30;-1:-1:-1;;;11031:2:1;11016:18;;11009:49;11090:2;11075:18;;10930:169::o;11104:177::-;11250:25;;;11238:2;11223:18;;11205:76::o;11286:983::-;;11596:3;11585:9;11581:19;11627:6;11616:9;11609:25;11653:2;11691:6;11686:2;11675:9;11671:18;11664:34;11734:3;11729:2;11718:9;11714:18;11707:31;11758:6;11793;11787:13;11824:6;11816;11809:22;11862:3;11851:9;11847:19;11840:26;;11901:2;11893:6;11889:15;11875:29;;11922:4;11935:195;11949:6;11946:1;11943:13;11935:195;;;12014:13;;-1:-1:-1;;;;;12010:39:1;11998:52;;12105:15;;;;12070:12;;;;12046:1;11964:9;11935:195;;;-1:-1:-1;;;;;;;12186:32:1;;;;12181:2;12166:18;;12159:60;-1:-1:-1;;;12250:3:1;12235:19;12228:35;12147:3;11557:712;-1:-1:-1;;;11557:712:1:o;12274:248::-;12448:25;;;12504:2;12489:18;;12482:34;12436:2;12421:18;;12403:119::o;12527:184::-;12699:4;12687:17;;;;12669:36;;12657:2;12642:18;;12624:87::o;12716:251::-;12786:2;12780:9;12816:17;;;12863:18;12848:34;;12884:22;;;12845:62;12842:2;;;12910:18;;:::i;:::-;12946:2;12939:22;12760:207;;-1:-1:-1;12760:207:1:o;12972:192::-;;13071:18;13063:6;13060:30;13057:2;;;13093:18;;:::i;:::-;-1:-1:-1;13153:4:1;13134:17;;;13130:28;;13047:117::o;13169:128::-;;13240:1;13236:6;13233:1;13230:13;13227:2;;;13246:18;;:::i;:::-;-1:-1:-1;13282:9:1;;13217:80::o;13302:217::-;;13368:1;13358:2;;-1:-1:-1;;;13393:31:1;;13447:4;13444:1;13437:15;13475:4;13400:1;13465:15;13358:2;-1:-1:-1;13504:9:1;;13348:171::o;13524:168::-;;13630:1;13626;13622:6;13618:14;13615:1;13612:21;13607:1;13600:9;13593:17;13589:45;13586:2;;;13637:18;;:::i;:::-;-1:-1:-1;13677:9:1;;13576:116::o;13697:125::-;;13765:1;13762;13759:8;13756:2;;;13770:18;;:::i;:::-;-1:-1:-1;13807:9:1;;13746:76::o;13827:135::-;;-1:-1:-1;;13887:17:1;;13884:2;;;13907:18;;:::i;:::-;-1:-1:-1;13954:1:1;13943:13;;13874:88::o;13967:127::-;14028:10;14023:3;14019:20;14016:1;14009:31;14059:4;14056:1;14049:15;14083:4;14080:1;14073:15;14099:127;14160:10;14155:3;14151:20;14148:1;14141:31;14191:4;14188:1;14181:15;14215:4;14212:1;14205:15;14231:133;-1:-1:-1;;;;;14308:31:1;;14298:42;;14288:2;;14354:1;14351;14344:12

Swarm Source

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