ETH Price: $3,458.86 (-0.96%)
Gas: 10 Gwei

Token

TeleGPU (TPU)
 

Overview

Max Total Supply

1,000,000,000 TPU

Holders

80

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,655,925.320957852 TPU

Value
$0.00
0xdDCB175024066405bD36C655BDCd94b51D60CfFc
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:
TeleGPU

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-21
*/

// SPDX-License-Identifier: MIT

/**

With TeleGPU, we're not just offering a service; 
we're offering a transformation in how businesses deploy and manage AI, 
making it more accessible, efficient, and scalable.

WEB:  https://www.telegpu.com
APP:  https://app.telegpu.com
DOC:  https://docs.telegpu.com

TG:   https://t.me/telegpu
X:    https://x.com/telegpu

**/

pragma solidity 0.8.20;

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 IUniFactory02 {
    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

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

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;

    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
}

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

interface IUniRouter02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

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

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function 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);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract TeleGPU is Context, IERC20, Ownable {
    mapping(address => uint256) private _teleGPUs;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private isExcludedFees;

    address payable private gpuWallet;
    address payable private teamWallet;
    address public constant deadWallet =
        0x000000000000000000000000000000000000dEaD;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"TeleGPU";
    string private constant _symbol = unicode"TPU";
    uint256 public maxTxLimits = 20_000_000 * 10 ** _decimals;
    uint256 private minTaxAmounts = 10_000 * 10 ** _decimals;
    uint256 private maxTaxAmounts = 10_000_000 * 10 ** _decimals;
    uint256 private _BUY_COUNT = 0;
    uint256 private buyFees = 21;
    uint256 private sellFees = 24;

    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();

    modifier lockTheSwap() {
        inSwapBack = true;
        _;
        inSwapBack = false;
    }
    
    IUniRouter02 public uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingEnabled = false;
    bool private swapEnabled = false;
    bool private inSwapBack = false;

    constructor() {
        teamWallet = payable(0x9794E28f4b725a0B12426289B8E62E7bEa741a42);
        gpuWallet = payable(0x3578Cd7AB110845EfE6de0f42934De148c8ba795);
        
        isExcludedFees[_msgSender()] = true;
        isExcludedFees[address(this)] = true;
        isExcludedFees[gpuWallet] = true;
        isExcludedFees[teamWallet] = true;
        isExcludedFees[deadWallet] = true;
       
        _teleGPUs[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        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);
    }
    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 name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _teleGPUs[account];
    }

    function startGPU() external onlyOwner {
        require(!tradingEnabled, "trading is already open");
        swapEnabled = true;
        tradingEnabled = true;
        emit TradingOpenUpdated();
    }

    receive() external payable {}

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

    function swapTokenForETHs(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToGPU(uint256 amount) private {
        require(amount > 0, "amount must be greeter than 0");
        gpuWallet.transfer(amount / 2);
        teamWallet.transfer(amount / 2);
    }

    function removeLimits() external onlyOwner {
        buyFees = 2;
        sellFees = 2;
        maxTxLimits = _tTotal;
    }

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

        uint256 taxPercents = 0;
        taxPercents = buyFees;

        if (!isExcludedFees[from] && !isExcludedFees[to]) {
            require(tradingEnabled, "Trading not enabled");
        }

        if (inSwapBack || !swapEnabled) {
            _teleGPUs[from] -= amount;
            _teleGPUs[to] += amount;
            emit Transfer(from, to, amount);
            return;
        }

        if (
            from == uniswapV2Pair &&
            to != address(uniswapV2Router) &&
            !isExcludedFees[to]
        ) {
            require(amount <= maxTxLimits, "Exceeds the _maxTxAmount.");
            require(
                balanceOf(to) + amount <= maxTxLimits,
                "Exceeds the maxWalletSize."
            );
            _BUY_COUNT++;
        }

        if (
            from != uniswapV2Pair &&
            !isExcludedFees[from] &&
            !isExcludedFees[to]
        ) {
            require(amount <= maxTxLimits, "Exceeds the _maxTxAmount.");
        }

        if (
            to == uniswapV2Pair &&
            from != address(this) &&
            !isExcludedFees[from] &&
            !isExcludedFees[to]
        ) {
            taxPercents = sellFees;
        }

        uint256 tokenBalances = balanceOf(address(this));
        if (
            !inSwapBack &&
            swapEnabled &&
            to == uniswapV2Pair &&
            _BUY_COUNT > 0 &&
            tokenBalances >= minTaxAmounts &&
            amount >= minTaxAmounts &&
            !isExcludedFees[from] &&
            !isExcludedFees[to]
        ) {
            swapTokenForETHs( min(amount, min(tokenBalances, maxTaxAmounts)));
            uint256 ethBalances = address(this).balance;
            if (ethBalances > 0) {
                sendETHToGPU(address(this).balance);
            }
        }

        if (taxPercents != 0) {
            uint256 taxAmounts = (amount * taxPercents) / 100;
            uint256 transAmounts = amount - taxAmounts;
            address feesReceiver = isExcludedFees[from]
                ? from
                : address(this);
            taxAmounts = isExcludedFees[from] ? amount : taxAmounts;
            _teleGPUs[feesReceiver] += taxAmounts;
            emit Transfer(from, address(this), taxAmounts);
            _teleGPUs[from] -= amount;
            _teleGPUs[to] += transAmounts;
            emit Transfer(from, to, transAmounts);
        } else {
            _teleGPUs[from] -= amount;
            _teleGPUs[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    function initGPUPairs() external payable onlyOwner {
        uniswapV2Router = IUniRouter02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Pair = IUniFactory02(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        _approve(address(this), address(uniswapV2Router), ~uint256(0));

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

    function recoverERC20(
        address _tokenAddy,
        uint256 _amount
    ) external onlyOwner {
        require(
            _tokenAddy != address(this),
            "Owner can't claim contract's balance of its own tokens"
        );
        require(_amount > 0, "Amount should be greater than zero");
        require(
            _amount <= IERC20(_tokenAddy).balanceOf(address(this)),
            "Insufficient Amount"
        );
        IERC20(_tokenAddy).transfer(teamWallet, _amount);
        emit ERC20TokensRecovered(_amount);
    }

    function recoverETH() external {
        uint256 ethBalances = address(this).balance;
        require(ethBalances > 0, "Amount should be greater than zero");
        require(
            ethBalances <= address(this).balance,
            "Insufficient Amount"
        );
        payable(address(teamWallet)).transfer(ethBalances);
        emit ETHBalanceRecovered();
    }

    function updateTAXFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 100 && _sellFee <= 100, "revert wrong fee settings");
        buyFees = _buyFee;
        sellFees = _sellFee;
    }

    function excludeFromFees(address account) external onlyOwner {
        require(
            isExcludedFees[account] != true,
            "Account is already excluded"
        );
        isExcludedFees[account] = true;
        emit ExcludeFromFeeUpdated(account);
    }

    function includeFromFees(address account) external onlyOwner {
        require(
            isExcludedFees[account] != false,
            "Account is already included"
        );
        isExcludedFees[account] = false;
        emit includeFromFeeUpdated(account);
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","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":[],"name":"TradingOpenUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","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":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initGPUPairs","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"maxTxLimits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startGPU","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","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":"uniswapV2Router","outputs":[{"internalType":"contract IUniRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"updateTAXFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a62000351565b62000022906301312d0062000368565b600655620000336009600a62000351565b620000419061271062000368565b600755620000526009600a62000351565b62000061906298968062000368565b6008555f6009556015600a556018600b55600d805462ffffff60a01b191690553480156200008d575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b0319908116739794e28f4b725a0b12426289b8e62e7bea741a421790915560048054909116733578cd7ab110845efe6de0f42934de148c8ba795179055600160035f620001233390565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556004548216845282842080548616821790556005549091168352908220805484168217905561dead9091527f262bb27bbdd95c1cdc8e16957e36e38579ea44f7f6413dd7a9c75939def06b2c8054909216179055620001c96009600a62000351565b620001d990633b9aca0062000368565b335f81815260016020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021b6009600a62000351565b6200022b90633b9aca0062000368565b60405190815260200160405180910390a362000382565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200029657815f19048211156200027a576200027a62000242565b808516156200028857918102915b93841c93908002906200025b565b509250929050565b5f82620002ae575060016200034b565b81620002bc57505f6200034b565b8160018114620002d55760028114620002e05762000300565b60019150506200034b565b60ff841115620002f457620002f462000242565b50506001821b6200034b565b5060208310610133831016604e8410600b841016171562000325575081810a6200034b565b62000331838362000256565b805f190482111562000347576200034762000242565b0290505b92915050565b5f6200036160ff8416836200029e565b9392505050565b80820281158282048414176200034b576200034b62000242565b611fc080620003905f395ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb146103ad578063acc7ae23146103cc578063b9eb222b146103eb578063dd62ed3e146103f3578063e57f14e114610437578063f2fde38b14610456575f80fd5b8063715018a61461030a578063751039fc1461031e57806385141a77146103325780638980f11f146103475780638da5cb5b1461036657806395d89b4114610382575f80fd5b80632850b316116101045780632850b316146102535780632dc8db1014610268578063313ce5671461027c5780634ada218b1461029757806357bb324a146102b757806370a08231146102d6575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ac5780631694505e146101db57806318160ddd1461021257806323b872dd14610234575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610475565b005b348015610176575f80fd5b5060408051808201909152600781526654656c6547505560c81b60208201525b6040516101a39190611b45565b60405180910390f35b3480156101b7575f80fd5b506101cb6101c6366004611ba4565b610545565b60405190151581526020016101a3565b3480156101e6575f80fd5b50600c546101fa906001600160a01b031681565b6040516001600160a01b0390911681526020016101a3565b34801561021d575f80fd5b5061022661055b565b6040519081526020016101a3565b34801561023f575f80fd5b506101cb61024e366004611bce565b61057b565b34801561025e575f80fd5b5061022660065481565b348015610273575f80fd5b50610169610629565b348015610287575f80fd5b50604051600981526020016101a3565b3480156102a2575f80fd5b50600d546101cb90600160a01b900460ff1681565b3480156102c2575f80fd5b506101696102d1366004611c0c565b6106eb565b3480156102e1575f80fd5b506102266102f0366004611c2c565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b5061016961077d565b348015610329575f80fd5b506101696107ee565b34801561033d575f80fd5b506101fa61dead81565b348015610352575f80fd5b50610169610361366004611ba4565b610843565b348015610371575f80fd5b505f546001600160a01b03166101fa565b34801561038d575f80fd5b5060408051808201909152600381526254505560e81b6020820152610196565b3480156103b8575f80fd5b506101cb6103c7366004611ba4565b610a50565b3480156103d7575f80fd5b506101696103e6366004611c2c565b610a5c565b610169610b38565b3480156103fe575f80fd5b5061022661040d366004611c47565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610442575f80fd5b50610169610451366004611c2c565b610dd9565b348015610461575f80fd5b50610169610470366004611c2c565b610eb9565b478061049c5760405162461bcd60e51b815260040161049390611c7e565b60405180910390fd5b478111156104e25760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610519573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610551338484610f53565b5060015b92915050565b5f6105686009600a611db4565b61057690633b9aca00611dc2565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156105ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610493565b61060a858585611076565b61061e85336106198685611dd9565b610f53565b506001949350505050565b5f546001600160a01b031633146106525760405162461bcd60e51b815260040161049390611dec565b600d54600160a01b900460ff16156106ac5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161049390611dec565b60648211158015610726575060648111155b6107725760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610493565b600a91909155600b55565b5f546001600160a01b031633146107a65760405162461bcd60e51b815260040161049390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108175760405162461bcd60e51b815260040161049390611dec565b6002600a818155600b9190915561083090600990611db4565b61083e90633b9aca00611dc2565b600655565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260040161049390611dec565b306001600160a01b038316036108e35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610493565b5f81116109025760405162461bcd60e51b815260040161049390611c7e565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611e21565b8111156109ad5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611e38565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610551338484611076565b5f546001600160a01b03163314610a855760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610af05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161049390611dec565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190611e57565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611e57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd89190611e57565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610d05913091165f19610f53565b600c546001600160a01b031663f305d7193430610d36816001600160a01b03165f9081526001602052604090205490565b5f80610d495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd49190611e72565b505050565b5f546001600160a01b03163314610e025760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610e6e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610ee25760405162461bcd60e51b815260040161049390611dec565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b610f5081611850565b50565b6001600160a01b038316610fb55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b0382166110165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110da5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f811161119d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b600a546001600160a01b0384165f9081526003602052604090205460ff161580156111e057506001600160a01b0383165f9081526003602052604090205460ff16155b1561123457600d54600160a01b900460ff166112345760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610493565b600d54600160b01b900460ff16806112565750600d54600160a81b900460ff16155b156112f5576001600160a01b0384165f9081526001602052604081208054849290611282908490611dd9565b90915550506001600160a01b0383165f90815260016020526040812080548492906112ae908490611e9d565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6b833981519152846040516112e791815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113205750600c546001600160a01b03848116911614155b801561134457506001600160a01b0383165f9081526003602052604090205460ff16155b15611426576006548211156113975760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600654826113b9856001600160a01b03165f9081526001602052604090205490565b6113c39190611e9d565b11156114115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b60098054905f61142083611eb0565b91905055505b600d546001600160a01b0385811691161480159061145c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148057506001600160a01b0383165f9081526003602052604090205460ff16155b156114d3576006548211156114d35760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600d546001600160a01b0384811691161480156114f957506001600160a01b0384163014155b801561151d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154157506001600160a01b0383165f9081526003602052604090205460ff16155b1561154b5750600b545b305f90815260016020526040902054600d54600160b01b900460ff1615801561157d5750600d54600160a81b900460ff165b80156115965750600d546001600160a01b038581169116145b80156115a357505f600954115b80156115b157506007548110155b80156115bf57506007548310155b80156115e357506001600160a01b0385165f9081526003602052604090205460ff16155b801561160757506001600160a01b0384165f9081526003602052604090205460ff16155b1561163b576116296116248461161f8460085461189f565b61189f565b6118b6565b4780156116395761163947611a73565b505b81156117b4575f606461164e8486611dc2565b6116589190611ec8565b90505f6116658286611dd9565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168e5730611690565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b857826116ba565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e6908490611e9d565b909155505060405183815230906001600160a01b038a16905f80516020611f6b8339815191529060200160405180910390a36001600160a01b0388165f908152600160205260408120805488929061173f908490611dd9565b90915550506001600160a01b0387165f908152600160205260408120805484929061176b908490611e9d565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6b833981519152846040516117a491815260200190565b60405180910390a3505050611849565b6001600160a01b0385165f90815260016020526040812080548592906117db908490611dd9565b90915550506001600160a01b0384165f9081526001602052604081208054859290611807908490611e9d565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6b8339815191528560405161184091815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ad57826118af565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806119165760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194957611949611ee7565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c49190611e57565b816001815181106119d7576119d7611ee7565b6001600160a01b039283166020918202929092010152600c546119fd9130911684610f53565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a359085905f90869030904290600401611efb565b5f604051808303815f87803b158015611a4c575f80fd5b505af1158015611a5e573d5f803e3d5ffd5b5050600d805460ff60b01b1916905550505050565b5f8111611ac25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6004546001600160a01b03166108fc611adc600284611ec8565b6040518115909202915f818181858888f19350505050158015611b01573d5f803e3d5ffd5b506005546001600160a01b03166108fc611b1c600284611ec8565b6040518115909202915f818181858888f19350505050158015611b41573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b7057858101830151858201604001528201611b54565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f50575f80fd5b5f8060408385031215611bb5575f80fd5b8235611bc081611b90565b946020939093013593505050565b5f805f60608486031215611be0575f80fd5b8335611beb81611b90565b92506020840135611bfb81611b90565b929592945050506040919091013590565b5f8060408385031215611c1d575f80fd5b50508035926020909101359150565b5f60208284031215611c3c575f80fd5b81356118af81611b90565b5f8060408385031215611c58575f80fd5b8235611c6381611b90565b91506020830135611c7381611b90565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d0e57815f1904821115611cf457611cf4611cc0565b80851615611d0157918102915b93841c9390800290611cd9565b509250929050565b5f82611d2457506001610555565b81611d3057505f610555565b8160018114611d465760028114611d5057611d6c565b6001915050610555565b60ff841115611d6157611d61611cc0565b50506001821b610555565b5060208310610133831016604e8410600b8410161715611d8f575081810a610555565b611d998383611cd4565b805f1904821115611dac57611dac611cc0565b029392505050565b5f6118af60ff841683611d16565b808202811582820484141761055557610555611cc0565b8181038181111561055557610555611cc0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e31575f80fd5b5051919050565b5f60208284031215611e48575f80fd5b815180151581146118af575f80fd5b5f60208284031215611e67575f80fd5b81516118af81611b90565b5f805f60608486031215611e84575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055557610555611cc0565b5f60018201611ec157611ec1611cc0565b5060010190565b5f82611ee257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f495784516001600160a01b031683529383019391830191600101611f24565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220343fba28be02adbdd4c29764eba86452ef96b533c62e11afbcd9e76ae33b9fab64736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063715018a6116100b3578063a9059cbb1161006d578063a9059cbb146103ad578063acc7ae23146103cc578063b9eb222b146103eb578063dd62ed3e146103f3578063e57f14e114610437578063f2fde38b14610456575f80fd5b8063715018a61461030a578063751039fc1461031e57806385141a77146103325780638980f11f146103475780638da5cb5b1461036657806395d89b4114610382575f80fd5b80632850b316116101045780632850b316146102535780632dc8db1014610268578063313ce5671461027c5780634ada218b1461029757806357bb324a146102b757806370a08231146102d6575f80fd5b80630614117a1461015557806306fdde031461016b578063095ea7b3146101ac5780631694505e146101db57806318160ddd1461021257806323b872dd14610234575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610475565b005b348015610176575f80fd5b5060408051808201909152600781526654656c6547505560c81b60208201525b6040516101a39190611b45565b60405180910390f35b3480156101b7575f80fd5b506101cb6101c6366004611ba4565b610545565b60405190151581526020016101a3565b3480156101e6575f80fd5b50600c546101fa906001600160a01b031681565b6040516001600160a01b0390911681526020016101a3565b34801561021d575f80fd5b5061022661055b565b6040519081526020016101a3565b34801561023f575f80fd5b506101cb61024e366004611bce565b61057b565b34801561025e575f80fd5b5061022660065481565b348015610273575f80fd5b50610169610629565b348015610287575f80fd5b50604051600981526020016101a3565b3480156102a2575f80fd5b50600d546101cb90600160a01b900460ff1681565b3480156102c2575f80fd5b506101696102d1366004611c0c565b6106eb565b3480156102e1575f80fd5b506102266102f0366004611c2c565b6001600160a01b03165f9081526001602052604090205490565b348015610315575f80fd5b5061016961077d565b348015610329575f80fd5b506101696107ee565b34801561033d575f80fd5b506101fa61dead81565b348015610352575f80fd5b50610169610361366004611ba4565b610843565b348015610371575f80fd5b505f546001600160a01b03166101fa565b34801561038d575f80fd5b5060408051808201909152600381526254505560e81b6020820152610196565b3480156103b8575f80fd5b506101cb6103c7366004611ba4565b610a50565b3480156103d7575f80fd5b506101696103e6366004611c2c565b610a5c565b610169610b38565b3480156103fe575f80fd5b5061022661040d366004611c47565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610442575f80fd5b50610169610451366004611c2c565b610dd9565b348015610461575f80fd5b50610169610470366004611c2c565b610eb9565b478061049c5760405162461bcd60e51b815260040161049390611c7e565b60405180910390fd5b478111156104e25760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610519573d5f803e3d5ffd5b506040517fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db937675905f90a150565b5f610551338484610f53565b5060015b92915050565b5f6105686009600a611db4565b61057690633b9aca00611dc2565b905090565b6001600160a01b0383165f908152600260209081526040808320338452909152812054828110156105ff5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610493565b61060a858585611076565b61061e85336106198685611dd9565b610f53565b506001949350505050565b5f546001600160a01b031633146106525760405162461bcd60e51b815260040161049390611dec565b600d54600160a01b900460ff16156106ac5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610493565b600d805461ffff60a01b191661010160a01b1790556040517f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f935905f90a1565b5f546001600160a01b031633146107145760405162461bcd60e51b815260040161049390611dec565b60648211158015610726575060648111155b6107725760405162461bcd60e51b815260206004820152601960248201527f7265766572742077726f6e67206665652073657474696e6773000000000000006044820152606401610493565b600a91909155600b55565b5f546001600160a01b031633146107a65760405162461bcd60e51b815260040161049390611dec565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146108175760405162461bcd60e51b815260040161049390611dec565b6002600a818155600b9190915561083090600990611db4565b61083e90633b9aca00611dc2565b600655565b5f546001600160a01b0316331461086c5760405162461bcd60e51b815260040161049390611dec565b306001600160a01b038316036108e35760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610493565b5f81116109025760405162461bcd60e51b815260040161049390611c7e565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015610944573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109689190611e21565b8111156109ad5760405162461bcd60e51b8152602060048201526013602482015272125b9cdd59999a58da595b9d08105b5bdd5b9d606a1b6044820152606401610493565b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af11580156109fd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a219190611e38565b5060405181907fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c22905f90a25050565b5f610551338484611076565b5f546001600160a01b03163314610a855760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604081205460ff1615159003610af05760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c726561647920696e636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19169055517fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e9190a250565b5f546001600160a01b03163314610b615760405162461bcd60e51b815260040161049390611dec565b600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610bc3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610be79190611e57565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c46573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c6a9190611e57565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610cb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cd89190611e57565b600d80546001600160a01b0319166001600160a01b03928316179055600c54610d05913091165f19610f53565b600c546001600160a01b031663f305d7193430610d36816001600160a01b03165f9081526001602052604090205490565b5f80610d495f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610daf573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610dd49190611e72565b505050565b5f546001600160a01b03163314610e025760405162461bcd60e51b815260040161049390611dec565b6001600160a01b0381165f9081526003602052604090205460ff161515600103610e6e5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610493565b6001600160a01b0381165f81815260036020526040808220805460ff19166001179055517f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e9190a250565b5f546001600160a01b03163314610ee25760405162461bcd60e51b815260040161049390611dec565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610493565b610f5081611850565b50565b6001600160a01b038316610fb55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610493565b6001600160a01b0382166110165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610493565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110da5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610493565b6001600160a01b03821661113c5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610493565b5f811161119d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610493565b600a546001600160a01b0384165f9081526003602052604090205460ff161580156111e057506001600160a01b0383165f9081526003602052604090205460ff16155b1561123457600d54600160a01b900460ff166112345760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610493565b600d54600160b01b900460ff16806112565750600d54600160a81b900460ff16155b156112f5576001600160a01b0384165f9081526001602052604081208054849290611282908490611dd9565b90915550506001600160a01b0383165f90815260016020526040812080548492906112ae908490611e9d565b92505081905550826001600160a01b0316846001600160a01b03165f80516020611f6b833981519152846040516112e791815260200190565b60405180910390a350505050565b600d546001600160a01b0385811691161480156113205750600c546001600160a01b03848116911614155b801561134457506001600160a01b0383165f9081526003602052604090205460ff16155b15611426576006548211156113975760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600654826113b9856001600160a01b03165f9081526001602052604090205490565b6113c39190611e9d565b11156114115760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610493565b60098054905f61142083611eb0565b91905055505b600d546001600160a01b0385811691161480159061145c57506001600160a01b0384165f9081526003602052604090205460ff16155b801561148057506001600160a01b0383165f9081526003602052604090205460ff16155b156114d3576006548211156114d35760405162461bcd60e51b815260206004820152601960248201527822bc31b2b2b239903a3432902fb6b0bc2a3c20b6b7bab73a1760391b6044820152606401610493565b600d546001600160a01b0384811691161480156114f957506001600160a01b0384163014155b801561151d57506001600160a01b0384165f9081526003602052604090205460ff16155b801561154157506001600160a01b0383165f9081526003602052604090205460ff16155b1561154b5750600b545b305f90815260016020526040902054600d54600160b01b900460ff1615801561157d5750600d54600160a81b900460ff165b80156115965750600d546001600160a01b038581169116145b80156115a357505f600954115b80156115b157506007548110155b80156115bf57506007548310155b80156115e357506001600160a01b0385165f9081526003602052604090205460ff16155b801561160757506001600160a01b0384165f9081526003602052604090205460ff16155b1561163b576116296116248461161f8460085461189f565b61189f565b6118b6565b4780156116395761163947611a73565b505b81156117b4575f606461164e8486611dc2565b6116589190611ec8565b90505f6116658286611dd9565b6001600160a01b0388165f908152600360205260408120549192509060ff1661168e5730611690565b875b6001600160a01b0389165f9081526003602052604090205490915060ff166116b857826116ba565b855b6001600160a01b0382165f908152600160205260408120805492955085929091906116e6908490611e9d565b909155505060405183815230906001600160a01b038a16905f80516020611f6b8339815191529060200160405180910390a36001600160a01b0388165f908152600160205260408120805488929061173f908490611dd9565b90915550506001600160a01b0387165f908152600160205260408120805484929061176b908490611e9d565b92505081905550866001600160a01b0316886001600160a01b03165f80516020611f6b833981519152846040516117a491815260200190565b60405180910390a3505050611849565b6001600160a01b0385165f90815260016020526040812080548592906117db908490611dd9565b90915550506001600160a01b0384165f9081526001602052604081208054859290611807908490611e9d565b92505081905550836001600160a01b0316856001600160a01b03165f80516020611f6b8339815191528560405161184091815260200190565b60405180910390a35b5050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f8183116118ad57826118af565b815b9392505050565b600d805460ff60b01b1916600160b01b179055806119165760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061194957611949611ee7565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c49190611e57565b816001815181106119d7576119d7611ee7565b6001600160a01b039283166020918202929092010152600c546119fd9130911684610f53565b600c5460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a359085905f90869030904290600401611efb565b5f604051808303815f87803b158015611a4c575f80fd5b505af1158015611a5e573d5f803e3d5ffd5b5050600d805460ff60b01b1916905550505050565b5f8111611ac25760405162461bcd60e51b815260206004820152601d60248201527f616d6f756e74206d7573742062652067726565746572207468616e20300000006044820152606401610493565b6004546001600160a01b03166108fc611adc600284611ec8565b6040518115909202915f818181858888f19350505050158015611b01573d5f803e3d5ffd5b506005546001600160a01b03166108fc611b1c600284611ec8565b6040518115909202915f818181858888f19350505050158015611b41573d5f803e3d5ffd5b5050565b5f6020808352835180828501525f5b81811015611b7057858101830151858201604001528201611b54565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f50575f80fd5b5f8060408385031215611bb5575f80fd5b8235611bc081611b90565b946020939093013593505050565b5f805f60608486031215611be0575f80fd5b8335611beb81611b90565b92506020840135611bfb81611b90565b929592945050506040919091013590565b5f8060408385031215611c1d575f80fd5b50508035926020909101359150565b5f60208284031215611c3c575f80fd5b81356118af81611b90565b5f8060408385031215611c58575f80fd5b8235611c6381611b90565b91506020830135611c7381611b90565b809150509250929050565b60208082526022908201527f416d6f756e742073686f756c642062652067726561746572207468616e207a65604082015261726f60f01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d0e57815f1904821115611cf457611cf4611cc0565b80851615611d0157918102915b93841c9390800290611cd9565b509250929050565b5f82611d2457506001610555565b81611d3057505f610555565b8160018114611d465760028114611d5057611d6c565b6001915050610555565b60ff841115611d6157611d61611cc0565b50506001821b610555565b5060208310610133831016604e8410600b8410161715611d8f575081810a610555565b611d998383611cd4565b805f1904821115611dac57611dac611cc0565b029392505050565b5f6118af60ff841683611d16565b808202811582820484141761055557610555611cc0565b8181038181111561055557610555611cc0565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e31575f80fd5b5051919050565b5f60208284031215611e48575f80fd5b815180151581146118af575f80fd5b5f60208284031215611e67575f80fd5b81516118af81611b90565b5f805f60608486031215611e84575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561055557610555611cc0565b5f60018201611ec157611ec1611cc0565b5060010190565b5f82611ee257634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611f495784516001600160a01b031683529383019391830191600101611f24565b50506001600160a01b0396909616606085015250505060800152939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220343fba28be02adbdd4c29764eba86452ef96b533c62e11afbcd9e76ae33b9fab64736f6c63430008140033

Deployed Bytecode Sourcemap

4208:10489:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13513:380;;;;;;;;;;;;;:::i;:::-;;7620:83;;;;;;;;;;-1:-1:-1;7690:5:0;;;;;;;;;;;;-1:-1:-1;;;7690:5:0;;;;7620:83;;;;;;;:::i;:::-;;;;;;;;7428:186;;;;;;;;;;-1:-1:-1;7428:186:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7428:186:0;1023:187:1;5505:35:0;;;;;;;;;;-1:-1:-1;5505:35:0;;;;-1:-1:-1;;;;;5505:35:0;;;;;;-1:-1:-1;;;;;1399:32:1;;;1381:51;;1369:2;1354:18;5505:35:0;1215:223:1;7891:95:0;;;;;;;;;;;;;:::i;:::-;;;1589:25:1;;;1577:2;1562:18;7891:95:0;1443:177:1;6228:481:0;;;;;;;;;;-1:-1:-1;6228:481:0;;;;;:::i;:::-;;:::i;4844:57::-;;;;;;;;;;;;;;;;8119:206;;;;;;;;;;;;;:::i;7802:83::-;;;;;;;;;;-1:-1:-1;7802:83:0;;4655:1;2228:36:1;;2216:2;2201:18;7802:83:0;2086:184:1;5583:34:0;;;;;;;;;;-1:-1:-1;5583:34:0;;;;-1:-1:-1;;;5583:34:0;;;;;;13901:225;;;;;;;;;;-1:-1:-1;13901:225:0;;;;;:::i;:::-;;:::i;7992:119::-;;;;;;;;;;-1:-1:-1;7992:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;4053:148;;;;;;;;;;;;;:::i;9252:128::-;;;;;;;;;;;;;:::i;4523:88::-;;;;;;;;;;;;4569:42;4523:88;;12945:560;;;;;;;;;;-1:-1:-1;12945:560:0;;;;;:::i;:::-;;:::i;3402:79::-;;;;;;;;;;-1:-1:-1;3440:7:0;3467:6;-1:-1:-1;;;;;3467:6:0;3402:79;;7709:87;;;;;;;;;;-1:-1:-1;7781:7:0;;;;;;;;;;;;-1:-1:-1;;;7781:7:0;;;;7709:87;;7056:192;;;;;;;;;;-1:-1:-1;7056:192:0;;;;;:::i;:::-;;:::i;14417:277::-;;;;;;;;;;-1:-1:-1;14417:277:0;;;;;:::i;:::-;;:::i;12316:621::-;;;:::i;7254:168::-;;;;;;;;;;-1:-1:-1;7254:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;7387:18:0;;;7360:7;7387:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7254:168;14134:275;;;;;;;;;;-1:-1:-1;14134:275:0;;;;;:::i;:::-;;:::i;3612:238::-;;;;;;;;;;-1:-1:-1;3612:238:0;;;;;:::i;:::-;;:::i;13513:380::-;13577:21;13617:15;13609:62;;;;-1:-1:-1;;;13609:62:0;;;;;;;:::i;:::-;;;;;;;;;13719:21;13704:11;:36;;13682:105;;;;-1:-1:-1;;;13682:105:0;;3986:2:1;13682:105:0;;;3968:21:1;4025:2;4005:18;;;3998:30;-1:-1:-1;;;4044:18:1;;;4037:49;4103:18;;13682:105:0;3784:343:1;13682:105:0;13814:10;;13798:50;;-1:-1:-1;;;;;13814:10:0;;;;13798:50;;;;;13836:11;;13814:10;13798:50;13814:10;13798:50;13836:11;13814:10;13798:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13864:21:0;;;;;;;13544:349;13513:380::o;7428:186::-;7528:4;7545:39;1967:10;7568:7;7577:6;7545:8;:39::i;:::-;-1:-1:-1;7602:4:0;7428:186;;;;;:::o;7891:95::-;7944:7;4714:15;4655:1;4714:2;:15;:::i;:::-;4698:31;;:13;:31;:::i;:::-;7964:14;;7891:95;:::o;6228:481::-;-1:-1:-1;;;;;6404:19:0;;6360:4;6404:19;;;:11;:19;;;;;;;;1967:10;6404:33;;;;;;;;6470:26;;;;6448:116;;;;-1:-1:-1;;;6448:116:0;;6022:2:1;6448:116:0;;;6004:21:1;6061:2;6041:18;;;6034:30;6100:34;6080:18;;;6073:62;-1:-1:-1;;;6151:18:1;;;6144:38;6199:19;;6448:116:0;5820:404:1;6448:116:0;6575:36;6585:6;6593:9;6604:6;6575:9;:36::i;:::-;6622:57;6631:6;1967:10;6653:25;6672:6;6653:16;:25;:::i;:::-;6622:8;:57::i;:::-;-1:-1:-1;6697:4:0;;6228:481;-1:-1:-1;;;;6228:481:0:o;8119:206::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;8178:14:::1;::::0;-1:-1:-1;;;8178:14:0;::::1;;;8177:15;8169:51;;;::::0;-1:-1:-1;;;8169:51:0;;6925:2:1;8169:51:0::1;::::0;::::1;6907:21:1::0;6964:2;6944:18;;;6937:30;7003:25;6983:18;;;6976:53;7046:18;;8169:51:0::1;6723:347:1::0;8169:51:0::1;8231:11;:18:::0;;-1:-1:-1;;;;8260:21:0;-1:-1:-1;;;8260:21:0;;;8297:20:::1;::::0;::::1;::::0;-1:-1:-1;;8297:20:0::1;8119:206::o:0;13901:225::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;14008:3:::1;13997:7;:14;;:33;;;;;14027:3;14015:8;:15;;13997:33;13989:71;;;::::0;-1:-1:-1;;;13989:71:0;;7277:2:1;13989:71:0::1;::::0;::::1;7259:21:1::0;7316:2;7296:18;;;7289:30;7355:27;7335:18;;;7328:55;7400:18;;13989:71:0::1;7075:349:1::0;13989:71:0::1;14071:7;:17:::0;;;;14099:8:::1;:19:::0;13901:225::o;4053:148::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;4160:1:::1;4144:6:::0;;4123:40:::1;::::0;-1:-1:-1;;;;;4144:6:0;;::::1;::::0;4123:40:::1;::::0;4160:1;;4123:40:::1;4191:1;4174:19:::0;;-1:-1:-1;;;;;;4174:19:0::1;::::0;;4053:148::o;9252:128::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;9316:1:::1;9306:7;:11:::0;;;9328:8:::1;:12:::0;;;;4714:15:::1;::::0;4655:1:::1;::::0;4714:15:::1;:::i;:::-;4698:31;::::0;:13:::1;:31;:::i;:::-;9351:11;:21:::0;9252:128::o;12945:560::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;13103:4:::1;-1:-1:-1::0;;;;;13081:27:0;::::1;::::0;13059:131:::1;;;::::0;-1:-1:-1;;;13059:131:0;;7631:2:1;13059:131:0::1;::::0;::::1;7613:21:1::0;7670:2;7650:18;;;7643:30;7709:34;7689:18;;;7682:62;-1:-1:-1;;;7760:18:1;;;7753:52;7822:19;;13059:131:0::1;7429:418:1::0;13059:131:0::1;13219:1;13209:7;:11;13201:58;;;;-1:-1:-1::0;;;13201:58:0::1;;;;;;;:::i;:::-;13303:43;::::0;-1:-1:-1;;;13303:43:0;;13340:4:::1;13303:43;::::0;::::1;1381:51:1::0;-1:-1:-1;;;;;13303:28:0;::::1;::::0;::::1;::::0;1354:18:1;;13303:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13292:7;:54;;13270:123;;;::::0;-1:-1:-1;;;13270:123:0;;3986:2:1;13270:123:0::1;::::0;::::1;3968:21:1::0;4025:2;4005:18;;;3998:30;-1:-1:-1;;;4044:18:1;;;4037:49;4103:18;;13270:123:0::1;3784:343:1::0;13270:123:0::1;13432:10;::::0;13404:48:::1;::::0;-1:-1:-1;;;13404:48:0;;-1:-1:-1;;;;;13432:10:0;;::::1;13404:48;::::0;::::1;8223:51:1::0;8290:18;;;8283:34;;;13404:27:0;;::::1;::::0;::::1;::::0;8196:18:1;;13404:48:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;13468:29:0::1;::::0;13489:7;;13468:29:::1;::::0;;;::::1;12945:560:::0;;:::o;7056:192::-;7159:4;7176:42;1967:10;7200:9;7211:6;7176:9;:42::i;14417:277::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14511:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:32;;::::0;;14489:109:::1;;;::::0;-1:-1:-1;;;14489:109:0;;8812:2:1;14489:109:0::1;::::0;::::1;8794:21:1::0;8851:2;8831:18;;;8824:30;8890:29;8870:18;;;8863:57;8937:18;;14489:109:0::1;8610:351:1::0;14489:109:0::1;-1:-1:-1::0;;;;;14609:23:0;::::1;14635:5;14609:23:::0;;;:14:::1;:23;::::0;;;;;:31;;-1:-1:-1;;14609:31:0::1;::::0;;14656:30;::::1;::::0;14635:5;14656:30:::1;14417:277:::0;:::o;12316:621::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;12378:15:::1;:98:::0;;-1:-1:-1;;;;;;12378:98:0::1;12423:42;12378:98:::0;;::::1;::::0;;;12517:25:::1;::::0;;-1:-1:-1;;;12517:25:0;;;;:23:::1;::::0;:25:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;12423:42;12517:25:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12503:51:0::1;;12577:4;12597:15;;;;;;;;;-1:-1:-1::0;;;;;12597:15:0::1;-1:-1:-1::0;;;;;12597:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12503:127;::::0;-1:-1:-1;;;;;;12503:127:0::1;::::0;;;;;;-1:-1:-1;;;;;9452:15:1;;;12503:127:0::1;::::0;::::1;9434:34:1::0;9504:15;;9484:18;;;9477:43;9369:18;;12503:127:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12487:13;:143:::0;;-1:-1:-1;;;;;;12487:143:0::1;-1:-1:-1::0;;;;;12487:143:0;;::::1;;::::0;;12675:15:::1;::::0;12643:62:::1;::::0;12660:4:::1;::::0;12675:15:::1;-1:-1:-1::0;;12643:8:0::1;:62::i;:::-;12718:15;::::0;-1:-1:-1;;;;;12718:15:0::1;:31;12757:9;12790:4;12810:24;12790:4:::0;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;12810:24:::1;12849:1;12865::::0;12881:7:::1;3440::::0;3467:6;-1:-1:-1;;;;;3467:6:0;;3402:79;12881:7:::1;12718:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12718:211:0;;;-1:-1:-1;;;;;9890:15:1;;;12718:211:0::1;::::0;::::1;9872:34:1::0;9922:18;;;9915:34;;;;9965:18;;;9958:34;;;;10008:18;;;10001:34;10072:15;;;10051:19;;;10044:44;12903:15:0::1;10104:19:1::0;;;10097:35;9806:19;;12718:211:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12316:621::o:0;14134:275::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14228:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;::::1;;:31;;:23:::0;:31;14206:108:::1;;;::::0;-1:-1:-1;;;14206:108:0;;10656:2:1;14206:108:0::1;::::0;::::1;10638:21:1::0;10695:2;10675:18;;;10668:30;10734:29;10714:18;;;10707:57;10781:18;;14206:108:0::1;10454:351:1::0;14206:108:0::1;-1:-1:-1::0;;;;;14325:23:0;::::1;;::::0;;;:14:::1;:23;::::0;;;;;:30;;-1:-1:-1;;14325:30:0::1;14351:4;14325:30;::::0;;14371;::::1;::::0;14325:23;14371:30:::1;14134:275:::0;:::o;3612:238::-;3527:6;;-1:-1:-1;;;;;3527:6:0;1967:10;3527:22;3519:67;;;;-1:-1:-1;;;3519:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3715:22:0;::::1;3693:110;;;::::0;-1:-1:-1;;;3693:110:0;;11012:2:1;3693:110:0::1;::::0;::::1;10994:21:1::0;11051:2;11031:18;;;11024:30;11090:34;11070:18;;;11063:62;-1:-1:-1;;;11141:18:1;;;11134:36;11187:19;;3693:110:0::1;10810:402:1::0;3693:110:0::1;3814:28;3833:8;3814:18;:28::i;:::-;3612:238:::0;:::o;6715:335::-;-1:-1:-1;;;;;6808:19:0;;6800:68;;;;-1:-1:-1;;;6800:68:0;;11419:2:1;6800:68:0;;;11401:21:1;11458:2;11438:18;;;11431:30;11497:34;11477:18;;;11470:62;-1:-1:-1;;;11548:18:1;;;11541:34;11592:19;;6800:68:0;11217:400:1;6800:68:0;-1:-1:-1;;;;;6887:21:0;;6879:68;;;;-1:-1:-1;;;6879:68:0;;11824:2:1;6879:68:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;-1:-1:-1;;;11953:18:1;;;11946:32;11995:19;;6879:68:0;11622:398:1;6879:68:0;-1:-1:-1;;;;;6958:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7010:32;;1589:25:1;;;7010:32:0;;1562:18:1;7010:32:0;;;;;;;6715:335;;;:::o;9388:2920::-;-1:-1:-1;;;;;9476:18:0;;9468:68;;;;-1:-1:-1;;;9468:68:0;;12227:2:1;9468:68:0;;;12209:21:1;12266:2;12246:18;;;12239:30;12305:34;12285:18;;;12278:62;-1:-1:-1;;;12356:18:1;;;12349:35;12401:19;;9468:68:0;12025:401:1;9468:68:0;-1:-1:-1;;;;;9555:16:0;;9547:64;;;;-1:-1:-1;;;9547:64:0;;12633:2:1;9547:64:0;;;12615:21:1;12672:2;12652:18;;;12645:30;12711:34;12691:18;;;12684:62;-1:-1:-1;;;12762:18:1;;;12755:33;12805:19;;9547:64:0;12431:399:1;9547:64:0;9639:1;9630:6;:10;9622:64;;;;-1:-1:-1;;;9622:64:0;;13037:2:1;9622:64:0;;;13019:21:1;13076:2;13056:18;;;13049:30;13115:34;13095:18;;;13088:62;-1:-1:-1;;;13166:18:1;;;13159:39;13215:19;;9622:64:0;12835:405:1;9622:64:0;9747:7;;-1:-1:-1;;;;;9772:20:0;;9699:19;9772:20;;;:14;:20;;;;;;;;9771:21;:44;;;;-1:-1:-1;;;;;;9797:18:0;;;;;;:14;:18;;;;;;;;9796:19;9771:44;9767:123;;;9840:14;;-1:-1:-1;;;9840:14:0;;;;9832:46;;;;-1:-1:-1;;;9832:46:0;;13447:2:1;9832:46:0;;;13429:21:1;13486:2;13466:18;;;13459:30;-1:-1:-1;;;13505:18:1;;;13498:49;13564:18;;9832:46:0;13245:343:1;9832:46:0;9906:10;;-1:-1:-1;;;9906:10:0;;;;;:26;;-1:-1:-1;9921:11:0;;-1:-1:-1;;;9921:11:0;;;;9920:12;9906:26;9902:189;;;-1:-1:-1;;;;;9949:15:0;;;;;;:9;:15;;;;;:25;;9968:6;;9949:15;:25;;9968:6;;9949:25;:::i;:::-;;;;-1:-1:-1;;;;;;;9989:13:0;;;;;;:9;:13;;;;;:23;;10006:6;;9989:13;:23;;10006:6;;9989:23;:::i;:::-;;;;;;;;10047:2;-1:-1:-1;;;;;10032:26:0;10041:4;-1:-1:-1;;;;;10032:26:0;-1:-1:-1;;;;;;;;;;;10051:6:0;10032:26;;;;1589:25:1;;1577:2;1562:18;;1443:177;10032:26:0;;;;;;;;10073:7;9388:2920;;;:::o;9902:189::-;10129:13;;-1:-1:-1;;;;;10121:21:0;;;10129:13;;10121:21;:68;;;;-1:-1:-1;10173:15:0;;-1:-1:-1;;;;;10159:30:0;;;10173:15;;10159:30;;10121:68;:104;;;;-1:-1:-1;;;;;;10207:18:0;;;;;;:14;:18;;;;;;;;10206:19;10121:104;10103:387;;;10270:11;;10260:6;:21;;10252:59;;;;-1:-1:-1;;;10252:59:0;;13925:2:1;10252:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;10252:59:0;13723:349:1;10252:59:0;10378:11;;10368:6;10352:13;10362:2;-1:-1:-1;;;;;8085:18:0;8058:7;8085:18;;;:9;:18;;;;;;;7992:119;10352:13;:22;;;;:::i;:::-;:37;;10326:125;;;;-1:-1:-1;;;10326:125:0;;14279:2:1;10326:125:0;;;14261:21:1;14318:2;14298:18;;;14291:30;14357:28;14337:18;;;14330:56;14403:18;;10326:125:0;14077:350:1;10326:125:0;10466:10;:12;;;:10;:12;;;:::i;:::-;;;;;;10103:387;10528:13;;-1:-1:-1;;;;;10520:21:0;;;10528:13;;10520:21;;;;:59;;-1:-1:-1;;;;;;10559:20:0;;;;;;:14;:20;;;;;;;;10558:21;10520:59;:95;;;;-1:-1:-1;;;;;;10597:18:0;;;;;;:14;:18;;;;;;;;10596:19;10520:95;10502:211;;;10660:11;;10650:6;:21;;10642:59;;;;-1:-1:-1;;;10642:59:0;;13925:2:1;10642:59:0;;;13907:21:1;13964:2;13944:18;;;13937:30;-1:-1:-1;;;13983:18:1;;;13976:55;14048:18;;10642:59:0;13723:349:1;10642:59:0;10749:13;;-1:-1:-1;;;;;10743:19:0;;;10749:13;;10743:19;:57;;;;-1:-1:-1;;;;;;10779:21:0;;10795:4;10779:21;;10743:57;:95;;;;-1:-1:-1;;;;;;10818:20:0;;;;;;:14;:20;;;;;;;;10817:21;10743:95;:131;;;;-1:-1:-1;;;;;;10856:18:0;;;;;;:14;:18;;;;;;;;10855:19;10743:131;10725:210;;;-1:-1:-1;10915:8:0;;10725:210;10989:4;10947:21;8085:18;;;:9;:18;;;;;;11025:10;;-1:-1:-1;;;11025:10:0;;;;11024:11;:39;;;;-1:-1:-1;11052:11:0;;-1:-1:-1;;;11052:11:0;;;;11024:39;:75;;;;-1:-1:-1;11086:13:0;;-1:-1:-1;;;;;11080:19:0;;;11086:13;;11080:19;11024:75;:106;;;;;11129:1;11116:10;;:14;11024:106;:153;;;;;11164:13;;11147;:30;;11024:153;:193;;;;;11204:13;;11194:6;:23;;11024:193;:231;;;;-1:-1:-1;;;;;;11235:20:0;;;;;;:14;:20;;;;;;;;11234:21;11024:231;:267;;;;-1:-1:-1;;;;;;11273:18:0;;;;;;:14;:18;;;;;;;;11272:19;11024:267;11006:552;;;11318:65;11336:46;11340:6;11348:33;11352:13;11367;;11348:3;:33::i;:::-;11336:3;:46::i;:::-;11318:16;:65::i;:::-;11420:21;11460:15;;11456:91;;11496:35;11509:21;11496:12;:35::i;:::-;11303:255;11006:552;11574:16;;11570:731;;11607:18;11653:3;11629:20;11638:11;11629:6;:20;:::i;:::-;11628:28;;;;:::i;:::-;11607:49;-1:-1:-1;11671:20:0;11694:19;11607:49;11694:6;:19;:::i;:::-;-1:-1:-1;;;;;11751:20:0;;11728;11751;;;:14;:20;;;;;;11671:42;;-1:-1:-1;11728:20:0;11751;;:77;;11823:4;11751:77;;;11791:4;11751:77;-1:-1:-1;;;;;11856:20:0;;;;;;:14;:20;;;;;;11728:100;;-1:-1:-1;11856:20:0;;:42;;11888:10;11856:42;;;11879:6;11856:42;-1:-1:-1;;;;;11913:23:0;;;;;;:9;:23;;;;;:37;;11843:55;;-1:-1:-1;11843:55:0;;11913:23;;;:37;;11843:55;;11913:37;:::i;:::-;;;;-1:-1:-1;;11970:41:0;;1589:25:1;;;11993:4:0;;-1:-1:-1;;;;;11970:41:0;;;-1:-1:-1;;;;;;;;;;;11970:41:0;1577:2:1;1562:18;11970:41:0;;;;;;;-1:-1:-1;;;;;12026:15:0;;;;;;:9;:15;;;;;:25;;12045:6;;12026:15;:25;;12045:6;;12026:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12066:13:0;;;;;;:9;:13;;;;;:29;;12083:12;;12066:13;:29;;12083:12;;12066:29;:::i;:::-;;;;;;;;12130:2;-1:-1:-1;;;;;12115:32:0;12124:4;-1:-1:-1;;;;;12115:32:0;-1:-1:-1;;;;;;;;;;;12134:12:0;12115:32;;;;1589:25:1;;1577:2;1562:18;;1443:177;12115:32:0;;;;;;;;11592:567;;;11570:731;;;-1:-1:-1;;;;;12180:15:0;;;;;;:9;:15;;;;;:25;;12199:6;;12180:15;:25;;12199:6;;12180:25;:::i;:::-;;;;-1:-1:-1;;;;;;;12220:13:0;;;;;;:9;:13;;;;;:23;;12237:6;;12220:13;:23;;12237:6;;12220:23;:::i;:::-;;;;;;;;12278:2;-1:-1:-1;;;;;12263:26:0;12272:4;-1:-1:-1;;;;;12263:26:0;-1:-1:-1;;;;;;;;;;;12282:6:0;12263:26;;;;1589:25:1;;1577:2;1562:18;;1443:177;12263:26:0;;;;;;;;11570:731;9457:2851;;9388:2920;;;:::o;3856:191::-;3930:16;3949:6;;-1:-1:-1;;;;;3966:17:0;;;-1:-1:-1;;;;;;3966:17:0;;;;;;3999:40;;3949:6;;;;;;;3999:40;;3930:16;3999:40;3919:128;3856:191;:::o;8370:107::-;8427:7;8459:1;8455;:5;8454:15;;8468:1;8454:15;;;8464:1;8454:15;8447:22;8370:107;-1:-1:-1;;;8370:107:0:o;8485:551::-;5427:10;:17;;-1:-1:-1;;;;5427:17:0;-1:-1:-1;;;5427:17:0;;;8571:15;8563:57:::1;;;::::0;-1:-1:-1;;;8563:57:0;;14996:2:1;8563:57:0::1;::::0;::::1;14978:21:1::0;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;8563:57:0::1;14794:353:1::0;8563:57:0::1;8655:16;::::0;;8669:1:::1;8655:16:::0;;;;;::::1;::::0;;8631:21:::1;::::0;8655:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8655:16:0::1;8631:40;;8700:4;8682;8687:1;8682:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8682:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8726:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;8726:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;8682:7;;8726:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8716:4;8721:1;8716:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8716:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;8791:15:::1;::::0;8759:62:::1;::::0;8776:4:::1;::::0;8791:15:::1;8809:11:::0;8759:8:::1;:62::i;:::-;8832:15;::::0;:196:::1;::::0;-1:-1:-1;;;8832:196:0;;-1:-1:-1;;;;;8832:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;8913:11;;8832:15:::1;::::0;8955:4;;8982::::1;::::0;9002:15:::1;::::0;8832:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5467:10:0;:18;;-1:-1:-1;;;;5467:18:0;;;-1:-1:-1;;;;8485:551:0:o;9044:200::-;9118:1;9109:6;:10;9101:52;;;;-1:-1:-1;;;9101:52:0;;14996:2:1;9101:52:0;;;14978:21:1;15035:2;15015:18;;;15008:30;15074:31;15054:18;;;15047:59;15123:18;;9101:52:0;14794:353:1;9101:52:0;9164:9;;-1:-1:-1;;;;;9164:9:0;:30;9183:10;9192:1;9183:6;:10;:::i;:::-;9164:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9205:10:0;;-1:-1:-1;;;;;9205:10:0;:31;9225:10;9234:1;9225:6;:10;:::i;:::-;9205:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9044:200;:::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;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;1625:456::-;1702:6;1710;1718;1771:2;1759:9;1750:7;1746:23;1742:32;1739:52;;;1787:1;1784;1777:12;1739:52;1826:9;1813:23;1845:31;1870:5;1845:31;:::i;:::-;1895:5;-1:-1:-1;1952:2:1;1937:18;;1924:32;1965:33;1924:32;1965:33;:::i;:::-;1625:456;;2017:7;;-1:-1:-1;;;2071:2:1;2056:18;;;;2043:32;;1625:456::o;2275:248::-;2343:6;2351;2404:2;2392:9;2383:7;2379:23;2375:32;2372:52;;;2420:1;2417;2410:12;2372:52;-1:-1:-1;;2443:23:1;;;2513:2;2498:18;;;2485:32;;-1:-1:-1;2275:248:1:o;2528:247::-;2587:6;2640:2;2628:9;2619:7;2615:23;2611:32;2608:52;;;2656:1;2653;2646:12;2608:52;2695:9;2682:23;2714:31;2739:5;2714:31;:::i;2988:388::-;3056:6;3064;3117:2;3105:9;3096:7;3092:23;3088:32;3085:52;;;3133:1;3130;3123:12;3085:52;3172:9;3159:23;3191:31;3216:5;3191:31;:::i;:::-;3241:5;-1:-1:-1;3298:2:1;3283:18;;3270:32;3311:33;3270:32;3311:33;:::i;:::-;3363:7;3353:17;;;2988:388;;;;;:::o;3381:398::-;3583:2;3565:21;;;3622:2;3602:18;;;3595:30;3661:34;3656:2;3641:18;;3634:62;-1:-1:-1;;;3727:2:1;3712:18;;3705:32;3769:3;3754:19;;3381:398::o;4132:127::-;4193:10;4188:3;4184:20;4181:1;4174:31;4224:4;4221:1;4214:15;4248:4;4245:1;4238:15;4264:422;4353:1;4396:5;4353:1;4410:270;4431:7;4421:8;4418:21;4410:270;;;4490:4;4486:1;4482:6;4478:17;4472:4;4469:27;4466:53;;;4499:18;;:::i;:::-;4549:7;4539:8;4535:22;4532:55;;;4569:16;;;;4532:55;4648:22;;;;4608:15;;;;4410:270;;;4414:3;4264:422;;;;;:::o;4691:806::-;4740:5;4770:8;4760:80;;-1:-1:-1;4811:1:1;4825:5;;4760:80;4859:4;4849:76;;-1:-1:-1;4896:1:1;4910:5;;4849:76;4941:4;4959:1;4954:59;;;;5027:1;5022:130;;;;4934:218;;4954:59;4984:1;4975:10;;4998:5;;;5022:130;5059:3;5049:8;5046:17;5043:43;;;5066:18;;:::i;:::-;-1:-1:-1;;5122:1:1;5108:16;;5137:5;;4934:218;;5236:2;5226:8;5223:16;5217:3;5211:4;5208:13;5204:36;5198:2;5188:8;5185:16;5180:2;5174:4;5171:12;5167:35;5164:77;5161:159;;;-1:-1:-1;5273:19:1;;;5305:5;;5161:159;5352:34;5377:8;5371:4;5352:34;:::i;:::-;5422:6;5418:1;5414:6;5410:19;5401:7;5398:32;5395:58;;;5433:18;;:::i;:::-;5471:20;;4691:806;-1:-1:-1;;;4691:806:1:o;5502:140::-;5560:5;5589:47;5630:4;5620:8;5616:19;5610:4;5589:47;:::i;5647:168::-;5720:9;;;5751;;5768:15;;;5762:22;;5748:37;5738:71;;5789:18;;:::i;6229:128::-;6296:9;;;6317:11;;;6314:37;;;6331:18;;:::i;6362:356::-;6564:2;6546:21;;;6583:18;;;6576:30;6642:34;6637:2;6622:18;;6615:62;6709:2;6694:18;;6362:356::o;7852:184::-;7922:6;7975:2;7963:9;7954:7;7950:23;7946:32;7943:52;;;7991:1;7988;7981:12;7943:52;-1:-1:-1;8014:16:1;;7852:184;-1:-1:-1;7852:184:1:o;8328:277::-;8395:6;8448:2;8436:9;8427:7;8423:23;8419:32;8416:52;;;8464:1;8461;8454:12;8416:52;8496:9;8490:16;8549:5;8542:13;8535:21;8528:5;8525:32;8515:60;;8571:1;8568;8561:12;8966:251;9036:6;9089:2;9077:9;9068:7;9064:23;9060:32;9057:52;;;9105:1;9102;9095:12;9057:52;9137:9;9131:16;9156:31;9181:5;9156:31;:::i;10143:306::-;10231:6;10239;10247;10300:2;10288:9;10279:7;10275:23;10271:32;10268:52;;;10316:1;10313;10306:12;10268:52;10345:9;10339:16;10329:26;;10395:2;10384:9;10380:18;10374:25;10364:35;;10439:2;10428:9;10424:18;10418:25;10408:35;;10143:306;;;;;:::o;13593:125::-;13658:9;;;13679:10;;;13676:36;;;13692:18;;:::i;14432:135::-;14471:3;14492:17;;;14489:43;;14512:18;;:::i;:::-;-1:-1:-1;14559:1:1;14548:13;;14432:135::o;14572:217::-;14612:1;14638;14628:132;;14682:10;14677:3;14673:20;14670:1;14663:31;14717:4;14714:1;14707:15;14745:4;14742:1;14735:15;14628:132;-1:-1:-1;14774:9:1;;14572:217::o;15284:127::-;15345:10;15340:3;15336:20;15333:1;15326:31;15376:4;15373:1;15366:15;15400:4;15397:1;15390:15;15416:980;15678:4;15726:3;15715:9;15711:19;15757:6;15746:9;15739:25;15783:2;15821:6;15816:2;15805:9;15801:18;15794:34;15864:3;15859:2;15848:9;15844:18;15837:31;15888:6;15923;15917:13;15954:6;15946;15939:22;15992:3;15981:9;15977:19;15970:26;;16031:2;16023:6;16019:15;16005:29;;16052:1;16062:195;16076:6;16073:1;16070:13;16062:195;;;16141:13;;-1:-1:-1;;;;;16137:39:1;16125:52;;16232:15;;;;16197:12;;;;16173:1;16091:9;16062:195;;;-1:-1:-1;;;;;;;16313:32:1;;;;16308:2;16293:18;;16286:60;-1:-1:-1;;;16377:3:1;16362:19;16355:35;16274:3;15416:980;-1:-1:-1;;;15416:980:1:o

Swarm Source

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