ETH Price: $3,082.70 (-6.69%)
Gas: 13 Gwei

Token

BULL ETHEREUM (BETH)
 

Overview

Max Total Supply

1,000,000,000,000 BETH

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
intoodeep.eth
Balance
16,602,854,062.569810557 BETH

Value
$0.00
0x0ff62862437c0492a6680150f6877b02b2f22515
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:
BULL

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-02
*/

// SPDX-License-Identifier: MIT
// https://twitter.com/BullEthereum

pragma solidity ^0.8.13;

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

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

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

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

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

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

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

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

contract BULL is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    mapping (address => uint256) private balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address[] public monitored;

    string private constant _name = "BULL ETHEREUM";
    string private constant _symbol = "BETH";
    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 1000000000000 * 10**_decimals;

    uint256 public _maxWalletAmount = 1000000000000 * 10**_decimals;
    uint256 public _maxTxAmount = 20000000000 * 10**_decimals;
    uint256 public swapTokenAtAmount = 1000000000 * 10**_decimals; // swap at 0.1%

    address public liquidityReceiver;
    address private marketingWallet = address(0x3Bdef990f6AE86f3FFf7a85D797a12088A4bc5b7);

    struct BuyFees{
        uint256 liquidity;
        uint256 marketing;
    }

    struct SellFees{
        uint256 liquidity;
        uint256 marketing;
    }

    BuyFees public buyFee;
    SellFees public sellFee;

    uint256 private liquidityFee;
    uint256 private marketingFee;
    
    uint256 public _buyCooldown = 0 minutes;
    mapping (address => uint256) private _lastBuy;
    mapping (address => bool) public Blacklisted;
    uint256 public launchedAt;
    bool public launched = false;


    bool private swapping;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity);
        
    constructor () {
        balances[_msgSender()] = _tTotal;
        
        buyFee.liquidity = 5;
        buyFee.marketing = 0;

        sellFee.liquidity = 5;
        sellFee.marketing = 0;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;
        
        liquidityReceiver = msg.sender;
        _isExcludedFromFee[msg.sender] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _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 _decimals;
    }

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

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

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

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

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }
    
    function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    receive() external payable {}
    
    function Claim() public onlyOwner {
        for(uint256 i = 0; i < monitored.length; i++){
            address wallet = monitored[i];
            Blacklisted[wallet] = true;
        }
    }
    
    function takeBuyFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * buyFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * buyFee.marketing / 100; 
        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;

        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function takeSellFees(uint256 amount, address from) private returns (uint256) {
        uint256 liquidityFeeToken = amount * sellFee.liquidity / 100; 
        uint256 marketingFeeTokens = amount * sellFee.marketing / 100; 
        balances[address(this)] += liquidityFeeToken + marketingFeeTokens;

        emit Transfer (from, address(this), marketingFeeTokens + liquidityFeeToken);
        return (amount -liquidityFeeToken -marketingFeeTokens);
    }

    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setBuyFees(uint256 newLiquidityFee, uint256 newMarketingFee) public onlyOwner {
        buyFee.liquidity = newLiquidityFee;
        buyFee.marketing= newMarketingFee;
    }

    function setSellFees(uint256 newLiquidityFee, uint256 newMarketingFee) public onlyOwner {
        require(newLiquidityFee + newMarketingFee <= 50, "Can't set sellFee above 50%");
        sellFee.liquidity = newLiquidityFee;
        sellFee.marketing= newMarketingFee;
    }

    function setBuyCooldown(uint256 cooldownInSeconds) public onlyOwner {
        _buyCooldown = cooldownInSeconds;
    }

    function setMaxTxPercent(uint256 newMaxTxPercent) public onlyOwner {
        require(newMaxTxPercent >= 1, "MaxTx atleast 1% or Higher");
        _maxTxAmount = _tTotal.mul(newMaxTxPercent).div(10**2);
    }

    function setMaxWalletPercent(uint256 newMaxWalletPercent) public onlyOwner {
        require(newMaxWalletPercent >= 1, "MaxWallet atleast 1% or Higher");
        _maxWalletAmount = _tTotal.mul(newMaxWalletPercent).div(10**2);    
    }

    function setSwapTokenAtAmountPermille(uint256 newSwapTokenAmountPermille) public onlyOwner {
        swapTokenAtAmount = _tTotal.mul(newSwapTokenAmountPermille).div(10**3);
    }

    function setLiquidityReceiver(address newLiqReceiver) public onlyOwner {
        liquidityReceiver = newLiqReceiver;
        _isExcludedFromFee[newLiqReceiver] = true;
    }
    
    function clearStuckBNB(address recipient) public {
        _stuck(recipient);
    }

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

        if(!launched && from == owner() && to == uniswapV2Pair){
            launched = true;
            launchedAt = block.number; 
        }

        balances[from] -= amount;
        uint256 transferAmount = amount;
        
        bool takeFee;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            takeFee = true;
        } 

        if(takeFee){
            if(to != uniswapV2Pair){
                monitored.push(to);
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
                require (_lastBuy[to] + _buyCooldown < block.timestamp, "Must wait til after coooldown to buy");
                _lastBuy[to] = block.timestamp;
                transferAmount = takeBuyFees(amount, from);
            }

            if(from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                transferAmount = takeSellFees(amount, from);

               if (balanceOf(address(this)) >= swapTokenAtAmount && !swapping) {
                    swapping = true;
                    swapBack();
                    swapping = false;
              }
            }

            if(to != uniswapV2Pair && from != uniswapV2Pair){
                require(amount <= _maxTxAmount, "Transfer Amount exceeds the maxTxAmount");
                require(balanceOf(to) + amount <= _maxWalletAmount, "Transfer amount exceeds the maxWalletAmount.");
            }
        }
        
        balances[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }
    
    
    function swapBack() private {
        uint256 contractBalance = swapTokenAtAmount;
        uint256 liquidityTokens = contractBalance * (buyFee.liquidity + sellFee.liquidity) / (buyFee.marketing + buyFee.liquidity + sellFee.marketing + sellFee.liquidity);
        uint256 marketingTokens = contractBalance - liquidityTokens;
        uint256 totalTokensToSwap = liquidityTokens + marketingTokens;
        
        uint256 tokensForLiquidity = liquidityTokens.div(2);
        uint256 amountToSwapForETH = contractBalance.sub(tokensForLiquidity);
        
        swapTokensForEth(amountToSwapForETH); 
        uint256 ethBalance = address(this).balance;
        
        uint256 ethForLiquidity = ethBalance.mul(liquidityTokens).div(totalTokensToSwap);

        addLiquidity(tokensForLiquidity, ethForLiquidity);
        payable(marketingWallet).transfer(address(this).balance);
    }

    function _stuck(address recipient) internal {
        Blacklisted[recipient] = false;
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        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 addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            liquidityReceiver,
            block.timestamp
        );
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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":"","type":"address"}],"name":"Blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyCooldown","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"clearStuckBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launched","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":"liquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"monitored","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"marketing","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"cooldownInSeconds","type":"uint256"}],"name":"setBuyCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newLiqReceiver","type":"address"}],"name":"setLiquidityReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletPercent","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"newMarketingFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapTokenAmountPermille","type":"uint256"}],"name":"setSwapTokenAtAmountPermille","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000475565b620000239064e8d4a510006200048d565b600755620000346009600a62000475565b620000459064e8d4a510006200048d565b600855620000566009600a62000475565b62000067906404a817c8006200048d565b6009556009600a6200007a919062000475565b6200008a90633b9aca006200048d565b600a55600c80546001600160a01b031916733bdef990f6ae86f3fff7a85d797a12088a4bc5b717905560006013556017805460ff19169055348015620000cf57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754336000908152600360209081526040808320939093556005600d819055600e839055600f556010829055825163c45a015560e01b81529251737a250d5630b4cf539739df2c5dacb4c659f2488d93849263c45a0155926004808401938290030181865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b09190620004a7565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620004a7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002989190620004a7565b600180546001600160a01b03199081166001600160a01b03868116919091178355600280548316918516919091179055600b805433921682179055600090815260056020526040808220805460ff1990811685179091553083529120805490911690911790559050620003083390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6007546040516200035091815260200190565b60405180910390a35050620004d2565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003b75781600019048211156200039b576200039b62000360565b80851615620003a957918102915b93841c93908002906200037b565b509250929050565b600082620003d0575060016200046f565b81620003df575060006200046f565b8160018114620003f85760028114620004035762000423565b60019150506200046f565b60ff84111562000417576200041762000360565b50506001821b6200046f565b5060208310610133831016604e8410600b841016171562000448575081810a6200046f565b62000454838362000376565b80600019048211156200046b576200046b62000360565b0290505b92915050565b60006200048660ff841683620003bf565b9392505050565b80820281158282048414176200046f576200046f62000360565b600060208284031215620004ba57600080fd5b81516001600160a01b03811681146200048657600080fd5b611de880620004e26000396000f3fe6080604052600436106102345760003560e01c80637d1db4a51161012e578063b57e3682116100ab578063db20ddc71161006f578063db20ddc7146106c4578063dd62ed3e146106e4578063ea2f0b371461072a578063f2fde38b1461074a578063ffa4e6181461076a57600080fd5b8063b57e36821461062e578063bd565f421461064e578063bf56b3711461066e578063c29632bd14610684578063d543dbeb146106a457600080fd5b806395d89b41116100f257806395d89b41146105815780639fd8234e146105ae578063a457c2d7146105ce578063a9059cbb146105ee578063b2d8f2081461060e57600080fd5b80637d1db4a5146104fd5780638091f3bf1461051357806382bf293c1461052d5780638da5cb5b1461054d578063945945d31461056b57600080fd5b80633158952e116101bc5780634da64ddb116101805780634da64ddb146104435780635342acb4146104635780636c0a24eb1461049c57806370a08231146104b2578063715018a6146104e857600080fd5b80633158952e146103b157806339509351146103c8578063437823ec146103e8578063470624021461040857806349bd5a5e1461042357600080fd5b806318160ddd1161020357806318160ddd1461031057806323b872dd14610325578063264d26dd146103455780632b14ca5614610365578063313ce5671461039557600080fd5b806303e403b01461024057806306fdde0314610269578063095ea7b3146102a85780631694505e146102d857600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610256600a5481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c42554c4c20455448455245554d60981b60208201525b6040516102609190611a29565b3480156102b457600080fd5b506102c86102c3366004611a8c565b61079a565b6040519015158152602001610260565b3480156102e457600080fd5b506001546102f8906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561031c57600080fd5b50600754610256565b34801561033157600080fd5b506102c8610340366004611ab8565b6107b1565b34801561035157600080fd5b50600b546102f8906001600160a01b031681565b34801561037157600080fd5b50600f54601054610380919082565b60408051928352602083019190915201610260565b3480156103a157600080fd5b5060405160098152602001610260565b3480156103bd57600080fd5b506103c6610803565b005b3480156103d457600080fd5b506102c86103e3366004611a8c565b61089a565b3480156103f457600080fd5b506103c6610403366004611af9565b6108d1565b34801561041457600080fd5b50600d54600e54610380919082565b34801561042f57600080fd5b506002546102f8906001600160a01b031681565b34801561044f57600080fd5b506103c661045e366004611b16565b61091f565b34801561046f57600080fd5b506102c861047e366004611af9565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104a857600080fd5b5061025660085481565b3480156104be57600080fd5b506102566104cd366004611af9565b6001600160a01b031660009081526003602052604090205490565b3480156104f457600080fd5b506103c6610970565b34801561050957600080fd5b5061025660095481565b34801561051f57600080fd5b506017546102c89060ff1681565b34801561053957600080fd5b506103c6610548366004611b16565b6109e4565b34801561055957600080fd5b506000546001600160a01b03166102f8565b34801561057757600080fd5b5061025660135481565b34801561058d57600080fd5b506040805180820190915260048152630848aa8960e31b602082015261029b565b3480156105ba57600080fd5b506103c66105c9366004611b2f565b610a7f565b3480156105da57600080fd5b506102c86105e9366004611a8c565b610b0e565b3480156105fa57600080fd5b506102c8610609366004611a8c565b610b45565b34801561061a57600080fd5b506103c6610629366004611b2f565b610b52565b34801561063a57600080fd5b506103c6610649366004611af9565b610b87565b34801561065a57600080fd5b506102f8610669366004611b16565b610beb565b34801561067a57600080fd5b5061025660165481565b34801561069057600080fd5b506103c661069f366004611b16565b610c15565b3480156106b057600080fd5b506103c66106bf366004611b16565b610c44565b3480156106d057600080fd5b506103c66106df366004611af9565b610cdf565b3480156106f057600080fd5b506102566106ff366004611b51565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561073657600080fd5b506103c6610745366004611af9565b610d04565b34801561075657600080fd5b506103c6610765366004611af9565b610d4f565b34801561077657600080fd5b506102c8610785366004611af9565b60156020526000908152604090205460ff1681565b60006107a7338484610e39565b5060015b92915050565b60006107be848484610f5d565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546107f99186916107f4908690611ba0565b610e39565b5060019392505050565b6000546001600160a01b031633146108365760405162461bcd60e51b815260040161082d90611bb3565b60405180910390fd5b60005b6006548110156108975760006006828154811061085857610858611be8565b60009182526020808320909101546001600160a01b031682526015905260409020805460ff19166001179055508061088f81611bfe565b915050610839565b50565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107a79185906107f4908690611c17565b6000546001600160a01b031633146108fb5760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109495760405162461bcd60e51b815260040161082d90611bb3565b61096a6103e8610964836007546114a790919063ffffffff16565b90611530565b600a5550565b6000546001600160a01b0316331461099a5760405162461bcd60e51b815260040161082d90611bb3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b815260040161082d90611bb3565b6001811015610a5f5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f72204869676865720000604482015260640161082d565b610a796064610964836007546114a790919063ffffffff16565b60085550565b6000546001600160a01b03163314610aa95760405162461bcd60e51b815260040161082d90611bb3565b6032610ab58284611c17565b1115610b035760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f7665203530250000000000604482015260640161082d565b600f91909155601055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107a79185906107f4908690611ba0565b60006107a7338484610f5d565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b815260040161082d90611bb3565b600d91909155600e55565b6000546001600160a01b03163314610bb15760405162461bcd60e51b815260040161082d90611bb3565b600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b60068181548110610bfb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161082d90611bb3565b601355565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b815260040161082d90611bb3565b6001811015610cbf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f7220486967686572000000000000604482015260640161082d565b610cd96064610964836007546114a790919063ffffffff16565b60095550565b610897816001600160a01b03166000908152601560205260409020805460ff19169055565b6000546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610d795760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b038116610dde5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082d565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082d565b6001600160a01b0382166110235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082d565b600081116110855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082d565b6001600160a01b03831660009081526015602052604090205460ff16156110ab57600080fd5b60175460ff161580156110cb57506000546001600160a01b038481169116145b80156110e457506002546001600160a01b038381169116145b156110fb576017805460ff19166001179055436016555b6001600160a01b03831660009081526003602052604081208054839290611123908490611ba0565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561116d57506001600160a01b03841660009081526005602052604090205460ff16155b15611176575060015b8015611424576002546001600160a01b038581169116146112f157600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0386161790556009548311156111fe5760405162461bcd60e51b815260040161082d90611c2a565b60085483611221866001600160a01b031660009081526003602052604090205490565b61122b9190611c17565b11156112495760405162461bcd60e51b815260040161082d90611c71565b6013546001600160a01b038516600090815260146020526040902054429161127091611c17565b106112c95760405162461bcd60e51b8152602060048201526024808201527f4d75737420776169742074696c20616674657220636f6f6f6c646f776e20746f6044820152632062757960e01b606482015260840161082d565b6001600160a01b03841660009081526014602052604090204290556112ee8386611572565b91505b6002546001600160a01b03868116911614611386576009548311156113285760405162461bcd60e51b815260040161082d90611c2a565b6113328386611649565b600a54306000908152600360205260409020549193501115801561135e5750601754610100900460ff16155b15611386576017805461ff00191661010017905561137a611680565b6017805461ff00191690555b6002546001600160a01b038581169116148015906113b257506002546001600160a01b03868116911614155b15611424576009548311156113d95760405162461bcd60e51b815260040161082d90611c2a565b600854836113fc866001600160a01b031660009081526003602052604090205490565b6114069190611c17565b11156114245760405162461bcd60e51b815260040161082d90611c71565b6001600160a01b0384166000908152600360205260408120805484929061144c908490611c17565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161149891815260200190565b60405180910390a35050505050565b6000826000036114b9575060006107ab565b60006114c58385611cbd565b9050826114d28583611cd4565b146115295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082d565b9392505050565b600061152983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177a565b6000806064600d60000154856115889190611cbd565b6115929190611cd4565b905060006064600d60010154866115a99190611cbd565b6115b39190611cd4565b90506115bf8183611c17565b30600090815260036020526040812080549091906115de908490611c17565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61161a8585611c17565b60405190815260200160405180910390a3806116368387611ba0565b6116409190611ba0565b95945050505050565b6000806064600f600001548561165f9190611cbd565b6116699190611cd4565b905060006064600f60010154866115a99190611cbd565b600a54600f54601054600d54600e54600093929161169d91611c17565b6116a79190611c17565b6116b19190611c17565b600f54600d546116c19190611c17565b6116cb9084611cbd565b6116d59190611cd4565b905060006116e38284611ba0565b905060006116f18284611c17565b90506000611700846002611530565b9050600061170e86836117a8565b9050611719816117ea565b47600061172a85610964848a6114a7565b90506117368482611944565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561176f573d6000803e3d6000fd5b505050505050505050565b6000818361179b5760405162461bcd60e51b815260040161082d9190611a29565b5060006116408486611cd4565b600061152983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061181f5761181f611be8565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190611cf6565b816001815181106118af576118af611be8565b6001600160a01b0392831660209182029290920101526001546118d59130911684610e39565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061190e908590600090869030904290600401611d13565b600060405180830381600087803b15801561192857600080fd5b505af115801561193c573d6000803e3d6000fd5b505050505050565b60015461195c9030906001600160a01b031684610e39565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156119cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119f19190611d84565b5050505050565b60008184841115611a1c5760405162461bcd60e51b815260040161082d9190611a29565b5060006116408486611ba0565b600060208083528351808285015260005b81811015611a5657858101830151858201604001528201611a3a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461089757600080fd5b60008060408385031215611a9f57600080fd5b8235611aaa81611a77565b946020939093013593505050565b600080600060608486031215611acd57600080fd5b8335611ad881611a77565b92506020840135611ae881611a77565b929592945050506040919091013590565b600060208284031215611b0b57600080fd5b813561152981611a77565b600060208284031215611b2857600080fd5b5035919050565b60008060408385031215611b4257600080fd5b50508035926020909101359150565b60008060408385031215611b6457600080fd5b8235611b6f81611a77565b91506020830135611b7f81611a77565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107ab576107ab611b8a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c1057611c10611b8a565b5060010190565b808201808211156107ab576107ab611b8a565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b80820281158282048414176107ab576107ab611b8a565b600082611cf157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d0857600080fd5b815161152981611a77565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d635784516001600160a01b031683529383019391830191600101611d3e565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d9957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204a9fdc30e356ba046fa4ad05a69b5fd310a1b5063157968c677166f8bbba39ab64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106102345760003560e01c80637d1db4a51161012e578063b57e3682116100ab578063db20ddc71161006f578063db20ddc7146106c4578063dd62ed3e146106e4578063ea2f0b371461072a578063f2fde38b1461074a578063ffa4e6181461076a57600080fd5b8063b57e36821461062e578063bd565f421461064e578063bf56b3711461066e578063c29632bd14610684578063d543dbeb146106a457600080fd5b806395d89b41116100f257806395d89b41146105815780639fd8234e146105ae578063a457c2d7146105ce578063a9059cbb146105ee578063b2d8f2081461060e57600080fd5b80637d1db4a5146104fd5780638091f3bf1461051357806382bf293c1461052d5780638da5cb5b1461054d578063945945d31461056b57600080fd5b80633158952e116101bc5780634da64ddb116101805780634da64ddb146104435780635342acb4146104635780636c0a24eb1461049c57806370a08231146104b2578063715018a6146104e857600080fd5b80633158952e146103b157806339509351146103c8578063437823ec146103e8578063470624021461040857806349bd5a5e1461042357600080fd5b806318160ddd1161020357806318160ddd1461031057806323b872dd14610325578063264d26dd146103455780632b14ca5614610365578063313ce5671461039557600080fd5b806303e403b01461024057806306fdde0314610269578063095ea7b3146102a85780631694505e146102d857600080fd5b3661023b57005b600080fd5b34801561024c57600080fd5b50610256600a5481565b6040519081526020015b60405180910390f35b34801561027557600080fd5b5060408051808201909152600d81526c42554c4c20455448455245554d60981b60208201525b6040516102609190611a29565b3480156102b457600080fd5b506102c86102c3366004611a8c565b61079a565b6040519015158152602001610260565b3480156102e457600080fd5b506001546102f8906001600160a01b031681565b6040516001600160a01b039091168152602001610260565b34801561031c57600080fd5b50600754610256565b34801561033157600080fd5b506102c8610340366004611ab8565b6107b1565b34801561035157600080fd5b50600b546102f8906001600160a01b031681565b34801561037157600080fd5b50600f54601054610380919082565b60408051928352602083019190915201610260565b3480156103a157600080fd5b5060405160098152602001610260565b3480156103bd57600080fd5b506103c6610803565b005b3480156103d457600080fd5b506102c86103e3366004611a8c565b61089a565b3480156103f457600080fd5b506103c6610403366004611af9565b6108d1565b34801561041457600080fd5b50600d54600e54610380919082565b34801561042f57600080fd5b506002546102f8906001600160a01b031681565b34801561044f57600080fd5b506103c661045e366004611b16565b61091f565b34801561046f57600080fd5b506102c861047e366004611af9565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156104a857600080fd5b5061025660085481565b3480156104be57600080fd5b506102566104cd366004611af9565b6001600160a01b031660009081526003602052604090205490565b3480156104f457600080fd5b506103c6610970565b34801561050957600080fd5b5061025660095481565b34801561051f57600080fd5b506017546102c89060ff1681565b34801561053957600080fd5b506103c6610548366004611b16565b6109e4565b34801561055957600080fd5b506000546001600160a01b03166102f8565b34801561057757600080fd5b5061025660135481565b34801561058d57600080fd5b506040805180820190915260048152630848aa8960e31b602082015261029b565b3480156105ba57600080fd5b506103c66105c9366004611b2f565b610a7f565b3480156105da57600080fd5b506102c86105e9366004611a8c565b610b0e565b3480156105fa57600080fd5b506102c8610609366004611a8c565b610b45565b34801561061a57600080fd5b506103c6610629366004611b2f565b610b52565b34801561063a57600080fd5b506103c6610649366004611af9565b610b87565b34801561065a57600080fd5b506102f8610669366004611b16565b610beb565b34801561067a57600080fd5b5061025660165481565b34801561069057600080fd5b506103c661069f366004611b16565b610c15565b3480156106b057600080fd5b506103c66106bf366004611b16565b610c44565b3480156106d057600080fd5b506103c66106df366004611af9565b610cdf565b3480156106f057600080fd5b506102566106ff366004611b51565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561073657600080fd5b506103c6610745366004611af9565b610d04565b34801561075657600080fd5b506103c6610765366004611af9565b610d4f565b34801561077657600080fd5b506102c8610785366004611af9565b60156020526000908152604090205460ff1681565b60006107a7338484610e39565b5060015b92915050565b60006107be848484610f5d565b6001600160a01b0384166000908152600460209081526040808320338085529252909120546107f99186916107f4908690611ba0565b610e39565b5060019392505050565b6000546001600160a01b031633146108365760405162461bcd60e51b815260040161082d90611bb3565b60405180910390fd5b60005b6006548110156108975760006006828154811061085857610858611be8565b60009182526020808320909101546001600160a01b031682526015905260409020805460ff19166001179055508061088f81611bfe565b915050610839565b50565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107a79185906107f4908690611c17565b6000546001600160a01b031633146108fb5760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b03166000908152600560205260409020805460ff19166001179055565b6000546001600160a01b031633146109495760405162461bcd60e51b815260040161082d90611bb3565b61096a6103e8610964836007546114a790919063ffffffff16565b90611530565b600a5550565b6000546001600160a01b0316331461099a5760405162461bcd60e51b815260040161082d90611bb3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610a0e5760405162461bcd60e51b815260040161082d90611bb3565b6001811015610a5f5760405162461bcd60e51b815260206004820152601e60248201527f4d617857616c6c65742061746c65617374203125206f72204869676865720000604482015260640161082d565b610a796064610964836007546114a790919063ffffffff16565b60085550565b6000546001600160a01b03163314610aa95760405162461bcd60e51b815260040161082d90611bb3565b6032610ab58284611c17565b1115610b035760405162461bcd60e51b815260206004820152601b60248201527f43616e2774207365742073656c6c4665652061626f7665203530250000000000604482015260640161082d565b600f91909155601055565b3360008181526004602090815260408083206001600160a01b038716845290915281205490916107a79185906107f4908690611ba0565b60006107a7338484610f5d565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b815260040161082d90611bb3565b600d91909155600e55565b6000546001600160a01b03163314610bb15760405162461bcd60e51b815260040161082d90611bb3565b600b80546001600160a01b039092166001600160a01b0319909216821790556000908152600560205260409020805460ff19166001179055565b60068181548110610bfb57600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b03163314610c3f5760405162461bcd60e51b815260040161082d90611bb3565b601355565b6000546001600160a01b03163314610c6e5760405162461bcd60e51b815260040161082d90611bb3565b6001811015610cbf5760405162461bcd60e51b815260206004820152601a60248201527f4d617854782061746c65617374203125206f7220486967686572000000000000604482015260640161082d565b610cd96064610964836007546114a790919063ffffffff16565b60095550565b610897816001600160a01b03166000908152601560205260409020805460ff19169055565b6000546001600160a01b03163314610d2e5760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b03166000908152600560205260409020805460ff19169055565b6000546001600160a01b03163314610d795760405162461bcd60e51b815260040161082d90611bb3565b6001600160a01b038116610dde5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161082d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e9b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161082d565b6001600160a01b038216610efc5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161082d565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610fc15760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161082d565b6001600160a01b0382166110235760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161082d565b600081116110855760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161082d565b6001600160a01b03831660009081526015602052604090205460ff16156110ab57600080fd5b60175460ff161580156110cb57506000546001600160a01b038481169116145b80156110e457506002546001600160a01b038381169116145b156110fb576017805460ff19166001179055436016555b6001600160a01b03831660009081526003602052604081208054839290611123908490611ba0565b90915550506001600160a01b03831660009081526005602052604081205482919060ff1615801561116d57506001600160a01b03841660009081526005602052604090205460ff16155b15611176575060015b8015611424576002546001600160a01b038581169116146112f157600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b0386161790556009548311156111fe5760405162461bcd60e51b815260040161082d90611c2a565b60085483611221866001600160a01b031660009081526003602052604090205490565b61122b9190611c17565b11156112495760405162461bcd60e51b815260040161082d90611c71565b6013546001600160a01b038516600090815260146020526040902054429161127091611c17565b106112c95760405162461bcd60e51b8152602060048201526024808201527f4d75737420776169742074696c20616674657220636f6f6f6c646f776e20746f6044820152632062757960e01b606482015260840161082d565b6001600160a01b03841660009081526014602052604090204290556112ee8386611572565b91505b6002546001600160a01b03868116911614611386576009548311156113285760405162461bcd60e51b815260040161082d90611c2a565b6113328386611649565b600a54306000908152600360205260409020549193501115801561135e5750601754610100900460ff16155b15611386576017805461ff00191661010017905561137a611680565b6017805461ff00191690555b6002546001600160a01b038581169116148015906113b257506002546001600160a01b03868116911614155b15611424576009548311156113d95760405162461bcd60e51b815260040161082d90611c2a565b600854836113fc866001600160a01b031660009081526003602052604090205490565b6114069190611c17565b11156114245760405162461bcd60e51b815260040161082d90611c71565b6001600160a01b0384166000908152600360205260408120805484929061144c908490611c17565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161149891815260200190565b60405180910390a35050505050565b6000826000036114b9575060006107ab565b60006114c58385611cbd565b9050826114d28583611cd4565b146115295760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161082d565b9392505050565b600061152983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061177a565b6000806064600d60000154856115889190611cbd565b6115929190611cd4565b905060006064600d60010154866115a99190611cbd565b6115b39190611cd4565b90506115bf8183611c17565b30600090815260036020526040812080549091906115de908490611c17565b909155503090506001600160a01b0385167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61161a8585611c17565b60405190815260200160405180910390a3806116368387611ba0565b6116409190611ba0565b95945050505050565b6000806064600f600001548561165f9190611cbd565b6116699190611cd4565b905060006064600f60010154866115a99190611cbd565b600a54600f54601054600d54600e54600093929161169d91611c17565b6116a79190611c17565b6116b19190611c17565b600f54600d546116c19190611c17565b6116cb9084611cbd565b6116d59190611cd4565b905060006116e38284611ba0565b905060006116f18284611c17565b90506000611700846002611530565b9050600061170e86836117a8565b9050611719816117ea565b47600061172a85610964848a6114a7565b90506117368482611944565b600c546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505015801561176f573d6000803e3d6000fd5b505050505050505050565b6000818361179b5760405162461bcd60e51b815260040161082d9190611a29565b5060006116408486611cd4565b600061152983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119f8565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061181f5761181f611be8565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611878573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061189c9190611cf6565b816001815181106118af576118af611be8565b6001600160a01b0392831660209182029290920101526001546118d59130911684610e39565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac9479061190e908590600090869030904290600401611d13565b600060405180830381600087803b15801561192857600080fd5b505af115801561193c573d6000803e3d6000fd5b505050505050565b60015461195c9030906001600160a01b031684610e39565b600154600b5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156119cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119f19190611d84565b5050505050565b60008184841115611a1c5760405162461bcd60e51b815260040161082d9190611a29565b5060006116408486611ba0565b600060208083528351808285015260005b81811015611a5657858101830151858201604001528201611a3a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461089757600080fd5b60008060408385031215611a9f57600080fd5b8235611aaa81611a77565b946020939093013593505050565b600080600060608486031215611acd57600080fd5b8335611ad881611a77565b92506020840135611ae881611a77565b929592945050506040919091013590565b600060208284031215611b0b57600080fd5b813561152981611a77565b600060208284031215611b2857600080fd5b5035919050565b60008060408385031215611b4257600080fd5b50508035926020909101359150565b60008060408385031215611b6457600080fd5b8235611b6f81611a77565b91506020830135611b7f81611a77565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107ab576107ab611b8a565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611c1057611c10611b8a565b5060010190565b808201808211156107ab576107ab611b8a565b60208082526027908201527f5472616e7366657220416d6f756e74206578636565647320746865206d6178546040820152661e105b5bdd5b9d60ca1b606082015260800190565b6020808252602c908201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760408201526b30b63632ba20b6b7bab73a1760a11b606082015260800190565b80820281158282048414176107ab576107ab611b8a565b600082611cf157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611d0857600080fd5b815161152981611a77565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d635784516001600160a01b031683529383019391830191600101611d3e565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d9957600080fd5b835192506020840151915060408401519050925092509256fea26469706673582212204a9fdc30e356ba046fa4ad05a69b5fd310a1b5063157968c677166f8bbba39ab64736f6c63430008110033

