ETH Price: $2,419.44 (+0.74%)

Token

Doragon Kira (KIRA)
 

Overview

Max Total Supply

4,860,055.281463717715479702 KIRA

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,770.991653818440923965 KIRA

Value
$0.00
0x93b6e6241d7ff33ca450064fe61988412fd3d108
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:
KIRA

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-24
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

    function transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    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);
}

contract KIRA is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;

    uint256 private time;
    uint256 private bTime;

    uint256 private _tTotal = 5 * 10**6 * 10**18;

    struct fee {
        uint256 feeTotal;
        uint256 pcMarketing;
        uint256 pcBurn;
        uint256 pcLP;
    }
    fee private _sellFee = fee(70,50,10,10);
    fee private _buyFee = fee(70,50,10,10);
    fee private zeroTax = fee(0,0,0,0);
    fee private _maxTax = fee(990,990,0,0);
    fee private _initialSellTax = fee(200,200,0,0);

    string private constant _name = unicode"Doragon Kira";
    string private constant _symbol = unicode"KIRA";
    uint8 private constant _decimals = 18;

    uint256 private _maxTxAmount = _tTotal.div(100);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private _tokensForLp = 0;
    uint256 private _tokensForMarketing = 0;
    uint256 private minBalance = _tTotal.div(10000);

    address payable private _marketingWallet;

    IUniswapV2Router02 private uniswapV2Router;
    IERC20 private uniswapV2Pair;

    address private uniswapV2PairAddress;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _marketingWallet = payable(0x5677ff3e08517b979BE2F6804D109759584A0cEe);

        _tOwned[owner()] = _tTotal;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2PairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Pair = IERC20(uniswapV2PairAddress);

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


        emit Transfer(address(0),address(this),_tTotal);
    }

    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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

  

    function changeFeesBuy(uint256 _buyMarket,uint256 _buyBurn,uint256 _buyLP) external onlyOwner {
        _buyFee.pcLP = _buyLP;
        _buyFee.pcBurn = _buyBurn;
        _buyFee.pcMarketing = _buyMarket;
        _buyFee.feeTotal = _buyMarket.add(_buyBurn).add(_buyLP);
        require(_buyFee.feeTotal < 100,"cannot set fees above 10%");
    }
    function changeFeesSell(uint256 _sellMarket,uint256 _sellBurn,uint256 _sellLP) external onlyOwner {
        _sellFee.pcLP = _sellLP;
        _sellFee.pcBurn = _sellBurn;
        _sellFee.pcMarketing = _sellMarket;
        _sellFee.feeTotal = _sellMarket.add(_sellBurn).add(_sellLP);
        require(_sellFee.feeTotal < 100,"cannot set fees above 10%");
    }

    function changeLimits(uint256 pcMaxTx,uint256 pxMaxWallet) external onlyOwner {
        require(pcMaxTx > 1 && pxMaxWallet > 1,"can not set more than 10%");
        _maxTxAmount = _tTotal.mul(pcMaxTx).div(100);
        _maxWalletAmount = _tTotal.mul(pxMaxWallet).div(100);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
    }


    function excludeFromFees(address target) external onlyOwner{
        _isExcludedFromFee[target] = true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (from != owner() && to != owner()) {
            require(tradingOpen,"trading not active");
            fee storage _tax = zeroTax;
            require(!bots[from] && !bots[to]);

            if(!_isExcludedFromFee[to]){
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance");
                require(amount <= _maxTxAmount,"max wallet");
                if (from == uniswapV2PairAddress && to != address(uniswapV2Router)){
                    _tax = _buyFee;
                }
                if(bTime > block.number){
                    _tax = _maxTax;
                }
            }

            else if (to == uniswapV2PairAddress && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                if(block.timestamp > time){
                    _tax = _sellFee;
                }else{
                    _tax = _initialSellTax;
                }
            }
            
            
            if (!inSwap && from != uniswapV2PairAddress && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapBack(contractTokenBalance);
                }
            }

            if(_tax.feeTotal>0){
                uint256 tax = amount.mul(_tax.feeTotal).div(1000);
                amount = amount.sub(tax);
                _tokensForLp = _tokensForLp.add(tax.mul(_tax.pcLP).div(_tax.feeTotal));
                _tokensForMarketing = _tokensForMarketing.add(tax.mul(_tax.pcMarketing).div(_tax.feeTotal));
                uint256 _burnTax = tax.mul(_tax.pcBurn).div(_tax.feeTotal);
                tax = tax.sub(_burnTax);
                _tTotal = _tTotal.sub(_burnTax);
                _transferStandard(from,address(0xdEaD),_burnTax);
                _transferStandard(from,address(this),tax);
            }
        }
        		
        _transferStandard(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
    

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private {
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,address(0xdEaD),block.timestamp);
    }

    function swapBack(uint256 contractTokenBalance) private lockTheSwap {
        uint256 totalTokensToSwap = _tokensForLp + _tokensForMarketing;
        bool success;

        if (contractTokenBalance == 0 || totalTokensToSwap == 0) {
            return;
        }

        if (contractTokenBalance > minBalance * 20) {
            contractTokenBalance = minBalance * 20;
        }

        uint256 liquidityTokens = (contractTokenBalance * _tokensForLp) / _tokensForMarketing / 2;

        uint256 initialETHBalance = address(this).balance;

        swapTokensForEth(contractTokenBalance.sub(liquidityTokens));

        uint256 ethBalance = address(this).balance.sub(initialETHBalance);

        uint256 ethForMarketing = ethBalance.mul(_tokensForMarketing).div(
            totalTokensToSwap
        );

        uint256 ethForLiquidity = ethBalance - ethForMarketing;

        _tokensForMarketing = 0;
        _tokensForLp = 0;

        if (liquidityTokens > 0 && ethForLiquidity > 0) {
            addLiquidity(liquidityTokens, ethForLiquidity);
        }

        (success, ) = address(_marketingWallet).call{
            value: address(this).balance
        }("");
    
    }
    
    function openTrading() external onlyOwner {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (45 minutes);
        bTime = block.number + 2;
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address[] memory notbot) public onlyOwner {
        for(uint i=0;i<notbot.length;i++){bots[notbot[i]] = false;}
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tAmount); 
        emit Transfer(sender, recipient, tAmount);
    }

    receive() external payable {}
    
    function manualSwap() external onlyOwner{
        swapBack(_tOwned[address(this)]);
    }
    function recoverTokens(address tokenAddress) external {
        require(tokenAddress != uniswapV2PairAddress);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(owner(),recoveryToken.balanceOf(address(this)));
    }



}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":[{"internalType":"uint256","name":"_buyMarket","type":"uint256"},{"internalType":"uint256","name":"_buyBurn","type":"uint256"},{"internalType":"uint256","name":"_buyLP","type":"uint256"}],"name":"changeFeesBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellMarket","type":"uint256"},{"internalType":"uint256","name":"_sellBurn","type":"uint256"},{"internalType":"uint256","name":"_sellLP","type":"uint256"}],"name":"changeFeesSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pcMaxTx","type":"uint256"},{"internalType":"uint256","name":"pxMaxWallet","type":"uint256"}],"name":"changeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6a0422ca8b0a00a425000000600881905560466080819052603260a0819052600a60c081905260e08190526009839055818155600b819055600c819055610100839052610120829052610140819052610160819052600d92909255600e55600f81905560105560006101808190526101a08190526101c08190526101e081905260118190556012819055601381905560148190556103de61020081905261022081905261024082905261026082905260158190556016556017819055601881905561030060405260c86102808190526102a08190526102c08290526102e08290526019819055601a55601b819055601c556200010990606462000494602090811b62000bc317901c565b601d556200012960326008546200049460201b62000bc31790919060201c565b601e556000601f556000602055620001546127106008546200049460201b62000bc31790919060201c565b6021556025805461ffff60a81b19169055600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350602280546001600160a01b031916735677ff3e08517b979be2f6804d109759584a0cee17905560085460026000620001e66000546001600160a01b031690565b6001600160a01b03168152602080820192909252604090810160002092909255602380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155825163c45a015560e01b81529251909263c45a0155926004808301939192829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029d91906200052a565b6001600160a01b031663c9c6539630602360009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002fb57600080fd5b505afa15801562000310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033691906200052a565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200037f57600080fd5b505af115801562000394573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ba91906200052a565b602580546001600160a01b03929092166001600160a01b0319928316811790915560248054909216179055600160046000620003fe6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308082526004855283822080548716600190811790915560255490931682528382208054909616909217909455600854915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005d0565b6000620004de83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004e560201b60201c565b9392505050565b60008183620005125760405162461bcd60e51b815260040162000509919062000555565b60405180910390fd5b506000620005218486620005ad565b95945050505050565b6000602082840312156200053d57600080fd5b81516001600160a01b0381168114620004de57600080fd5b600060208083528351808285015260005b81811015620005845785810183015185820160400152820162000566565b8181111562000597576000604083870101525b50601f01601f1916929092016040019392505050565b600082620005cb57634e487b7160e01b600052601260045260246000fd5b500490565b611c2180620005e06000396000f3fe6080604052600436106101395760003560e01c80637cd9a595116100ab578063c9567bf91161006f578063c9567bf914610383578063c97c182114610398578063d0243792146103b8578063dd62ed3e146103d8578063e57f14e11461041e578063f2fde38b1461043e57600080fd5b80637cd9a595146102ce5780638da5cb5b146102ee57806395d89b4114610316578063a9059cbb14610343578063b515566a1461036357600080fd5b806323b872dd116100fd57806323b872dd1461021d578063313ce5671461023d57806351bc3c851461025957806370a082311461026e578063715018a6146102a4578063751039fc146102b957600080fd5b806304dcfd1d1461014557806306fdde0314610167578063095ea7b3146101ae57806316114acd146101de57806318160ddd146101fe57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50610165610160366004611777565b61045e565b005b34801561017357600080fd5b5060408051808201909152600c81526b446f7261676f6e204b69726160a01b60208201525b6040516101a591906117a3565b60405180910390f35b3480156101ba57600080fd5b506101ce6101c9366004611820565b610509565b60405190151581526020016101a5565b3480156101ea57600080fd5b506101656101f936600461184c565b610520565b34801561020a57600080fd5b506008545b6040519081526020016101a5565b34801561022957600080fd5b506101ce610238366004611869565b610652565b34801561024957600080fd5b50604051601281526020016101a5565b34801561026557600080fd5b506101656106bb565b34801561027a57600080fd5b5061020f61028936600461184c565b6001600160a01b031660009081526002602052604090205490565b3480156102b057600080fd5b50610165610700565b3480156102c557600080fd5b50610165610774565b3480156102da57600080fd5b506101656102e9366004611777565b6107a6565b3480156102fa57600080fd5b506000546040516001600160a01b0390911681526020016101a5565b34801561032257600080fd5b506040805180820190915260048152634b49524160e01b6020820152610198565b34801561034f57600080fd5b506101ce61035e366004611820565b61083d565b34801561036f57600080fd5b5061016561037e3660046118c0565b61084a565b34801561038f57600080fd5b506101656108e0565b3480156103a457600080fd5b506101656103b33660046118c0565b61099a565b3480156103c457600080fd5b506101656103d3366004611985565b610a2c565b3480156103e457600080fd5b5061020f6103f33660046119a7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561042a57600080fd5b5061016561043936600461184c565b610af0565b34801561044a57600080fd5b5061016561045936600461184c565b610b3e565b6000546001600160a01b031633146104915760405162461bcd60e51b8152600401610488906119e0565b60405180910390fd5b600c819055600b829055600a8390556104b4816104ae8585610c0c565b90610c0c565b60098190556064116105045760405162461bcd60e51b815260206004820152601960248201527863616e6e6f742073657420666565732061626f76652031302560381b6044820152606401610488565b505050565b6000610516338484610c6b565b5060015b92915050565b6025546001600160a01b038281169116141561053b57600080fd5b806001600160a01b03811663a9059cbb61055d6000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561059c57600080fd5b505afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611a15565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561061a57600080fd5b505af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105049190611a2e565b600061065f848484610d90565b6106b184336106ac85604051806060016040528060288152602001611bc4602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061120c565b610c6b565b5060019392505050565b6000546001600160a01b031633146106e55760405162461bcd60e51b8152600401610488906119e0565b306000908152600260205260409020546106fe90611246565b565b6000546001600160a01b0316331461072a5760405162461bcd60e51b8152600401610488906119e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461079e5760405162461bcd60e51b8152600401610488906119e0565b600854601d55565b6000546001600160a01b031633146107d05760405162461bcd60e51b8152600401610488906119e0565b6010819055600f829055600e8390556107ed816104ae8585610c0c565b600d8190556064116105045760405162461bcd60e51b815260206004820152601960248201527863616e6e6f742073657420666565732061626f76652031302560381b6044820152606401610488565b6000610516338484610d90565b6000546001600160a01b031633146108745760405162461bcd60e51b8152600401610488906119e0565b60005b81518110156108dc5760016005600084848151811061089857610898611a50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108d481611a7c565b915050610877565b5050565b6000546001600160a01b0316331461090a5760405162461bcd60e51b8152600401610488906119e0565b602554600160a01b900460ff16156109645760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610488565b6025805462ff00ff60a01b19166201000160a01b17905561098742610a8c611a97565b600655610995436002611a97565b600755565b6000546001600160a01b031633146109c45760405162461bcd60e51b8152600401610488906119e0565b60005b81518110156108dc576000600560008484815181106109e8576109e8611a50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a2481611a7c565b9150506109c7565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610488906119e0565b600182118015610a665750600181115b610ab25760405162461bcd60e51b815260206004820152601960248201527f63616e206e6f7420736574206d6f7265207468616e20313025000000000000006044820152606401610488565b610ad26064610acc846008546113b890919063ffffffff16565b90610bc3565b601d55600854610ae990606490610acc90846113b8565b601e555050565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610488906119e0565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610b685760405162461bcd60e51b8152600401610488906119e0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611437565b9392505050565b600080610c198385611a97565b905083811015610c055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610488565b6001600160a01b038316610ccd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610488565b6001600160a01b038216610d2e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610488565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610df45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610488565b6001600160a01b038216610e565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610488565b6000546001600160a01b03848116911614801590610e8257506000546001600160a01b03838116911614155b1561120157602554600160a01b900460ff16610ed55760405162461bcd60e51b815260206004820152601260248201527174726164696e67206e6f742061637469766560701b6044820152606401610488565b6001600160a01b03831660009081526005602052604090205460119060ff16158015610f1a57506001600160a01b03831660009081526005602052604090205460ff16155b610f2357600080fd5b6001600160a01b03831660009081526004602052604090205460ff1661102d57601e546001600160a01b038416600090815260026020526040902054610f6a908490611a97565b1115610fa75760405162461bcd60e51b815260206004820152600c60248201526b6e6f742061206368616e636560a01b6044820152606401610488565b601d54821115610fe65760405162461bcd60e51b815260206004820152600a6024820152691b585e081dd85b1b195d60b21b6044820152606401610488565b6025546001600160a01b03858116911614801561101157506023546001600160a01b03848116911614155b1561101a5750600d5b436007541115611028575060155b611098565b6025546001600160a01b03848116911614801561105857506023546001600160a01b03858116911614155b801561107d57506001600160a01b03841660009081526004602052604090205460ff16155b156110985760065442111561109457506009611098565b5060195b602554600160a81b900460ff161580156110c057506025546001600160a01b03858116911614155b80156110d55750602554600160b01b900460ff165b80156110fa57506001600160a01b03841660009081526004602052604090205460ff16155b1561112457306000908152600260205260409020546021548111156111225761112281611246565b505b8054156111ff57600061114a6103e8610acc8460000154866113b890919063ffffffff16565b90506111568382611465565b925061118361117a8360000154610acc8560030154856113b890919063ffffffff16565b601f5490610c0c565b601f55815460018301546111a9916111a091610acc9085906113b8565b60205490610c0c565b602055815460028301546000916111c591610acc9085906113b8565b90506111d18282611465565b6008549092506111e19082611465565b6008556111f18661dead836114a7565b6111fc8630846114a7565b50505b505b6105048383836114a7565b600081848411156112305760405162461bcd60e51b815260040161048891906117a3565b50600061123d8486611aaf565b95945050505050565b6025805460ff60a81b1916600160a81b179055602054601f5460009161126b91611a97565b9050600082158061127a575081155b156112865750506113a8565b602154611294906014611ac6565b8311156112ac576021546112a9906014611ac6565b92505b60006002602054601f54866112c19190611ac6565b6112cb9190611ae5565b6112d59190611ae5565b9050476112ea6112e58684611465565b61154d565b60006112f64783611465565b9050600061131386610acc602054856113b890919063ffffffff16565b905060006113218284611aaf565b60006020819055601f559050841580159061133c5750600081115b1561134b5761134b85826116b6565b6022546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611398576040519150601f19603f3d011682016040523d82523d6000602084013e61139d565b606091505b505050505050505050505b506025805460ff60a81b19169055565b6000826113c75750600061051a565b60006113d38385611ac6565b9050826113e08583611ae5565b14610c055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610488565b600081836114585760405162461bcd60e51b815260040161048891906117a3565b50600061123d8486611ae5565b6000610c0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061120c565b6001600160a01b0383166000908152600260205260409020546114ca9082611465565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546114f99082610c0c565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d839085815260200190565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158257611582611a50565b6001600160a01b03928316602091820292909201810191909152602354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115d657600080fd5b505afa1580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190611b07565b8160018151811061162157611621611a50565b6001600160a01b0392831660209182029290920101526023546116479130911684610c6b565b60235460405163791ac94760e01b81526001600160a01b039091169063791ac94790611680908590600090869030904290600401611b24565b600060405180830381600087803b15801561169a57600080fd5b505af11580156116ae573d6000803e3d6000fd5b505050505050565b6023546116ce9030906001600160a01b031684610c6b565b60235460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561173757600080fd5b505af115801561174b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117709190611b95565b5050505050565b60008060006060848603121561178c57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156117d0578581018301518582016040015282016117b4565b818111156117e2576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461180d57600080fd5b50565b803561181b816117f8565b919050565b6000806040838503121561183357600080fd5b823561183e816117f8565b946020939093013593505050565b60006020828403121561185e57600080fd5b8135610c05816117f8565b60008060006060848603121561187e57600080fd5b8335611889816117f8565b92506020840135611899816117f8565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118d357600080fd5b823567ffffffffffffffff808211156118eb57600080fd5b818501915085601f8301126118ff57600080fd5b813581811115611911576119116118aa565b8060051b604051601f19603f83011681018181108582111715611936576119366118aa565b60405291825284820192508381018501918883111561195457600080fd5b938501935b828510156119795761196a85611810565b84529385019392850192611959565b98975050505050505050565b6000806040838503121561199857600080fd5b50508035926020909101359150565b600080604083850312156119ba57600080fd5b82356119c5816117f8565b915060208301356119d5816117f8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a2757600080fd5b5051919050565b600060208284031215611a4057600080fd5b81518015158114610c0557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611a9057611a90611a66565b5060010190565b60008219821115611aaa57611aaa611a66565b500190565b600082821015611ac157611ac1611a66565b500390565b6000816000190483118215151615611ae057611ae0611a66565b500290565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b8151610c05816117f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b745784516001600160a01b031683529383019391830191600101611b4f565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611baa57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203884d7553a66397f99ffca8b23c4f308950840d064665350002f1244c2db465d64736f6c63430008090033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80637cd9a595116100ab578063c9567bf91161006f578063c9567bf914610383578063c97c182114610398578063d0243792146103b8578063dd62ed3e146103d8578063e57f14e11461041e578063f2fde38b1461043e57600080fd5b80637cd9a595146102ce5780638da5cb5b146102ee57806395d89b4114610316578063a9059cbb14610343578063b515566a1461036357600080fd5b806323b872dd116100fd57806323b872dd1461021d578063313ce5671461023d57806351bc3c851461025957806370a082311461026e578063715018a6146102a4578063751039fc146102b957600080fd5b806304dcfd1d1461014557806306fdde0314610167578063095ea7b3146101ae57806316114acd146101de57806318160ddd146101fe57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b50610165610160366004611777565b61045e565b005b34801561017357600080fd5b5060408051808201909152600c81526b446f7261676f6e204b69726160a01b60208201525b6040516101a591906117a3565b60405180910390f35b3480156101ba57600080fd5b506101ce6101c9366004611820565b610509565b60405190151581526020016101a5565b3480156101ea57600080fd5b506101656101f936600461184c565b610520565b34801561020a57600080fd5b506008545b6040519081526020016101a5565b34801561022957600080fd5b506101ce610238366004611869565b610652565b34801561024957600080fd5b50604051601281526020016101a5565b34801561026557600080fd5b506101656106bb565b34801561027a57600080fd5b5061020f61028936600461184c565b6001600160a01b031660009081526002602052604090205490565b3480156102b057600080fd5b50610165610700565b3480156102c557600080fd5b50610165610774565b3480156102da57600080fd5b506101656102e9366004611777565b6107a6565b3480156102fa57600080fd5b506000546040516001600160a01b0390911681526020016101a5565b34801561032257600080fd5b506040805180820190915260048152634b49524160e01b6020820152610198565b34801561034f57600080fd5b506101ce61035e366004611820565b61083d565b34801561036f57600080fd5b5061016561037e3660046118c0565b61084a565b34801561038f57600080fd5b506101656108e0565b3480156103a457600080fd5b506101656103b33660046118c0565b61099a565b3480156103c457600080fd5b506101656103d3366004611985565b610a2c565b3480156103e457600080fd5b5061020f6103f33660046119a7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561042a57600080fd5b5061016561043936600461184c565b610af0565b34801561044a57600080fd5b5061016561045936600461184c565b610b3e565b6000546001600160a01b031633146104915760405162461bcd60e51b8152600401610488906119e0565b60405180910390fd5b600c819055600b829055600a8390556104b4816104ae8585610c0c565b90610c0c565b60098190556064116105045760405162461bcd60e51b815260206004820152601960248201527863616e6e6f742073657420666565732061626f76652031302560381b6044820152606401610488565b505050565b6000610516338484610c6b565b5060015b92915050565b6025546001600160a01b038281169116141561053b57600080fd5b806001600160a01b03811663a9059cbb61055d6000546001600160a01b031690565b6040516370a0823160e01b81523060048201526001600160a01b038516906370a082319060240160206040518083038186803b15801561059c57600080fd5b505afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190611a15565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401602060405180830381600087803b15801561061a57600080fd5b505af115801561062e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105049190611a2e565b600061065f848484610d90565b6106b184336106ac85604051806060016040528060288152602001611bc4602891396001600160a01b038a166000908152600360209081526040808320338452909152902054919061120c565b610c6b565b5060019392505050565b6000546001600160a01b031633146106e55760405162461bcd60e51b8152600401610488906119e0565b306000908152600260205260409020546106fe90611246565b565b6000546001600160a01b0316331461072a5760405162461bcd60e51b8152600401610488906119e0565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461079e5760405162461bcd60e51b8152600401610488906119e0565b600854601d55565b6000546001600160a01b031633146107d05760405162461bcd60e51b8152600401610488906119e0565b6010819055600f829055600e8390556107ed816104ae8585610c0c565b600d8190556064116105045760405162461bcd60e51b815260206004820152601960248201527863616e6e6f742073657420666565732061626f76652031302560381b6044820152606401610488565b6000610516338484610d90565b6000546001600160a01b031633146108745760405162461bcd60e51b8152600401610488906119e0565b60005b81518110156108dc5760016005600084848151811061089857610898611a50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806108d481611a7c565b915050610877565b5050565b6000546001600160a01b0316331461090a5760405162461bcd60e51b8152600401610488906119e0565b602554600160a01b900460ff16156109645760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610488565b6025805462ff00ff60a01b19166201000160a01b17905561098742610a8c611a97565b600655610995436002611a97565b600755565b6000546001600160a01b031633146109c45760405162461bcd60e51b8152600401610488906119e0565b60005b81518110156108dc576000600560008484815181106109e8576109e8611a50565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a2481611a7c565b9150506109c7565b6000546001600160a01b03163314610a565760405162461bcd60e51b8152600401610488906119e0565b600182118015610a665750600181115b610ab25760405162461bcd60e51b815260206004820152601960248201527f63616e206e6f7420736574206d6f7265207468616e20313025000000000000006044820152606401610488565b610ad26064610acc846008546113b890919063ffffffff16565b90610bc3565b601d55600854610ae990606490610acc90846113b8565b601e555050565b6000546001600160a01b03163314610b1a5760405162461bcd60e51b8152600401610488906119e0565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b03163314610b685760405162461bcd60e51b8152600401610488906119e0565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611437565b9392505050565b600080610c198385611a97565b905083811015610c055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610488565b6001600160a01b038316610ccd5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610488565b6001600160a01b038216610d2e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610488565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610df45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610488565b6001600160a01b038216610e565760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610488565b6000546001600160a01b03848116911614801590610e8257506000546001600160a01b03838116911614155b1561120157602554600160a01b900460ff16610ed55760405162461bcd60e51b815260206004820152601260248201527174726164696e67206e6f742061637469766560701b6044820152606401610488565b6001600160a01b03831660009081526005602052604090205460119060ff16158015610f1a57506001600160a01b03831660009081526005602052604090205460ff16155b610f2357600080fd5b6001600160a01b03831660009081526004602052604090205460ff1661102d57601e546001600160a01b038416600090815260026020526040902054610f6a908490611a97565b1115610fa75760405162461bcd60e51b815260206004820152600c60248201526b6e6f742061206368616e636560a01b6044820152606401610488565b601d54821115610fe65760405162461bcd60e51b815260206004820152600a6024820152691b585e081dd85b1b195d60b21b6044820152606401610488565b6025546001600160a01b03858116911614801561101157506023546001600160a01b03848116911614155b1561101a5750600d5b436007541115611028575060155b611098565b6025546001600160a01b03848116911614801561105857506023546001600160a01b03858116911614155b801561107d57506001600160a01b03841660009081526004602052604090205460ff16155b156110985760065442111561109457506009611098565b5060195b602554600160a81b900460ff161580156110c057506025546001600160a01b03858116911614155b80156110d55750602554600160b01b900460ff165b80156110fa57506001600160a01b03841660009081526004602052604090205460ff16155b1561112457306000908152600260205260409020546021548111156111225761112281611246565b505b8054156111ff57600061114a6103e8610acc8460000154866113b890919063ffffffff16565b90506111568382611465565b925061118361117a8360000154610acc8560030154856113b890919063ffffffff16565b601f5490610c0c565b601f55815460018301546111a9916111a091610acc9085906113b8565b60205490610c0c565b602055815460028301546000916111c591610acc9085906113b8565b90506111d18282611465565b6008549092506111e19082611465565b6008556111f18661dead836114a7565b6111fc8630846114a7565b50505b505b6105048383836114a7565b600081848411156112305760405162461bcd60e51b815260040161048891906117a3565b50600061123d8486611aaf565b95945050505050565b6025805460ff60a81b1916600160a81b179055602054601f5460009161126b91611a97565b9050600082158061127a575081155b156112865750506113a8565b602154611294906014611ac6565b8311156112ac576021546112a9906014611ac6565b92505b60006002602054601f54866112c19190611ac6565b6112cb9190611ae5565b6112d59190611ae5565b9050476112ea6112e58684611465565b61154d565b60006112f64783611465565b9050600061131386610acc602054856113b890919063ffffffff16565b905060006113218284611aaf565b60006020819055601f559050841580159061133c5750600081115b1561134b5761134b85826116b6565b6022546040516001600160a01b03909116904790600081818185875af1925050503d8060008114611398576040519150601f19603f3d011682016040523d82523d6000602084013e61139d565b606091505b505050505050505050505b506025805460ff60a81b19169055565b6000826113c75750600061051a565b60006113d38385611ac6565b9050826113e08583611ae5565b14610c055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610488565b600081836114585760405162461bcd60e51b815260040161048891906117a3565b50600061123d8486611ae5565b6000610c0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061120c565b6001600160a01b0383166000908152600260205260409020546114ca9082611465565b6001600160a01b0380851660009081526002602052604080822093909355908416815220546114f99082610c0c565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d839085815260200190565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061158257611582611a50565b6001600160a01b03928316602091820292909201810191909152602354604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156115d657600080fd5b505afa1580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190611b07565b8160018151811061162157611621611a50565b6001600160a01b0392831660209182029290920101526023546116479130911684610c6b565b60235460405163791ac94760e01b81526001600160a01b039091169063791ac94790611680908590600090869030904290600401611b24565b600060405180830381600087803b15801561169a57600080fd5b505af11580156116ae573d6000803e3d6000fd5b505050505050565b6023546116ce9030906001600160a01b031684610c6b565b60235460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c4016060604051808303818588803b15801561173757600080fd5b505af115801561174b573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117709190611b95565b5050505050565b60008060006060848603121561178c57600080fd5b505081359360208301359350604090920135919050565b600060208083528351808285015260005b818110156117d0578581018301518582016040015282016117b4565b818111156117e2576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461180d57600080fd5b50565b803561181b816117f8565b919050565b6000806040838503121561183357600080fd5b823561183e816117f8565b946020939093013593505050565b60006020828403121561185e57600080fd5b8135610c05816117f8565b60008060006060848603121561187e57600080fd5b8335611889816117f8565b92506020840135611899816117f8565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156118d357600080fd5b823567ffffffffffffffff808211156118eb57600080fd5b818501915085601f8301126118ff57600080fd5b813581811115611911576119116118aa565b8060051b604051601f19603f83011681018181108582111715611936576119366118aa565b60405291825284820192508381018501918883111561195457600080fd5b938501935b828510156119795761196a85611810565b84529385019392850192611959565b98975050505050505050565b6000806040838503121561199857600080fd5b50508035926020909101359150565b600080604083850312156119ba57600080fd5b82356119c5816117f8565b915060208301356119d5816117f8565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215611a2757600080fd5b5051919050565b600060208284031215611a4057600080fd5b81518015158114610c0557600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415611a9057611a90611a66565b5060010190565b60008219821115611aaa57611aaa611a66565b500190565b600082821015611ac157611ac1611a66565b500390565b6000816000190483118215151615611ae057611ae0611a66565b500290565b600082611b0257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611b1957600080fd5b8151610c05816117f8565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611b745784516001600160a01b031683529383019391830191600101611b4f565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611baa57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203884d7553a66397f99ffca8b23c4f308950840d064665350002f1244c2db465d64736f6c63430008090033

