ETH Price: $3,366.19 (-0.27%)
Gas: 9.46 Gwei

Token

Songs of Ethereum (5SONGS)
 

Overview

Max Total Supply

10,000,000,000 5SONGS

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
20,242,597.33359690582931852 5SONGS

Value
$0.00
0xf73c74813a774647a68e514b175e85836bc3c326
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:
SongsofEthereum

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity 0.8.4;
// SPDX-License-Identifier: Unlicensed
//''Only somewhat related, but https://youtube.com/watch?v=WdrSP0V-KLg 
//continues to be my favorite crypto song. It does the "parody song" 
//concept right: it's fun but it's also actually pleasant to listen to.

//We need an ethereum/merge equivalent (and preferably like 5 of them)''
//VB

 //3% AnthemFund for the five ETH anthems requested by sir Vitalik   



interface ERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function getOwner() external view returns (address);

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

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

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

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

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

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

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

interface UniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

// Contracts and libraries

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;
    }
}

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;
    }
}

contract Ownable is Context {
    address private _owner;

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

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        authorizations[_owner] = true;
        emit OwnershipTransferred(address(0), msgSender);
    }
    mapping (address => bool) internal authorizations;

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

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

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

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

contract SongsofEthereum is Ownable, ERC20 {
    using SafeMath for uint256;

    uint8 constant _decimals = 18;

    uint256 _totalSupply = 10_000_000_000 * (10 ** _decimals);
    uint256 public _maxTxAmount = _totalSupply;
    uint256 public _walletMax = _totalSupply;

    address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD;
    address ZERO_WALLET = 0x0000000000000000000000000000000000000000;

    address uniswapAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    string constant _name = "Songs of Ethereum";
    string constant _symbol = "5SONGS";

    bool public restrictWhales = true;

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

    mapping(address => bool) public isFeeExempt;
    mapping(address => bool) public isTxLimitExempt;

    uint256 public liquidityFee = 0;
    uint256 public AnthemFund = 3;

    uint256 public totalFee = 3;
    uint256 public totalFeeIfSelling = 3;

    address public autoLiquidityReceiver;
    address public marketingWallet;

    UniswapRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool public tradingOpen = false;
    bool public blacklistMode = false;
    mapping(address => bool) public isBlacklisted;

    bool public inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyByLimitOnly = false;

    uint256 public swapThreshold = _totalSupply * 4 / 2000;

    event AutoLiquify(uint256 amountETH, uint256 amountBOG);

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

    constructor() {
        router = UniswapRouter(uniswapAddress);
        pair = UniswapFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        _allowances[address(this)][address(pair)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;
        isFeeExempt[DEAD_WALLET] = true;

        isTxLimitExempt[msg.sender] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD_WALLET] = true;

        autoLiquidityReceiver = 0x7e3CBb52193ac9Ffa4193A6dABc44618d76ef4a5;
        marketingWallet = 0x7e3CBb52193ac9Ffa4193A6dABc44618d76ef4a5;

        totalFee = liquidityFee.add(AnthemFund);
        totalFeeIfSelling = totalFee;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}

    function name() external pure override returns (string memory) {return _name;}

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

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

    function totalSupply() external view override returns (uint256) {return _totalSupply;}

    function getOwner() external view override returns (address) {return owner();}

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

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

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET));
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function launched() internal view returns (bool) {
        return launchedAt != 0;
    }

    function launch() internal {
        launchedAt = block.number;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);}
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen, "Trading not open yet");
        }

        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
        if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();}
        if (!launched() && recipient == pair) {
            require(_balances[sender] > 0, "Zero balance violated!");
            launch();
        }    

        // Blacklist
        if (blacklistMode) {
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"Blacklisted");
        }

        //Exchange tokens
         _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        if (!isTxLimitExempt[recipient] && restrictWhales) {
            require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!");
        }

        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }

    function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function marketingAndLiquidity() internal lockTheSwap {
        uint256 tokensToLiquify = _balances[address(this)];
        uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(AnthemFund).div(totalETHFee);

        (bool tmpSuccess,) = payable(marketingWallet).call{value : amountETHMarketing, gas : 30000}("");
        tmpSuccess = false;

        if (amountToLiquify > 0) {
            router.addLiquidityETH{value : amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    // CONTRACT OWNER FUNCTIONS

    function setWalletLimit(uint256 newLimit) external onlyOwner {
        _walletMax = newLimit;
    }

    function tradingStatus(bool newStatus) public onlyOwner {
        tradingOpen = newStatus;
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 newLiqFee, uint256 newAnthemFund) external onlyOwner {
        liquidityFee = newLiqFee;
        AnthemFund = newAnthemFund;

        totalFee = liquidityFee.add(AnthemFund);
        totalFeeIfSelling = totalFee;
    }

        function enable_blacklist(bool _status) public onlyOwner {
    blacklistMode = _status;
    }

        
    function manage_blacklist(address[] calldata addresses, bool status) public onlyOwner {
        for (uint256 i; i < addresses.length; ++i) {
            isBlacklisted[addresses[i]] = status;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"AnthemFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiqFee","type":"uint256"},{"internalType":"uint256","name":"newAnthemFund","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","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":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"newStatus","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052620000126012600a6200055d565b62000023906402540be40062000629565b600281905560038181556004828155600580546001600160a01b031990811661dead179091556006805490911690556007805474017a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a81b03199091161790556000600c55600d829055600e829055600f919091556015805461ffff191690556017805462ffff0019166101001790556107d091620000ba9162000629565b620000c69190620004f3565b601855348015620000d657600080fd5b50600080546001600160a01b031916339081178255808252600160208190526040808420805460ff191690921790915551909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600754601280546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200018957600080fd5b505afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620004af565b6001600160a01b031663c9c65396601260009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200022157600080fd5b505afa15801562000236573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025c9190620004af565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002a457600080fd5b505af1158015620002b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002df9190620004af565b601380546001600160a01b03199081166001600160a01b03938416178255306000818152600960209081526040808320601254881684528252808320600019908190558654881684528184205533808452600a8352818420805460ff1990811660019081179092559585528285208054871682179055600580548a1686528386208054881683179055918552600b845282852080548716821790559654881684528184208054861688179055549096168252949020805490911690921790915560108054737e3cbb52193ac9ffa4193a6dabc44618d76ef4a5908316811790915560118054909216179055600d54600c54620003e79290919062000440811b62000d5717901c565b600e819055600f5560025433600081815260086020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000661565b6000806200044f8385620004d8565b905083811015620004a65760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620004c1578081fd5b81516001600160a01b0381168114620004a6578182fd5b60008219821115620004ee57620004ee6200064b565b500190565b6000826200050f57634e487b7160e01b81526012600452602481fd5b500490565b600181815b80851115620005555781600019048211156200053957620005396200064b565b808516156200054757918102915b93841c939080029062000519565b509250929050565b60006200056e60ff84168362000575565b9392505050565b6000826200058657506001620004a9565b816200059557506000620004a9565b8160018114620005ae5760028114620005b957620005d9565b6001915050620004a9565b60ff841115620005cd57620005cd6200064b565b50506001821b620004a9565b5060208310610133831016604e8410600b8410161715620005fe575081810a620004a9565b6200060a838362000514565b80600019048211156200062157620006216200064b565b029392505050565b60008160001904831182151516156200064657620006466200064b565b500290565b634e487b7160e01b600052601160045260246000fd5b611cbc80620006716000396000f3fe6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610739578063f2fde38b14610759578063f84ba65d14610779578063f887ea4014610799578063fe575a87146107b9578063ffb54a99146107e957600080fd5b8063bf56b37114610687578063ca33e64c1461069d578063ca987b0e146106bd578063da00097d146106d3578063dd62ed3e146106f357600080fd5b80638da5cb5b116101085780638da5cb5b146105755780638e2eee84146105e257806395d89b411461060257806398118cb414610631578063a8aa1b3114610647578063a9059cbb1461066757600080fd5b80637d1db4a514610549578063807c2d9c1461055f578063893d20e814610575578063896648c1146105935780638b42507f146105b257600080fd5b8063313ce567116101dd578063571ac8b0116101a1578063571ac8b0146104665780635e562f3b14610486578063658d4b7f146104a657806370a08231146104c6578063715018a6146104fc57806375f0a8741461051157600080fd5b8063313ce567146103c45780633f4218e0146103e057806344de2e4c146104105780634a74bb02146104315780634dc985031461045057600080fd5b806318160ddd1161022457806318160ddd1461034a5780631df4ccfc1461035f578063220f66961461037557806323b872dd1461038f5780632b112e49146103af57600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d85780630b78f9c0146103085780630d2959801461032a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082019091526011815270536f6e6773206f6620457468657265756d60781b60208201525b60405161028c9190611ad7565b3480156102e457600080fd5b506102f86102f33660046119ad565b610803565b604051901515815260200161028c565b34801561031457600080fd5b50610328610323366004611a89565b610870565b005b34801561033657600080fd5b50610328610345366004611a57565b6108c3565b34801561035657600080fd5b50600254610282565b34801561036b57600080fd5b50610282600e5481565b34801561038157600080fd5b506017546102f89060ff1681565b34801561039b57600080fd5b506102f86103aa366004611939565b610900565b3480156103bb57600080fd5b506102826109c2565b3480156103d057600080fd5b506040516012815260200161028c565b3480156103ec57600080fd5b506102f86103fb3660046118c9565b600a6020526000908152604090205460ff1681565b34801561041c57600080fd5b506007546102f890600160a01b900460ff1681565b34801561043d57600080fd5b506017546102f890610100900460ff1681565b34801561045c57600080fd5b50610282600d5481565b34801561047257600080fd5b506102f86104813660046118c9565b610a14565b34801561049257600080fd5b506103286104a1366004611a57565b610a22565b3480156104b257600080fd5b506103286104c1366004611979565b610a66565b3480156104d257600080fd5b506102826104e13660046118c9565b6001600160a01b031660009081526008602052604090205490565b34801561050857600080fd5b50610328610abb565b34801561051d57600080fd5b50601154610531906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561055557600080fd5b5061028260035481565b34801561056b57600080fd5b5061028260045481565b34801561058157600080fd5b506000546001600160a01b0316610531565b34801561059f57600080fd5b506015546102f890610100900460ff1681565b3480156105be57600080fd5b506102f86105cd3660046118c9565b600b6020526000908152604090205460ff1681565b3480156105ee57600080fd5b506103286105fd3660046119d8565b610b2f565b34801561060e57600080fd5b5060408051808201909152600681526535534f4e475360d01b60208201526102cb565b34801561063d57600080fd5b50610282600c5481565b34801561065357600080fd5b50601354610531906001600160a01b031681565b34801561067357600080fd5b506102f86106823660046119ad565b610bdc565b34801561069357600080fd5b5061028260145481565b3480156106a957600080fd5b50601054610531906001600160a01b031681565b3480156106c957600080fd5b50610282600f5481565b3480156106df57600080fd5b506017546102f89062010000900460ff1681565b3480156106ff57600080fd5b5061028261070e366004611901565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074557600080fd5b50610328610754366004611a71565b610be9565b34801561076557600080fd5b506103286107743660046118c9565b610c18565b34801561078557600080fd5b50610328610794366004611979565b610d02565b3480156107a557600080fd5b50601254610531906001600160a01b031681565b3480156107c557600080fd5b506102f86107d43660046118c9565b60166020526000908152604090205460ff1681565b3480156107f557600080fd5b506015546102f89060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061085e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260040161089a90611b2a565b60405180910390fd5b600c829055600d8190556108b78282610d57565b600e819055600f555050565b6000546001600160a01b031633146108ed5760405162461bcd60e51b815260040161089a90611b2a565b6015805460ff1916911515919091179055565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109ad576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610988918490610db6565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109b8848484610df0565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610a0f906005546001600160a01b0316600090815260086020526040902054610a099060025490611264565b90611264565b905090565b600061086a82600019610803565b6000546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161089a90611b2a565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae55760405162461bcd60e51b815260040161089a90611b2a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161089a90611b2a565b60005b82811015610bd6578160166000868685818110610b8957634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b9e91906118c9565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bcf81611c3d565b9050610b5c565b50505050565b60006109bb338484610df0565b6000546001600160a01b03163314610c135760405162461bcd60e51b815260040161089a90611b2a565b600455565b6000546001600160a01b03163314610c425760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b038116610ca75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d2c5760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d648385611bcf565b9050838110156109bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161089a565b60008184841115610dda5760405162461bcd60e51b815260040161089a9190611ad7565b506000610de78486611c26565b95945050505050565b60175460009060ff1615610e1057610e098484846112a6565b90506109bb565b6001600160a01b03841660009081526001602052604090205460ff16158015610e5257506001600160a01b03831660009081526001602052604090205460ff16155b15610ea05760155460ff16610ea05760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161089a565b60035482111580610ec957506001600160a01b0384166000908152600b602052604090205460ff165b610f095760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161089a565b6013546001600160a01b03163314801590610f27575060175460ff16155b8015610f3a5750601754610100900460ff165b8015610f5757506018543060009081526008602052604090205410155b15610f6457610f6461138c565b601454158015610f8157506013546001600160a01b038481169116145b15610fed576001600160a01b038416600090815260086020526040902054610fe45760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161089a565b610fed43601455565b601554610100900460ff1615611079576001600160a01b03841660009081526016602052604090205460ff1615801561103f57506001600160a01b03831660009081526016602052604090205460ff16155b6110795760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161089a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110cb918490610db6565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156111105750600754600160a01b900460ff165b15611180576004546001600160a01b03841660009081526008602052604090205461113b9084610d57565b11156111805760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161089a565b6001600160a01b0384166000908152600a602052604081205460ff161580156111c257506001600160a01b0384166000908152600a602052604090205460ff16155b6111cc57826111d7565b6111d7858585611707565b6001600160a01b0385166000908152600860205260409020549091506111fd9082610d57565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112519085815260200190565b60405180910390a3506001949350505050565b60006109bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610db6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112f7918490610db6565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546113269083610d57565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137a9086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113cd916002916113c79190829087906117ca565b90611849565b905060006113db8383611264565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061142357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561147757600080fd5b505afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af91906118e5565b816001815181106114d057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611516908590600090869030904290600401611b5f565b600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5050600c54479250600091506115689061155f906002611849565b600e5490611264565b9050600061158a60026113c7846113c7600c54886117ca90919063ffffffff16565b905060006115a7836113c7600d54876117ca90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115fe576040519150601f19603f3d011682016040523d82523d6000602084013e611603565b606091505b506000925050881590506116f25760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561167c57600080fd5b505af1158015611690573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b59190611aaa565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b0385811691161461172957600e5461172d565b600f545b9050600061174060646113c786856117ca565b3060009081526008602052604090205490915061175d9082610d57565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ae9085815260200190565b60405180910390a36117c08482611264565b9695505050505050565b6000826117d95750600061086a565b60006117e58385611c07565b9050826117f28583611be7565b146109bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161089a565b60006109bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118a75760405162461bcd60e51b815260040161089a9190611ad7565b506000610de78486611be7565b803580151581146118c457600080fd5b919050565b6000602082840312156118da578081fd5b81356109bb81611c6e565b6000602082840312156118f6578081fd5b81516109bb81611c6e565b60008060408385031215611913578081fd5b823561191e81611c6e565b9150602083013561192e81611c6e565b809150509250929050565b60008060006060848603121561194d578081fd5b833561195881611c6e565b9250602084013561196881611c6e565b929592945050506040919091013590565b6000806040838503121561198b578182fd5b823561199681611c6e565b91506119a4602084016118b4565b90509250929050565b600080604083850312156119bf578182fd5b82356119ca81611c6e565b946020939093013593505050565b6000806000604084860312156119ec578283fd5b833567ffffffffffffffff80821115611a03578485fd5b818601915086601f830112611a16578485fd5b813581811115611a24578586fd5b8760208260051b8501011115611a38578586fd5b602092830195509350611a4e91860190506118b4565b90509250925092565b600060208284031215611a68578081fd5b6109bb826118b4565b600060208284031215611a82578081fd5b5035919050565b60008060408385031215611a9b578182fd5b50508035926020909101359150565b600080600060608486031215611abe578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b0357858101830151858201604001528201611ae7565b81811115611b145783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bae5784516001600160a01b031683529383019391830191600101611b89565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be257611be2611c58565b500190565b600082611c0257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c2157611c21611c58565b500290565b600082821015611c3857611c38611c58565b500390565b6000600019821415611c5157611c51611c58565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c8357600080fd5b5056fea2646970667358221220bee26d61939f9ecffbc2beb6385750c7bfe2b8a05159d3155f4e4fe544f8f8d964736f6c63430008040033

Deployed Bytecode

0x6080604052600436106102605760003560e01c80637d1db4a511610144578063bf56b371116100b6578063f1d5f5171161007a578063f1d5f51714610739578063f2fde38b14610759578063f84ba65d14610779578063f887ea4014610799578063fe575a87146107b9578063ffb54a99146107e957600080fd5b8063bf56b37114610687578063ca33e64c1461069d578063ca987b0e146106bd578063da00097d146106d3578063dd62ed3e146106f357600080fd5b80638da5cb5b116101085780638da5cb5b146105755780638e2eee84146105e257806395d89b411461060257806398118cb414610631578063a8aa1b3114610647578063a9059cbb1461066757600080fd5b80637d1db4a514610549578063807c2d9c1461055f578063893d20e814610575578063896648c1146105935780638b42507f146105b257600080fd5b8063313ce567116101dd578063571ac8b0116101a1578063571ac8b0146104665780635e562f3b14610486578063658d4b7f146104a657806370a08231146104c6578063715018a6146104fc57806375f0a8741461051157600080fd5b8063313ce567146103c45780633f4218e0146103e057806344de2e4c146104105780634a74bb02146104315780634dc985031461045057600080fd5b806318160ddd1161022457806318160ddd1461034a5780631df4ccfc1461035f578063220f66961461037557806323b872dd1461038f5780632b112e49146103af57600080fd5b80630445b6671461026c57806306fdde0314610295578063095ea7b3146102d85780630b78f9c0146103085780630d2959801461032a57600080fd5b3661026757005b600080fd5b34801561027857600080fd5b5061028260185481565b6040519081526020015b60405180910390f35b3480156102a157600080fd5b50604080518082019091526011815270536f6e6773206f6620457468657265756d60781b60208201525b60405161028c9190611ad7565b3480156102e457600080fd5b506102f86102f33660046119ad565b610803565b604051901515815260200161028c565b34801561031457600080fd5b50610328610323366004611a89565b610870565b005b34801561033657600080fd5b50610328610345366004611a57565b6108c3565b34801561035657600080fd5b50600254610282565b34801561036b57600080fd5b50610282600e5481565b34801561038157600080fd5b506017546102f89060ff1681565b34801561039b57600080fd5b506102f86103aa366004611939565b610900565b3480156103bb57600080fd5b506102826109c2565b3480156103d057600080fd5b506040516012815260200161028c565b3480156103ec57600080fd5b506102f86103fb3660046118c9565b600a6020526000908152604090205460ff1681565b34801561041c57600080fd5b506007546102f890600160a01b900460ff1681565b34801561043d57600080fd5b506017546102f890610100900460ff1681565b34801561045c57600080fd5b50610282600d5481565b34801561047257600080fd5b506102f86104813660046118c9565b610a14565b34801561049257600080fd5b506103286104a1366004611a57565b610a22565b3480156104b257600080fd5b506103286104c1366004611979565b610a66565b3480156104d257600080fd5b506102826104e13660046118c9565b6001600160a01b031660009081526008602052604090205490565b34801561050857600080fd5b50610328610abb565b34801561051d57600080fd5b50601154610531906001600160a01b031681565b6040516001600160a01b03909116815260200161028c565b34801561055557600080fd5b5061028260035481565b34801561056b57600080fd5b5061028260045481565b34801561058157600080fd5b506000546001600160a01b0316610531565b34801561059f57600080fd5b506015546102f890610100900460ff1681565b3480156105be57600080fd5b506102f86105cd3660046118c9565b600b6020526000908152604090205460ff1681565b3480156105ee57600080fd5b506103286105fd3660046119d8565b610b2f565b34801561060e57600080fd5b5060408051808201909152600681526535534f4e475360d01b60208201526102cb565b34801561063d57600080fd5b50610282600c5481565b34801561065357600080fd5b50601354610531906001600160a01b031681565b34801561067357600080fd5b506102f86106823660046119ad565b610bdc565b34801561069357600080fd5b5061028260145481565b3480156106a957600080fd5b50601054610531906001600160a01b031681565b3480156106c957600080fd5b50610282600f5481565b3480156106df57600080fd5b506017546102f89062010000900460ff1681565b3480156106ff57600080fd5b5061028261070e366004611901565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b34801561074557600080fd5b50610328610754366004611a71565b610be9565b34801561076557600080fd5b506103286107743660046118c9565b610c18565b34801561078557600080fd5b50610328610794366004611979565b610d02565b3480156107a557600080fd5b50601254610531906001600160a01b031681565b3480156107c557600080fd5b506102f86107d43660046118c9565b60166020526000908152604090205460ff1681565b3480156107f557600080fd5b506015546102f89060ff1681565b3360008181526009602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061085e9086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146108a35760405162461bcd60e51b815260040161089a90611b2a565b60405180910390fd5b600c829055600d8190556108b78282610d57565b600e819055600f555050565b6000546001600160a01b031633146108ed5760405162461bcd60e51b815260040161089a90611b2a565b6015805460ff1916911515919091179055565b6001600160a01b0383166000908152600960209081526040808320338452909152812054600019146109ad576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600982528381203382529091529190912054610988918490610db6565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b6109b8848484610df0565b90505b9392505050565b6006546001600160a01b0316600090815260086020526040812054610a0f906005546001600160a01b0316600090815260086020526040902054610a099060025490611264565b90611264565b905090565b600061086a82600019610803565b6000546001600160a01b03163314610a4c5760405162461bcd60e51b815260040161089a90611b2a565b601580549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610a905760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610ae55760405162461bcd60e51b815260040161089a90611b2a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b595760405162461bcd60e51b815260040161089a90611b2a565b60005b82811015610bd6578160166000868685818110610b8957634e487b7160e01b600052603260045260246000fd5b9050602002016020810190610b9e91906118c9565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610bcf81611c3d565b9050610b5c565b50505050565b60006109bb338484610df0565b6000546001600160a01b03163314610c135760405162461bcd60e51b815260040161089a90611b2a565b600455565b6000546001600160a01b03163314610c425760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b038116610ca75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161089a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d2c5760405162461bcd60e51b815260040161089a90611b2a565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b600080610d648385611bcf565b9050838110156109bb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161089a565b60008184841115610dda5760405162461bcd60e51b815260040161089a9190611ad7565b506000610de78486611c26565b95945050505050565b60175460009060ff1615610e1057610e098484846112a6565b90506109bb565b6001600160a01b03841660009081526001602052604090205460ff16158015610e5257506001600160a01b03831660009081526001602052604090205460ff16155b15610ea05760155460ff16610ea05760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b604482015260640161089a565b60035482111580610ec957506001600160a01b0384166000908152600b602052604090205460ff165b610f095760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b604482015260640161089a565b6013546001600160a01b03163314801590610f27575060175460ff16155b8015610f3a5750601754610100900460ff165b8015610f5757506018543060009081526008602052604090205410155b15610f6457610f6461138c565b601454158015610f8157506013546001600160a01b038481169116145b15610fed576001600160a01b038416600090815260086020526040902054610fe45760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b604482015260640161089a565b610fed43601455565b601554610100900460ff1615611079576001600160a01b03841660009081526016602052604090205460ff1615801561103f57506001600160a01b03831660009081526016602052604090205460ff16155b6110795760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b604482015260640161089a565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600890915291909120546110cb918490610db6565b6001600160a01b038086166000908152600860209081526040808320949094559186168152600b909152205460ff161580156111105750600754600160a01b900460ff165b15611180576004546001600160a01b03841660009081526008602052604090205461113b9084610d57565b11156111805760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b604482015260640161089a565b6001600160a01b0384166000908152600a602052604081205460ff161580156111c257506001600160a01b0384166000908152600a602052604090205460ff16155b6111cc57826111d7565b6111d7858585611707565b6001600160a01b0385166000908152600860205260409020549091506111fd9082610d57565b6001600160a01b0380861660008181526008602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112519085815260200190565b60405180910390a3506001949350505050565b60006109bb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610db6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526008909152918220546112f7918490610db6565b6001600160a01b0380861660009081526008602052604080822093909355908516815220546113269083610d57565b6001600160a01b0380851660008181526008602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137a9086815260200190565b60405180910390a35060019392505050565b6017805460ff1916600117905530600090815260086020526040812054600e54600c549192916113cd916002916113c79190829087906117ca565b90611849565b905060006113db8383611264565b6040805160028082526060820183529293506000929091602083019080368337019050509050308160008151811061142357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561147757600080fd5b505afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af91906118e5565b816001815181106114d057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260125460405163791ac94760e01b815291169063791ac94790611516908590600090869030904290600401611b5f565b600060405180830381600087803b15801561153057600080fd5b505af1158015611544573d6000803e3d6000fd5b5050600c54479250600091506115689061155f906002611849565b600e5490611264565b9050600061158a60026113c7846113c7600c54886117ca90919063ffffffff16565b905060006115a7836113c7600d54876117ca90919063ffffffff16565b6011546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d80600081146115fe576040519150601f19603f3d011682016040523d82523d6000602084013e611603565b606091505b506000925050881590506116f25760125460105460405163f305d71960e01b8152306004820152602481018b905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c4016060604051808303818588803b15801561167c57600080fd5b505af1158015611690573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906116b59190611aaa565b505060408051858152602081018b90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b60135460009081906001600160a01b0385811691161461172957600e5461172d565b600f545b9050600061174060646113c786856117ca565b3060009081526008602052604090205490915061175d9082610d57565b30600081815260086020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ae9085815260200190565b60405180910390a36117c08482611264565b9695505050505050565b6000826117d95750600061086a565b60006117e58385611c07565b9050826117f28583611be7565b146109bb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161089a565b60006109bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836118a75760405162461bcd60e51b815260040161089a9190611ad7565b506000610de78486611be7565b803580151581146118c457600080fd5b919050565b6000602082840312156118da578081fd5b81356109bb81611c6e565b6000602082840312156118f6578081fd5b81516109bb81611c6e565b60008060408385031215611913578081fd5b823561191e81611c6e565b9150602083013561192e81611c6e565b809150509250929050565b60008060006060848603121561194d578081fd5b833561195881611c6e565b9250602084013561196881611c6e565b929592945050506040919091013590565b6000806040838503121561198b578182fd5b823561199681611c6e565b91506119a4602084016118b4565b90509250929050565b600080604083850312156119bf578182fd5b82356119ca81611c6e565b946020939093013593505050565b6000806000604084860312156119ec578283fd5b833567ffffffffffffffff80821115611a03578485fd5b818601915086601f830112611a16578485fd5b813581811115611a24578586fd5b8760208260051b8501011115611a38578586fd5b602092830195509350611a4e91860190506118b4565b90509250925092565b600060208284031215611a68578081fd5b6109bb826118b4565b600060208284031215611a82578081fd5b5035919050565b60008060408385031215611a9b578182fd5b50508035926020909101359150565b600080600060608486031215611abe578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b81811015611b0357858101830151858201604001528201611ae7565b81811115611b145783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015611bae5784516001600160a01b031683529383019391830191600101611b89565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611be257611be2611c58565b500190565b600082611c0257634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611c2157611c21611c58565b500290565b600082821015611c3857611c38611c58565b500390565b6000600019821415611c5157611c51611c58565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611c8357600080fd5b5056fea2646970667358221220bee26d61939f9ecffbc2beb6385750c7bfe2b8a05159d3155f4e4fe544f8f8d964736f6c63430008040033

Deployed Bytecode Sourcemap

5323:9530:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6780:54;;;;;;;;;;;;;;;;;;;9425:25:1;;;9413:2;9398:18;6780:54:0;;;;;;;;7991:78;;;;;;;;;;-1:-1:-1;8062:5:0;;;;;;;;;;;;-1:-1:-1;;;8062:5:0;;;;7991:78;;;;;;;:::i;8847:216::-;;;;;;;;;;-1:-1:-1;8847:216:0;;;;;:::i;:::-;;:::i;:::-;;;5154:14:1;;5147:22;5129:41;;5117:2;5102:18;8847:216:0;5084:92:1;14264:249:0;;;;;;;;;;-1:-1:-1;14264:249:0;;;;;:::i;:::-;;:::i;:::-;;13896:98;;;;;;;;;;-1:-1:-1;13896:98:0;;;;;:::i;:::-;;:::i;8253:86::-;;;;;;;;;;-1:-1:-1;8325:12:0;;8253:86;;6257:27;;;;;;;;;;;;;;;;6644:28;;;;;;;;;;-1:-1:-1;6644:28:0;;;;;;;;10054:370;;;;;;;;;;-1:-1:-1;10054:370:0;;;;;:::i;:::-;;:::i;8683:156::-;;;;;;;;;;;;;:::i;8167:78::-;;;;;;;;;;-1:-1:-1;8167:78:0;;5435:2;10844:36:1;;10832:2;10817:18;8167:78:0;10799:87:1;6075:43:0;;;;;;;;;;-1:-1:-1;6075:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5921:33;;;;;;;;;;-1:-1:-1;5921:33:0;;;;-1:-1:-1;;;5921:33:0;;;;;;6679:40;;;;;;;;;;-1:-1:-1;6679:40:0;;;;;;;;;;;6219:29;;;;;;;;;;;;;;;;9071:122;;;;;;;;;;-1:-1:-1;9071:122:0;;;;;:::i;:::-;;:::i;14525:95::-;;;;;;;;;;-1:-1:-1;14525:95:0;;;;;:::i;:::-;;:::i;14002:119::-;;;;;;;;;;-1:-1:-1;14002:119:0;;;;;:::i;:::-;;:::i;8433:103::-;;;;;;;;;;-1:-1:-1;8433:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;8516:18:0;8499:7;8516:18;;;:9;:18;;;;;;;8433:103;4916:148;;;;;;;;;;;;;:::i;6379:30::-;;;;;;;;;;-1:-1:-1;6379:30:0;;;;-1:-1:-1;;;;;6379:30:0;;;;;;-1:-1:-1;;;;;4333:32:1;;;4315:51;;4303:2;4288:18;6379:30:0;4270:102:1;5510:42:0;;;;;;;;;;;;;;;;5559:40;;;;;;;;;;;;;;;;8347:78;;;;;;;;;;-1:-1:-1;8399:7:0;4767:6;-1:-1:-1;;;;;4767:6:0;8347:78;8683:156;6550:33;;;;;;;;;;-1:-1:-1;6550:33:0;;;;;;;;;;;6125:47;;;;;;;;;;-1:-1:-1;6125:47:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;14638:210;;;;;;;;;;-1:-1:-1;14638:210:0;;;;;:::i;:::-;;:::i;8077:82::-;;;;;;;;;;-1:-1:-1;8150:7:0;;;;;;;;;;;;-1:-1:-1;;;8150:7:0;;;;8077:82;;6181:31;;;;;;;;;;;;;;;;6452:19;;;;;;;;;;-1:-1:-1;6452:19:0;;;;-1:-1:-1;;;;;6452:19:0;;;9552:156;;;;;;;;;;-1:-1:-1;9552:156:0;;;;;:::i;:::-;;:::i;6480:25::-;;;;;;;;;;;;;;;;6336:36;;;;;;;;;;-1:-1:-1;6336:36:0;;;;-1:-1:-1;;;;;6336:36:0;;;6291;;;;;;;;;;;;;;;;6726:45;;;;;;;;;;-1:-1:-1;6726:45:0;;;;;;;;;;;8544:131;;;;;;;;;;-1:-1:-1;8544:131:0;;;;;:::i;:::-;-1:-1:-1;;;;;8645:19:0;;;8628:7;8645:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8544:131;13787:101;;;;;;;;;;-1:-1:-1;13787:101:0;;;;;:::i;:::-;;:::i;5072:244::-;;;;;;;;;;-1:-1:-1;5072:244:0;;;;;:::i;:::-;;:::i;14129:127::-;;;;;;;;;;-1:-1:-1;14129:127:0;;;;;:::i;:::-;;:::i;6418:27::-;;;;;;;;;;-1:-1:-1;6418:27:0;;;;-1:-1:-1;;;;;6418:27:0;;;6590:45;;;;;;;;;;-1:-1:-1;6590:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6512:31;;;;;;;;;;-1:-1:-1;6512:31:0;;;;;;;;8847:216;8951:10;8922:4;8939:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;8939:32:0;;;;;;;;;;:41;;;8996:37;8922:4;;8939:32;;8996:37;;;;8974:6;9425:25:1;;9413:2;9398:18;;9380:76;8996:37:0;;;;;;;;-1:-1:-1;9051:4:0;8847:216;;;;;:::o;14264:249::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;;;;;;;;;14353:12:::1;:24:::0;;;14388:10:::1;:26:::0;;;14438:28:::1;14368:9:::0;14401:13;14438:16:::1;:28::i;:::-;14427:8;:39:::0;;;14477:17:::1;:28:::0;-1:-1:-1;;14264:249:0:o;13896:98::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;13963:11:::1;:23:::0;;-1:-1:-1;;13963:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13896:98::o;10054:370::-;-1:-1:-1;;;;;10175:19:0;;10154:4;10175:19;;;:11;:19;;;;;;;;10195:10;10175:31;;;;;;;;-1:-1:-1;;10175:52:0;10171:188;;10278:69;;;;;;;;;;;-1:-1:-1;;;10278:69:0;;;;;;;;-1:-1:-1;;;;;10278:19:0;;-1:-1:-1;10278:19:0;;;:11;:19;;;;;10298:10;10278:31;;;;;;;;;;:69;;10314:6;;10278:35;:69::i;:::-;-1:-1:-1;;;;;10244:19:0;;;;;;:11;:19;;;;;;;;10264:10;10244:31;;;;;;;:103;10171:188;10376:40;10390:6;10398:9;10409:6;10376:13;:40::i;:::-;10369:47;;10054:370;;;;;;:::o;8683:156::-;8818:11;;-1:-1:-1;;;;;8818:11:0;8736:7;8516:18;;;:9;:18;;;;;;8763:68;;8790:11;;-1:-1:-1;;;;;8790:11:0;8499:7;8516:18;;;:9;:18;;;;;;8763:40;;:12;;;:16;:40::i;:::-;:44;;:68::i;:::-;8756:75;;8683:156;:::o;9071:122::-;9126:4;9150:35;9158:7;-1:-1:-1;;9150:7:0;:35::i;14525:95::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;14589:13:::1;:23:::0;;;::::1;;;;-1:-1:-1::0;;14589:23:0;;::::1;::::0;;;::::1;::::0;;14525:95::o;14002:119::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14085:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;14085:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14002:119::o;4916:148::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;5023:1:::1;5007:6:::0;;4986:40:::1;::::0;-1:-1:-1;;;;;5007:6:0;;::::1;::::0;4986:40:::1;::::0;5023:1;;4986:40:::1;5054:1;5037:19:::0;;-1:-1:-1;;;;;;5037:19:0::1;::::0;;4916:148::o;14638:210::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;14740:9:::1;14735:106;14751:20:::0;;::::1;14735:106;;;14823:6;14793:13;:27;14807:9;;14817:1;14807:12;;;;;-1:-1:-1::0;;;14807:12:0::1;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14793:27:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;14793:27:0;:36;;-1:-1:-1;;14793:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14773:3:::1;::::0;::::1;:::i;:::-;;;14735:106;;;;14638:210:::0;;;:::o;9552:156::-;9632:4;9656:44;9670:10;9682:9;9693:6;9656:13;:44::i;13787:101::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;13859:10:::1;:21:::0;13787:101::o;5072:244::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;5161:22:0;::::1;5153:73;;;::::0;-1:-1:-1;;;5153:73:0;;6566:2:1;5153:73:0::1;::::0;::::1;6548:21:1::0;6605:2;6585:18;;;6578:30;6644:34;6624:18;;;6617:62;-1:-1:-1;;;6695:18:1;;;6688:36;6741:19;;5153:73:0::1;6538:228:1::0;5153:73:0::1;5263:6;::::0;;5242:38:::1;::::0;-1:-1:-1;;;;;5242:38:0;;::::1;::::0;5263:6;::::1;::::0;5242:38:::1;::::0;::::1;5291:6;:17:::0;;-1:-1:-1;;;;;;5291:17:0::1;-1:-1:-1::0;;;;;5291:17:0;;;::::1;::::0;;;::::1;::::0;;5072:244::o;14129:127::-;4829:6;;-1:-1:-1;;;;;4829:6:0;4138:10;4829:22;4821:67;;;;-1:-1:-1;;;4821:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14216:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;14216:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14129:127::o;2914:179::-;2972:7;;3004:5;3008:1;3004;:5;:::i;:::-;2992:17;;3033:1;3028;:6;;3020:46;;;;-1:-1:-1;;;3020:46:0;;6973:2:1;3020:46:0;;;6955:21:1;7012:2;6992:18;;;6985:30;7051:29;7031:18;;;7024:57;7098:18;;3020:46:0;6945:177:1;3245:190:0;3331:7;3367:12;3359:6;;;;3351:29;;;;-1:-1:-1;;;3351:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3391:9:0;3403:5;3407:1;3403;:5;:::i;:::-;3391:17;3245:190;-1:-1:-1;;;;;3245:190:0:o;10432:1447::-;10545:16;;10524:4;;10545:16;;10541:73;;;10571:41;10586:6;10594:9;10605:6;10571:14;:41::i;:::-;10564:48;;;;10541:73;-1:-1:-1;;;;;10628:22:0;;;;;;:14;:22;;;;;;;;10627:23;:53;;;;-1:-1:-1;;;;;;10655:25:0;;;;;;:14;:25;;;;;;;;10654:26;10627:53;10624:128;;;10704:11;;;;10696:44;;;;-1:-1:-1;;;10696:44:0;;7680:2:1;10696:44:0;;;7662:21:1;7719:2;7699:18;;;7692:30;-1:-1:-1;;;7738:18:1;;;7731:50;7798:18;;10696:44:0;7652:170:1;10696:44:0;10782:12;;10772:6;:22;;:49;;;-1:-1:-1;;;;;;10798:23:0;;;;;;:15;:23;;;;;;;;10772:49;10764:79;;;;-1:-1:-1;;;10764:79:0;;6220:2:1;10764:79:0;;;6202:21:1;6259:2;6239:18;;;6232:30;-1:-1:-1;;;6278:18:1;;;6271:47;6335:18;;10764:79:0;6192:167:1;10764:79:0;10872:4;;-1:-1:-1;;;;;10872:4:0;10858:10;:18;;;;:39;;-1:-1:-1;10881:16:0;;;;10880:17;10858:39;:64;;;;-1:-1:-1;10901:21:0;;;;;;;10858:64;:109;;;;-1:-1:-1;10954:13:0;;10944:4;10926:24;;;;:9;:24;;;;;;:41;;10858:109;10854:141;;;10970:23;:21;:23::i;:::-;9268:10;;:15;;;11009:32;;-1:-1:-1;11037:4:0;;-1:-1:-1;;;;;11024:17:0;;;11037:4;;11024:17;11009:32;11005:144;;;-1:-1:-1;;;;;11066:17:0;;11086:1;11066:17;;;:9;:17;;;;;;11058:56;;;;-1:-1:-1;;;11058:56:0;;7329:2:1;11058:56:0;;;7311:21:1;7368:2;7348:18;;;7341:30;-1:-1:-1;;;7387:18:1;;;7380:52;7449:18;;11058:56:0;7301:172:1;11058:56:0;11129:8;9350:12;9337:10;:25;9299:71;11129:8;11191:13;;;;;;;11187:120;;;-1:-1:-1;;;;;11230:21:0;;;;;;:13;:21;;;;;;;;11229:22;:51;;;;-1:-1:-1;;;;;;11256:24:0;;;;;;:13;:24;;;;;;;;11255:25;11229:51;11221:74;;;;-1:-1:-1;;;11221:74:0;;9141:2:1;11221:74:0;;;9123:21:1;9180:2;9160:18;;;9153:30;-1:-1:-1;;;9199:18:1;;;9192:41;9250:18;;11221:74:0;9113:161:1;11221:74:0;11367:53;;;;;;;;;;;-1:-1:-1;;;11367:53:0;;;;;;;;-1:-1:-1;;;;;11367:17:0;;-1:-1:-1;11367:17:0;;;:9;:17;;;;;;;;:53;;11389:6;;11367:21;:53::i;:::-;-1:-1:-1;;;;;11347:17:0;;;;;;;:9;:17;;;;;;;;:73;;;;11438:26;;;;;:15;:26;;;;;;;11437:27;:45;;;;-1:-1:-1;11468:14:0;;-1:-1:-1;;;11468:14:0;;;;11437:45;11433:157;;;11543:10;;-1:-1:-1;;;;;11507:20:0;;;;;;:9;:20;;;;;;:32;;11532:6;11507:24;:32::i;:::-;:46;;11499:79;;;;-1:-1:-1;;;11499:79:0;;8792:2:1;11499:79:0;;;8774:21:1;8831:2;8811:18;;;8804:30;-1:-1:-1;;;8850:18:1;;;8843:50;8910:18;;11499:79:0;8764:170:1;11499:79:0;-1:-1:-1;;;;;11625:19:0;;11602;11625;;;:11;:19;;;;;;;;11624:20;:47;;;;-1:-1:-1;;;;;;11649:22:0;;;;;;:11;:22;;;;;;;;11648:23;11624:47;:96;;11714:6;11624:96;;;11674:37;11685:6;11693:9;11704:6;11674:10;:37::i;:::-;-1:-1:-1;;;;;11754:20:0;;;;;;:9;:20;;;;;;11602:118;;-1:-1:-1;11754:37:0;;11602:118;11754:24;:37::i;:::-;-1:-1:-1;;;;;11731:20:0;;;;;;;:9;:20;;;;;;;:60;;;;11809:40;;;;;;;;;;11837:11;9425:25:1;;9413:2;9398:18;;9380:76;11809:40:0;;;;;;;;-1:-1:-1;11867:4:0;;10432:1447;-1:-1:-1;;;;10432:1447:0:o;3101:136::-;3159:7;3186:43;3190:1;3193;3186:43;;;;;;;;;;;;;;;;;:3;:43::i;9716:330::-;9846:53;;;;;;;;;;;-1:-1:-1;;;9846:53:0;;;;;;;;-1:-1:-1;;;;;9846:17:0;;9809:4;9846:17;;;:9;:17;;;;;;;:53;;9868:6;;9846:21;:53::i;:::-;-1:-1:-1;;;;;9826:17:0;;;;;;;:9;:17;;;;;;:73;;;;9933:20;;;;;;;:32;;9958:6;9933:24;:32::i;:::-;-1:-1:-1;;;;;9910:20:0;;;;;;;:9;:20;;;;;;;:55;;;;9981:35;;;;;;;;;;10009:6;9425:25:1;;9413:2;9398:18;;9380:76;9981:35:0;;;;;;;;-1:-1:-1;10034:4:0;9716:330;;;;;:::o;12327:1417::-;6939:16;:23;;-1:-1:-1;;6939:23:0;6958:4;6939:23;;;12436:4:::1;6939:16:::0;12418:24;;;:9:::1;:24;::::0;;;;;12517:8:::1;::::0;12499:12:::1;::::0;12418:24;;6939:16;12479:54:::1;::::0;12531:1:::1;::::0;12479:47:::1;::::0;12517:8;12479:47;;12418:24;;12479:19:::1;:33::i;:::-;:37:::0;::::1;:47::i;:54::-;12453:80:::0;-1:-1:-1;12544:20:0::1;12567:36;:15:::0;12453:80;12567:19:::1;:36::i;:::-;12640:16;::::0;;12654:1:::1;12640:16:::0;;;;;::::1;::::0;;12544:59;;-1:-1:-1;12616:21:0::1;::::0;12640:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12640:16:0::1;12616:40;;12685:4;12667;12672:1;12667:7;;;;;;-1:-1:-1::0;;;12667:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12667:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12711:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;12711:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;12667:7;;12711:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12701:4;12706:1;12701:7;;;;;;-1:-1:-1::0;;;12701:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12701:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;12737:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;12737:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;12809:12;;12737:6:::1;::::0;12852:4;;12879::::1;::::0;12899:15:::1;::::0;12737:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;13027:12:0::1;::::0;12958:21:::1;::::0;-1:-1:-1;12938:17:0::1;::::0;-1:-1:-1;13014:33:0::1;::::0;13027:19:::1;::::0;13044:1:::1;13027:16;:19::i;:::-;13014:8;::::0;;:12:::1;:33::i;:::-;12992:55;;13060:26;13089:51;13138:1;13089:44;13121:11;13089:27;13103:12;;13089:9;:13;;:27;;;;:::i;:51::-;13060:80;;13151:26;13180:42;13210:11;13180:25;13194:10;;13180:9;:13;;:25;;;;:::i;:42::-;13264:15;::::0;13256:74:::1;::::0;13151:71;;-1:-1:-1;13236:15:0::1;::::0;-1:-1:-1;;;;;13264:15:0;;::::1;::::0;13320:5:::1;::::0;13151:71;;13236:15;13256:74;13236:15;13256:74;13151:71;13264:15;13320:5;13256:74:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;13354:5:0::1;::::0;-1:-1:-1;;13376:19:0;;;-1:-1:-1;13372:365:0::1;;13412:6;::::0;13587:21:::1;::::0;13412:245:::1;::::0;-1:-1:-1;;;13412:245:0;;13489:4:::1;13412:245;::::0;::::1;4718:34:1::0;4768:18;;;4761:34;;;13412:6:0::1;4811:18:1::0;;;4804:34;;;4854:18;;;4847:34;-1:-1:-1;;;;;13587:21:0;;::::1;4897:19:1::0;;;4890:44;13627:15:0::1;4950:19:1::0;;;4943:35;13412:6:0;::::1;::::0;:22:::1;::::0;13443:18;;4652:19:1;;13412:245:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13677:48:0::1;::::0;;10623:25:1;;;10679:2;10664:18;;10657:34;;;13677:48:0::1;::::0;-1:-1:-1;10596:18:1;13677:48:0::1;;;;;;;13372:365;-1:-1:-1::0;;6985:16:0;:24;;-1:-1:-1;;6985:24:0;;;-1:-1:-1;;;;;;;12327:1417:0:o;11887:432::-;12020:4;;11976:7;;;;-1:-1:-1;;;;;12020:17:0;;;:4;;:17;:48;;12060:8;;12020:48;;;12040:17;;12020:48;11996:72;-1:-1:-1;12079:17:0;12099:34;12129:3;12099:25;:6;11996:72;12099:10;:25::i;:34::-;12191:4;12173:24;;;;:9;:24;;;;;;12079:54;;-1:-1:-1;12173:39:0;;12079:54;12173:28;:39::i;:::-;12164:4;12146:24;;;;:9;:24;;;;;;;:66;;;;12228:42;;-1:-1:-1;;;;;12228:42:0;;;;;;;12260:9;9425:25:1;;9413:2;9398:18;;9380:76;12228:42:0;;;;;;;;12290:21;:6;12301:9;12290:10;:21::i;:::-;12283:28;11887:432;-1:-1:-1;;;;;;11887:432:0:o;3443:222::-;3501:7;3525:6;3521:23;;-1:-1:-1;3541:1:0;3534:8;;3521:23;3554:9;3566:5;3570:1;3566;:5;:::i;:::-;3554:17;-1:-1:-1;3599:1:0;3590:5;3594:1;3554:17;3590:5;:::i;:::-;:10;3582:56;;;;-1:-1:-1;;;3582:56:0;;8029:2:1;3582:56:0;;;8011:21:1;8068:2;8048:18;;;8041:30;8107:34;8087:18;;;8080:62;-1:-1:-1;;;8158:18:1;;;8151:31;8199:19;;3582:56:0;8001:223:1;3673:132:0;3731:7;3758:39;3762:1;3765;3758:39;;;;;;;;;;;;;;;;;3899:7;3934:12;3927:5;3919:28;;;;-1:-1:-1;;;3919:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3958:9:0;3970:5;3974:1;3970;:5;:::i;14:160:1:-;79:20;;135:13;;128:21;118:32;;108:2;;164:1;161;154:12;108:2;60:114;;;:::o;179:257::-;238:6;291:2;279:9;270:7;266:23;262:32;259:2;;;312:6;304;297:22;259:2;356:9;343:23;375:31;400:5;375:31;:::i;441:261::-;511:6;564:2;552:9;543:7;539:23;535:32;532:2;;;585:6;577;570:22;532:2;622:9;616:16;641:31;666:5;641:31;:::i;707:398::-;775:6;783;836:2;824:9;815:7;811:23;807:32;804:2;;;857:6;849;842:22;804:2;901:9;888:23;920:31;945:5;920:31;:::i;:::-;970:5;-1:-1:-1;1027:2:1;1012:18;;999:32;1040:33;999:32;1040:33;:::i;:::-;1092:7;1082:17;;;794:311;;;;;:::o;1110:466::-;1187:6;1195;1203;1256:2;1244:9;1235:7;1231:23;1227:32;1224:2;;;1277:6;1269;1262:22;1224:2;1321:9;1308:23;1340:31;1365:5;1340:31;:::i;:::-;1390:5;-1:-1:-1;1447:2:1;1432:18;;1419:32;1460:33;1419:32;1460:33;:::i;:::-;1214:362;;1512:7;;-1:-1:-1;;;1566:2:1;1551:18;;;;1538:32;;1214:362::o;1581:325::-;1646:6;1654;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:31;1816:5;1791:31;:::i;:::-;1841:5;-1:-1:-1;1865:35:1;1896:2;1881:18;;1865:35;:::i;:::-;1855:45;;1665:241;;;;;:::o;1911:325::-;1979:6;1987;2040:2;2028:9;2019:7;2015:23;2011:32;2008:2;;;2061:6;2053;2046:22;2008:2;2105:9;2092:23;2124:31;2149:5;2124:31;:::i;:::-;2174:5;2226:2;2211:18;;;;2198:32;;-1:-1:-1;;;1998:238:1:o;2241:739::-;2333:6;2341;2349;2402:2;2390:9;2381:7;2377:23;2373:32;2370:2;;;2423:6;2415;2408:22;2370:2;2468:9;2455:23;2497:18;2538:2;2530:6;2527:14;2524:2;;;2559:6;2551;2544:22;2524:2;2602:6;2591:9;2587:22;2577:32;;2647:7;2640:4;2636:2;2632:13;2628:27;2618:2;;2674:6;2666;2659:22;2618:2;2719;2706:16;2745:2;2737:6;2734:14;2731:2;;;2766:6;2758;2751:22;2731:2;2826:7;2819:4;2809:6;2806:1;2802:14;2798:2;2794:23;2790:34;2787:47;2784:2;;;2852:6;2844;2837:22;2784:2;2888:4;2880:13;;;;-1:-1:-1;2912:6:1;-1:-1:-1;2937:37:1;;2953:20;;;-1:-1:-1;2937:37:1;:::i;:::-;2927:47;;2360:620;;;;;:::o;2985:190::-;3041:6;3094:2;3082:9;3073:7;3069:23;3065:32;3062:2;;;3115:6;3107;3100:22;3062:2;3143:26;3159:9;3143:26;:::i;3180:190::-;3239:6;3292:2;3280:9;3271:7;3267:23;3263:32;3260:2;;;3313:6;3305;3298:22;3260:2;-1:-1:-1;3341:23:1;;3250:120;-1:-1:-1;3250:120:1:o;3375:258::-;3443:6;3451;3504:2;3492:9;3483:7;3479:23;3475:32;3472:2;;;3525:6;3517;3510:22;3472:2;-1:-1:-1;;3553:23:1;;;3623:2;3608:18;;;3595:32;;-1:-1:-1;3462:171:1:o;3638:316::-;3726:6;3734;3742;3795:2;3783:9;3774:7;3770:23;3766:32;3763:2;;;3816:6;3808;3801:22;3763:2;3850:9;3844:16;3834:26;;3900:2;3889:9;3885:18;3879:25;3869:35;;3944:2;3933:9;3929:18;3923:25;3913:35;;3753:201;;;;;:::o;5410:603::-;5522:4;5551:2;5580;5569:9;5562:21;5612:6;5606:13;5655:6;5650:2;5639:9;5635:18;5628:34;5680:4;5693:140;5707:6;5704:1;5701:13;5693:140;;;5802:14;;;5798:23;;5792:30;5768:17;;;5787:2;5764:26;5757:66;5722:10;;5693:140;;;5851:6;5848:1;5845:13;5842:2;;;5921:4;5916:2;5907:6;5896:9;5892:22;5888:31;5881:45;5842:2;-1:-1:-1;5997:2:1;5976:15;-1:-1:-1;;5972:29:1;5957:45;;;;6004:2;5953:54;;5531:482;-1:-1:-1;;;5531:482:1:o;8229:356::-;8431:2;8413:21;;;8450:18;;;8443:30;8509:34;8504:2;8489:18;;8482:62;8576:2;8561:18;;8403:182::o;9461:983::-;9723:4;9771:3;9760:9;9756:19;9802:6;9791:9;9784:25;9828:2;9866:6;9861:2;9850:9;9846:18;9839:34;9909:3;9904:2;9893:9;9889:18;9882:31;9933:6;9968;9962:13;9999:6;9991;9984:22;10037:3;10026:9;10022:19;10015:26;;10076:2;10068:6;10064:15;10050:29;;10097:4;10110:195;10124:6;10121:1;10118:13;10110:195;;;10189:13;;-1:-1:-1;;;;;10185:39:1;10173:52;;10280:15;;;;10245:12;;;;10221:1;10139:9;10110:195;;;-1:-1:-1;;;;;;;10361:32:1;;;;10356:2;10341:18;;10334:60;-1:-1:-1;;;10425:3:1;10410:19;10403:35;10322:3;9732:712;-1:-1:-1;;;9732:712:1:o;10891:128::-;10931:3;10962:1;10958:6;10955:1;10952:13;10949:2;;;10968:18;;:::i;:::-;-1:-1:-1;11004:9:1;;10939:80::o;11024:217::-;11064:1;11090;11080:2;;-1:-1:-1;;;11115:31:1;;11169:4;11166:1;11159:15;11197:4;11122:1;11187:15;11080:2;-1:-1:-1;11226:9:1;;11070:171::o;11246:168::-;11286:7;11352:1;11348;11344:6;11340:14;11337:1;11334:21;11329:1;11322:9;11315:17;11311:45;11308:2;;;11359:18;;:::i;:::-;-1:-1:-1;11399:9:1;;11298:116::o;11419:125::-;11459:4;11487:1;11484;11481:8;11478:2;;;11492:18;;:::i;:::-;-1:-1:-1;11529:9:1;;11468:76::o;11549:135::-;11588:3;-1:-1:-1;;11609:17:1;;11606:2;;;11629:18;;:::i;:::-;-1:-1:-1;11676:1:1;11665:13;;11596:88::o;11689:127::-;11750:10;11745:3;11741:20;11738:1;11731:31;11781:4;11778:1;11771:15;11805:4;11802:1;11795:15;11821:131;-1:-1:-1;;;;;11896:31:1;;11886:42;;11876:2;;11942:1;11939;11932:12;11876:2;11866:86;:::o

Swarm Source

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