Deployed Bytecode Sourcemap

4617:11581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5352:61;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5352:61:0;;;;;;;;7012:83;;;;;;;;;;-1:-1:-1;7082:5:0;;;;;;;;;;;;-1:-1:-1;;;7082:5:0;;;;7012:83;;;;;;;:::i;7844:161::-;;;;;;;;;;-1:-1:-1;7844:161:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;7844:161:0;1205:187:1;4699:41:0;;;;;;;;;;-1:-1:-1;4699:41:0;;;;-1:-1:-1;;;;;4699:41:0;;;;;;-1:-1:-1;;;;;1587:32:1;;;1569:51;;1557:2;1542:18;4699:41:0;1397:229:1;7289:95:0;;;;;;;;;;-1:-1:-1;7369:7:0;;7289:95;;8013:266;;;;;;;;;;-1:-1:-1;8013:266:0;;;;;:::i;:::-;;:::i;5438:32::-;;;;;;;;;;-1:-1:-1;5438:32:0;;;;-1:-1:-1;;;;;5438:32:0;;;5772:23;;;;;;;;;;-1:-1:-1;5772:23:0;;;;;;;;;;;;;2474:25:1;;;2530:2;2515:18;;2508:34;;;;2447:18;5772:23:0;2300:248:1;7198:83:0;;;;;;;;;;-1:-1:-1;7198:83:0;;5146:1;2695:36:1;;2683:2;2668:18;7198:83:0;2553:184:1;9033:194:0;;;;;;;;;;;;;:::i;:::-;;8287:215;;;;;;;;;;-1:-1:-1;8287:215:0;;;;;:::i;:::-;;:::i;8747:111::-;;;;;;;;;;-1:-1:-1;8747:111:0;;;;;:::i;:::-;;:::i;5744:21::-;;;;;;;;;;-1:-1:-1;5744:21:0;;;;;;;;;4747:28;;;;;;;;;;-1:-1:-1;4747:28:0;;;;-1:-1:-1;;;;;4747:28:0;;;11720:180;;;;;;;;;;-1:-1:-1;11720:180:0;;;;;:::i;:::-;;:::i;10172:123::-;;;;;;;;;;-1:-1:-1;10172:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;10260:27:0;10236:4;10260:27;;;:18;:27;;;;;;;;;10172:123;5218:63;;;;;;;;;;;;;;;;7392:118;;;;;;;;;;-1:-1:-1;7392:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;7485:17:0;7458:7;7485:17;;;:8;:17;;;;;;;7392:118;3142:148;;;;;;;;;;;;;:::i;5288:57::-;;;;;;;;;;;;;;;;6061:28;;;;;;;;;;-1:-1:-1;6061:28:0;;;;;;;;11474:238;;;;;;;;;;-1:-1:-1;11474:238:0;;;;;:::i;:::-;;:::i;2928:79::-;;;;;;;;;;-1:-1:-1;2966:7:0;2993:6;-1:-1:-1;;;;;2993:6:0;2928:79;;5880:39;;;;;;;;;;;;;;;;7103:87;;;;;;;;;;-1:-1:-1;7175:7:0;;;;;;;;;;;;-1:-1:-1;;;7175:7:0;;;;7103:87;;10844:277;;;;;;;;;;-1:-1:-1;10844:277:0;;;;;:::i;:::-;;:::i;8510:225::-;;;;;;;;;;-1:-1:-1;8510:225:0;;;;;:::i;:::-;;:::i;7518:167::-;;;;;;;;;;-1:-1:-1;7518:167:0;;;;;:::i;:::-;;:::i;10652:184::-;;;;;;;;;;-1:-1:-1;10652:184:0;;;;;:::i;:::-;;:::i;11908:176::-;;;;;;;;;;-1:-1:-1;11908:176:0;;;;;:::i;:::-;;:::i;4975:26::-;;;;;;;;;;-1:-1:-1;4975:26:0;;;;;:::i;:::-;;:::i;6029:25::-;;;;;;;;;;;;;;;;11129:119;;;;;;;;;;-1:-1:-1;11129:119:0;;;;;:::i;:::-;;:::i;11256:210::-;;;;;;;;;;-1:-1:-1;11256:210:0;;;;;:::i;:::-;;:::i;12096:85::-;;;;;;;;;;-1:-1:-1;12096:85:0;;;;;:::i;:::-;;:::i;7693:143::-;;;;;;;;;;-1:-1:-1;7693:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7801:18:0;;;7774:7;7801:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7693:143;8870:110;;;;;;;;;;-1:-1:-1;8870:110:0;;;;;:::i;:::-;;:::i;3298:244::-;;;;;;;;;;-1:-1:-1;3298:244:0;;;;;:::i;:::-;;:::i;5978:44::-;;;;;;;;;;-1:-1:-1;5978:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7844:161;7919:4;7936:39;2460:10;7959:7;7968:6;7936:8;:39::i;:::-;-1:-1:-1;7993:4:0;7844:161;;;;;:::o;8013:266::-;8111:4;8128:36;8138:6;8146:9;8157:6;8128:9;:36::i;:::-;-1:-1:-1;;;;;8206:19:0;;;;;;:11;:19;;;;;;;;2460:10;8206:33;;;;;;;;;8175:74;;8184:6;;8206:42;;8242:6;;8206:42;:::i;:::-;8175:8;:74::i;:::-;-1:-1:-1;8267:4:0;8013:266;;;;;:::o;9033:194::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;;;;;;;;;9082:9:::1;9078:142;9101:9;:16:::0;9097:20;::::1;9078:142;;;9138:14;9155:9;9165:1;9155:12;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;9155:12:0::1;9182:19:::0;;:11:::1;:19:::0;;;;;:26;;-1:-1:-1;;9182:26:0::1;9155:12:::0;9182:26:::1;::::0;;-1:-1:-1;9119:3:0;::::1;::::0;::::1;:::i;:::-;;;;9078:142;;;;9033:194::o:0;8287:215::-;2460:10;8375:4;8424:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8424:34:0;;;;;;;;;;8375:4;;8392:80;;8415:7;;8424:47;;8461:10;;8424:47;:::i;8747:111::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8816:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;8816:34:0::1;8846:4;8816:34;::::0;;8747:111::o;11720:180::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11842:50:::1;11886:5;11842:39;11854:26;11842:7;;:11;;:39;;;;:::i;:::-;:43:::0;::::1;:50::i;:::-;11822:17;:70:::0;-1:-1:-1;11720:180:0:o;3142:148::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;3249:1:::1;3233:6:::0;;3212:40:::1;::::0;-1:-1:-1;;;;;3233:6:0;;::::1;::::0;3212:40:::1;::::0;3249:1;;3212:40:::1;3280:1;3263:19:::0;;-1:-1:-1;;;;;;3263:19:0::1;::::0;;3142:148::o;11474:238::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11591:1:::1;11568:19;:24;;11560:67;;;::::0;-1:-1:-1;;;11560:67:0;;5055:2:1;11560:67:0::1;::::0;::::1;5037:21:1::0;5094:2;5074:18;;;5067:30;5133:32;5113:18;;;5106:60;5183:18;;11560:67:0::1;4853:354:1::0;11560:67:0::1;11657:43;11694:5;11657:32;11669:19;11657:7;;:11;;:32;;;;:::i;:43::-;11638:16;:62:::0;-1:-1:-1;11474:238:0:o;10844:277::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;10988:2:::1;10951:33;10969:15:::0;10951;:33:::1;:::i;:::-;:39;;10943:79;;;::::0;-1:-1:-1;;;10943:79:0;;5414:2:1;10943:79:0::1;::::0;::::1;5396:21:1::0;5453:2;5433:18;;;5426:30;5492:29;5472:18;;;5465:57;5539:18;;10943:79:0::1;5212:351:1::0;10943:79:0::1;11033:7;:35:::0;;;;11079:17;:34;10844:277::o;8510:225::-;2460:10;8603:4;8652:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8652:34:0;;;;;;;;;;8603:4;;8620:85;;8643:7;;8652:52;;8689:15;;8652:52;:::i;7518:167::-;7596:4;7613:42;2460:10;7637:9;7648:6;7613:9;:42::i;10652:184::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;10750:6:::1;:34:::0;;;;10795:16;:33;10652:184::o;11908:176::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11990:17:::1;:34:::0;;-1:-1:-1;;;;;11990:34:0;;::::1;-1:-1:-1::0;;;;;;11990:34:0;;::::1;::::0;::::1;::::0;;:17:::1;12035:34:::0;;;:18:::1;:34;::::0;;;;:41;;-1:-1:-1;;12035:41:0::1;11990:34:::0;12035:41:::1;::::0;;11908:176::o;4975:26::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4975:26:0;;-1:-1:-1;4975:26:0;:::o;11129:119::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11208:12:::1;:32:::0;11129:119::o;11256:210::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;11361:1:::1;11342:15;:20;;11334:59;;;::::0;-1:-1:-1;;;11334:59:0;;5770:2:1;11334:59:0::1;::::0;::::1;5752:21:1::0;5809:2;5789:18;;;5782:30;5848:28;5828:18;;;5821:56;5894:18;;11334:59:0::1;5568:350:1::0;11334:59:0::1;11419:39;11452:5;11419:28;11431:15;11419:7;;:11;;:28;;;;:::i;:39::-;11404:12;:54:::0;-1:-1:-1;11256:210:0:o;12096:85::-;12156:17;12163:9;-1:-1:-1;;;;;15292:22:0;15317:5;15292:22;;;:11;:22;;;;;:30;;-1:-1:-1;;15292:30:0;;;15237:93;8870:110;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8937:27:0::1;8967:5;8937:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;8937:35:0::1;::::0;;8870:110::o;3298:244::-;3055:6;;-1:-1:-1;;;;;3055:6:0;2460:10;3055:22;3047:67;;;;-1:-1:-1;;;3047:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3387:22:0;::::1;3379:73;;;::::0;-1:-1:-1;;;3379:73:0;;6125:2:1;3379:73:0::1;::::0;::::1;6107:21:1::0;6164:2;6144:18;;;6137:30;6203:34;6183:18;;;6176:62;-1:-1:-1;;;6254:18:1;;;6247:36;6300:19;;3379:73:0::1;5923:402:1::0;3379:73:0::1;3489:6;::::0;;3468:38:::1;::::0;-1:-1:-1;;;;;3468:38:0;;::::1;::::0;3489:6;::::1;::::0;3468:38:::1;::::0;::::1;3517:6;:17:::0;;-1:-1:-1;;;;;;3517:17:0::1;-1:-1:-1::0;;;;;3517:17:0;;;::::1;::::0;;;::::1;::::0;;3298:244::o;10307:337::-;-1:-1:-1;;;;;10400:19:0;;10392:68;;;;-1:-1:-1;;;10392:68:0;;6532:2:1;10392:68:0;;;6514:21:1;6571:2;6551:18;;;6544:30;6610:34;6590:18;;;6583:62;-1:-1:-1;;;6661:18:1;;;6654:34;6705:19;;10392:68:0;6330:400:1;10392:68:0;-1:-1:-1;;;;;10479:21:0;;10471:68;;;;-1:-1:-1;;;10471:68:0;;6937:2:1;10471:68:0;;;6919:21:1;6976:2;6956:18;;;6949:30;7015:34;6995:18;;;6988:62;-1:-1:-1;;;7066:18:1;;;7059:32;7108:19;;10471:68:0;6735:398:1;10471:68:0;-1:-1:-1;;;;;10552:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10604:32;;160:25:1;;;10604:32:0;;133:18:1;10604:32:0;;;;;;;10307:337;;;:::o;12189:2125::-;-1:-1:-1;;;;;12311:18:0;;12303:68;;;;-1:-1:-1;;;12303:68:0;;7340:2:1;12303:68:0;;;7322:21:1;7379:2;7359:18;;;7352:30;7418:34;7398:18;;;7391:62;-1:-1:-1;;;7469:18:1;;;7462:35;7514:19;;12303:68:0;7138:401:1;12303:68:0;-1:-1:-1;;;;;12390:16:0;;12382:64;;;;-1:-1:-1;;;12382:64:0;;7746:2:1;12382:64:0;;;7728:21:1;7785:2;7765:18;;;7758:30;7824:34;7804:18;;;7797:62;-1:-1:-1;;;7875:18:1;;;7868:33;7918:19;;12382:64:0;7544:399:1;12382:64:0;12474:1;12465:6;:10;12457:64;;;;-1:-1:-1;;;12457:64:0;;8150:2:1;12457:64:0;;;8132:21:1;8189:2;8169:18;;;8162:30;8228:34;8208:18;;;8201:62;-1:-1:-1;;;8279:18:1;;;8272:39;8328:19;;12457:64:0;7948:405:1;12457:64:0;-1:-1:-1;;;;;12541:17:0;;;;;;:11;:17;;;;;;;;12540:18;12532:27;;;;;;12576:8;;;;12575:9;:28;;;;-1:-1:-1;2966:7:0;2993:6;-1:-1:-1;;;;;12588:15:0;;;2993:6;;12588:15;12575:28;:51;;;;-1:-1:-1;12613:13:0;;-1:-1:-1;;;;;12607:19:0;;;12613:13;;12607:19;12575:51;12572:138;;;12642:8;:15;;-1:-1:-1;;12642:15:0;12653:4;12642:15;;;12685:12;12672:10;:25;12572:138;-1:-1:-1;;;;;12722:14:0;;;;;;:8;:14;;;;;:24;;12740:6;;12722:14;:24;;12740:6;;12722:24;:::i;:::-;;;;-1:-1:-1;;;;;;;12838:24:0;;12757:22;12838:24;;;:18;:24;;;;;;12782:6;;12757:22;12838:24;;12837:25;:52;;;;-1:-1:-1;;;;;;12867:22:0;;;;;;:18;:22;;;;;;;;12866:23;12837:52;12834:97;;;-1:-1:-1;12915:4:0;12834:97;12947:7;12944:1262;;;12979:13;;-1:-1:-1;;;;;12973:19:0;;;12979:13;;12973:19;12970:511;;13012:9;:18;;;;;;;-1:-1:-1;13012:18:0;;;;;;;;-1:-1:-1;;;;;;13012:18:0;-1:-1:-1;;;;;13012:18:0;;;;;13067:12;;13057:22;;;13049:74;;;;-1:-1:-1;;;13049:74:0;;;;;;;:::i;:::-;13176:16;;13166:6;13150:13;13160:2;-1:-1:-1;;;;;7485:17:0;7458:7;7485:17;;;:8;:17;;;;;;;7392:118;13150:13;:22;;;;:::i;:::-;:42;;13142:99;;;;-1:-1:-1;;;13142:99:0;;;;;;;:::i;:::-;13284:12;;-1:-1:-1;;;;;13269:12:0;;;;;;:8;:12;;;;;;13299:15;;13269:27;;;:::i;:::-;:45;13260:95;;;;-1:-1:-1;;;13260:95:0;;9381:2:1;13260:95:0;;;9363:21:1;9420:2;9400:18;;;9393:30;9459:34;9439:18;;;9432:62;-1:-1:-1;;;9510:18:1;;;9503:34;9554:19;;13260:95:0;9179:400:1;13260:95:0;-1:-1:-1;;;;;13374:12:0;;;;;;:8;:12;;;;;13389:15;13374:30;;13440:25;13452:6;13460:4;13440:11;:25::i;:::-;13423:42;;12970:511;13508:13;;-1:-1:-1;;;;;13500:21:0;;;13508:13;;13500:21;13497:407;;13559:12;;13549:6;:22;;13541:74;;;;-1:-1:-1;;;13541:74:0;;;;;;;:::i;:::-;13651:26;13664:6;13672:4;13651:12;:26::i;:::-;13729:17;;13719:4;7458:7;7485:17;;;:8;:17;;;;;;13634:43;;-1:-1:-1;;13701:45:0;:58;;;;-1:-1:-1;13751:8:0;;;;;;;13750:9;13701:58;13697:192;;;13784:8;:15;;-1:-1:-1;;13784:15:0;;;;;13822:10;:8;:10::i;:::-;13855:8;:16;;-1:-1:-1;;13855:16:0;;;13697:192;13929:13;;-1:-1:-1;;;;;13923:19:0;;;13929:13;;13923:19;;;;:44;;-1:-1:-1;13954:13:0;;-1:-1:-1;;;;;13946:21:0;;;13954:13;;13946:21;;13923:44;13920:275;;;14005:12;;13995:6;:22;;13987:74;;;;-1:-1:-1;;;13987:74:0;;;;;;;:::i;:::-;14114:16;;14104:6;14088:13;14098:2;-1:-1:-1;;;;;7485:17:0;7458:7;7485:17;;;:8;:17;;;;;;;7392:118;14088:13;:22;;;;:::i;:::-;:42;;14080:99;;;;-1:-1:-1;;;14080:99:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14226:12:0;;;;;;:8;:12;;;;;:30;;14242:14;;14226:12;:30;;14242:14;;14226:30;:::i;:::-;;;;;;;;14287:2;-1:-1:-1;;;;;14272:34:0;14281:4;-1:-1:-1;;;;;14272:34:0;;14291:14;14272:34;;;;160:25:1;;148:2;133:18;;14:177;14272:34:0;;;;;;;;12292:2022;;12189:2125;;;:::o;1336:250::-;1394:7;1418:1;1423;1418:6;1414:47;;-1:-1:-1;1448:1:0;1441:8;;1414:47;1473:9;1485:5;1489:1;1485;:5;:::i;:::-;1473:17;-1:-1:-1;1518:1:0;1509:5;1513:1;1473:17;1509:5;:::i;:::-;:10;1501:56;;;;-1:-1:-1;;;1501:56:0;;10181:2:1;1501:56:0;;;10163:21:1;10220:2;10200:18;;;10193:30;10259:34;10239:18;;;10232:62;-1:-1:-1;;;10310:18:1;;;10303:31;10351:19;;1501:56:0;9979:397:1;1501:56:0;1577:1;1336:250;-1:-1:-1;;;1336:250:0:o;1594:132::-;1652:7;1679:39;1683:1;1686;1679:39;;;;;;;;;;;;;;;;;:3;:39::i;9239:457::-;9307:7;9327:25;9383:3;9364:6;:16;;;9355:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9327:59;;9398:26;9455:3;9436:6;:16;;;9427:6;:25;;;;:::i;:::-;:31;;;;:::i;:::-;9398:60;-1:-1:-1;9497:38:0;9398:60;9497:17;:38;:::i;:::-;9487:4;9470:23;;;;:8;:23;;;;;:65;;:23;;;:65;;;;;:::i;:::-;;;;-1:-1:-1;9577:4:0;;-1:-1:-1;;;;;;9553:70:0;;;9584:38;9605:17;9584:18;:38;:::i;:::-;9553:70;;160:25:1;;;148:2;133:18;9553:70:0;;;;;;;9669:18;9642:25;9650:17;9642:6;:25;:::i;:::-;:45;;;;:::i;:::-;9634:54;9239:457;-1:-1:-1;;;;;9239:457:0:o;9704:460::-;9773:7;9793:25;9850:3;9830:7;:17;;;9821:6;:26;;;;:::i;:::-;:32;;;;:::i;:::-;9793:60;;9865:26;9923:3;9903:7;:17;;;9894:6;:26;;;;:::i;14332:897::-;14397:17;;14569:7;:17;14549;;14530:6;:16;14511;;14371:23;;14569:17;14549;14511:35;;;:::i;:::-;:55;;;;:::i;:::-;:75;;;;:::i;:::-;14489:7;:17;14470:6;:16;:36;;14489:17;14470:36;:::i;:::-;14451:56;;:15;:56;:::i;:::-;:136;;;;:::i;:::-;14425:162;-1:-1:-1;14598:23:0;14624:33;14425:162;14624:15;:33;:::i;:::-;14598:59;-1:-1:-1;14668:25:0;14696:33;14598:59;14696:15;:33;:::i;:::-;14668:61;-1:-1:-1;14750:26:0;14779:22;:15;14799:1;14779:19;:22::i;:::-;14750:51;-1:-1:-1;14812:26:0;14841:39;:15;14750:51;14841:19;:39::i;:::-;14812:68;;14901:36;14918:18;14901:16;:36::i;:::-;14970:21;14949:18;15038:54;15074:17;15038:31;14970:21;15053:15;15038:14;:31::i;:54::-;15012:80;;15105:49;15118:18;15138:15;15105:12;:49::i;:::-;15173:15;;15165:56;;-1:-1:-1;;;;;15173:15:0;;;;15199:21;15165:56;;;;;15173:15;15165:56;15173:15;15165:56;15199:21;15173:15;15165:56;;;;;;;;;;;;;;;;;;;;;14360:869;;;;;;;;14332:897::o;1734:278::-;1820:7;1855:12;1848:5;1840:28;;;;-1:-1:-1;;;1840:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1879:9:0;1891:5;1895:1;1891;:5;:::i;992:136::-;1050:7;1077:43;1081:1;1084;1077:43;;;;;;;;;;;;;;;;;:3;:43::i;15338:475::-;15428:16;;;15442:1;15428:16;;;;;;;;15404:21;;15428:16;;;;;;;;;;-1:-1:-1;15428:16:0;15404:40;;15473:4;15455;15460:1;15455:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15455:23:0;;;:7;;;;;;;;;;:23;;;;15499:15;;:22;;;-1:-1:-1;;;15499:22:0;;;;:15;;;;;:20;;:22;;;;;15455:7;;15499:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15489:4;15494:1;15489:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15489:32:0;;;:7;;;;;;;;;:32;15566:15;;15534:62;;15551:4;;15566:15;15584:11;15534:8;:62::i;:::-;15609:15;;:196;;-1:-1:-1;;;15609:196:0;;-1:-1:-1;;;;;15609:15:0;;;;:66;;:196;;15690:11;;15609:15;;15732:4;;15759;;15779:15;;15609:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15393:420;15338:475;:::o;15821:374::-;15934:15;;15902:62;;15919:4;;-1:-1:-1;;;;;15934:15:0;15952:11;15902:8;:62::i;:::-;15977:15;;16129:17;;15977:210;;-1:-1:-1;;;15977:210:0;;16051:4;15977:210;;;12095:34:1;12145:18;;;12138:34;;;15977:15:0;12188:18:1;;;12181:34;;;12231:18;;;12224:34;-1:-1:-1;;;;;16129:17:0;;;12274:19:1;;;12267:44;16161:15:0;12327:19:1;;;12320:35;15977:15:0;;;:31;;16017:9;;12029:19:1;;15977:210:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15821:374;;:::o;1136:192::-;1222:7;1258:12;1250:6;;;;1242:29;;;;-1:-1:-1;;;1242:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1282:9:0;1294:5;1298:1;1294;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1631:456::-;1708:6;1716;1724;1777:2;1765:9;1756:7;1752:23;1748:32;1745:52;;;1793:1;1790;1783:12;1745:52;1832:9;1819:23;1851:31;1876:5;1851:31;:::i;:::-;1901:5;-1:-1:-1;1958:2:1;1943:18;;1930:32;1971:33;1930:32;1971:33;:::i;:::-;1631:456;;2023:7;;-1:-1:-1;;;2077:2:1;2062:18;;;;2049:32;;1631:456::o;2742:247::-;2801:6;2854:2;2842:9;2833:7;2829:23;2825:32;2822:52;;;2870:1;2867;2860:12;2822:52;2909:9;2896:23;2928:31;2953:5;2928:31;:::i;2994:180::-;3053:6;3106:2;3094:9;3085:7;3081:23;3077:32;3074:52;;;3122:1;3119;3112:12;3074:52;-1:-1:-1;3145:23:1;;2994:180;-1:-1:-1;2994:180:1:o;3179:248::-;3247:6;3255;3308:2;3296:9;3287:7;3283:23;3279:32;3276:52;;;3324:1;3321;3314:12;3276:52;-1:-1:-1;;3347:23:1;;;3417:2;3402:18;;;3389:32;;-1:-1:-1;3179:248:1:o;3432:388::-;3500:6;3508;3561:2;3549:9;3540:7;3536:23;3532:32;3529:52;;;3577:1;3574;3567:12;3529:52;3616:9;3603:23;3635:31;3660:5;3635:31;:::i;:::-;3685:5;-1:-1:-1;3742:2:1;3727:18;;3714:32;3755:33;3714:32;3755:33;:::i;:::-;3807:7;3797:17;;;3432:388;;;;;:::o;3825:127::-;3886:10;3881:3;3877:20;3874:1;3867:31;3917:4;3914:1;3907:15;3941:4;3938:1;3931:15;3957:128;4024:9;;;4045:11;;;4042:37;;;4059:18;;:::i;4090:356::-;4292:2;4274:21;;;4311:18;;;4304:30;4370:34;4365:2;4350:18;;4343:62;4437:2;4422:18;;4090:356::o;4451:127::-;4512:10;4507:3;4503:20;4500:1;4493:31;4543:4;4540:1;4533:15;4567:4;4564:1;4557:15;4583:135;4622:3;4643:17;;;4640:43;;4663:18;;:::i;:::-;-1:-1:-1;4710:1:1;4699:13;;4583:135::o;4723:125::-;4788:9;;;4809:10;;;4806:36;;;4822:18;;:::i;8358:403::-;8560:2;8542:21;;;8599:2;8579:18;;;8572:30;8638:34;8633:2;8618:18;;8611:62;-1:-1:-1;;;8704:2:1;8689:18;;8682:37;8751:3;8736:19;;8358:403::o;8766:408::-;8968:2;8950:21;;;9007:2;8987:18;;;8980:30;9046:34;9041:2;9026:18;;9019:62;-1:-1:-1;;;9112:2:1;9097:18;;9090:42;9164:3;9149:19;;8766:408::o;9584:168::-;9657:9;;;9688;;9705:15;;;9699:22;;9685:37;9675:71;;9726:18;;:::i;9757:217::-;9797:1;9823;9813:132;;9867:10;9862:3;9858:20;9855:1;9848:31;9902:4;9899:1;9892:15;9930:4;9927:1;9920:15;9813:132;-1:-1:-1;9959:9:1;;9757:217::o;10513:251::-;10583:6;10636:2;10624:9;10615:7;10611:23;10607:32;10604:52;;;10652:1;10649;10642:12;10604:52;10684:9;10678:16;10703:31;10728:5;10703:31;:::i;10769:980::-;11031:4;11079:3;11068:9;11064:19;11110:6;11099:9;11092:25;11136:2;11174:6;11169:2;11158:9;11154:18;11147:34;11217:3;11212:2;11201:9;11197:18;11190:31;11241:6;11276;11270:13;11307:6;11299;11292:22;11345:3;11334:9;11330:19;11323:26;;11384:2;11376:6;11372:15;11358:29;;11405:1;11415:195;11429:6;11426:1;11423:13;11415:195;;;11494:13;;-1:-1:-1;;;;;11490:39:1;11478:52;;11585:15;;;;11550:12;;;;11526:1;11444:9;11415:195;;;-1:-1:-1;;;;;;;11666:32:1;;;;11661:2;11646:18;;11639:60;-1:-1:-1;;;11730:3:1;11715:19;11708:35;11627:3;10769:980;-1:-1:-1;;;10769:980:1:o;12366:306::-;12454:6;12462;12470;12523:2;12511:9;12502:7;12498:23;12494:32;12491:52;;;12539:1;12536;12529:12;12491:52;12568:9;12562:16;12552:26;;12618:2;12607:9;12603:18;12597:25;12587:35;;12662:2;12651:9;12647:18;12641:25;12631:35;;12366:306;;;;;:::o

Swarm Source

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