Deployed Bytecode Sourcemap

3700:10650:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7620:364;;;;;;;;;;-1:-1:-1;7620:364:0;;;;;:::i;:::-;;:::i;:::-;;5938:83;;;;;;;;;;-1:-1:-1;6008:5:0;;;;;;;;;;;;-1:-1:-1;;;6008:5:0;;;;5938:83;;;;;;;:::i;:::-;;;;;;;;6769:161;;;;;;;;;;-1:-1:-1;6769:161:0;;;;;:::i;:::-;;:::i;:::-;;;1697:14:1;;1690:22;1672:41;;1660:2;1645:18;6769:161:0;1532:187:1;14088:253:0;;;;;;;;;;-1:-1:-1;14088:253:0;;;;;:::i;:::-;;:::i;6215:95::-;;;;;;;;;;-1:-1:-1;6295:7:0;;6215:95;;;2122:25:1;;;2110:2;2095:18;6215:95:0;1976:177:1;6938:313:0;;;;;;;;;;-1:-1:-1;6938:313:0;;;;;:::i;:::-;;:::i;6124:83::-;;;;;;;;;;-1:-1:-1;6124:83:0;;4640:2;2761:36:1;;2749:2;2734:18;6124:83:0;2619:184:1;13991:91:0;;;;;;;;;;;;;:::i;6318:117::-;;;;;;;;;;-1:-1:-1;6318:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6411:16:0;6384:7;6411:16;;;:7;:16;;;;;;;6318:117;2779:148;;;;;;;;;;;;;:::i;8282:83::-;;;;;;;;;;;;;:::i;7265:349::-;;;;;;;;;;-1:-1:-1;7265:349:0;;;;;:::i;:::-;;:::i;2384:79::-;;;;;;;;;;-1:-1:-1;2422:7:0;2449:6;2384:79;;-1:-1:-1;;;;;2449:6:0;;;2954:51:1;;2942:2;2927:18;2384:79:0;2808:203:1;6029:87:0;;;;;;;;;;-1:-1:-1;6101:7:0;;;;;;;;;;;;-1:-1:-1;;;6101:7:0;;;;6029:87;;6443:167;;;;;;;;;;-1:-1:-1;6443:167:0;;;;;:::i;:::-;;:::i;13355:164::-;;;;;;;;;;-1:-1:-1;13355:164:0;;;;;:::i;:::-;;:::i;13094:249::-;;;;;;;;;;;;;:::i;13531:135::-;;;;;;;;;;-1:-1:-1;13531:135:0;;;;;:::i;:::-;;:::i;7992:282::-;;;;;;;;;;-1:-1:-1;7992:282:0;;;;;:::i;:::-;;:::i;6618:143::-;;;;;;;;;;-1:-1:-1;6618:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6726:18:0;;;6699:7;6726:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6618:143;8375:111;;;;;;;;;;-1:-1:-1;8375:111:0;;;;;:::i;:::-;;:::i;2598:173::-;;;;;;;;;;-1:-1:-1;2598:173:0;;;;;:::i;:::-;;:::i;7620:364::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;;;;;;;;;7729:13;:23;;;7763:15;:27;;;7801:20;:34;;;7866:39:::1;7745:7:::0;7866:26:::1;7824:11:::0;7781:9;7866:15:::1;:26::i;:::-;:30:::0;::::1;:39::i;:::-;7846:8;:59:::0;;;7944:3:::1;-1:-1:-1::0;7916:60:0::1;;;::::0;-1:-1:-1;;;7916:60:0;;5483:2:1;7916:60:0::1;::::0;::::1;5465:21:1::0;5522:2;5502:18;;;5495:30;-1:-1:-1;;;5541:18:1;;;5534:55;5606:18;;7916:60:0::1;5281:349:1::0;7916:60:0::1;7620:364:::0;;;:::o;6769:161::-;6844:4;6861:39;182:10;6884:7;6893:6;6861:8;:39::i;:::-;-1:-1:-1;6918:4:0;6769:161;;;;;:::o;14088:253::-;14177:20;;-1:-1:-1;;;;;14161:36:0;;;14177:20;;14161:36;;14153:45;;;;;;14239:12;-1:-1:-1;;;;;14263:22:0;;;14286:7;2422;2449:6;-1:-1:-1;;;;;2449:6:0;;2384:79;14286:7;14294:38;;-1:-1:-1;;;14294:38:0;;14326:4;14294:38;;;2954:51:1;-1:-1:-1;;;;;14294:23:0;;;;;2927:18:1;;14294:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14263:70;;-1:-1:-1;;;;;;14263:70:0;;;;;;;-1:-1:-1;;;;;6016:32:1;;;14263:70:0;;;5998:51:1;6065:18;;;6058:34;5971:18;;14263:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6938:313::-;7036:4;7053:36;7063:6;7071:9;7082:6;7053:9;:36::i;:::-;7100:121;7109:6;182:10;7131:89;7169:6;7131:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7131:19:0;;;;;;:11;:19;;;;;;;;182:10;7131:33;;;;;;;;;;:37;:89::i;:::-;7100:8;:121::i;:::-;-1:-1:-1;7239:4:0;6938:313;;;;;:::o;13991:91::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;14067:4:::1;14051:22;::::0;;;:7:::1;:22;::::0;;;;;14042:32:::1;::::0;:8:::1;:32::i;:::-;13991:91::o:0;2779:148::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;2886:1:::1;2870:6:::0;;2849:40:::1;::::0;-1:-1:-1;;;;;2870:6:0;;::::1;::::0;2849:40:::1;::::0;2886:1;;2849:40:::1;2917:1;2900:19:::0;;-1:-1:-1;;;;;;2900:19:0::1;::::0;;2779:148::o;8282:83::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;8350:7:::1;::::0;8335:12:::1;:22:::0;8282:83::o;7265:349::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;7370:12;:21;;;7402:14;:25;;;7438:19;:32;;;7500:36:::1;7385:6:::0;7500:24:::1;7460:10:::0;7419:8;7500:14:::1;:24::i;:36::-;7481:7;:55:::0;;;7574:3:::1;-1:-1:-1::0;7547:59:0::1;;;::::0;-1:-1:-1;;;7547:59:0;;5483:2:1;7547:59:0::1;::::0;::::1;5465:21:1::0;5522:2;5502:18;;;5495:30;-1:-1:-1;;;5541:18:1;;;5534:55;5606:18;;7547:59:0::1;5281:349:1::0;6443:167:0;6521:4;6538:42;182:10;6562:9;6573:6;6538:9;:42::i;13355:164::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;13429:6:::1;13424:88;13445:5;:12;13441:1;:16;13424:88;;;13496:4;13479;:14;13484:5;13490:1;13484:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13479:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13479:14:0;:21;;-1:-1:-1;;13479:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13459:3;::::1;::::0;::::1;:::i;:::-;;;;13424:88;;;;13355:164:::0;:::o;13094:249::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;13156:11:::1;::::0;-1:-1:-1;;;13156:11:0;::::1;;;13155:12;13147:47;;;::::0;-1:-1:-1;;;13147:47:0;;6991:2:1;13147:47:0::1;::::0;::::1;6973:21:1::0;7030:2;7010:18;;;7003:30;7069:25;7049:18;;;7042:53;7112:18;;13147:47:0::1;6789:347:1::0;13147:47:0::1;13205:11;:18:::0;;-1:-1:-1;;;;13234:18:0;-1:-1:-1;;;13234:18:0;;;13270:30:::1;:15;13289:10;13270:30;:::i;:::-;13263:4;:37:::0;13319:16:::1;:12;13334:1;13319:16;:::i;:::-;13311:5;:24:::0;13094:249::o;13531:135::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;13604:6:::1;13600:59;13615:6;:13;13613:1;:15;13600:59;;;13652:5;13634:4;:15;13639:6;13646:1;13639:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13634:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13634:15:0;:23;;-1:-1:-1;;13634:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13629:3;::::1;::::0;::::1;:::i;:::-;;;;13600:59;;7992:282:::0;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;8099:1:::1;8089:7;:11;:30;;;;;8118:1;8104:11;:15;8089:30;8081:67;;;::::0;-1:-1:-1;;;8081:67:0;;7476:2:1;8081:67:0::1;::::0;::::1;7458:21:1::0;7515:2;7495:18;;;7488:30;7554:27;7534:18;;;7527:55;7599:18;;8081:67:0::1;7274:349:1::0;8081:67:0::1;8174:29;8199:3;8174:20;8186:7;8174;;:11;;:20;;;;:::i;:::-;:24:::0;::::1;:29::i;:::-;8159:12;:44:::0;8233:7:::1;::::0;:33:::1;::::0;8262:3:::1;::::0;8233:24:::1;::::0;8245:11;8233::::1;:24::i;:33::-;8214:16;:52:::0;-1:-1:-1;;7992:282:0:o;8375:111::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8445:26:0::1;;::::0;;;:18:::1;:26;::::0;;;;:33;;-1:-1:-1;;8445:33:0::1;8474:4;8445:33;::::0;;8375:111::o;2598:173::-;2511:6;;-1:-1:-1;;;;;2511:6:0;182:10;2511:22;2503:67;;;;-1:-1:-1;;;2503:67:0;;;;;;;:::i;:::-;2706:6:::1;::::0;;2685:39:::1;::::0;-1:-1:-1;;;;;2685:39:0;;::::1;::::0;2706:6;::::1;::::0;2685:39:::1;::::0;::::1;2735:6;:18:::0;;-1:-1:-1;;;;;;2735:18:0::1;-1:-1:-1::0;;;;;2735:18:0;;;::::1;::::0;;;::::1;::::0;;2598:173::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;1691:132;-1:-1:-1;;;1691:132:0:o;908:179::-;966:7;;998:5;1002:1;998;:5;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;-1:-1:-1;;;1014:46:0;;7830:2:1;1014:46:0;;;7812:21:1;7869:2;7849:18;;;7842:30;7908:29;7888:18;;;7881:57;7955:18;;1014:46:0;7628:351:1;8499:335:0;-1:-1:-1;;;;;8592:19:0;;8584:68;;;;-1:-1:-1;;;8584:68:0;;8186:2:1;8584:68:0;;;8168:21:1;8225:2;8205:18;;;8198:30;8264:34;8244:18;;;8237:62;-1:-1:-1;;;8315:18:1;;;8308:34;8359:19;;8584:68:0;7984:400:1;8584:68:0;-1:-1:-1;;;;;8671:21:0;;8663:68;;;;-1:-1:-1;;;8663:68:0;;8591:2:1;8663:68:0;;;8573:21:1;8630:2;8610:18;;;8603:30;8669:34;8649:18;;;8642:62;-1:-1:-1;;;8720:18:1;;;8713:32;8762:19;;8663:68:0;8389:398:1;8663:68:0;-1:-1:-1;;;;;8742:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8794:32;;2122:25:1;;;8794:32:0;;2095:18:1;8794:32:0;;;;;;;;8499:335;;;:::o;8842:2254::-;-1:-1:-1;;;;;8930:18:0;;8922:68;;;;-1:-1:-1;;;8922:68:0;;8994:2:1;8922:68:0;;;8976:21:1;9033:2;9013:18;;;9006:30;9072:34;9052:18;;;9045:62;-1:-1:-1;;;9123:18:1;;;9116:35;9168:19;;8922:68:0;8792:401:1;8922:68:0;-1:-1:-1;;;;;9009:16:0;;9001:64;;;;-1:-1:-1;;;9001:64:0;;9400:2:1;9001:64:0;;;9382:21:1;9439:2;9419:18;;;9412:30;9478:34;9458:18;;;9451:62;-1:-1:-1;;;9529:18:1;;;9522:33;9572:19;;9001:64:0;9198:399:1;9001:64:0;2422:7;2449:6;-1:-1:-1;;;;;9082:15:0;;;2449:6;;9082:15;;;;:32;;-1:-1:-1;2422:7:0;2449:6;-1:-1:-1;;;;;9101:13:0;;;2449:6;;9101:13;;9082:32;9078:1955;;;9139:11;;-1:-1:-1;;;9139:11:0;;;;9131:41;;;;-1:-1:-1;;;9131:41:0;;9804:2:1;9131:41:0;;;9786:21:1;9843:2;9823:18;;;9816:30;-1:-1:-1;;;9862:18:1;;;9855:48;9920:18;;9131:41:0;9602:342:1;9131:41:0;-1:-1:-1;;;;;9237:10:0;;9187:16;9237:10;;;:4;:10;;;;;;9206:7;;9237:10;;9236:11;:24;;;;-1:-1:-1;;;;;;9252:8:0;;;;;;:4;:8;;;;;;;;9251:9;9236:24;9228:33;;;;;;-1:-1:-1;;;;;9282:22:0;;;;;;:18;:22;;;;;;;;9278:738;;9358:16;;-1:-1:-1;;;;;9333:11:0;;;;;;:7;:11;;;;;;:20;;9347:6;;9333:20;:::i;:::-;9332:42;;9324:66;;;;-1:-1:-1;;;9324:66:0;;10151:2:1;9324:66:0;;;10133:21:1;10190:2;10170:18;;;10163:30;-1:-1:-1;;;10209:18:1;;;10202:42;10261:18;;9324:66:0;9949:336:1;9324:66:0;9427:12;;9417:6;:22;;9409:44;;;;-1:-1:-1;;;9409:44:0;;10492:2:1;9409:44:0;;;10474:21:1;10531:2;10511:18;;;10504:30;-1:-1:-1;;;10550:18:1;;;10543:40;10600:18;;9409:44:0;10290:334:1;9409:44:0;9484:20;;-1:-1:-1;;;;;9476:28:0;;;9484:20;;9476:28;:62;;;;-1:-1:-1;9522:15:0;;-1:-1:-1;;;;;9508:30:0;;;9522:15;;9508:30;;9476:62;9472:124;;;-1:-1:-1;9569:7:0;9472:124;9625:12;9617:5;;:20;9614:81;;;-1:-1:-1;9668:7:0;9614:81;9278:738;;;9741:20;;-1:-1:-1;;;;;9735:26:0;;;9741:20;;9735:26;:62;;;;-1:-1:-1;9781:15:0;;-1:-1:-1;;;;;9765:32:0;;;9781:15;;9765:32;;9735:62;:92;;;;-1:-1:-1;;;;;;9803:24:0;;;;;;:18;:24;;;;;;;;9801:26;9735:92;9731:285;;;9869:4;;9851:15;:22;9848:153;;;-1:-1:-1;9904:8:0;9848:153;;;-1:-1:-1;9966:15:0;9848:153;10063:6;;-1:-1:-1;;;10063:6:0;;;;10062:7;:39;;;;-1:-1:-1;10081:20:0;;-1:-1:-1;;;;;10073:28:0;;;10081:20;;10073:28;;10062:39;:54;;;;-1:-1:-1;10105:11:0;;-1:-1:-1;;;10105:11:0;;;;10062:54;:83;;;;-1:-1:-1;;;;;;10121:24:0;;;;;;:18;:24;;;;;;;;10120:25;10062:83;10058:307;;;10215:4;10166:28;6411:16;;;:7;:16;;;;;;10266:10;;10243:33;;10240:110;;;10300:30;10309:20;10300:8;:30::i;:::-;10147:218;10058:307;10384:13;;:15;10381:641;;10419:11;10433:35;10463:4;10433:25;10444:4;:13;;;10433:6;:10;;:25;;;;:::i;:35::-;10419:49;-1:-1:-1;10496:15:0;:6;10419:49;10496:10;:15::i;:::-;10487:24;;10545:55;10562:37;10585:4;:13;;;10562:18;10570:4;:9;;;10562:3;:7;;:18;;;;:::i;:37::-;10545:12;;;:16;:55::i;:::-;10530:12;:70;10695:13;;10673:16;;;;10641:69;;10665:44;;:25;;:3;;:7;:25::i;:44::-;10641:19;;;:23;:69::i;:::-;10619:19;:91;10773:13;;10756:11;;;;10729:16;;10748:39;;:20;;:3;;:7;:20::i;:39::-;10729:58;-1:-1:-1;10812:17:0;:3;10729:58;10812:7;:17::i;:::-;10858:7;;10806:23;;-1:-1:-1;10858:21:0;;10870:8;10858:11;:21::i;:::-;10848:7;:31;10898:48;10916:4;10929:6;10937:8;10898:17;:48::i;:::-;10965:41;10983:4;10996;11002:3;10965:17;:41::i;:::-;10400:622;;10381:641;9116:1917;9078:1955;11055:33;11073:4;11078:2;11081:6;11055:17;:33::i;1239:190::-;1325:7;1361:12;1353:6;;;;1345:29;;;;-1:-1:-1;;;1345:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1385:9:0;1397:5;1401:1;1397;:5;:::i;:::-;1385:17;1239:190;-1:-1:-1;;;;;1239:190:0:o;11868:1214::-;5221:6;:13;;-1:-1:-1;;;;5221:13:0;-1:-1:-1;;;5221:13:0;;;11990:19:::1;::::0;11975:12:::1;::::0;5221:13;;11975:34:::1;::::0;::::1;:::i;:::-;11947:62:::0;-1:-1:-1;12020:12:0::1;12049:25:::0;;;:51:::1;;-1:-1:-1::0;12078:22:0;;12049:51:::1;12045:90;;;12117:7;;;;12045:90;12174:10;::::0;:15:::1;::::0;12187:2:::1;12174:15;:::i;:::-;12151:20;:38;12147:109;;;12229:10;::::0;:15:::1;::::0;12242:2:::1;12229:15;:::i;:::-;12206:38;;12147:109;12268:23;12356:1;12334:19;;12318:12;;12295:20;:35;;;;:::i;:::-;12294:59;;;;:::i;:::-;:63;;;;:::i;:::-;12268:89:::0;-1:-1:-1;12398:21:0::1;12432:59;12449:41;:20:::0;12268:89;12449:24:::1;:41::i;:::-;12432:16;:59::i;:::-;12504:18;12525:44;:21;12551:17:::0;12525:25:::1;:44::i;:::-;12504:65;;12582:23;12608:82;12662:17;12608:35;12623:19;;12608:10;:14;;:35;;;;:::i;:82::-;12582:108:::0;-1:-1:-1;12703:23:0::1;12729:28;12582:108:::0;12729:10;:28:::1;:::i;:::-;12792:1;12770:19;:23:::0;;;12804:12:::1;:16:::0;12703:54;-1:-1:-1;12837:19:0;;;;;:42:::1;;;12878:1;12860:15;:19;12837:42;12833:121;;;12896:46;12909:15;12926;12896:12;:46::i;:::-;12988:16;::::0;12980:88:::1;::::0;-1:-1:-1;;;;;12988:16:0;;::::1;::::0;13032:21:::1;::::0;12980:88:::1;::::0;;;13032:21;12988:16;12980:88:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;;;;;;5245:1:0::1;-1:-1:-1::0;5257:6:0;:14;;-1:-1:-1;;;;5257:14:0;;;11868:1214::o;1437:246::-;1495:7;1519:6;1515:47;;-1:-1:-1;1549:1:0;1542:8;;1515:47;1572:9;1584:5;1588:1;1584;:5;:::i;:::-;1572:17;-1:-1:-1;1617:1:0;1608:5;1612:1;1572:17;1608:5;:::i;:::-;:10;1600:56;;;;-1:-1:-1;;;1600:56:0;;11566:2:1;1600:56:0;;;11548:21:1;11605:2;11585:18;;;11578:30;11644:34;11624:18;;;11617:62;-1:-1:-1;;;11695:18:1;;;11688:31;11736:19;;1600:56:0;11364:397:1;1831:189:0;1917:7;1952:12;1945:5;1937:28;;;;-1:-1:-1;;;1937:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1976:9:0;1988:5;1992:1;1988;:5;:::i;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;13674:268::-;-1:-1:-1;;;;;13790:15:0;;;;;;:7;:15;;;;;;:28;;13810:7;13790:19;:28::i;:::-;-1:-1:-1;;;;;13772:15:0;;;;;;;:7;:15;;;;;;:46;;;;13850:18;;;;;;;:31;;13873:7;13850:22;:31::i;:::-;-1:-1:-1;;;;;13829:18:0;;;;;;;:7;:18;;;;;;;:52;;;;13898:36;;;;;;;;;;13926:7;2122:25:1;;2110:2;2095:18;;1976:177;11104:471:0;11194:16;;;11208:1;11194:16;;;;;;;;11170:21;;11194:16;;;;;;;;;;-1:-1:-1;11194:16:0;11170:40;;11239:4;11221;11226:1;11221:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11221:23:0;;;:7;;;;;;;;;;:23;;;;11265:15;;:22;;;-1:-1:-1;;;11265:22:0;;;;:15;;;;;:20;;:22;;;;;11221:7;;11265:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11255:4;11260:1;11255:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11255:32:0;;;:7;;;;;;;;;:32;11330:15;;11298:62;;11315:4;;11330:15;11348:11;11298:8;:62::i;:::-;11371:15;;:196;;-1:-1:-1;;;11371:196:0;;-1:-1:-1;;;;;11371:15:0;;;;:66;;:196;;11452:11;;11371:15;;11494:4;;11521;;11541:15;;11371:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11159:416;11104:471;:::o;11589:271::-;11700:15;;11669:60;;11686:4;;-1:-1:-1;;;;;11700:15:0;11717:11;11669:8;:60::i;:::-;11740:15;;:112;;-1:-1:-1;;;11740:112:0;;11798:4;11740:112;;;13348:34:1;13398:18;;;13391:34;;;11740:15:0;13441:18:1;;;13434:34;;;13484:18;;;13477:34;11828:6:0;13527:19:1;;;13520:44;11836:15:0;13580:19:1;;;13573:35;-1:-1:-1;;;;;11740:15:0;;;;:31;;11779:9;;13282:19:1;;11740:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11589:271;;:::o;14:316:1:-;91:6;99;107;160:2;148:9;139:7;135:23;131:32;128:52;;;176:1;173;166:12;128:52;-1:-1:-1;;199:23:1;;;269:2;254:18;;241:32;;-1:-1:-1;320:2:1;305:18;;;292:32;;14:316;-1:-1:-1;14:316:1:o;335:597::-;447:4;476:2;505;494:9;487:21;537:6;531:13;580:6;575:2;564:9;560:18;553:34;605:1;615:140;629:6;626:1;623:13;615:140;;;724:14;;;720:23;;714:30;690:17;;;709:2;686:26;679:66;644:10;;615:140;;;773:6;770:1;767:13;764:91;;;843:1;838:2;829:6;818:9;814:22;810:31;803:42;764:91;-1:-1:-1;916:2:1;895:15;-1:-1:-1;;891:29:1;876:45;;;;923:2;872:54;;335:597;-1:-1:-1;;;335:597:1:o;937:131::-;-1:-1:-1;;;;;1012:31:1;;1002:42;;992:70;;1058:1;1055;1048:12;992:70;937:131;:::o;1073:134::-;1141:20;;1170:31;1141:20;1170:31;:::i;:::-;1073:134;;;:::o;1212:315::-;1280:6;1288;1341:2;1329:9;1320:7;1316:23;1312:32;1309:52;;;1357:1;1354;1347:12;1309:52;1396:9;1383:23;1415:31;1440:5;1415:31;:::i;:::-;1465:5;1517:2;1502:18;;;;1489:32;;-1:-1:-1;;;1212:315:1:o;1724:247::-;1783:6;1836:2;1824:9;1815:7;1811:23;1807:32;1804:52;;;1852:1;1849;1842:12;1804:52;1891:9;1878:23;1910:31;1935:5;1910:31;:::i;2158:456::-;2235:6;2243;2251;2304:2;2292:9;2283:7;2279:23;2275:32;2272:52;;;2320:1;2317;2310:12;2272:52;2359:9;2346:23;2378:31;2403:5;2378:31;:::i;:::-;2428:5;-1:-1:-1;2485:2:1;2470:18;;2457:32;2498:33;2457:32;2498:33;:::i;:::-;2158:456;;2550:7;;-1:-1:-1;;;2604:2:1;2589:18;;;;2576:32;;2158:456::o;3016:127::-;3077:10;3072:3;3068:20;3065:1;3058:31;3108:4;3105:1;3098:15;3132:4;3129:1;3122:15;3148:1121;3232:6;3263:2;3306;3294:9;3285:7;3281:23;3277:32;3274:52;;;3322:1;3319;3312:12;3274:52;3362:9;3349:23;3391:18;3432:2;3424:6;3421:14;3418:34;;;3448:1;3445;3438:12;3418:34;3486:6;3475:9;3471:22;3461:32;;3531:7;3524:4;3520:2;3516:13;3512:27;3502:55;;3553:1;3550;3543:12;3502:55;3589:2;3576:16;3611:2;3607;3604:10;3601:36;;;3617:18;;:::i;:::-;3663:2;3660:1;3656:10;3695:2;3689:9;3758:2;3754:7;3749:2;3745;3741:11;3737:25;3729:6;3725:38;3813:6;3801:10;3798:22;3793:2;3781:10;3778:18;3775:46;3772:72;;;3824:18;;:::i;:::-;3860:2;3853:22;3910:18;;;3944:15;;;;-1:-1:-1;3986:11:1;;;3982:20;;;4014:19;;;4011:39;;;4046:1;4043;4036:12;4011:39;4070:11;;;;4090:148;4106:6;4101:3;4098:15;4090:148;;;4172:23;4191:3;4172:23;:::i;:::-;4160:36;;4123:12;;;;4216;;;;4090:148;;;4257:6;3148:1121;-1:-1:-1;;;;;;;;3148:1121:1:o;4274:248::-;4342:6;4350;4403:2;4391:9;4382:7;4378:23;4374:32;4371:52;;;4419:1;4416;4409:12;4371:52;-1:-1:-1;;4442:23:1;;;4512:2;4497:18;;;4484:32;;-1:-1:-1;4274:248:1:o;4527:388::-;4595:6;4603;4656:2;4644:9;4635:7;4631:23;4627:32;4624:52;;;4672:1;4669;4662:12;4624:52;4711:9;4698:23;4730:31;4755:5;4730:31;:::i;:::-;4780:5;-1:-1:-1;4837:2:1;4822:18;;4809:32;4850:33;4809:32;4850:33;:::i;:::-;4902:7;4892:17;;;4527:388;;;;;:::o;4920:356::-;5122:2;5104:21;;;5141:18;;;5134:30;5200:34;5195:2;5180:18;;5173:62;5267:2;5252:18;;4920:356::o;5635:184::-;5705:6;5758:2;5746:9;5737:7;5733:23;5729:32;5726:52;;;5774:1;5771;5764:12;5726:52;-1:-1:-1;5797:16:1;;5635:184;-1:-1:-1;5635:184:1:o;6103:277::-;6170:6;6223:2;6211:9;6202:7;6198:23;6194:32;6191:52;;;6239:1;6236;6229:12;6191:52;6271:9;6265:16;6324:5;6317:13;6310:21;6303:5;6300:32;6290:60;;6346:1;6343;6336:12;6385:127;6446:10;6441:3;6437:20;6434:1;6427:31;6477:4;6474:1;6467:15;6501:4;6498:1;6491:15;6517:127;6578:10;6573:3;6569:20;6566:1;6559:31;6609:4;6606:1;6599:15;6633:4;6630:1;6623:15;6649:135;6688:3;-1:-1:-1;;6709:17:1;;6706:43;;;6729:18;;:::i;:::-;-1:-1:-1;6776:1:1;6765:13;;6649:135::o;7141:128::-;7181:3;7212:1;7208:6;7205:1;7202:13;7199:39;;;7218:18;;:::i;:::-;-1:-1:-1;7254:9:1;;7141:128::o;10629:125::-;10669:4;10697:1;10694;10691:8;10688:34;;;10702:18;;:::i;:::-;-1:-1:-1;10739:9:1;;10629:125::o;10759:168::-;10799:7;10865:1;10861;10857:6;10853:14;10850:1;10847:21;10842:1;10835:9;10828:17;10824:45;10821:71;;;10872:18;;:::i;:::-;-1:-1:-1;10912:9:1;;10759:168::o;10932:217::-;10972:1;10998;10988:132;;11042:10;11037:3;11033:20;11030:1;11023:31;11077:4;11074:1;11067:15;11105:4;11102:1;11095:15;10988:132;-1:-1:-1;11134:9:1;;10932:217::o;11766:251::-;11836:6;11889:2;11877:9;11868:7;11864:23;11860:32;11857:52;;;11905:1;11902;11895:12;11857:52;11937:9;11931:16;11956:31;11981:5;11956:31;:::i;12022:980::-;12284:4;12332:3;12321:9;12317:19;12363:6;12352:9;12345:25;12389:2;12427:6;12422:2;12411:9;12407:18;12400:34;12470:3;12465:2;12454:9;12450:18;12443:31;12494:6;12529;12523:13;12560:6;12552;12545:22;12598:3;12587:9;12583:19;12576:26;;12637:2;12629:6;12625:15;12611:29;;12658:1;12668:195;12682:6;12679:1;12676:13;12668:195;;;12747:13;;-1:-1:-1;;;;;12743:39:1;12731:52;;12838:15;;;;12803:12;;;;12779:1;12697:9;12668:195;;;-1:-1:-1;;;;;;;12919:32:1;;;;12914:2;12899:18;;12892:60;-1:-1:-1;;;12983:3:1;12968:19;12961:35;12880:3;12022:980;-1:-1:-1;;;12022:980:1:o;13619:306::-;13707:6;13715;13723;13776:2;13764:9;13755:7;13751:23;13747:32;13744:52;;;13792:1;13789;13782:12;13744:52;13821:9;13815:16;13805:26;;13871:2;13860:9;13856:18;13850:25;13840:35;;13915:2;13904:9;13900:18;13894:25;13884:35;;13619:306;;;;;:::o

Swarm Source

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