ETH Price: $2,369.36 (-3.51%)

Token

Hero Trump (TRUMPERO)
 

Overview

Max Total Supply

1,000,000,000 TRUMPERO

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
12,208,699.9999987799 TRUMPERO

Value
$0.00
0x73b10ee217c5529095ed4f80598dcd2589dd65c3
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:
TRUMPERO

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 * https://t.me/TrumperoErc
 * https://trumpero.xyz
 * https://x.com/TrumperoErc
 */

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.10;

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 IERC20 {
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

library SafeMath {
    function tryAdd(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    function trySub(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    function tryMul(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    function tryDiv(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    function tryMod(
        uint256 a,
        uint256 b
    ) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

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

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

interface IUniRouter {
    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 TRUMPERO is IERC20, Ownable {
    using SafeMath for uint256;

    uint256 private _totalSupply = 10 ** 27;
    string private _name = "Hero Trump";
    string private _symbol = "TRUMPERO";

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

    IUniRouter public uniRouter;
    address public uniPair;

    bool private inSwap;

    address public mkPort;
    address public devPort;

    uint256 public mxTxLimit = (_totalSupply * 200) / 10000;
    uint256 public swapTokenLimit = (_totalSupply * 5) / 1000000;
    uint256 public mxWalletLimit = (_totalSupply * 200) / 10000;

    uint256 public outTotalFees = 30;
    uint256 public outMkFees = 30;
    uint256 public outDevFees = 0;

    uint256 public inTotalFees = 30;
    uint256 public inMkFees = 30;
    uint256 public inDevFees = 0;

    uint256 public mkTokens;
    uint256 public devTokens;

    bool public LimitsEnabled = true;
    bool public TradingAllowed = false;
    bool public SwapEnabled = false;

    mapping(address => bool) private blacklisted;
    mapping(address => bool) private feesIgnored;
    mapping(address => bool) public txIgnored;

    mapping(address => bool) public amms;

    constructor() {
        mkPort = address(0x8437E4ff6a3159Cc1aA722e46C5b86D74601707d);
        devPort = address(0x8437E4ff6a3159Cc1aA722e46C5b86D74601707d);

        uniRouter = IUniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        txIgnored[owner()] = true;
        txIgnored[address(this)] = true;
        txIgnored[address(0xdead)] = true;

        feesIgnored[owner()] = true;
        feesIgnored[address(this)] = true;
        feesIgnored[address(0xdead)] = true;

        _balances[msg.sender] = _totalSupply;

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

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

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

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

    function totalSupply() public view virtual returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(
            currentAllowance >= amount,
            "ERC20: transfer amount exceeds allowance"
        );
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

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

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        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 openTrumpero() external onlyOwner {
        uniPair = IUniFactory(uniRouter.factory()).createPair(
            address(this),
            uniRouter.WETH()
        );

        amms[address(uniPair)] = true;

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

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

        TradingAllowed = true;
        SwapEnabled = true;
    }

    function removeMaxes() external onlyOwner returns (bool) {
        LimitsEnabled = false;
        return true;
    }

    function removeFees(
        uint256 _inMkFees,
        uint256 _inDevFees,
        uint256 _outMkFees,
        uint256 _outDevFees
    ) external onlyOwner {
        inMkFees = _inMkFees;
        inDevFees = _inDevFees;
        inTotalFees = inMkFees + inDevFees;
        outMkFees = _outMkFees;
        outDevFees = _outDevFees;
        outTotalFees = outMkFees + outDevFees;
        require(
            inTotalFees <= 99 && outTotalFees <= 99,
            "Must keep fees at 99% or less"
        );
    }

    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(!blacklisted[from], "[from] black list");
        require(!blacklisted[to], "[to] black list");

        if (from == address(this) || to == address(this) || amount == 0) {
            _transferInternal(from, to, amount);
            return;
        }

        if (LimitsEnabled) {
            if (!txIgnored[from] && !txIgnored[to] && !inSwap) {
                if (!TradingAllowed) {
                    require(
                        feesIgnored[from] || feesIgnored[to],
                        "Trading is not active."
                    );
                }

                if (amms[from] && !txIgnored[to]) {
                    require(
                        amount <= mxTxLimit,
                        "Buy transfer amount exceeds the mxTxLimit."
                    );
                    require(
                        amount + balanceOf(to) <= mxWalletLimit,
                        "Max wallet exceeded"
                    );
                } else if (amms[to] && !txIgnored[from]) {
                    require(
                        amount <= mxTxLimit,
                        "Sell transfer amount exceeds the mxTxLimit."
                    );
                } else if (!txIgnored[to] && !amms[to]) {
                    require(
                        amount + balanceOf(to) <= mxWalletLimit,
                        "Max wallet exceeded"
                    );
                }
            }
        }

        if (
            SwapEnabled &&
            !inSwap &&
            amms[to] &&
            !feesIgnored[from] &&
            !feesIgnored[to]
        ) {
            inSwap = true;
            swapBack();
            inSwap = false;
        }

        bool takeFee = !(from == mkPort || from == devPort);

        uint256 fees = amount;
        if (takeFee) {
            if (amms[to] && outTotalFees > 0) {
                fees = amount.mul(outTotalFees).div(100);
                devTokens += (fees * outDevFees) / outTotalFees;
                mkTokens += (fees * outMkFees) / outTotalFees;
            } else if (amms[from] && inTotalFees > 0) {
                fees = amount.mul(inTotalFees).div(100);
                devTokens += (fees * inDevFees) / inTotalFees;
                mkTokens += (fees * inMkFees) / inTotalFees;
            } else fees = 0;

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

        _balances[from] =
            _balances[from] -
            (takeFee ? amount : (amount - fees));
        _balances[to] = _balances[to] + (takeFee ? (amount - fees) : amount);
        emit Transfer(from, to, amount);
    }

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

    function _transferInternal(
        address from,
        address to,
        uint256 amount
    ) internal {
        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount;
        emit Transfer(from, to, amount);
    }

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

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

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

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));
        uint256 totalTokensToSwap = mkTokens + devTokens;

        if (contractBalance > swapTokenLimit * 2000) {
            contractBalance = swapTokenLimit * 2000;
        }

        uint256 initialETHBalance = address(this).balance;
        if (contractBalance > swapTokenLimit) swapTokensForEth(contractBalance);

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);
        uint256 ethForDev = ethBalance.mul(devTokens).div(
            totalTokensToSwap + 1
        );

        mkTokens = 0;
        devTokens = 0;

        payable(devPort).transfer(ethForDev);
        payable(mkPort).transfer(address(this).balance);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LimitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TradingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"amms","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devPort","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inMkFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mkPort","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mxTxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrumpero","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"outDevFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outMkFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"outTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_inMkFees","type":"uint256"},{"internalType":"uint256","name":"_inDevFees","type":"uint256"},{"internalType":"uint256","name":"_outMkFees","type":"uint256"},{"internalType":"uint256","name":"_outDevFees","type":"uint256"}],"name":"removeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeMaxes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokenLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"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":[{"internalType":"address","name":"","type":"address"}],"name":"txIgnored","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniRouter","outputs":[{"internalType":"contract IUniRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6b033b2e3c9fd0803ce800000060015560c0604052600a60809081526904865726f205472756d760b41b60a0526002906200003b9082620003c0565b506040805180820190915260088152675452554d5045524f60c01b60208201526003906200006a9082620003c0565b5061271060015460c86200007f91906200048c565b6200008b9190620004b8565b600a55620f42406001546005620000a391906200048c565b620000af9190620004b8565b600b5561271060015460c8620000c691906200048c565b620000d29190620004b8565b600c55601e600d819055600e8190556000600f81905560108290556011919091556012556015805462ffffff191660011790553480156200011257600080fd5b506200011e33620002cb565b600880546001600160a01b0319908116738437e4ff6a3159cc1aa722e46c5b86d74601707d90811790925560098054821690921790915560068054909116737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001601860006200018d6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526018909252812080548316600190811790915561dead82527fe3ec2099396b7359df1c566dfdf9dfdb5e22fd64a6ede9d61aa32b2f63968fd680549093168117909255601790620002156000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152601783528181208054851660019081179091557f43fedf50e12e5c047fbe3576d03ab50250348e9a6030f531ab6d4ce10f5b0303805490951681179094559254338085526004845282852082905591519081529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620004db565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200034657607f821691505b6020821081036200036757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003bb57600081815260208120601f850160051c81016020861015620003965750805b601f850160051c820191505b81811015620003b757828155600101620003a2565b5050505b505050565b81516001600160401b03811115620003dc57620003dc6200031b565b620003f481620003ed845462000331565b846200036d565b602080601f8311600181146200042c5760008415620004135750858301515b600019600386901b1c1916600185901b178555620003b7565b600085815260208120601f198616915b828110156200045d578886015182559484019460019091019084016200043c565b50858210156200047c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8082028115828204841417620004b257634e487b7160e01b600052601160045260246000fd5b92915050565b600082620004d657634e487b7160e01b600052601260045260246000fd5b500490565b611e6280620004eb6000396000f3fe60806040526004361061021e5760003560e01c80636fcc35e511610123578063afcdf144116100ab578063de4e3ef01161006f578063de4e3ef01461063b578063e086e9ae14610651578063e507a32514610667578063f19704481461067d578063f2fde38b1461069757600080fd5b8063afcdf14414610594578063bd1db51c146105aa578063d1e0775a146105ca578063d7af2fb0146105e0578063dd62ed3e146105f557600080fd5b806395d89b41116100f257806395d89b4114610509578063a0e47bf61461051e578063a457c2d71461053e578063a509d8cd1461055e578063a9059cbb1461057457600080fd5b80636fcc35e51461048857806370a082311461049e578063715018a6146104d45780638da5cb5b146104eb57600080fd5b806332972e46116101a6578063556482091161017557806355648209146103f65780635984c8ca1461040c5780635d7cfcfc146104225780635f29a748146104385780636ba725321461046857600080fd5b806332972e461461035e578063395093511461039657806341c78796146103b657806345521c57146103d657600080fd5b806318160ddd116101ed57806318160ddd146102c857806319890b58146102dd57806323b872dd1461030d578063251a0f701461032d578063313ce5671461034257600080fd5b806306fdde031461022a578063095ea7b3146102555780630ca4b2c81461028557806317d8fc48146102a957600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b7565b60405161024c9190611b1e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611b81565b610749565b604051901515815260200161024c565b34801561029157600080fd5b5061029b60105481565b60405190815260200161024c565b3480156102b557600080fd5b5060155461027590610100900460ff1681565b3480156102d457600080fd5b5060015461029b565b3480156102e957600080fd5b506102756102f8366004611bad565b60186020526000908152604090205460ff1681565b34801561031957600080fd5b50610275610328366004611bca565b610760565b34801561033957600080fd5b5061027561080f565b34801561034e57600080fd5b506040516012815260200161024c565b34801561036a57600080fd5b5060075461037e906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103a257600080fd5b506102756103b1366004611b81565b61084a565b3480156103c257600080fd5b506015546102759062010000900460ff1681565b3480156103e257600080fd5b5060085461037e906001600160a01b031681565b34801561040257600080fd5b5061029b60145481565b34801561041857600080fd5b5061029b600b5481565b34801561042e57600080fd5b5061029b600d5481565b34801561044457600080fd5b50610275610453366004611bad565b60196020526000908152604090205460ff1681565b34801561047457600080fd5b5060095461037e906001600160a01b031681565b34801561049457600080fd5b5061029b600f5481565b3480156104aa57600080fd5b5061029b6104b9366004611bad565b6001600160a01b031660009081526004602052604090205490565b3480156104e057600080fd5b506104e9610886565b005b3480156104f757600080fd5b506000546001600160a01b031661037e565b34801561051557600080fd5b5061023f6108bc565b34801561052a57600080fd5b5060065461037e906001600160a01b031681565b34801561054a57600080fd5b50610275610559366004611b81565b6108cb565b34801561056a57600080fd5b5061029b600e5481565b34801561058057600080fd5b5061027561058f366004611b81565b610964565b3480156105a057600080fd5b5061029b600c5481565b3480156105b657600080fd5b506104e96105c5366004611c0b565b610971565b3480156105d657600080fd5b5061029b60115481565b3480156105ec57600080fd5b506104e9610a31565b34801561060157600080fd5b5061029b610610366004611c3d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064757600080fd5b5061029b600a5481565b34801561065d57600080fd5b5061029b60135481565b34801561067357600080fd5b5061029b60125481565b34801561068957600080fd5b506015546102759060ff1681565b3480156106a357600080fd5b506104e96106b2366004611bad565b610d00565b6060600280546106c690611c76565b80601f01602080910402602001604051908101604052809291908181526020018280546106f290611c76565b801561073f5780601f106107145761010080835404028352916020019161073f565b820191906000526020600020905b81548152906001019060200180831161072257829003601f168201915b5050505050905090565b6000610756338484610d9b565b5060015b92915050565b600061076d848484610ec0565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156107f75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108048533858403610d9b565b506001949350505050565b600080546001600160a01b0316331461083a5760405162461bcd60e51b81526004016107ee90611cb0565b506015805460ff19169055600190565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610756918590610881908690611cfb565b610d9b565b6000546001600160a01b031633146108b05760405162461bcd60e51b81526004016107ee90611cb0565b6108ba6000611791565b565b6060600380546106c690611c76565b3360009081526005602090815260408083206001600160a01b03861684529091528120548281101561094d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ee565b61095a3385858403610d9b565b5060019392505050565b6000610756338484610ec0565b6000546001600160a01b0316331461099b5760405162461bcd60e51b81526004016107ee90611cb0565b601184905560128390556109af8385611cfb565b601055600e829055600f8190556109c68183611cfb565b600d556010546063108015906109df57506063600d5411155b610a2b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016107ee565b50505050565b6000546001600160a01b03163314610a5b5760405162461bcd60e51b81526004016107ee90611cb0565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611d0e565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b589190611d0e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc99190611d0e565b600780546001600160a01b0319166001600160a01b039283169081179091556000908152601960205260409020805460ff191660019081179091556006549054610c169230921690610d9b565b6006546001600160a01b031663f305d7194730610c48816001600160a01b031660009081526004602052604090205490565b600080610c5d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cea9190611d2b565b50506015805462ffff0019166201010017905550565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b81526004016107ee90611cb0565b6001600160a01b038116610d8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ee565b610d9881611791565b50565b6001600160a01b038316610dfd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ee565b6001600160a01b038216610e5e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ee565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ee565b6001600160a01b038216610f865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ee565b6001600160a01b03831660009081526016602052604090205460ff1615610fe35760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016107ee565b6001600160a01b03821660009081526016602052604090205460ff161561103e5760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016107ee565b6001600160a01b03831630148061105d57506001600160a01b03821630145b80611066575080155b1561107b576110768383836117e1565b505050565b60155460ff16156113ed576001600160a01b03831660009081526018602052604090205460ff161580156110c857506001600160a01b03821660009081526018602052604090205460ff16155b80156110de5750600754600160a01b900460ff16155b156113ed57601554610100900460ff16611176576001600160a01b03831660009081526017602052604090205460ff168061113157506001600160a01b03821660009081526017602052604090205460ff165b6111765760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ee565b6001600160a01b03831660009081526019602052604090205460ff1680156111b757506001600160a01b03821660009081526018602052604090205460ff16155b1561129057600a548111156112215760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526936bc2a3c2634b6b4ba1760b11b60648201526084016107ee565b600c546001600160a01b0383166000908152600460205260409020546112479083611cfb565b111561128b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ee565b6113ed565b6001600160a01b03821660009081526019602052604090205460ff1680156112d157506001600160a01b03831660009081526018602052604090205460ff16155b1561133c57600a5481111561128b5760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a1036bc2a3c2634b6b4ba1760a91b60648201526084016107ee565b6001600160a01b03821660009081526018602052604090205460ff1615801561137e57506001600160a01b03821660009081526019602052604090205460ff16155b156113ed57600c546001600160a01b0383166000908152600460205260409020546113a99083611cfb565b11156113ed5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ee565b60155462010000900460ff16801561140f5750600754600160a01b900460ff16155b801561143357506001600160a01b03821660009081526019602052604090205460ff165b801561145857506001600160a01b03831660009081526017602052604090205460ff16155b801561147d57506001600160a01b03821660009081526017602052604090205460ff16155b156114ab576007805460ff60a01b1916600160a01b17905561149d611889565b6007805460ff60a01b191690555b6008546000906001600160a01b03858116911614806114d757506009546001600160a01b038581169116145b1590508181156116a4576001600160a01b03841660009081526019602052604090205460ff16801561150b57506000600d54115b1561159957611530606461152a600d54866119a190919063ffffffff16565b906119b4565b9050600d54600f54826115439190611d59565b61154d9190611d70565b6014600082825461155e9190611cfb565b9091555050600d54600e546115739083611d59565b61157d9190611d70565b6013600082825461158e9190611cfb565b909155506116299050565b6001600160a01b03851660009081526019602052604090205460ff1680156115c357506000601054115b15611625576115e2606461152a601054866119a190919063ffffffff16565b9050601054601254826115f59190611d59565b6115ff9190611d70565b601460008282546116109190611cfb565b90915550506010546011546115739083611d59565b5060005b80156116a4573060009081526004602052604090205461164a908290611cfb565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169b9085815260200190565b60405180910390a35b816116b8576116b38184611d92565b6116ba565b825b6001600160a01b0386166000908152600460205260409020546116dd9190611d92565b6001600160a01b03861660009081526004602052604090205581611701578261170b565b61170b8184611d92565b6001600160a01b03851660009081526004602052604090205461172e9190611cfb565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117829087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054611805908290611d92565b6001600160a01b038085166000908152600460205260408082209390935590841681522054611835908290611cfb565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eb39085815260200190565b30600090815260046020526040812054905060006014546013546118ad9190611cfb565b9050600b546107d06118bf9190611d59565b8211156118d857600b546118d5906107d0611d59565b91505b600b5447908311156118ed576118ed836119c0565b60006118f94783611b12565b9050600061191961190b856001611cfb565b60145461152a9085906119a1565b6000601381905560148190556009546040519293506001600160a01b03169183156108fc0291849190818181858888f1935050505015801561195f573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611999573d6000803e3d6000fd5b505050505050565b60006119ad8284611d59565b9392505050565b60006119ad8284611d70565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f5576119f5611da5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190611d0e565b81600181518110611a8557611a85611da5565b6001600160a01b039283166020918202929092010152600654611aab9130911684610d9b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ae4908590600090869030904290600401611dbb565b600060405180830381600087803b158015611afe57600080fd5b505af1158015611999573d6000803e3d6000fd5b60006119ad8284611d92565b600060208083528351808285015260005b81811015611b4b57858101830151858201604001528201611b2f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9857600080fd5b60008060408385031215611b9457600080fd5b8235611b9f81611b6c565b946020939093013593505050565b600060208284031215611bbf57600080fd5b81356119ad81611b6c565b600080600060608486031215611bdf57600080fd5b8335611bea81611b6c565b92506020840135611bfa81611b6c565b929592945050506040919091013590565b60008060008060808587031215611c2157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c5057600080fd5b8235611c5b81611b6c565b91506020830135611c6b81611b6c565b809150509250929050565b600181811c90821680611c8a57607f821691505b602082108103611caa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075a5761075a611ce5565b600060208284031215611d2057600080fd5b81516119ad81611b6c565b600080600060608486031215611d4057600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761075a5761075a611ce5565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075a5761075a611ce5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205431af440ee79408d312e59c5ea5275d0e941473b8a12220675cd5f8848517c264736f6c63430008130033

Deployed Bytecode

0x60806040526004361061021e5760003560e01c80636fcc35e511610123578063afcdf144116100ab578063de4e3ef01161006f578063de4e3ef01461063b578063e086e9ae14610651578063e507a32514610667578063f19704481461067d578063f2fde38b1461069757600080fd5b8063afcdf14414610594578063bd1db51c146105aa578063d1e0775a146105ca578063d7af2fb0146105e0578063dd62ed3e146105f557600080fd5b806395d89b41116100f257806395d89b4114610509578063a0e47bf61461051e578063a457c2d71461053e578063a509d8cd1461055e578063a9059cbb1461057457600080fd5b80636fcc35e51461048857806370a082311461049e578063715018a6146104d45780638da5cb5b146104eb57600080fd5b806332972e46116101a6578063556482091161017557806355648209146103f65780635984c8ca1461040c5780635d7cfcfc146104225780635f29a748146104385780636ba725321461046857600080fd5b806332972e461461035e578063395093511461039657806341c78796146103b657806345521c57146103d657600080fd5b806318160ddd116101ed57806318160ddd146102c857806319890b58146102dd57806323b872dd1461030d578063251a0f701461032d578063313ce5671461034257600080fd5b806306fdde031461022a578063095ea7b3146102555780630ca4b2c81461028557806317d8fc48146102a957600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061023f6106b7565b60405161024c9190611b1e565b60405180910390f35b34801561026157600080fd5b50610275610270366004611b81565b610749565b604051901515815260200161024c565b34801561029157600080fd5b5061029b60105481565b60405190815260200161024c565b3480156102b557600080fd5b5060155461027590610100900460ff1681565b3480156102d457600080fd5b5060015461029b565b3480156102e957600080fd5b506102756102f8366004611bad565b60186020526000908152604090205460ff1681565b34801561031957600080fd5b50610275610328366004611bca565b610760565b34801561033957600080fd5b5061027561080f565b34801561034e57600080fd5b506040516012815260200161024c565b34801561036a57600080fd5b5060075461037e906001600160a01b031681565b6040516001600160a01b03909116815260200161024c565b3480156103a257600080fd5b506102756103b1366004611b81565b61084a565b3480156103c257600080fd5b506015546102759062010000900460ff1681565b3480156103e257600080fd5b5060085461037e906001600160a01b031681565b34801561040257600080fd5b5061029b60145481565b34801561041857600080fd5b5061029b600b5481565b34801561042e57600080fd5b5061029b600d5481565b34801561044457600080fd5b50610275610453366004611bad565b60196020526000908152604090205460ff1681565b34801561047457600080fd5b5060095461037e906001600160a01b031681565b34801561049457600080fd5b5061029b600f5481565b3480156104aa57600080fd5b5061029b6104b9366004611bad565b6001600160a01b031660009081526004602052604090205490565b3480156104e057600080fd5b506104e9610886565b005b3480156104f757600080fd5b506000546001600160a01b031661037e565b34801561051557600080fd5b5061023f6108bc565b34801561052a57600080fd5b5060065461037e906001600160a01b031681565b34801561054a57600080fd5b50610275610559366004611b81565b6108cb565b34801561056a57600080fd5b5061029b600e5481565b34801561058057600080fd5b5061027561058f366004611b81565b610964565b3480156105a057600080fd5b5061029b600c5481565b3480156105b657600080fd5b506104e96105c5366004611c0b565b610971565b3480156105d657600080fd5b5061029b60115481565b3480156105ec57600080fd5b506104e9610a31565b34801561060157600080fd5b5061029b610610366004611c3d565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561064757600080fd5b5061029b600a5481565b34801561065d57600080fd5b5061029b60135481565b34801561067357600080fd5b5061029b60125481565b34801561068957600080fd5b506015546102759060ff1681565b3480156106a357600080fd5b506104e96106b2366004611bad565b610d00565b6060600280546106c690611c76565b80601f01602080910402602001604051908101604052809291908181526020018280546106f290611c76565b801561073f5780601f106107145761010080835404028352916020019161073f565b820191906000526020600020905b81548152906001019060200180831161072257829003601f168201915b5050505050905090565b6000610756338484610d9b565b5060015b92915050565b600061076d848484610ec0565b6001600160a01b0384166000908152600560209081526040808320338452909152902054828110156107f75760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b6108048533858403610d9b565b506001949350505050565b600080546001600160a01b0316331461083a5760405162461bcd60e51b81526004016107ee90611cb0565b506015805460ff19169055600190565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610756918590610881908690611cfb565b610d9b565b6000546001600160a01b031633146108b05760405162461bcd60e51b81526004016107ee90611cb0565b6108ba6000611791565b565b6060600380546106c690611c76565b3360009081526005602090815260408083206001600160a01b03861684529091528120548281101561094d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016107ee565b61095a3385858403610d9b565b5060019392505050565b6000610756338484610ec0565b6000546001600160a01b0316331461099b5760405162461bcd60e51b81526004016107ee90611cb0565b601184905560128390556109af8385611cfb565b601055600e829055600f8190556109c68183611cfb565b600d556010546063108015906109df57506063600d5411155b610a2b5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016107ee565b50505050565b6000546001600160a01b03163314610a5b5760405162461bcd60e51b81526004016107ee90611cb0565b600660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad29190611d0e565b6001600160a01b031663c9c6539630600660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b589190611d0e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ba5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc99190611d0e565b600780546001600160a01b0319166001600160a01b039283169081179091556000908152601960205260409020805460ff191660019081179091556006549054610c169230921690610d9b565b6006546001600160a01b031663f305d7194730610c48816001600160a01b031660009081526004602052604090205490565b600080610c5d6000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610cc5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cea9190611d2b565b50506015805462ffff0019166201010017905550565b6000546001600160a01b03163314610d2a5760405162461bcd60e51b81526004016107ee90611cb0565b6001600160a01b038116610d8f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107ee565b610d9881611791565b50565b6001600160a01b038316610dfd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107ee565b6001600160a01b038216610e5e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107ee565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f245760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016107ee565b6001600160a01b038216610f865760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016107ee565b6001600160a01b03831660009081526016602052604090205460ff1615610fe35760405162461bcd60e51b815260206004820152601160248201527016d99c9bdb5748189b1858dac81b1a5cdd607a1b60448201526064016107ee565b6001600160a01b03821660009081526016602052604090205460ff161561103e5760405162461bcd60e51b815260206004820152600f60248201526e16dd1bd748189b1858dac81b1a5cdd608a1b60448201526064016107ee565b6001600160a01b03831630148061105d57506001600160a01b03821630145b80611066575080155b1561107b576110768383836117e1565b505050565b60155460ff16156113ed576001600160a01b03831660009081526018602052604090205460ff161580156110c857506001600160a01b03821660009081526018602052604090205460ff16155b80156110de5750600754600160a01b900460ff16155b156113ed57601554610100900460ff16611176576001600160a01b03831660009081526017602052604090205460ff168061113157506001600160a01b03821660009081526017602052604090205460ff165b6111765760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b60448201526064016107ee565b6001600160a01b03831660009081526019602052604090205460ff1680156111b757506001600160a01b03821660009081526018602052604090205460ff16155b1561129057600a548111156112215760405162461bcd60e51b815260206004820152602a60248201527f427579207472616e7366657220616d6f756e742065786365656473207468652060448201526936bc2a3c2634b6b4ba1760b11b60648201526084016107ee565b600c546001600160a01b0383166000908152600460205260409020546112479083611cfb565b111561128b5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ee565b6113ed565b6001600160a01b03821660009081526019602052604090205460ff1680156112d157506001600160a01b03831660009081526018602052604090205460ff16155b1561133c57600a5481111561128b5760405162461bcd60e51b815260206004820152602b60248201527f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560448201526a1036bc2a3c2634b6b4ba1760a91b60648201526084016107ee565b6001600160a01b03821660009081526018602052604090205460ff1615801561137e57506001600160a01b03821660009081526019602052604090205460ff16155b156113ed57600c546001600160a01b0383166000908152600460205260409020546113a99083611cfb565b11156113ed5760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b60448201526064016107ee565b60155462010000900460ff16801561140f5750600754600160a01b900460ff16155b801561143357506001600160a01b03821660009081526019602052604090205460ff165b801561145857506001600160a01b03831660009081526017602052604090205460ff16155b801561147d57506001600160a01b03821660009081526017602052604090205460ff16155b156114ab576007805460ff60a01b1916600160a01b17905561149d611889565b6007805460ff60a01b191690555b6008546000906001600160a01b03858116911614806114d757506009546001600160a01b038581169116145b1590508181156116a4576001600160a01b03841660009081526019602052604090205460ff16801561150b57506000600d54115b1561159957611530606461152a600d54866119a190919063ffffffff16565b906119b4565b9050600d54600f54826115439190611d59565b61154d9190611d70565b6014600082825461155e9190611cfb565b9091555050600d54600e546115739083611d59565b61157d9190611d70565b6013600082825461158e9190611cfb565b909155506116299050565b6001600160a01b03851660009081526019602052604090205460ff1680156115c357506000601054115b15611625576115e2606461152a601054866119a190919063ffffffff16565b9050601054601254826115f59190611d59565b6115ff9190611d70565b601460008282546116109190611cfb565b90915550506010546011546115739083611d59565b5060005b80156116a4573060009081526004602052604090205461164a908290611cfb565b30600081815260046020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061169b9085815260200190565b60405180910390a35b816116b8576116b38184611d92565b6116ba565b825b6001600160a01b0386166000908152600460205260409020546116dd9190611d92565b6001600160a01b03861660009081526004602052604090205581611701578261170b565b61170b8184611d92565b6001600160a01b03851660009081526004602052604090205461172e9190611cfb565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117829087815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316600090815260046020526040902054611805908290611d92565b6001600160a01b038085166000908152600460205260408082209390935590841681522054611835908290611cfb565b6001600160a01b0380841660008181526004602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610eb39085815260200190565b30600090815260046020526040812054905060006014546013546118ad9190611cfb565b9050600b546107d06118bf9190611d59565b8211156118d857600b546118d5906107d0611d59565b91505b600b5447908311156118ed576118ed836119c0565b60006118f94783611b12565b9050600061191961190b856001611cfb565b60145461152a9085906119a1565b6000601381905560148190556009546040519293506001600160a01b03169183156108fc0291849190818181858888f1935050505015801561195f573d6000803e3d6000fd5b506008546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611999573d6000803e3d6000fd5b505050505050565b60006119ad8284611d59565b9392505050565b60006119ad8284611d70565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119f5576119f5611da5565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611a4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a729190611d0e565b81600181518110611a8557611a85611da5565b6001600160a01b039283166020918202929092010152600654611aab9130911684610d9b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611ae4908590600090869030904290600401611dbb565b600060405180830381600087803b158015611afe57600080fd5b505af1158015611999573d6000803e3d6000fd5b60006119ad8284611d92565b600060208083528351808285015260005b81811015611b4b57858101830151858201604001528201611b2f565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610d9857600080fd5b60008060408385031215611b9457600080fd5b8235611b9f81611b6c565b946020939093013593505050565b600060208284031215611bbf57600080fd5b81356119ad81611b6c565b600080600060608486031215611bdf57600080fd5b8335611bea81611b6c565b92506020840135611bfa81611b6c565b929592945050506040919091013590565b60008060008060808587031215611c2157600080fd5b5050823594602084013594506040840135936060013592509050565b60008060408385031215611c5057600080fd5b8235611c5b81611b6c565b91506020830135611c6b81611b6c565b809150509250929050565b600181811c90821680611c8a57607f821691505b602082108103611caa57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075a5761075a611ce5565b600060208284031215611d2057600080fd5b81516119ad81611b6c565b600080600060608486031215611d4057600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761075a5761075a611ce5565b600082611d8d57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561075a5761075a611ce5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611e0b5784516001600160a01b031683529383019391830191600101611de6565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212205431af440ee79408d312e59c5ea5275d0e941473b8a12220675cd5f8848517c264736f6c63430008130033

Deployed Bytecode Sourcemap

5628:10757:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7538:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8482:194;;;;;;;;;;-1:-1:-1;8482:194:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8482:194:0;1023:187:1;6429:31:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;6429:31:0;1215:177:1;6641:34:0;;;;;;;;;;-1:-1:-1;6641:34:0;;;;;;;;;;;7832:99;;;;;;;;;;-1:-1:-1;7911:12:0;;7832:99;;6824:41;;;;;;;;;;-1:-1:-1;6824:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8684:529;;;;;;;;;;-1:-1:-1;8684:529:0;;;;;:::i;:::-;;:::i;10988:119::-;;;;;;;;;;;;;:::i;7740:84::-;;;;;;;;;;-1:-1:-1;7740:84:0;;7814:2;2252:36:1;;2240:2;2225:18;7740:84:0;2110:184:1;6001:22:0;;;;;;;;;;-1:-1:-1;6001:22:0;;;;-1:-1:-1;;;;;6001:22:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;6001:22:0;2299:203:1;9221:290:0;;;;;;;;;;-1:-1:-1;9221:290:0;;;;;:::i;:::-;;:::i;6682:31::-;;;;;;;;;;-1:-1:-1;6682:31:0;;;;;;;;;;;6060:21;;;;;;;;;;-1:-1:-1;6060:21:0;;;;-1:-1:-1;;;;;6060:21:0;;;6569:24;;;;;;;;;;;;;;;;6181:60;;;;;;;;;;;;;;;;6316:32;;;;;;;;;;;;;;;;6874:36;;;;;;;;;;-1:-1:-1;6874:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6088:22;;;;;;;;;;-1:-1:-1;6088:22:0;;;;-1:-1:-1;;;;;6088:22:0;;;6391:29;;;;;;;;;;;;;;;;7939:143;;;;;;;;;;-1:-1:-1;7939:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8056:18:0;8029:7;8056:18;;;:9;:18;;;;;;;7939:143;894:103;;;;;;;;;;;;;:::i;:::-;;671:87;;;;;;;;;;-1:-1:-1;717:7:0;744:6;-1:-1:-1;;;;;744:6:0;671:87;;7637:95;;;;;;;;;;;;;:::i;5967:27::-;;;;;;;;;;-1:-1:-1;5967:27:0;;;;-1:-1:-1;;;;;5967:27:0;;;9519:475;;;;;;;;;;-1:-1:-1;9519:475:0;;;;;:::i;:::-;;:::i;6355:29::-;;;;;;;;;;;;;;;;8090:200;;;;;;;;;;-1:-1:-1;8090:200:0;;;;;:::i;:::-;;:::i;6248:59::-;;;;;;;;;;;;;;;;11115:524;;;;;;;;;;-1:-1:-1;11115:524:0;;;;;:::i;:::-;;:::i;6467:28::-;;;;;;;;;;;;;;;;10390:590;;;;;;;;;;;;;:::i;8298:176::-;;;;;;;;;;-1:-1:-1;8298:176:0;;;;;:::i;:::-;-1:-1:-1;;;;;8439:18:0;;;8412:7;8439:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8298:176;6119:55;;;;;;;;;;;;;;;;6539:23;;;;;;;;;;;;;;;;6502:28;;;;;;;;;;;;;;;;6602:32;;;;;;;;;;-1:-1:-1;6602:32:0;;;;;;;;1005:238;;;;;;;;;;-1:-1:-1;1005:238:0;;;;;:::i;:::-;;:::i;7538:91::-;7583:13;7616:5;7609:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7538:91;:::o;8482:194::-;8590:4;8607:39;272:10;8630:7;8639:6;8607:8;:39::i;:::-;-1:-1:-1;8664:4:0;8482:194;;;;;:::o;8684:529::-;8824:4;8841:36;8851:6;8859:9;8870:6;8841:9;:36::i;:::-;-1:-1:-1;;;;;8917:19:0;;8890:24;8917:19;;;:11;:19;;;;;;;;272:10;8917:33;;;;;;;;8983:26;;;;8961:116;;;;-1:-1:-1;;;8961:116:0;;4103:2:1;8961:116:0;;;4085:21:1;4142:2;4122:18;;;4115:30;4181:34;4161:18;;;4154:62;-1:-1:-1;;;4232:18:1;;;4225:38;4280:19;;8961:116:0;;;;;;;;;9113:57;9122:6;272:10;9163:6;9144:16;:25;9113:8;:57::i;:::-;-1:-1:-1;9201:4:0;;8684:529;-1:-1:-1;;;;8684:529:0:o;10988:119::-;11039:4;744:6;;-1:-1:-1;;;;;744:6:0;272:10;806:23;798:68;;;;-1:-1:-1;;;798:68:0;;;;;;;:::i;:::-;-1:-1:-1;11056:13:0::1;:21:::0;;-1:-1:-1;;11056:21:0::1;::::0;;;10988:119;:::o;9221:290::-;272:10;9334:4;9423:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9423:34:0;;;;;;;;;;9334:4;;9351:130;;9401:7;;9423:47;;9460:10;;9423:47;:::i;:::-;9351:8;:130::i;894:103::-;717:7;744:6;-1:-1:-1;;;;;744:6:0;272:10;806:23;798:68;;;;-1:-1:-1;;;798:68:0;;;;;;;:::i;:::-;959:30:::1;986:1;959:18;:30::i;:::-;894:103::o:0;7637:95::-;7684:13;7717:7;7710:14;;;;;:::i;9519:475::-;272:10;9637:4;9681:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9681:34:0;;;;;;;;;;9748:35;;;;9726:122;;;;-1:-1:-1;;;9726:122:0;;5135:2:1;9726:122:0;;;5117:21:1;5174:2;5154:18;;;5147:30;5213:34;5193:18;;;5186:62;-1:-1:-1;;;5264:18:1;;;5257:35;5309:19;;9726:122:0;4933:401:1;9726:122:0;9884:67;272:10;9907:7;9935:15;9916:16;:34;9884:8;:67::i;:::-;-1:-1:-1;9982:4:0;;9519:475;-1:-1:-1;;;9519:475:0:o;8090:200::-;8201:4;8218:42;272:10;8242:9;8253:6;8218:9;:42::i;11115:524::-;717:7;744:6;-1:-1:-1;;;;;744:6:0;272:10;806:23;798:68;;;;-1:-1:-1;;;798:68:0;;;;;;;:::i;:::-;11288:8:::1;:20:::0;;;11319:9:::1;:22:::0;;;11366:20:::1;11331:10:::0;11299:9;11366:20:::1;:::i;:::-;11352:11;:34:::0;11397:9:::1;:22:::0;;;11430:10:::1;:24:::0;;;11480:22:::1;11443:11:::0;11409:10;11480:22:::1;:::i;:::-;11465:12;:37:::0;11535:11:::1;::::0;11550:2:::1;-1:-1:-1::0;11535:17:0;::::1;::::0;:39:::1;;;11572:2;11556:12;;:18;;11535:39;11513:118;;;::::0;-1:-1:-1;;;11513:118:0;;5541:2:1;11513:118:0::1;::::0;::::1;5523:21:1::0;5580:2;5560:18;;;5553:30;5619:31;5599:18;;;5592:59;5668:18;;11513:118:0::1;5339:353:1::0;11513:118:0::1;11115:524:::0;;;;:::o;10390:590::-;717:7;744:6;-1:-1:-1;;;;;744:6:0;272:10;806:23;798:68;;;;-1:-1:-1;;;798:68:0;;;;;;;:::i;:::-;10466:9:::1;;;;;;;;;-1:-1:-1::0;;;;;10466:9:0::1;-1:-1:-1::0;;;;;10466:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10454:43:0::1;;10520:4;10540:9;;;;;;;;;-1:-1:-1::0;;;;;10540:9:0::1;-1:-1:-1::0;;;;;10540:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10454:113;::::0;-1:-1:-1;;;;;;10454:113:0::1;::::0;;;;;;-1:-1:-1;;;;;6183:15:1;;;10454:113:0::1;::::0;::::1;6165:34:1::0;6235:15;;6215:18;;;6208:43;6100:18;;10454:113:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10444:7;:123:::0;;-1:-1:-1;;;;;;10444:123:0::1;-1:-1:-1::0;;;;;10444:123:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;10580:22:0;;;:4:::1;:22;::::0;;;;:29;;-1:-1:-1;;10580:29:0::1;-1:-1:-1::0;10580:29:0;;::::1;::::0;;;10654:9:::1;::::0;10666:12;;10622:57:::1;::::0;10639:4:::1;::::0;10654:9:::1;::::0;10622:8:::1;:57::i;:::-;10692:9;::::0;-1:-1:-1;;;;;10692:9:0::1;:25;10725:21;10770:4;10790:24;10770:4:::0;-1:-1:-1;;;;;8056:18:0;8029:7;8056:18;;;:9;:18;;;;;;;7939:143;10790:24:::1;10829:1;10845::::0;10861:7:::1;717::::0;744:6;-1:-1:-1;;;;;744:6:0;;671:87;10861:7:::1;10692:217;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10692:217:0;;;-1:-1:-1;;;;;6621:15:1;;;10692:217:0::1;::::0;::::1;6603:34:1::0;6653:18;;;6646:34;;;;6696:18;;;6689:34;;;;6739:18;;;6732:34;6803:15;;;6782:19;;;6775:44;10883:15:0::1;6835:19:1::0;;;6828:35;6537:19;;10692:217:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10922:14:0::1;:21:::0;;-1:-1:-1;;10954:18:0;;;;;-1:-1:-1;10390:590:0:o;1005:238::-;717:7;744:6;-1:-1:-1;;;;;744:6:0;272:10;806:23;798:68;;;;-1:-1:-1;;;798:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1108:22:0;::::1;1086:110;;;::::0;-1:-1:-1;;;1086:110:0;;7387:2:1;1086:110:0::1;::::0;::::1;7369:21:1::0;7426:2;7406:18;;;7399:30;7465:34;7445:18;;;7438:62;-1:-1:-1;;;7516:18:1;;;7509:36;7562:19;;1086:110:0::1;7185:402:1::0;1086:110:0::1;1207:28;1226:8;1207:18;:28::i;:::-;1005:238:::0;:::o;10002:380::-;-1:-1:-1;;;;;10138:19:0;;10130:68;;;;-1:-1:-1;;;10130:68:0;;7794:2:1;10130:68:0;;;7776:21:1;7833:2;7813:18;;;7806:30;7872:34;7852:18;;;7845:62;-1:-1:-1;;;7923:18:1;;;7916:34;7967:19;;10130:68:0;7592:400:1;10130:68:0;-1:-1:-1;;;;;10217:21:0;;10209:68;;;;-1:-1:-1;;;10209:68:0;;8199:2:1;10209:68:0;;;8181:21:1;8238:2;8218:18;;;8211:30;8277:34;8257:18;;;8250:62;-1:-1:-1;;;8328:18:1;;;8321:32;8370:19;;10209:68:0;7997:398:1;10209:68:0;-1:-1:-1;;;;;10290:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10342:32;;1361:25:1;;;10342:32:0;;1334:18:1;10342:32:0;;;;;;;;10002:380;;;:::o;11647:3046::-;-1:-1:-1;;;;;11736:18:0;;11728:68;;;;-1:-1:-1;;;11728:68:0;;8602:2:1;11728:68:0;;;8584:21:1;8641:2;8621:18;;;8614:30;8680:34;8660:18;;;8653:62;-1:-1:-1;;;8731:18:1;;;8724:35;8776:19;;11728:68:0;8400:401:1;11728:68:0;-1:-1:-1;;;;;11815:16:0;;11807:64;;;;-1:-1:-1;;;11807:64:0;;9008:2:1;11807:64:0;;;8990:21:1;9047:2;9027:18;;;9020:30;9086:34;9066:18;;;9059:62;-1:-1:-1;;;9137:18:1;;;9130:33;9180:19;;11807:64:0;8806:399:1;11807:64:0;-1:-1:-1;;;;;11893:17:0;;;;;;:11;:17;;;;;;;;11892:18;11884:48;;;;-1:-1:-1;;;11884:48:0;;9412:2:1;11884:48:0;;;9394:21:1;9451:2;9431:18;;;9424:30;-1:-1:-1;;;9470:18:1;;;9463:47;9527:18;;11884:48:0;9210:341:1;11884:48:0;-1:-1:-1;;;;;11952:15:0;;;;;;:11;:15;;;;;;;;11951:16;11943:44;;;;-1:-1:-1;;;11943:44:0;;9758:2:1;11943:44:0;;;9740:21:1;9797:2;9777:18;;;9770:30;-1:-1:-1;;;9816:18:1;;;9809:45;9871:18;;11943:44:0;9556:339:1;11943:44:0;-1:-1:-1;;;;;12004:21:0;;12020:4;12004:21;;:44;;-1:-1:-1;;;;;;12029:19:0;;12043:4;12029:19;12004:44;:59;;;-1:-1:-1;12052:11:0;;12004:59;12000:148;;;12080:35;12098:4;12104:2;12108:6;12080:17;:35::i;:::-;11647:3046;;;:::o;12000:148::-;12164:13;;;;12160:1206;;;-1:-1:-1;;;;;12199:15:0;;;;;;:9;:15;;;;;;;;12198:16;:34;;;;-1:-1:-1;;;;;;12219:13:0;;;;;;:9;:13;;;;;;;;12218:14;12198:34;:45;;;;-1:-1:-1;12237:6:0;;-1:-1:-1;;;12237:6:0;;;;12236:7;12198:45;12194:1161;;;12269:14;;;;;;;12264:208;;-1:-1:-1;;;;;12342:17:0;;;;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;12363:15:0;;;;;;:11;:15;;;;;;;;12342:36;12308:144;;;;-1:-1:-1;;;12308:144:0;;10102:2:1;12308:144:0;;;10084:21:1;10141:2;10121:18;;;10114:30;-1:-1:-1;;;10160:18:1;;;10153:52;10222:18;;12308:144:0;9900:346:1;12308:144:0;-1:-1:-1;;;;;12496:10:0;;;;;;:4;:10;;;;;;;;:28;;;;-1:-1:-1;;;;;;12511:13:0;;;;;;:9;:13;;;;;;;;12510:14;12496:28;12492:848;;;12593:9;;12583:6;:19;;12549:147;;;;-1:-1:-1;;;12549:147:0;;10453:2:1;12549:147:0;;;10435:21:1;10492:2;10472:18;;;10465:30;10531:34;10511:18;;;10504:62;-1:-1:-1;;;10582:18:1;;;10575:40;10632:19;;12549:147:0;10251:406:1;12549:147:0;12779:13;;-1:-1:-1;;;;;8056:18:0;;8029:7;8056:18;;;:9;:18;;;;;;12753:22;;:6;:22;:::i;:::-;:39;;12719:144;;;;-1:-1:-1;;;12719:144:0;;10864:2:1;12719:144:0;;;10846:21:1;10903:2;10883:18;;;10876:30;-1:-1:-1;;;10922:18:1;;;10915:49;10981:18;;12719:144:0;10662:343:1;12719:144:0;12492:848;;;-1:-1:-1;;;;;12893:8:0;;;;;;:4;:8;;;;;;;;:28;;;;-1:-1:-1;;;;;;12906:15:0;;;;;;:9;:15;;;;;;;;12905:16;12893:28;12889:451;;;12990:9;;12980:6;:19;;12946:148;;;;-1:-1:-1;;;12946:148:0;;11212:2:1;12946:148:0;;;11194:21:1;11251:2;11231:18;;;11224:30;11290:34;11270:18;;;11263:62;-1:-1:-1;;;11341:18:1;;;11334:41;11392:19;;12946:148:0;11010:407:1;12889:451:0;-1:-1:-1;;;;;13125:13:0;;;;;;:9;:13;;;;;;;;13124:14;:27;;;;-1:-1:-1;;;;;;13143:8:0;;;;;;:4;:8;;;;;;;;13142:9;13124:27;13120:220;;;13236:13;;-1:-1:-1;;;;;8056:18:0;;8029:7;8056:18;;;:9;:18;;;;;;13210:22;;:6;:22;:::i;:::-;:39;;13176:144;;;;-1:-1:-1;;;13176:144:0;;10864:2:1;13176:144:0;;;10846:21:1;10903:2;10883:18;;;10876:30;-1:-1:-1;;;10922:18:1;;;10915:49;10981:18;;13176:144:0;10662:343:1;13176:144:0;13396:11;;;;;;;:35;;;;-1:-1:-1;13425:6:0;;-1:-1:-1;;;13425:6:0;;;;13424:7;13396:35;:60;;;;-1:-1:-1;;;;;;13448:8:0;;;;;;:4;:8;;;;;;;;13396:60;:95;;;;-1:-1:-1;;;;;;13474:17:0;;;;;;:11;:17;;;;;;;;13473:18;13396:95;:128;;;;-1:-1:-1;;;;;;13509:15:0;;;;;;:11;:15;;;;;;;;13508:16;13396:128;13378:252;;;13551:6;:13;;-1:-1:-1;;;;13551:13:0;-1:-1:-1;;;13551:13:0;;;13579:10;:8;:10::i;:::-;13604:6;:14;;-1:-1:-1;;;;13604:14:0;;;13378:252;13667:6;;13642:12;;-1:-1:-1;;;;;13659:14:0;;;13667:6;;13659:14;;:33;;-1:-1:-1;13685:7:0;;-1:-1:-1;;;;;13677:15:0;;;13685:7;;13677:15;13659:33;13657:36;;-1:-1:-1;13721:6:0;13738:716;;;;-1:-1:-1;;;;;13770:8:0;;;;;;:4;:8;;;;;;;;:28;;;;;13797:1;13782:12;;:16;13770:28;13766:494;;;13826:33;13855:3;13826:24;13837:12;;13826:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;13819:40;;13913:12;;13899:10;;13892:4;:17;;;;:::i;:::-;13891:34;;;;:::i;:::-;13878:9;;:47;;;;;;;:::i;:::-;;;;-1:-1:-1;;13977:12:0;;13964:9;;13957:16;;:4;:16;:::i;:::-;13956:33;;;;:::i;:::-;13944:8;;:45;;;;;;;:::i;:::-;;;;-1:-1:-1;13766:494:0;;-1:-1:-1;13766:494:0;;-1:-1:-1;;;;;14015:10:0;;;;;;:4;:10;;;;;;;;:29;;;;;14043:1;14029:11;;:15;14015:29;14011:249;;;14072:32;14100:3;14072:23;14083:11;;14072:6;:10;;:23;;;;:::i;:32::-;14065:39;;14157:11;;14144:9;;14137:4;:16;;;;:::i;:::-;14136:32;;;;:::i;:::-;14123:9;;:45;;;;;;;:::i;:::-;;;;-1:-1:-1;;14219:11:0;;14207:8;;14200:15;;:4;:15;:::i;14011:249::-;-1:-1:-1;14259:1:0;14011:249;14281:8;;14277:166;;14355:4;14337:24;;;;:9;:24;;;;;;:31;;14364:4;;14337:31;:::i;:::-;14328:4;14310:24;;;;:9;:24;;;;;;;:58;;;;14392:35;;-1:-1:-1;;;;;14392:35:0;;;;;;;14422:4;1361:25:1;;1349:2;1334:18;;1215:177;14392:35:0;;;;;;;;14277:166;14529:7;:34;;14549:13;14558:4;14549:6;:13;:::i;:::-;14529:34;;;14539:6;14529:34;-1:-1:-1;;;;;14497:15:0;;;;;;:9;:15;;;;;;:67;;;;:::i;:::-;-1:-1:-1;;;;;14466:15:0;;;;;;:9;:15;;;;;:98;14608:7;:34;;14636:6;14608:34;;;14619:13;14628:4;14619:6;:13;:::i;:::-;-1:-1:-1;;;;;14591:13:0;;;;;;:9;:13;;;;;;:52;;;;:::i;:::-;-1:-1:-1;;;;;14575:13:0;;;;;;;:9;:13;;;;;;;:68;;;;14659:26;;;;;;;;;;14678:6;1361:25:1;;1349:2;1334:18;;1215:177;14659:26:0;;;;;;;;11717:2976;;11647:3046;;;:::o;1251:191::-;1325:16;1344:6;;-1:-1:-1;;;;;1361:17:0;;;-1:-1:-1;;;;;;1361:17:0;;;;;;1394:40;;1344:6;;;;;;;1394:40;;1325:16;1394:40;1314:128;1251:191;:::o;14816:264::-;-1:-1:-1;;;;;14957:15:0;;;;;;:9;:15;;;;;;:24;;14975:6;;14957:24;:::i;:::-;-1:-1:-1;;;;;14939:15:0;;;;;;;:9;:15;;;;;;:42;;;;15008:13;;;;;;;:22;;15024:6;;15008:22;:::i;:::-;-1:-1:-1;;;;;14992:13:0;;;;;;;:9;:13;;;;;;;:38;;;;15046:26;;;;;;;;;;15065:6;1361:25:1;;1349:2;1334:18;;1215:177;15581:764:0;15664:4;15620:23;8056:18;;;:9;:18;;;;;;15620:50;;15681:25;15720:9;;15709:8;;:20;;;;:::i;:::-;15681:48;;15764:14;;15781:4;15764:21;;;;:::i;:::-;15746:15;:39;15742:111;;;15820:14;;:21;;15837:4;15820:21;:::i;:::-;15802:39;;15742:111;15947:14;;15893:21;;15929:32;;15925:71;;;15963:33;15980:15;15963:16;:33::i;:::-;16009:18;16030:44;:21;16056:17;16030:25;:44::i;:::-;16009:65;-1:-1:-1;16085:17:0;16105:76;16149:21;:17;16169:1;16149:21;:::i;:::-;16120:9;;16105:25;;:10;;:14;:25::i;:76::-;16205:1;16194:8;:12;;;16217:9;:13;;;16251:7;;16243:36;;16085:96;;-1:-1:-1;;;;;;16251:7:0;;16243:36;;;;;16085:96;;16243:36;;16205:1;16243:36;16085:96;16251:7;16243:36;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16298:6:0;;16290:47;;-1:-1:-1;;;;;16298:6:0;;;;16315:21;16290:47;;;;;16298:6;16290:47;16298:6;16290:47;16315:21;16298:6;16290:47;;;;;;;;;;;;;;;;;;;;;15609:736;;;;;15581:764::o;3733:98::-;3791:7;3818:5;3822:1;3818;:5;:::i;:::-;3811:12;3733:98;-1:-1:-1;;;3733:98:0:o;3839:::-;3897:7;3924:5;3928:1;3924;:5;:::i;15088:485::-;15178:16;;;15192:1;15178:16;;;;;;;;15154:21;;15178:16;;;;;;;;;;-1:-1:-1;15178:16:0;15154:40;;15223:4;15205;15210:1;15205:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15205:23:0;;;:7;;;;;;;;;;:23;;;;15249:9;;:16;;;-1:-1:-1;;;15249:16:0;;;;:9;;;;;:14;;:16;;;;;15205:7;;15249:16;;;;;:9;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15239:4;15244:1;15239:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15239:26:0;;;:7;;;;;;;;;:26;15310:9;;15278:56;;15295:4;;15310:9;15322:11;15278:8;:56::i;:::-;15347:9;;:218;;-1:-1:-1;;;15347:218:0;;-1:-1:-1;;;;;15347:9:0;;;;:60;;:218;;15422:11;;15347:9;;15492:4;;15519;;15539:15;;15347:218;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3627:98;3685:7;3712:5;3716:1;3712;: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:247::-;1456:6;1509:2;1497:9;1488:7;1484:23;1480:32;1477:52;;;1525:1;1522;1515:12;1477:52;1564:9;1551:23;1583:31;1608:5;1583:31;:::i;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2733:385::-;2819:6;2827;2835;2843;2896:3;2884:9;2875:7;2871:23;2867:33;2864:53;;;2913:1;2910;2903:12;2864:53;-1:-1:-1;;2936:23:1;;;3006:2;2991:18;;2978:32;;-1:-1:-1;3057:2:1;3042:18;;3029:32;;3108:2;3093:18;3080:32;;-1:-1:-1;2733:385:1;-1:-1:-1;2733:385:1:o;3123:388::-;3191:6;3199;3252:2;3240:9;3231:7;3227:23;3223:32;3220:52;;;3268:1;3265;3258:12;3220:52;3307:9;3294:23;3326:31;3351:5;3326:31;:::i;:::-;3376:5;-1:-1:-1;3433:2:1;3418:18;;3405:32;3446:33;3405:32;3446:33;:::i;:::-;3498:7;3488:17;;;3123:388;;;;;:::o;3516:380::-;3595:1;3591:12;;;;3638;;;3659:61;;3713:4;3705:6;3701:17;3691:27;;3659:61;3766:2;3758:6;3755:14;3735:18;3732:38;3729:161;;3812:10;3807:3;3803:20;3800:1;3793:31;3847:4;3844:1;3837:15;3875:4;3872:1;3865:15;3729:161;;3516:380;;;:::o;4310:356::-;4512:2;4494:21;;;4531:18;;;4524:30;4590:34;4585:2;4570:18;;4563:62;4657:2;4642:18;;4310:356::o;4671:127::-;4732:10;4727:3;4723:20;4720:1;4713:31;4763:4;4760:1;4753:15;4787:4;4784:1;4777:15;4803:125;4868:9;;;4889:10;;;4886:36;;;4902:18;;:::i;5697:251::-;5767:6;5820:2;5808:9;5799:7;5795:23;5791:32;5788:52;;;5836:1;5833;5826:12;5788:52;5868:9;5862:16;5887:31;5912:5;5887:31;:::i;6874:306::-;6962:6;6970;6978;7031:2;7019:9;7010:7;7006:23;7002:32;6999:52;;;7047:1;7044;7037:12;6999:52;7076:9;7070:16;7060:26;;7126:2;7115:9;7111:18;7105:25;7095:35;;7170:2;7159:9;7155:18;7149:25;7139:35;;6874:306;;;;;:::o;11422:168::-;11495:9;;;11526;;11543:15;;;11537:22;;11523:37;11513:71;;11564:18;;:::i;11595:217::-;11635:1;11661;11651:132;;11705:10;11700:3;11696:20;11693:1;11686:31;11740:4;11737:1;11730:15;11768:4;11765:1;11758:15;11651:132;-1:-1:-1;11797:9:1;;11595:217::o;11817:128::-;11884:9;;;11905:11;;;11902:37;;;11919:18;;:::i;12082:127::-;12143:10;12138:3;12134:20;12131:1;12124:31;12174:4;12171:1;12164:15;12198:4;12195:1;12188:15;12214:980;12476:4;12524:3;12513:9;12509:19;12555:6;12544:9;12537:25;12581:2;12619:6;12614:2;12603:9;12599:18;12592:34;12662:3;12657:2;12646:9;12642:18;12635:31;12686:6;12721;12715:13;12752:6;12744;12737:22;12790:3;12779:9;12775:19;12768:26;;12829:2;12821:6;12817:15;12803:29;;12850:1;12860:195;12874:6;12871:1;12868:13;12860:195;;;12939:13;;-1:-1:-1;;;;;12935:39:1;12923:52;;13030:15;;;;12995:12;;;;12971:1;12889:9;12860:195;;;-1:-1:-1;;;;;;;13111:32:1;;;;13106:2;13091:18;;13084:60;-1:-1:-1;;;13175:3:1;13160:19;13153:35;13072:3;12214:980;-1:-1:-1;;;12214:980:1:o

Swarm Source

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