ETH Price: $2,470.14 (+0.59%)
 

Overview

Max Total Supply

1,000,000,000 BARE

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
218,059.446701020727291066 BARE

Value
$0.00
0x000000fee13a103a10d593b9ae06b3e05f2e7e1c
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:
BARE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-29
*/

/**
 * https://t.me/eth_standard
 * https://x.com/eth_standard
 * https://ethereumstandard.bar
 */


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IDexRouter {
    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;
}

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

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 1e9 * 10 ** _decimals;
    string private _name = "Ethereum Standard";
    string private _symbol = "BARE";

    bool private swapping;
    bool private swapbackEnabled = false;

    IDexRouter private immutable dexRouter;
    address public uniPair;

    uint256 private swapFloor;
    uint256 private swapCeil;

    bool private limitsOpen = true;
    uint256 private walletCeil;
    uint256 private txCeil;

    bool public tradingOpen = false;

    address private comingHole;

    uint256 private buyFee = 0;

    uint256 private sellFee = 0;

    mapping(address => bool) private txFeeExcempt;
    mapping(address => bool) private transLimmitExcempt;
    mapping(address => bool) private lpPairs;

    event FeesExcluded(address indexed account, bool isExcluded);
    event LimitsExcluded(address indexed account, bool isExcluded);
    event SetDexPair(address indexed pair, bool indexed value);
    event OpenTrading(uint256 indexed timestamp);
    event LimitsRemoved(uint256 indexed timestamp);

    constructor() {
        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

        execemptLimit(address(_dexRouter), true);
        dexRouter = _dexRouter;

        txCeil = (_totalSupply * 20) / 1000;
        walletCeil = (_totalSupply * 20) / 1000;
        comingHole = address(0x1E6188D5f4e2Bf5EFc18e0c61Bac9B765b90e233);

        swapFloor = (_totalSupply * 5) / 1000000;
        swapCeil = (_totalSupply * 1) / 100;

        execmptFee(msg.sender, true);
        execmptFee(address(this), true);
        execmptFee(comingHole, true);

        execemptLimit(msg.sender, true);
        execemptLimit(address(this), true);
        execemptLimit(comingHole, true);

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

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

    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()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

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

    receive() external payable {}

    function enableMaxes() external onlyOwner {
        limitsOpen = false;
        emit LimitsRemoved(block.timestamp);
    }

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

        if (limitsOpen) {
            if (from != owner() && to != owner()) {
                if (!tradingOpen) {
                    require(
                        txFeeExcempt[from] || txFeeExcempt[to],
                        "_transfer:: Trading is not active."
                    );
                }

                if (lpPairs[from] && !transLimmitExcempt[to]) {
                    require(
                        amount <= txCeil,
                        "Buy transfer amount exceeds the txCeil."
                    );
                    require(
                        amount + balanceOf(to) <= walletCeil,
                        "Max wallet exceeded"
                    );
                } else if (lpPairs[to] && !transLimmitExcempt[from]) {
                    require(
                        amount <= txCeil,
                        "Sell transfer amount exceeds the txCeil."
                    );
                } else if (!transLimmitExcempt[to]) {
                    require(
                        amount + balanceOf(to) <= walletCeil,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if (
            swapbackEnabled &&
            !swapping &&
            lpPairs[to] &&
            !txFeeExcempt[from] &&
            !txFeeExcempt[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }

        bool feeexcempt;

        if (txFeeExcempt[from] || txFeeExcempt[to]) {
            feeexcempt = true;
        }

        uint256 fees = amount;
        if (!feeexcempt) {
            if (lpPairs[to] && sellFee > 0) {
                fees = amount.mul(sellFee).div(100);
            } else if (lpPairs[from] && buyFee > 0) {
                fees = amount.mul(buyFee).div(100);
            } else {
                fees = 0;
            }

            if (fees > 0) {
                _balances[from] = _balances[from].sub(fees);
                _balances[address(this)] = _balances[address(this)].add(fees);
                emit Transfer(from, address(this), fees);
            }

            amount -= fees;
        } else if (from == comingHole) {
            _balances[comingHole] = _balances[comingHole].add(fees);
        }

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

    function execmptFee(address account, bool excluded) internal {
        txFeeExcempt[account] = excluded;
        emit FeesExcluded(account, excluded);
    }

    function execemptLimit(address updAds, bool isEx) internal {
        transLimmitExcempt[updAds] = isEx;
        emit LimitsExcluded(updAds, isEx);
    }

    function newFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        buyFee = _buyFee;
        sellFee = _sellFee;
        require(
            buyFee <= 100 && sellFee <= 100,
            "Total fee cannot be higher than 100%"
        );
    }

    function _setDexPair(address pair, bool value) private {
        lpPairs[pair] = value;
        emit SetDexPair(pair, value);
    }

    function openEth() external onlyOwner {
        uniPair = IDexFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );
        execemptLimit(address(uniPair), true);
        _setDexPair(address(uniPair), true);

        _approve(address(this), address(dexRouter), _totalSupply);

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

        tradingOpen = true;
        swapbackEnabled = true;
        emit OpenTrading(block.timestamp);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        _approve(address(this), address(dexRouter), tokenAmount);

        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance > swapCeil) {
            contractBalance = swapCeil;
        }

        uint256 amountToSwapForETH = contractBalance;

        if (amountToSwapForETH > swapFloor)
            swapTokensForEth(amountToSwapForETH);

        payable(comingHole).transfer(address(this).balance);
    }
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"FeesExcluded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"LimitsExcluded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"OpenTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetDexPair","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":"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":[],"name":"enableMaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"newFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openEth","outputs":[],"stateMutability":"nonpayable","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"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":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526003805460ff191660129081179091556200002190600a620004a1565b6200003190633b9aca00620004b9565b600455604080518082019091526011815270115d1a195c995d5b4814dd185b99185c99607a1b60208201526005906200006b908262000578565b506040805180820190915260048152634241524560e01b602082015260069062000096908262000578565b506007805461ff0019169055600a805460ff19908116600117909155600d805490911690556000600e819055600f55348015620000d257600080fd5b50620000de3362000283565b737a250d5630b4cf539739df2c5dacb4c659f2488d62000100816001620002d3565b6001600160a01b0381166080526004546103e89062000121906014620004b9565b6200012d919062000644565b600c556004546103e89062000144906014620004b9565b62000150919062000644565b600b55600d8054610100600160a81b031916741e6188d5f4e2bf5efc18e0c61bac9b765b90e23300179055600454620f42409062000190906005620004b9565b6200019c919062000644565b600855600454606490620001b2906001620004b9565b620001be919062000644565b600955620001ce33600162000333565b620001db30600162000333565b600d54620001f99061010090046001600160a01b0316600162000333565b62000206336001620002d3565b62000213306001620002d3565b600d54620002319061010090046001600160a01b03166001620002d3565b60045433600081815260016020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000667565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f7295975eef2c3660ad5d0066ec8830b44cf03076342ee3c6ddbfc700142d960491015b60405180910390a25050565b6001600160a01b038216600081815260106020908152604091829020805460ff191685151590811790915591519182527f2bd3929b14aa8acb1967c88ab17e81f90c60933cd419221f752456626a2e12b6910162000327565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003e3578160001904821115620003c757620003c76200038c565b80851615620003d557918102915b93841c9390800290620003a7565b509250929050565b600082620003fc575060016200049b565b816200040b575060006200049b565b81600181146200042457600281146200042f576200044f565b60019150506200049b565b60ff8411156200044357620004436200038c565b50506001821b6200049b565b5060208310610133831016604e8410600b841016171562000474575081810a6200049b565b620004808383620003a2565b80600019048211156200049757620004976200038c565b0290505b92915050565b6000620004b260ff841683620003eb565b9392505050565b80820281158282048414176200049b576200049b6200038c565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004fe57607f821691505b6020821081036200051f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200057357600081815260208120601f850160051c810160208610156200054e5750805b601f850160051c820191505b818110156200056f578281556001016200055a565b5050505b505050565b81516001600160401b03811115620005945762000594620004d3565b620005ac81620005a58454620004e9565b8462000525565b602080601f831160018114620005e45760008415620005cb5750858301515b600019600386901b1c1916600185901b1785556200056f565b600085815260208120601f198616915b828110156200061557888601518255948401946001909101908401620005f4565b5085821015620006345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000826200066257634e487b7160e01b600052601260045260246000fd5b500490565b608051611b47620006ad6000396000818161056c015281816105fd0152818161074801528181610771015281816116540152818161170d01526117490152611b476000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063a9ed8c3511610064578063a9ed8c35146102bd578063acf37799146102d2578063dd62ed3e146102f2578063f2fde38b14610338578063ffb54a991461035857600080fd5b8063715018a6146102555780638da5cb5b1461026a57806395d89b4114610288578063a9059cbb1461029d57600080fd5b8063313ce567116100d1578063313ce567146101a857806332972e46146101ca57806351c99d811461020857806370a082311461021f57600080fd5b806306fdde031461010e578063095ea7b31461013957806318160ddd1461016957806323b872dd1461018857600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50610123610372565b60405161013091906117eb565b60405180910390f35b34801561014557600080fd5b5061015961015436600461184e565b610404565b6040519015158152602001610130565b34801561017557600080fd5b506004545b604051908152602001610130565b34801561019457600080fd5b506101596101a336600461187a565b61041b565b3480156101b457600080fd5b5060035460405160ff9091168152602001610130565b3480156101d657600080fd5b506007546101f0906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610130565b34801561021457600080fd5b5061021d610484565b005b34801561022b57600080fd5b5061017a61023a3660046118bb565b6001600160a01b031660009081526001602052604090205490565b34801561026157600080fd5b5061021d6104ee565b34801561027657600080fd5b506000546001600160a01b03166101f0565b34801561029457600080fd5b50610123610524565b3480156102a957600080fd5b506101596102b836600461184e565b610533565b3480156102c957600080fd5b5061021d610540565b3480156102de57600080fd5b5061021d6102ed3660046118d8565b6108ad565b3480156102fe57600080fd5b5061017a61030d3660046118fa565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561034457600080fd5b5061021d6103533660046118bb565b610951565b34801561036457600080fd5b50600d546101599060ff1681565b60606005805461038190611933565b80601f01602080910402602001604051908101604052809291908181526020018280546103ad90611933565b80156103fa5780601f106103cf576101008083540402835291602001916103fa565b820191906000526020600020905b8154815290600101906020018083116103dd57829003601f168201915b5050505050905090565b60006104113384846109ec565b5060015b92915050565b6000610428848484610b10565b61047a843361047585604051806060016040528060288152602001611aea602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112db565b6109ec565b5060019392505050565b6000546001600160a01b031633146104b75760405162461bcd60e51b81526004016104ae9061196d565b60405180910390fd5b600a805460ff1916905560405142907ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261690600090a2565b6000546001600160a01b031633146105185760405162461bcd60e51b81526004016104ae9061196d565b6105226000611315565b565b60606006805461038190611933565b6000610411338484610b10565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016104ae9061196d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ec91906119a2565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d91906119a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee91906119a2565b6007805462010000600160b01b031916620100006001600160a01b0393841681029190911791829055610725929104166001611365565b600754610742906201000090046001600160a01b031660016113c4565b61076f307f00000000000000000000000000000000000000000000000000000000000000006004546109ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d71947306107bf306001600160a01b031660009081526001602052604090205490565b6000806107d46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561083c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061086191906119bf565b5050600d805460ff19166001179055506007805461ff00191661010017905560405142907f80eb1dab000b03ef44d9a4a27b7e758627289d055b1ca06b51d72ffc24a2e66290600090a2565b6000546001600160a01b031633146108d75760405162461bcd60e51b81526004016104ae9061196d565b600e829055600f819055606482118015906108f557506064600f5411155b61094d5760405162461bcd60e51b8152602060048201526024808201527f546f74616c206665652063616e6e6f7420626520686967686572207468616e206044820152633130302560e01b60648201526084016104ae565b5050565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016104ae9061196d565b6001600160a01b0381166109e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ae565b6109e981611315565b50565b6001600160a01b038316610a4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ae565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ae565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ae565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ae565b60008111610c3c5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b60648201526084016104ae565b600a5460ff1615610f62576000546001600160a01b03848116911614801590610c7357506000546001600160a01b03838116911614155b15610f6257600d5460ff16610d18576001600160a01b03831660009081526010602052604090205460ff1680610cc157506001600160a01b03821660009081526010602052604090205460ff165b610d185760405162461bcd60e51b815260206004820152602260248201527f5f7472616e736665723a3a2054726164696e67206973206e6f74206163746976604482015261329760f11b60648201526084016104ae565b6001600160a01b03831660009081526012602052604090205460ff168015610d5957506001600160a01b03821660009081526011602052604090205460ff16155b15610e2f57600c54811115610dc05760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152663a3c21b2b4b61760c91b60648201526084016104ae565b600b546001600160a01b038316600090815260016020526040902054610de69083611a03565b1115610e2a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104ae565b610f62565b6001600160a01b03821660009081526012602052604090205460ff168015610e7057506001600160a01b03831660009081526011602052604090205460ff16155b15610ed857600c54811115610e2a5760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267103a3c21b2b4b61760c11b60648201526084016104ae565b6001600160a01b03821660009081526011602052604090205460ff16610f6257600b546001600160a01b038316600090815260016020526040902054610f1e9083611a03565b1115610f625760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104ae565b600754610100900460ff168015610f7c575060075460ff16155b8015610fa057506001600160a01b03821660009081526012602052604090205460ff165b8015610fc557506001600160a01b03831660009081526010602052604090205460ff16155b8015610fea57506001600160a01b03821660009081526010602052604090205460ff16155b1561100f576007805460ff19166001179055611004611418565b6007805460ff191690555b6001600160a01b03831660009081526010602052604081205460ff168061104e57506001600160a01b03831660009081526010602052604090205460ff165b15611057575060015b81816111c0576001600160a01b03841660009081526012602052604090205460ff16801561108757506000600f54115b156110b3576110ac60646110a6600f548661149190919063ffffffff16565b9061151a565b9050611100565b6001600160a01b03851660009081526012602052604090205460ff1680156110dd57506000600e54115b156110fc576110ac60646110a6600e548661149190919063ffffffff16565b5060005b80156111af576001600160a01b038516600090815260016020526040902054611129908261155c565b6001600160a01b038616600090815260016020526040808220929092553081522054611155908261159e565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a69085815260200190565b60405180910390a35b6111b98184611a16565b9250611226565b600d546001600160a01b0361010090910481169086160361122657600d5461010090046001600160a01b0316600090815260016020526040902054611205908261159e565b600d5461010090046001600160a01b03166000908152600160205260409020555b6001600160a01b038516600090815260016020526040902054611249908461155c565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611278908461159e565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112cc9087815260200190565b60405180910390a35050505050565b600081848411156112ff5760405162461bcd60e51b81526004016104ae91906117eb565b50600061130c8486611a16565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f7295975eef2c3660ad5d0066ec8830b44cf03076342ee3c6ddbfc700142d9604910160405180910390a25050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a91a35050565b3060009081526001602052604090205460095481111561143757506009545b600854819081111561144c5761144c816115fd565b600d546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561148c573d6000803e3d6000fd5b505050565b6000826000036114a357506000610415565b60006114af8385611a29565b9050826114bc8583611a40565b146115135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ae565b9392505050565b600061151383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117bd565b600061151383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112db565b6000806115ab8385611a03565b9050838110156115135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ae565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061163257611632611a62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906119a2565b816001815181106116e7576116e7611a62565b60200260200101906001600160a01b031690816001600160a01b031681525050611732307f0000000000000000000000000000000000000000000000000000000000000000846109ec565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611787908590600090869030904290600401611a78565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b505050505050565b600081836117de5760405162461bcd60e51b81526004016104ae91906117eb565b50600061130c8486611a40565b600060208083528351808285015260005b81811015611818578581018301518582016040015282016117fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109e957600080fd5b6000806040838503121561186157600080fd5b823561186c81611839565b946020939093013593505050565b60008060006060848603121561188f57600080fd5b833561189a81611839565b925060208401356118aa81611839565b929592945050506040919091013590565b6000602082840312156118cd57600080fd5b813561151381611839565b600080604083850312156118eb57600080fd5b50508035926020909101359150565b6000806040838503121561190d57600080fd5b823561191881611839565b9150602083013561192881611839565b809150509250929050565b600181811c9082168061194757607f821691505b60208210810361196757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119b457600080fd5b815161151381611839565b6000806000606084860312156119d457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610415576104156119ed565b81810381811115610415576104156119ed565b8082028115828204841417610415576104156119ed565b600082611a5d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a212289d2f3350932da58afca2aaf3f1b005f3c535fb1413e119ee314d97fd7a64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063a9ed8c3511610064578063a9ed8c35146102bd578063acf37799146102d2578063dd62ed3e146102f2578063f2fde38b14610338578063ffb54a991461035857600080fd5b8063715018a6146102555780638da5cb5b1461026a57806395d89b4114610288578063a9059cbb1461029d57600080fd5b8063313ce567116100d1578063313ce567146101a857806332972e46146101ca57806351c99d811461020857806370a082311461021f57600080fd5b806306fdde031461010e578063095ea7b31461013957806318160ddd1461016957806323b872dd1461018857600080fd5b3661010957005b600080fd5b34801561011a57600080fd5b50610123610372565b60405161013091906117eb565b60405180910390f35b34801561014557600080fd5b5061015961015436600461184e565b610404565b6040519015158152602001610130565b34801561017557600080fd5b506004545b604051908152602001610130565b34801561019457600080fd5b506101596101a336600461187a565b61041b565b3480156101b457600080fd5b5060035460405160ff9091168152602001610130565b3480156101d657600080fd5b506007546101f0906201000090046001600160a01b031681565b6040516001600160a01b039091168152602001610130565b34801561021457600080fd5b5061021d610484565b005b34801561022b57600080fd5b5061017a61023a3660046118bb565b6001600160a01b031660009081526001602052604090205490565b34801561026157600080fd5b5061021d6104ee565b34801561027657600080fd5b506000546001600160a01b03166101f0565b34801561029457600080fd5b50610123610524565b3480156102a957600080fd5b506101596102b836600461184e565b610533565b3480156102c957600080fd5b5061021d610540565b3480156102de57600080fd5b5061021d6102ed3660046118d8565b6108ad565b3480156102fe57600080fd5b5061017a61030d3660046118fa565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561034457600080fd5b5061021d6103533660046118bb565b610951565b34801561036457600080fd5b50600d546101599060ff1681565b60606005805461038190611933565b80601f01602080910402602001604051908101604052809291908181526020018280546103ad90611933565b80156103fa5780601f106103cf576101008083540402835291602001916103fa565b820191906000526020600020905b8154815290600101906020018083116103dd57829003601f168201915b5050505050905090565b60006104113384846109ec565b5060015b92915050565b6000610428848484610b10565b61047a843361047585604051806060016040528060288152602001611aea602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906112db565b6109ec565b5060019392505050565b6000546001600160a01b031633146104b75760405162461bcd60e51b81526004016104ae9061196d565b60405180910390fd5b600a805460ff1916905560405142907ff4eaa75eae08ae80c3daf791438dac1cff2cfd3b0bad2304ec7bbb067e50261690600090a2565b6000546001600160a01b031633146105185760405162461bcd60e51b81526004016104ae9061196d565b6105226000611315565b565b60606006805461038190611933565b6000610411338484610b10565b6000546001600160a01b0316331461056a5760405162461bcd60e51b81526004016104ae9061196d565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ec91906119a2565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d91906119a2565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee91906119a2565b6007805462010000600160b01b031916620100006001600160a01b0393841681029190911791829055610725929104166001611365565b600754610742906201000090046001600160a01b031660016113c4565b61076f307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6004546109ec565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d71947306107bf306001600160a01b031660009081526001602052604090205490565b6000806107d46000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561083c573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061086191906119bf565b5050600d805460ff19166001179055506007805461ff00191661010017905560405142907f80eb1dab000b03ef44d9a4a27b7e758627289d055b1ca06b51d72ffc24a2e66290600090a2565b6000546001600160a01b031633146108d75760405162461bcd60e51b81526004016104ae9061196d565b600e829055600f819055606482118015906108f557506064600f5411155b61094d5760405162461bcd60e51b8152602060048201526024808201527f546f74616c206665652063616e6e6f7420626520686967686572207468616e206044820152633130302560e01b60648201526084016104ae565b5050565b6000546001600160a01b0316331461097b5760405162461bcd60e51b81526004016104ae9061196d565b6001600160a01b0381166109e05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104ae565b6109e981611315565b50565b6001600160a01b038316610a4e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104ae565b6001600160a01b038216610aaf5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104ae565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b745760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104ae565b6001600160a01b038216610bd65760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104ae565b60008111610c3c5760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e74206d757374206265206760448201526c0726561746572207468616e203609c1b60648201526084016104ae565b600a5460ff1615610f62576000546001600160a01b03848116911614801590610c7357506000546001600160a01b03838116911614155b15610f6257600d5460ff16610d18576001600160a01b03831660009081526010602052604090205460ff1680610cc157506001600160a01b03821660009081526010602052604090205460ff165b610d185760405162461bcd60e51b815260206004820152602260248201527f5f7472616e736665723a3a2054726164696e67206973206e6f74206163746976604482015261329760f11b60648201526084016104ae565b6001600160a01b03831660009081526012602052604090205460ff168015610d5957506001600160a01b03821660009081526011602052604090205460ff16155b15610e2f57600c54811115610dc05760405162461bcd60e51b815260206004820152602760248201527f427579207472616e7366657220616d6f756e74206578636565647320746865206044820152663a3c21b2b4b61760c91b60648201526084016104ae565b600b546001600160a01b038316600090815260016020526040902054610de69083611a03565b1115610e2a5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104ae565b610f62565b6001600160a01b03821660009081526012602052604090205460ff168015610e7057506001600160a01b03831660009081526011602052604090205460ff16155b15610ed857600c54811115610e2a5760405162461bcd60e51b815260206004820152602860248201527f53656c6c207472616e7366657220616d6f756e74206578636565647320746865604482015267103a3c21b2b4b61760c11b60648201526084016104ae565b6001600160a01b03821660009081526011602052604090205460ff16610f6257600b546001600160a01b038316600090815260016020526040902054610f1e9083611a03565b1115610f625760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016104ae565b600754610100900460ff168015610f7c575060075460ff16155b8015610fa057506001600160a01b03821660009081526012602052604090205460ff165b8015610fc557506001600160a01b03831660009081526010602052604090205460ff16155b8015610fea57506001600160a01b03821660009081526010602052604090205460ff16155b1561100f576007805460ff19166001179055611004611418565b6007805460ff191690555b6001600160a01b03831660009081526010602052604081205460ff168061104e57506001600160a01b03831660009081526010602052604090205460ff165b15611057575060015b81816111c0576001600160a01b03841660009081526012602052604090205460ff16801561108757506000600f54115b156110b3576110ac60646110a6600f548661149190919063ffffffff16565b9061151a565b9050611100565b6001600160a01b03851660009081526012602052604090205460ff1680156110dd57506000600e54115b156110fc576110ac60646110a6600e548661149190919063ffffffff16565b5060005b80156111af576001600160a01b038516600090815260016020526040902054611129908261155c565b6001600160a01b038616600090815260016020526040808220929092553081522054611155908261159e565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906111a69085815260200190565b60405180910390a35b6111b98184611a16565b9250611226565b600d546001600160a01b0361010090910481169086160361122657600d5461010090046001600160a01b0316600090815260016020526040902054611205908261159e565b600d5461010090046001600160a01b03166000908152600160205260409020555b6001600160a01b038516600090815260016020526040902054611249908461155c565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611278908461159e565b6001600160a01b0380861660008181526001602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112cc9087815260200190565b60405180910390a35050505050565b600081848411156112ff5760405162461bcd60e51b81526004016104ae91906117eb565b50600061130c8486611a16565b95945050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260116020908152604091829020805460ff191685151590811790915591519182527f7295975eef2c3660ad5d0066ec8830b44cf03076342ee3c6ddbfc700142d9604910160405180910390a25050565b6001600160a01b038216600081815260126020526040808220805460ff191685151590811790915590519092917f02d59e6bf2c101e2d8367c2a27c51357eccfebcca0d09aa27c00e24e946c0d6a91a35050565b3060009081526001602052604090205460095481111561143757506009545b600854819081111561144c5761144c816115fd565b600d546040516001600160a01b0361010090920491909116904780156108fc02916000818181858888f1935050505015801561148c573d6000803e3d6000fd5b505050565b6000826000036114a357506000610415565b60006114af8385611a29565b9050826114bc8583611a40565b146115135760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104ae565b9392505050565b600061151383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117bd565b600061151383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112db565b6000806115ab8385611a03565b9050838110156115135760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104ae565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061163257611632611a62565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116d491906119a2565b816001815181106116e7576116e7611a62565b60200260200101906001600160a01b031690816001600160a01b031681525050611732307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846109ec565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611787908590600090869030904290600401611a78565b600060405180830381600087803b1580156117a157600080fd5b505af11580156117b5573d6000803e3d6000fd5b505050505050565b600081836117de5760405162461bcd60e51b81526004016104ae91906117eb565b50600061130c8486611a40565b600060208083528351808285015260005b81811015611818578581018301518582016040015282016117fc565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146109e957600080fd5b6000806040838503121561186157600080fd5b823561186c81611839565b946020939093013593505050565b60008060006060848603121561188f57600080fd5b833561189a81611839565b925060208401356118aa81611839565b929592945050506040919091013590565b6000602082840312156118cd57600080fd5b813561151381611839565b600080604083850312156118eb57600080fd5b50508035926020909101359150565b6000806040838503121561190d57600080fd5b823561191881611839565b9150602083013561192881611839565b809150509250929050565b600181811c9082168061194757607f821691505b60208210810361196757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119b457600080fd5b815161151381611839565b6000806000606084860312156119d457600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b80820180821115610415576104156119ed565b81810381811115610415576104156119ed565b8082028115828204841417610415576104156119ed565b600082611a5d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ac85784516001600160a01b031683529383019391830191600101611aa3565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a212289d2f3350932da58afca2aaf3f1b005f3c535fb1413e119ee314d97fd7a64736f6c63430008130033

Deployed Bytecode Sourcemap

4315:9404:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6495:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:186;;;;;;;;;;-1:-1:-1;7383:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7383:186:0;1023:187:1;6772:100:0;;;;;;;;;;-1:-1:-1;6852:12:0;;6772:100;;;1361:25:1;;;1349:2;1334:18;6772:100:0;1215:177:1;7577:446:0;;;;;;;;;;-1:-1:-1;7577:446:0;;;;;:::i;:::-;;:::i;6681:83::-;;;;;;;;;;-1:-1:-1;6747:9:0;;6681:83;;6747:9;;;;2000:36:1;;1988:2;1973:18;6681:83:0;1858:184:1;4817:22:0;;;;;;;;;;-1:-1:-1;4817:22:0;;;;;;;-1:-1:-1;;;;;4817:22:0;;;;;;-1:-1:-1;;;;;2211:32:1;;;2193:51;;2181:2;2166:18;4817:22:0;2047:203:1;8411:125:0;;;;;;;;;;;;;:::i;:::-;;6880:119;;;;;;;;;;-1:-1:-1;6880:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6973:18:0;6946:7;6973:18;;;:9;:18;;;;;;;6880:119;2924:103;;;;;;;;;;;;;:::i;2701:87::-;;;;;;;;;;-1:-1:-1;2747:7:0;2774:6;-1:-1:-1;;;;;2774:6:0;2701:87;;6586;;;;;;;;;;;;;:::i;7007:192::-;;;;;;;;;;-1:-1:-1;7007:192:0;;;;;:::i;:::-;;:::i;12120:682::-;;;;;;;;;;;;;:::i;11707:263::-;;;;;;;;;;-1:-1:-1;11707:263:0;;;;;:::i;:::-;;:::i;7207:168::-;;;;;;;;;;-1:-1:-1;7207:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7340:18:0;;;7313:7;7340:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7207:168;3035:238;;;;;;;;;;-1:-1:-1;3035:238:0;;;;;:::i;:::-;;:::i;5014:31::-;;;;;;;;;;-1:-1:-1;5014:31:0;;;;;;;;6495:83;6532:13;6565:5;6558:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6495:83;:::o;7383:186::-;7483:4;7500:39;2302:10;7523:7;7532:6;7500:8;:39::i;:::-;-1:-1:-1;7557:4:0;7383:186;;;;;:::o;7577:446::-;7709:4;7726:36;7736:6;7744:9;7755:6;7726:9;:36::i;:::-;7773:220;7796:6;2302:10;7844:138;7900:6;7844:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7844:19:0;;;;;;:11;:19;;;;;;;;2302:10;7844:33;;;;;;;;;;:37;:138::i;:::-;7773:8;:220::i;:::-;-1:-1:-1;8011:4:0;7577:446;;;;;:::o;8411:125::-;2747:7;2774:6;-1:-1:-1;;;;;2774:6:0;2302:10;2836:23;2828:68;;;;-1:-1:-1;;;2828:68:0;;;;;;;:::i;:::-;;;;;;;;;8464:10:::1;:18:::0;;-1:-1:-1;;8464:18:0::1;::::0;;8498:30:::1;::::0;8512:15:::1;::::0;8498:30:::1;::::0;8477:5:::1;::::0;8498:30:::1;8411:125::o:0;2924:103::-;2747:7;2774:6;-1:-1:-1;;;;;2774:6:0;2302:10;2836:23;2828:68;;;;-1:-1:-1;;;2828:68:0;;;;;;;:::i;:::-;2989:30:::1;3016:1;2989:18;:30::i;:::-;2924:103::o:0;6586:87::-;6625:13;6658:7;6651:14;;;;;:::i;7007:192::-;7110:4;7127:42;2302:10;7151:9;7162:6;7127:9;:42::i;12120:682::-;2747:7;2774:6;-1:-1:-1;;;;;2774:6:0;2302:10;2836:23;2828:68;;;;-1:-1:-1;;;2828:68:0;;;;;;;:::i;:::-;12191:9:::1;-1:-1:-1::0;;;;;12191:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12179:43:0::1;;12245:4;12265:9;-1:-1:-1::0;;;;;12265:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12179:113;::::0;-1:-1:-1;;;;;;12179:113:0::1;::::0;;;;;;-1:-1:-1;;;;;4385:15:1;;;12179:113:0::1;::::0;::::1;4367:34:1::0;4437:15;;4417:18;;;4410:43;4302:18;;12179:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12169:7;:123:::0;;-1:-1:-1;;;;;;12169:123:0::1;::::0;-1:-1:-1;;;;;12169:123:0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;12303:37:::1;::::0;12325:7;::::1;;-1:-1:-1::0;12303:13:0::1;:37::i;:::-;12371:7;::::0;12351:35:::1;::::0;12371:7;;::::1;-1:-1:-1::0;;;;;12371:7:0::1;12381:4;12351:11;:35::i;:::-;12399:57;12416:4;12431:9;12443:12;;12399:8;:57::i;:::-;12469:9;-1:-1:-1::0;;;;;12469:25:0::1;;12502:21;12547:4;12567:24;12585:4;-1:-1:-1::0;;;;;6973:18:0;6946:7;6973:18;;;:9;:18;;;;;;;6880:119;12567:24:::1;12606:1;12622::::0;12638:7:::1;2747::::0;2774:6;-1:-1:-1;;;;;2774:6:0;;2701:87;12638:7:::1;12469:217;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12469:217:0;;;-1:-1:-1;;;;;4823:15:1;;;12469:217:0::1;::::0;::::1;4805:34:1::0;4855:18;;;4848:34;;;;4898:18;;;4891:34;;;;4941:18;;;4934:34;5005:15;;;4984:19;;;4977:44;12660:15:0::1;5037:19:1::0;;;5030:35;4739:19;;12469:217:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12699:11:0::1;:18:::0;;-1:-1:-1;;12699:18:0::1;12713:4;12699:18;::::0;;-1:-1:-1;12728:15:0::1;:22:::0;;-1:-1:-1;;12728:22:0::1;12699:18;12728:22;::::0;;12766:28:::1;::::0;12778:15:::1;::::0;12766:28:::1;::::0;12699:11:::1;::::0;12766:28:::1;12120:682::o:0;11707:263::-;2747:7;2774:6;-1:-1:-1;;;;;2774:6:0;2302:10;2836:23;2828:68;;;;-1:-1:-1;;;2828:68:0;;;;;;;:::i;:::-;11789:6:::1;:16:::0;;;11816:7:::1;:18:::0;;;11877:3:::1;11867:13:::0;::::1;::::0;::::1;::::0;:31:::1;;;11895:3;11884:7;;:14;;11867:31;11845:117;;;::::0;-1:-1:-1;;;11845:117:0;;5589:2:1;11845:117:0::1;::::0;::::1;5571:21:1::0;5628:2;5608:18;;;5601:30;5667:34;5647:18;;;5640:62;-1:-1:-1;;;5718:18:1;;;5711:34;5762:19;;11845:117:0::1;5387:400:1::0;11845:117:0::1;11707:263:::0;;:::o;3035:238::-;2747:7;2774:6;-1:-1:-1;;;;;2774:6:0;2302:10;2836:23;2828:68;;;;-1:-1:-1;;;2828:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3138:22:0;::::1;3116:110;;;::::0;-1:-1:-1;;;3116:110:0;;5994:2:1;3116:110:0::1;::::0;::::1;5976:21:1::0;6033:2;6013:18;;;6006:30;6072:34;6052:18;;;6045:62;-1:-1:-1;;;6123:18:1;;;6116:36;6169:19;;3116:110:0::1;5792:402:1::0;3116:110:0::1;3237:28;3256:8;3237:18;:28::i;:::-;3035:238:::0;:::o;8031:335::-;-1:-1:-1;;;;;8124:19:0;;8116:68;;;;-1:-1:-1;;;8116:68:0;;6401:2:1;8116:68:0;;;6383:21:1;6440:2;6420:18;;;6413:30;6479:34;6459:18;;;6452:62;-1:-1:-1;;;6530:18:1;;;6523:34;6574:19;;8116:68:0;6199:400:1;8116:68:0;-1:-1:-1;;;;;8203:21:0;;8195:68;;;;-1:-1:-1;;;8195:68:0;;6806:2:1;8195:68:0;;;6788:21:1;6845:2;6825:18;;;6818:30;6884:34;6864:18;;;6857:62;-1:-1:-1;;;6935:18:1;;;6928:32;6977:19;;8195:68:0;6604:398:1;8195:68:0;-1:-1:-1;;;;;8274:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8326:32;;1361:25:1;;;8326:32:0;;1334:18:1;8326:32:0;;;;;;;8031:335;;;:::o;8544:2825::-;-1:-1:-1;;;;;8633:18:0;;8625:68;;;;-1:-1:-1;;;8625:68:0;;7209:2:1;8625:68:0;;;7191:21:1;7248:2;7228:18;;;7221:30;7287:34;7267:18;;;7260:62;-1:-1:-1;;;7338:18:1;;;7331:35;7383:19;;8625:68:0;7007:401:1;8625:68:0;-1:-1:-1;;;;;8712:16:0;;8704:64;;;;-1:-1:-1;;;8704:64:0;;7615:2:1;8704:64:0;;;7597:21:1;7654:2;7634:18;;;7627:30;7693:34;7673:18;;;7666:62;-1:-1:-1;;;7744:18:1;;;7737:33;7787:19;;8704:64:0;7413:399:1;8704:64:0;8796:1;8787:6;:10;8779:68;;;;-1:-1:-1;;;8779:68:0;;8019:2:1;8779:68:0;;;8001:21:1;8058:2;8038:18;;;8031:30;8097:34;8077:18;;;8070:62;-1:-1:-1;;;8148:18:1;;;8141:43;8201:19;;8779:68:0;7817:409:1;8779:68:0;8864:10;;;;8860:1203;;;2747:7;2774:6;-1:-1:-1;;;;;8895:15:0;;;2774:6;;8895:15;;;;:32;;-1:-1:-1;2747:7:0;2774:6;-1:-1:-1;;;;;8914:13:0;;;2774:6;;8914:13;;8895:32;8891:1161;;;8953:11;;;;8948:219;;-1:-1:-1;;;;;9023:18:0;;;;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;9045:16:0;;;;;;:12;:16;;;;;;;;9023:38;8989:158;;;;-1:-1:-1;;;8989:158:0;;8433:2:1;8989:158:0;;;8415:21:1;8472:2;8452:18;;;8445:30;8511:34;8491:18;;;8484:62;-1:-1:-1;;;8562:18:1;;;8555:32;8604:19;;8989:158:0;8231:398:1;8989:158:0;-1:-1:-1;;;;;9191:13:0;;;;;;:7;:13;;;;;;;;:40;;;;-1:-1:-1;;;;;;9209:22:0;;;;;;:18;:22;;;;;;;;9208:23;9191:40;9187:850;;;9300:6;;9290;:16;;9256:141;;;;-1:-1:-1;;;9256:141:0;;8836:2:1;9256:141:0;;;8818:21:1;8875:2;8855:18;;;8848:30;8914:34;8894:18;;;8887:62;-1:-1:-1;;;8965:18:1;;;8958:37;9012:19;;9256:141:0;8634:403:1;9256:141:0;9480:10;;-1:-1:-1;;;;;6973:18:0;;6946:7;6973:18;;;:9;:18;;;;;;9454:22;;:6;:22;:::i;:::-;:36;;9420:141;;;;-1:-1:-1;;;9420:141:0;;9506:2:1;9420:141:0;;;9488:21:1;9545:2;9525:18;;;9518:30;-1:-1:-1;;;9564:18:1;;;9557:49;9623:18;;9420:141:0;9304:343:1;9420:141:0;9187:850;;;-1:-1:-1;;;;;9591:11:0;;;;;;:7;:11;;;;;;;;:40;;;;-1:-1:-1;;;;;;9607:24:0;;;;;;:18;:24;;;;;;;;9606:25;9591:40;9587:450;;;9700:6;;9690;:16;;9656:142;;;;-1:-1:-1;;;9656:142:0;;9854:2:1;9656:142:0;;;9836:21:1;9893:2;9873:18;;;9866:30;9932:34;9912:18;;;9905:62;-1:-1:-1;;;9983:18:1;;;9976:38;10031:19;;9656:142:0;9652:404:1;9587:450:0;-1:-1:-1;;;;;9829:22:0;;;;;;:18;:22;;;;;;;;9824:213;;9936:10;;-1:-1:-1;;;;;6973:18:0;;6946:7;6973:18;;;:9;:18;;;;;;9910:22;;:6;:22;:::i;:::-;:36;;9876:141;;;;-1:-1:-1;;;9876:141:0;;9506:2:1;9876:141:0;;;9488:21:1;9545:2;9525:18;;;9518:30;-1:-1:-1;;;9564:18:1;;;9557:49;9623:18;;9876:141:0;9304:343:1;9876:141:0;10093:15;;;;;;;:41;;;;-1:-1:-1;10126:8:0;;;;10125:9;10093:41;:69;;;;-1:-1:-1;;;;;;10151:11:0;;;;;;:7;:11;;;;;;;;10093:69;:105;;;;-1:-1:-1;;;;;;10180:18:0;;;;;;:12;:18;;;;;;;;10179:19;10093:105;:139;;;;-1:-1:-1;;;;;;10216:16:0;;;;;;:12;:16;;;;;;;;10215:17;10093:139;10075:271;;;10259:8;:15;;-1:-1:-1;;10259:15:0;10270:4;10259:15;;;10291:10;:8;:10::i;:::-;10318:8;:16;;-1:-1:-1;;10318:16:0;;;10075:271;-1:-1:-1;;;;;10390:18:0;;10358:15;10390:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;10412:16:0;;;;;;:12;:16;;;;;;;;10390:38;10386:88;;;-1:-1:-1;10458:4:0;10386:88;10501:6;10523:10;10518:692;;-1:-1:-1;;;;;10554:11:0;;;;;;:7;:11;;;;;;;;:26;;;;;10579:1;10569:7;;:11;10554:26;10550:259;;;10608:28;10632:3;10608:19;10619:7;;10608:6;:10;;:19;;;;:::i;:::-;:23;;:28::i;:::-;10601:35;;10550:259;;;-1:-1:-1;;;;;10662:13:0;;;;;;:7;:13;;;;;;;;:27;;;;;10688:1;10679:6;;:10;10662:27;10658:151;;;10717:27;10740:3;10717:18;10728:6;;10717;:10;;:18;;;;:::i;10658:151::-;-1:-1:-1;10792:1:0;10658:151;10829:8;;10825:231;;-1:-1:-1;;;;;10876:15:0;;;;;;:9;:15;;;;;;:25;;10896:4;10876:19;:25::i;:::-;-1:-1:-1;;;;;10858:15:0;;;;;;:9;:15;;;;;;:43;;;;10965:4;10947:24;;;;:34;;10976:4;10947:28;:34::i;:::-;10938:4;10920:24;;;;:9;:24;;;;;;;:61;;;;11005:35;;-1:-1:-1;;;;;11005:35:0;;;;;;;11035:4;1361:25:1;;1349:2;1334:18;;1215:177;11005:35:0;;;;;;;;10825:231;11072:14;11082:4;11072:14;;:::i;:::-;;;10518:692;;;11116:10;;-1:-1:-1;;;;;11116:10:0;;;;;;11108:18;;;;11104:106;;11177:10;;;;;-1:-1:-1;;;;;11177:10:0;11167:21;;;;:9;:21;;;;;;:31;;11193:4;11167:25;:31::i;:::-;11153:10;;;;;-1:-1:-1;;;;;11153:10:0;11143:21;;;;:9;:21;;;;;:55;11104:106;-1:-1:-1;;;;;11240:15:0;;;;;;:9;:15;;;;;;:27;;11260:6;11240:19;:27::i;:::-;-1:-1:-1;;;;;11222:15:0;;;;;;;:9;:15;;;;;;:45;;;;11294:13;;;;;;;:25;;11312:6;11294:17;:25::i;:::-;-1:-1:-1;;;;;11278:13:0;;;;;;;:9;:13;;;;;;;:41;;;;11335:26;;;;;;;;;;11354:6;1361:25:1;;1349:2;1334:18;;1215:177;11335:26:0;;;;;;;;8614:2755;;8544:2825;;;:::o;526:224::-;646:7;682:12;674:6;;;;666:29;;;;-1:-1:-1;;;666:29:0;;;;;;;;:::i;:::-;-1:-1:-1;706:9:0;718:5;722:1;718;:5;:::i;:::-;706:17;526:224;-1:-1:-1;;;;;526:224:0:o;3281:191::-;3355:16;3374:6;;-1:-1:-1;;;;;3391:17:0;;;-1:-1:-1;;;;;;3391:17:0;;;;;;3424:40;;3374:6;;;;;;;3424:40;;3355:16;3424:40;3344:128;3281:191;:::o;11544:155::-;-1:-1:-1;;;;;11614:26:0;;;;;;:18;:26;;;;;;;;;:33;;-1:-1:-1;;11614:33:0;;;;;;;;;;11663:28;;1163:41:1;;;11663:28:0;;1136:18:1;11663:28:0;;;;;;;11544:155;;:::o;11978:134::-;-1:-1:-1;;;;;12044:13:0;;;;;;:7;:13;;;;;;:21;;-1:-1:-1;;12044:21:0;;;;;;;;;;12081:23;;12044:21;;:13;12081:23;;;11978:134;;:::o;13303:413::-;13386:4;13342:23;6973:18;;;:9;:18;;;;;;13427:8;;13409:26;;13405:85;;;-1:-1:-1;13470:8:0;;13405:85;13584:9;;13531:15;;13563:30;;13559:85;;;13608:36;13625:18;13608:16;:36::i;:::-;13665:10;;13657:51;;-1:-1:-1;;;;;13665:10:0;;;;;;;;;13686:21;13657:51;;;;;;;;;13686:21;13665:10;13657:51;;;;;;;;;;;;;;;;;;;;;13331:385;;13303:413::o;758:246::-;816:7;840:1;845;840:6;836:47;;-1:-1:-1;870:1:0;863:8;;836:47;893:9;905:5;909:1;905;:5;:::i;:::-;893:17;-1:-1:-1;938:1:0;929:5;933:1;893:17;929:5;:::i;:::-;:10;921:56;;;;-1:-1:-1;;;921:56:0;;10791:2:1;921:56:0;;;10773:21:1;10830:2;10810:18;;;10803:30;10869:34;10849:18;;;10842:62;-1:-1:-1;;;10920:18:1;;;10913:31;10961:19;;921:56:0;10589:397:1;921:56:0;995:1;758:246;-1:-1:-1;;;758:246:0:o;1012:132::-;1070:7;1097:39;1101:1;1104;1097:39;;;;;;;;;;;;;;;;;:3;:39::i;382:136::-;440:7;467:43;471:1;474;467:43;;;;;;;;;;;;;;;;;:3;:43::i;195:179::-;253:7;;285:5;289:1;285;:5;:::i;:::-;273:17;;314:1;309;:6;;301:46;;;;-1:-1:-1;;;301:46:0;;11193:2:1;301:46:0;;;11175:21:1;11232:2;11212:18;;;11205:30;11271:29;11251:18;;;11244:57;11318:18;;301:46:0;10991:351:1;12810:485:0;12900:16;;;12914:1;12900:16;;;;;;;;12876:21;;12900:16;;;;;;;;;;-1:-1:-1;12900:16:0;12876:40;;12945:4;12927;12932:1;12927:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12927:23:0;;;-1:-1:-1;;;;;12927:23:0;;;;;12971:9;-1:-1:-1;;;;;12971:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12961:4;12966:1;12961:7;;;;;;;;:::i;:::-;;;;;;:26;-1:-1:-1;;;;;12961:26:0;;;-1:-1:-1;;;;;12961:26:0;;;;;13000:56;13017:4;13032:9;13044:11;13000:8;:56::i;:::-;13069:218;;-1:-1:-1;;;13069:218:0;;-1:-1:-1;;;;;13069:9:0;:60;;;;:218;;13144:11;;13170:1;;13214:4;;13241;;13261:15;;13069:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12865:430;12810:485;:::o;1152:223::-;1272:7;1307:12;1300:5;1292:28;;;;-1:-1:-1;;;1292:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1331:9:0;1343:5;1347:1;1343;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;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;2507:248::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;-1:-1:-1;;2675:23:1;;;2745:2;2730:18;;;2717:32;;-1:-1:-1;2507:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:380::-;3232:1;3228:12;;;;3275;;;3296:61;;3350:4;3342:6;3338:17;3328:27;;3296:61;3403:2;3395:6;3392:14;3372:18;3369:38;3366:161;;3449:10;3444:3;3440:20;3437:1;3430:31;3484:4;3481:1;3474:15;3512:4;3509:1;3502:15;3366:161;;3153:380;;;:::o;3538:356::-;3740:2;3722:21;;;3759:18;;;3752:30;3818:34;3813:2;3798:18;;3791:62;3885:2;3870:18;;3538:356::o;3899:251::-;3969:6;4022:2;4010:9;4001:7;3997:23;3993:32;3990:52;;;4038:1;4035;4028:12;3990:52;4070:9;4064:16;4089:31;4114:5;4089:31;:::i;5076:306::-;5164:6;5172;5180;5233:2;5221:9;5212:7;5208:23;5204:32;5201:52;;;5249:1;5246;5239:12;5201:52;5278:9;5272:16;5262:26;;5328:2;5317:9;5313:18;5307:25;5297:35;;5372:2;5361:9;5357:18;5351:25;5341:35;;5076:306;;;;;:::o;9042:127::-;9103:10;9098:3;9094:20;9091:1;9084:31;9134:4;9131:1;9124:15;9158:4;9155:1;9148:15;9174:125;9239:9;;;9260:10;;;9257:36;;;9273:18;;:::i;10061:128::-;10128:9;;;10149:11;;;10146:37;;;10163:18;;:::i;10194:168::-;10267:9;;;10298;;10315:15;;;10309:22;;10295:37;10285:71;;10336:18;;:::i;10367:217::-;10407:1;10433;10423:132;;10477:10;10472:3;10468:20;10465:1;10458:31;10512:4;10509:1;10502:15;10540:4;10537:1;10530:15;10423:132;-1:-1:-1;10569:9:1;;10367:217::o;11479:127::-;11540:10;11535:3;11531:20;11528:1;11521:31;11571:4;11568:1;11561:15;11595:4;11592:1;11585:15;11611:980;11873:4;11921:3;11910:9;11906:19;11952:6;11941:9;11934:25;11978:2;12016:6;12011:2;12000:9;11996:18;11989:34;12059:3;12054:2;12043:9;12039:18;12032:31;12083:6;12118;12112:13;12149:6;12141;12134:22;12187:3;12176:9;12172:19;12165:26;;12226:2;12218:6;12214:15;12200:29;;12247:1;12257:195;12271:6;12268:1;12265:13;12257:195;;;12336:13;;-1:-1:-1;;;;;12332:39:1;12320:52;;12427:15;;;;12392:12;;;;12368:1;12286:9;12257:195;;;-1:-1:-1;;;;;;;12508:32:1;;;;12503:2;12488:18;;12481:60;-1:-1:-1;;;12572:3:1;12557:19;12550:35;12469:3;11611:980;-1:-1:-1;;;11611:980:1:o

Swarm Source

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