ETH Price: $3,915.14 (+5.87%)

Token

ERC-20: Popcat (POPCAT)
 

Overview

Max Total Supply

980,000,000 POPCAT

Holders

1,217

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
Popcat

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license
File 1 of 1 : Popcat.sol
/**
 *Submitted for verification at Etherscan.io on 2024-07-15
*/

/*


Embrace the legacy of Matt Furie's Pepe the Frog with $SMUG — the original MEME token derived from internet iconography.

https://SmugFrog.co/

https://t.me/SmugFrogPepe

https://x.com/SmugFrogPepe

*/

// SPDX-License-Identifier: UNLICENSE

pragma solidity 0.8.23;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract Popcat is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=0;
    uint256 private _initialSellTax=0;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=0;
    uint256 private _reduceSellTaxAt=0;
    uint256 private _preventSwapBefore=0;
    uint256 private _transferTax=0;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 980000000 * 10**_decimals;
    string private constant _name = unicode"Popcat";
    string private constant _symbol = unicode"POPCAT";
    uint256 public _maxTxAmount= _tTotal;
    uint256 public _maxWalletSize= _tTotal;
    uint256 public _taxSwapThreshold= (_tTotal * 1) / 100;
    uint256 public _maxTaxSwap= (_tTotal * 1) / 100;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && to != _taxWallet) {
            require(!bots[from] && !bots[to]);

            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if(_buyCount>0){
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function removeLimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTranTax() external onlyOwner{
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBot(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrade() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }
    
    function reduceFee(uint256 _newBuyFee, uint256 _newSellFee, uint256 _reduceBuyCount, uint256 _reduceSellCount) public onlyOwner() {
      _finalBuyTax = _newBuyFee;
      _finalSellTax = _newSellFee;
      _reduceBuyTaxAt = _reduceBuyCount;
      _reduceSellTaxAt = _reduceSellCount;
    }

    receive() external payable {}

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender()==_taxWallet);
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0 && swapEnabled){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "remappings": []
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","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":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newSellFee","type":"uint256"},{"internalType":"uint256","name":"_reduceBuyCount","type":"uint256"},{"internalType":"uint256","name":"_reduceSellCount","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTranTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

60806040525f6006555f6007555f6008555f6009555f600a555f600b555f600c555f600d555f600e556009600a6200003891906200036e565b6200004890633a699d0062000385565b600f55620000596009600a6200036e565b6200006990633a699d0062000385565b60105560646200007c6009600a6200036e565b6200008c90633a699d0062000385565b6200009990600162000385565b620000a591906200039f565b6011556064620000b86009600a6200036e565b620000c890633a699d0062000385565b620000d590600162000385565b620000e191906200039f565b6012556014805461ffff60a81b191690555f601581905560165534801562000107575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191633179055620001686009600a6200036e565b6200017890633a699d0062000385565b335f908152600160208190526040822092909255600390620001a15f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600554909116835291208054909216179055620001ff3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002386009600a6200036e565b6200024890633a699d0062000385565b60405190815260200160405180910390a3620003bf565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620002b357815f19048211156200029757620002976200025f565b80851615620002a557918102915b93841c939080029062000278565b509250929050565b5f82620002cb5750600162000368565b81620002d957505f62000368565b8160018114620002f25760028114620002fd576200031d565b600191505062000368565b60ff8411156200031157620003116200025f565b50506001821b62000368565b5060208310610133831016604e8410600b841016171562000342575081810a62000368565b6200034e838362000273565b805f19048211156200036457620003646200025f565b0290505b92915050565b5f6200037e60ff841683620002bb565b9392505050565b80820281158282048414176200036857620003686200025f565b5f82620003ba57634e487b7160e01b5f52601260045260245ffd5b500490565b611d0680620003cd5f395ff3fe60806040526004361061014a575f3560e01c8063715018a6116100b357806395d89b411161006d57806395d89b411461039f578063a9059cbb146103cd578063bf474bed146103ec578063c97c182114610401578063dd62ed3e14610420578063fb201b1d14610464575f80fd5b8063715018a6146102fd578063734a0a9f146103115780637d1db4a5146103305780638cd4426d146103455780638da5cb5b146103645780638f9a55c01461038a575f80fd5b806323b872dd1161010457806323b872dd14610230578063313ce5671461024f5780633bbac5791461026a57806351bc3c85146102a157806362256589146102b557806370a08231146102c9575f80fd5b806302fa1f4a1461015557806306fdde031461016b578063095ea7b3146101ab5780630faee56f146101da57806318160ddd146101fd57806321bbcbb114610211575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610478565b005b348015610176575f80fd5b50604080518082019091526006815265141bdc18d85d60d21b60208201525b6040516101a291906117cc565b60405180910390f35b3480156101b6575f80fd5b506101ca6101c536600461183f565b6104e6565b60405190151581526020016101a2565b3480156101e5575f80fd5b506101ef60125481565b6040519081526020016101a2565b348015610208575f80fd5b506101ef6104fc565b34801561021c575f80fd5b5061016961022b36600461187d565b61051c565b34801561023b575f80fd5b506101ca61024a36600461193d565b6105a4565b34801561025a575f80fd5b50604051600981526020016101a2565b348015610275575f80fd5b506101ca61028436600461197b565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102ac575f80fd5b5061016961060b565b3480156102c0575f80fd5b5061016961066f565b3480156102d4575f80fd5b506101ef6102e336600461197b565b6001600160a01b03165f9081526001602052604090205490565b348015610308575f80fd5b5061016961071b565b34801561031c575f80fd5b5061016961032b366004611996565b61078c565b34801561033b575f80fd5b506101ef600f5481565b348015610350575f80fd5b5061016961035f36600461183f565b6107c9565b34801561036f575f80fd5b505f546040516001600160a01b0390911681526020016101a2565b348015610395575f80fd5b506101ef60105481565b3480156103aa575f80fd5b506040805180820190915260068152651413d410d05560d21b6020820152610195565b3480156103d8575f80fd5b506101ca6103e736600461183f565b6108e5565b3480156103f7575f80fd5b506101ef60115481565b34801561040c575f80fd5b5061016961041b36600461187d565b6108f1565b34801561042b575f80fd5b506101ef61043a3660046119c5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561046f575f80fd5b50610169610974565b5f546001600160a01b031633146104aa5760405162461bcd60e51b81526004016104a1906119fc565b60405180910390fd5b5f600d8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104f2338484610d1d565b5060015b92915050565b5f6105096009600a611b25565b61051790633a699d00611b33565b905090565b5f546001600160a01b031633146105455760405162461bcd60e51b81526004016104a1906119fc565b5f5b81518110156105a057600160045f84848151811061056757610567611b4a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610547565b5050565b5f6105b0848484610e40565b61060184336105fc85604051806060016040528060288152602001611ca9602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611448565b610d1d565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461062a575f80fd5b305f9081526001602052604090205480158015906106515750601454600160b01b900460ff165b1561065f5761065f81611480565b4780156105a0576105a0816115f0565b5f546001600160a01b031633146106985760405162461bcd60e51b81526004016104a1906119fc565b6106a46009600a611b25565b6106b290633a699d00611b33565b600f556106c16009600a611b25565b6106cf90633a699d00611b33565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106ff6009600a611b25565b61070d90633a699d00611b33565b6040519081526020016104dc565b5f546001600160a01b031633146107445760405162461bcd60e51b81526004016104a1906119fc565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107b55760405162461bcd60e51b81526004016104a1906119fc565b600893909355600991909155600a55600b55565b6005546001600160a01b0316336001600160a01b0316146107e8575f80fd5b6040516370a0823160e01b81523060048201525f90610869906064906108639085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190611b5e565b90611627565b906116ac565b60055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af11580156108bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190611b75565b50505050565b5f6104f2338484610e40565b5f546001600160a01b0316331461091a5760405162461bcd60e51b81526004016104a1906119fc565b5f5b81518110156105a0575f60045f84848151811061093b5761093b611b4a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161091c565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104a1906119fc565b601454600160a01b900460ff16156109f75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a40903090610a326009600a611b25565b6105fc90633a699d00611b33565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab49190611b94565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b379190611b94565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba59190611b94565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610bec816001600160a01b03165f9081526001602052604090205490565b5f80610bff5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c65573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c8a9190611baf565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610cdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d039190611b75565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610d7f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a1565b6001600160a01b038216610de05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ea45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a1565b6001600160a01b038216610f065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a1565b5f8111610f675760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a1565b5f80546001600160a01b03858116911614801590610f9257505f546001600160a01b03848116911614155b8015610fac57506005546001600160a01b03848116911614155b1561130b576001600160a01b0384165f9081526004602052604090205460ff16158015610ff157506001600160a01b0383165f9081526004602052604090205460ff16155b610ff9575f80fd5b600e545f0361102b576110286064610863600a54600e541161101d57600654611021565b6008545b8590611627565b90505b600e54156110505761104d6064610863600d548561162790919063ffffffff16565b90505b6014546001600160a01b03858116911614801561107b57506013546001600160a01b03848116911614155b801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b156111a257600f548211156110f65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a1565b60105482611118856001600160a01b03165f9081526001602052604090205490565b6111229190611bda565b11156111705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a1565b61118b6064610863600a54600e541161101d57600654611021565b600e80549192505f61119c83611bed565b91905055505b6014546001600160a01b0384811691161480156111c857506001600160a01b0384163014155b156111f5576111f26064610863600b54600e54116111e857600754611021565b6009548590611627565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561122b57506014546001600160a01b038581169116145b80156112405750601454600160b01b900460ff165b801561124d575060115481115b801561125c5750600c54600e54115b1561130957601654431115611270575f6015555b6003601554106112c25760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104a1565b6112df6112da846112d5846012546116ed565b6116ed565b611480565b4780156112ef576112ef476115f0565b60158054905f6112fe83611bed565b909155505043601655505b505b801561138357305f9081526001602052604090205461132a9082611701565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137a9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113a5908361175f565b6001600160a01b0385165f908152600160205260409020556113e86113ca838361175f565b6001600160a01b0385165f9081526001602052604090205490611701565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611431858561175f565b60405190815260200160405180910390a350505050565b5f818484111561146b5760405162461bcd60e51b81526004016104a191906117cc565b505f6114778486611c05565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114c6576114c6611b4a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561151d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115419190611b94565b8160018151811061155457611554611b4a565b6001600160a01b03928316602091820292909201015260135461157a9130911684610d1d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115b29085905f90869030904290600401611c18565b5f604051808303815f87803b1580156115c9575f80fd5b505af11580156115db573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105a0573d5f803e3d5ffd5b5f825f0361163657505f6104f6565b5f6116418385611b33565b90508261164e8583611c89565b146116a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a1565b9392505050565b5f6116a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117a0565b5f8183116116fb57826116a5565b50919050565b5f8061170d8385611bda565b9050838110156116a55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a1565b5f6116a583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611448565b5f81836117c05760405162461bcd60e51b81526004016104a191906117cc565b505f6114778486611c89565b5f602080835283518060208501525f5b818110156117f8578581018301518582016040015282016117dc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461182c575f80fd5b50565b803561183a81611818565b919050565b5f8060408385031215611850575f80fd5b823561185b81611818565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561188e575f80fd5b823567ffffffffffffffff808211156118a5575f80fd5b818501915085601f8301126118b8575f80fd5b8135818111156118ca576118ca611869565b8060051b604051601f19603f830116810181811085821117156118ef576118ef611869565b60405291825284820192508381018501918883111561190c575f80fd5b938501935b82851015611931576119228561182f565b84529385019392850192611911565b98975050505050505050565b5f805f6060848603121561194f575f80fd5b833561195a81611818565b9250602084013561196a81611818565b929592945050506040919091013590565b5f6020828403121561198b575f80fd5b81356116a581611818565b5f805f80608085870312156119a9575f80fd5b5050823594602084013594506040840135936060013592509050565b5f80604083850312156119d6575f80fd5b82356119e181611818565b915060208301356119f181611818565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7f57815f1904821115611a6557611a65611a31565b80851615611a7257918102915b93841c9390800290611a4a565b509250929050565b5f82611a95575060016104f6565b81611aa157505f6104f6565b8160018114611ab75760028114611ac157611add565b60019150506104f6565b60ff841115611ad257611ad2611a31565b50506001821b6104f6565b5060208310610133831016604e8410600b8410161715611b00575081810a6104f6565b611b0a8383611a45565b805f1904821115611b1d57611b1d611a31565b029392505050565b5f6116a560ff841683611a87565b80820281158282048414176104f6576104f6611a31565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b6e575f80fd5b5051919050565b5f60208284031215611b85575f80fd5b815180151581146116a5575f80fd5b5f60208284031215611ba4575f80fd5b81516116a581611818565b5f805f60608486031215611bc1575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104f6576104f6611a31565b5f60018201611bfe57611bfe611a31565b5060010190565b818103818111156104f6576104f6611a31565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c685784516001600160a01b031683529383019391830191600101611c43565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ca357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fe29809d2002ab0abaec6f0e71d0ae9eb80291d5c733be5b0df2d95359e9de964736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014a575f3560e01c8063715018a6116100b357806395d89b411161006d57806395d89b411461039f578063a9059cbb146103cd578063bf474bed146103ec578063c97c182114610401578063dd62ed3e14610420578063fb201b1d14610464575f80fd5b8063715018a6146102fd578063734a0a9f146103115780637d1db4a5146103305780638cd4426d146103455780638da5cb5b146103645780638f9a55c01461038a575f80fd5b806323b872dd1161010457806323b872dd14610230578063313ce5671461024f5780633bbac5791461026a57806351bc3c85146102a157806362256589146102b557806370a08231146102c9575f80fd5b806302fa1f4a1461015557806306fdde031461016b578063095ea7b3146101ab5780630faee56f146101da57806318160ddd146101fd57806321bbcbb114610211575f80fd5b3661015157005b5f80fd5b348015610160575f80fd5b50610169610478565b005b348015610176575f80fd5b50604080518082019091526006815265141bdc18d85d60d21b60208201525b6040516101a291906117cc565b60405180910390f35b3480156101b6575f80fd5b506101ca6101c536600461183f565b6104e6565b60405190151581526020016101a2565b3480156101e5575f80fd5b506101ef60125481565b6040519081526020016101a2565b348015610208575f80fd5b506101ef6104fc565b34801561021c575f80fd5b5061016961022b36600461187d565b61051c565b34801561023b575f80fd5b506101ca61024a36600461193d565b6105a4565b34801561025a575f80fd5b50604051600981526020016101a2565b348015610275575f80fd5b506101ca61028436600461197b565b6001600160a01b03165f9081526004602052604090205460ff1690565b3480156102ac575f80fd5b5061016961060b565b3480156102c0575f80fd5b5061016961066f565b3480156102d4575f80fd5b506101ef6102e336600461197b565b6001600160a01b03165f9081526001602052604090205490565b348015610308575f80fd5b5061016961071b565b34801561031c575f80fd5b5061016961032b366004611996565b61078c565b34801561033b575f80fd5b506101ef600f5481565b348015610350575f80fd5b5061016961035f36600461183f565b6107c9565b34801561036f575f80fd5b505f546040516001600160a01b0390911681526020016101a2565b348015610395575f80fd5b506101ef60105481565b3480156103aa575f80fd5b506040805180820190915260068152651413d410d05560d21b6020820152610195565b3480156103d8575f80fd5b506101ca6103e736600461183f565b6108e5565b3480156103f7575f80fd5b506101ef60115481565b34801561040c575f80fd5b5061016961041b36600461187d565b6108f1565b34801561042b575f80fd5b506101ef61043a3660046119c5565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b34801561046f575f80fd5b50610169610974565b5f546001600160a01b031633146104aa5760405162461bcd60e51b81526004016104a1906119fc565b60405180910390fd5b5f600d8190556040519081527fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de3906020015b60405180910390a1565b5f6104f2338484610d1d565b5060015b92915050565b5f6105096009600a611b25565b61051790633a699d00611b33565b905090565b5f546001600160a01b031633146105455760405162461bcd60e51b81526004016104a1906119fc565b5f5b81518110156105a057600160045f84848151811061056757610567611b4a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610547565b5050565b5f6105b0848484610e40565b61060184336105fc85604051806060016040528060288152602001611ca9602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190611448565b610d1d565b5060019392505050565b6005546001600160a01b0316336001600160a01b03161461062a575f80fd5b305f9081526001602052604090205480158015906106515750601454600160b01b900460ff165b1561065f5761065f81611480565b4780156105a0576105a0816115f0565b5f546001600160a01b031633146106985760405162461bcd60e51b81526004016104a1906119fc565b6106a46009600a611b25565b6106b290633a699d00611b33565b600f556106c16009600a611b25565b6106cf90633a699d00611b33565b6010557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106ff6009600a611b25565b61070d90633a699d00611b33565b6040519081526020016104dc565b5f546001600160a01b031633146107445760405162461bcd60e51b81526004016104a1906119fc565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146107b55760405162461bcd60e51b81526004016104a1906119fc565b600893909355600991909155600a55600b55565b6005546001600160a01b0316336001600160a01b0316146107e8575f80fd5b6040516370a0823160e01b81523060048201525f90610869906064906108639085906001600160a01b038816906370a0823190602401602060405180830381865afa158015610839573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085d9190611b5e565b90611627565b906116ac565b60055460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810183905291925084169063a9059cbb906044016020604051808303815f875af11580156108bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df9190611b75565b50505050565b5f6104f2338484610e40565b5f546001600160a01b0316331461091a5760405162461bcd60e51b81526004016104a1906119fc565b5f5b81518110156105a0575f60045f84848151811061093b5761093b611b4a565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161091c565b5f546001600160a01b0316331461099d5760405162461bcd60e51b81526004016104a1906119fc565b601454600160a01b900460ff16156109f75760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104a1565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a40903090610a326009600a611b25565b6105fc90633a699d00611b33565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab49190611b94565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b379190611b94565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b81573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba59190611b94565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610bec816001600160a01b03165f9081526001602052604090205490565b5f80610bff5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c65573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c8a9190611baf565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610cdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d039190611b75565b506014805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610d7f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104a1565b6001600160a01b038216610de05760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104a1565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ea45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104a1565b6001600160a01b038216610f065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104a1565b5f8111610f675760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104a1565b5f80546001600160a01b03858116911614801590610f9257505f546001600160a01b03848116911614155b8015610fac57506005546001600160a01b03848116911614155b1561130b576001600160a01b0384165f9081526004602052604090205460ff16158015610ff157506001600160a01b0383165f9081526004602052604090205460ff16155b610ff9575f80fd5b600e545f0361102b576110286064610863600a54600e541161101d57600654611021565b6008545b8590611627565b90505b600e54156110505761104d6064610863600d548561162790919063ffffffff16565b90505b6014546001600160a01b03858116911614801561107b57506013546001600160a01b03848116911614155b801561109f57506001600160a01b0383165f9081526003602052604090205460ff16155b156111a257600f548211156110f65760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104a1565b60105482611118856001600160a01b03165f9081526001602052604090205490565b6111229190611bda565b11156111705760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104a1565b61118b6064610863600a54600e541161101d57600654611021565b600e80549192505f61119c83611bed565b91905055505b6014546001600160a01b0384811691161480156111c857506001600160a01b0384163014155b156111f5576111f26064610863600b54600e54116111e857600754611021565b6009548590611627565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561122b57506014546001600160a01b038581169116145b80156112405750601454600160b01b900460ff165b801561124d575060115481115b801561125c5750600c54600e54115b1561130957601654431115611270575f6015555b6003601554106112c25760405162461bcd60e51b815260206004820152601760248201527f4f6e6c7920332073656c6c732070657220626c6f636b2100000000000000000060448201526064016104a1565b6112df6112da846112d5846012546116ed565b6116ed565b611480565b4780156112ef576112ef476115f0565b60158054905f6112fe83611bed565b909155505043601655505b505b801561138357305f9081526001602052604090205461132a9082611701565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061137a9085815260200190565b60405180910390a35b6001600160a01b0384165f908152600160205260409020546113a5908361175f565b6001600160a01b0385165f908152600160205260409020556113e86113ca838361175f565b6001600160a01b0385165f9081526001602052604090205490611701565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611431858561175f565b60405190815260200160405180910390a350505050565b5f818484111561146b5760405162461bcd60e51b81526004016104a191906117cc565b505f6114778486611c05565b95945050505050565b6014805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106114c6576114c6611b4a565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561151d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115419190611b94565b8160018151811061155457611554611b4a565b6001600160a01b03928316602091820292909201015260135461157a9130911684610d1d565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906115b29085905f90869030904290600401611c18565b5f604051808303815f87803b1580156115c9575f80fd5b505af11580156115db573d5f803e3d5ffd5b50506014805460ff60a81b1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156105a0573d5f803e3d5ffd5b5f825f0361163657505f6104f6565b5f6116418385611b33565b90508261164e8583611c89565b146116a55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a1565b9392505050565b5f6116a583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506117a0565b5f8183116116fb57826116a5565b50919050565b5f8061170d8385611bda565b9050838110156116a55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a1565b5f6116a583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611448565b5f81836117c05760405162461bcd60e51b81526004016104a191906117cc565b505f6114778486611c89565b5f602080835283518060208501525f5b818110156117f8578581018301518582016040015282016117dc565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461182c575f80fd5b50565b803561183a81611818565b919050565b5f8060408385031215611850575f80fd5b823561185b81611818565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b5f602080838503121561188e575f80fd5b823567ffffffffffffffff808211156118a5575f80fd5b818501915085601f8301126118b8575f80fd5b8135818111156118ca576118ca611869565b8060051b604051601f19603f830116810181811085821117156118ef576118ef611869565b60405291825284820192508381018501918883111561190c575f80fd5b938501935b82851015611931576119228561182f565b84529385019392850192611911565b98975050505050505050565b5f805f6060848603121561194f575f80fd5b833561195a81611818565b9250602084013561196a81611818565b929592945050506040919091013590565b5f6020828403121561198b575f80fd5b81356116a581611818565b5f805f80608085870312156119a9575f80fd5b5050823594602084013594506040840135936060013592509050565b5f80604083850312156119d6575f80fd5b82356119e181611818565b915060208301356119f181611818565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611a7f57815f1904821115611a6557611a65611a31565b80851615611a7257918102915b93841c9390800290611a4a565b509250929050565b5f82611a95575060016104f6565b81611aa157505f6104f6565b8160018114611ab75760028114611ac157611add565b60019150506104f6565b60ff841115611ad257611ad2611a31565b50506001821b6104f6565b5060208310610133831016604e8410600b8410161715611b00575081810a6104f6565b611b0a8383611a45565b805f1904821115611b1d57611b1d611a31565b029392505050565b5f6116a560ff841683611a87565b80820281158282048414176104f6576104f6611a31565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611b6e575f80fd5b5051919050565b5f60208284031215611b85575f80fd5b815180151581146116a5575f80fd5b5f60208284031215611ba4575f80fd5b81516116a581611818565b5f805f60608486031215611bc1575f80fd5b8351925060208401519150604084015190509250925092565b808201808211156104f6576104f6611a31565b5f60018201611bfe57611bfe611a31565b5060010190565b818103818111156104f6576104f6611a31565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611c685784516001600160a01b031683529383019391830191600101611c43565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611ca357634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203fe29809d2002ab0abaec6f0e71d0ae9eb80291d5c733be5b0df2d95359e9de964736f6c63430008170033

Deployed Bytecode Sourcemap

3773:9140:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10599:115;;;;;;;;;;;;;:::i;:::-;;5692:83;;;;;;;;;;-1:-1:-1;5762:5:0;;;;;;;;;;;;-1:-1:-1;;;5762:5:0;;;;5692:83;;;;;;;:::i;:::-;;;;;;;;6525:161;;;;;;;;;;-1:-1:-1;6525:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6525:161:0;1162:187:1;4852:47:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4852:47:0;1354:177:1;5969:95:0;;;;;;;;;;;;;:::i;10822:163::-;;;;;;;;;;-1:-1:-1;10822:163:0;;;;;:::i;:::-;;:::i;6694:313::-;;;;;;;;;;-1:-1:-1;6694:313:0;;;;;:::i;:::-;;:::i;5878:83::-;;;;;;;;;;-1:-1:-1;5878:83:0;;4519:1;3397:36:1;;3385:2;3370:18;5878:83:0;3255:184:1;11162:83:0;;;;;;;;;;-1:-1:-1;11162:83:0;;;;;:::i;:::-;-1:-1:-1;;;;;11230:7:0;11209:4;11230:7;;;:4;:7;;;;;;;;;11162:83;12547:363;;;;;;;;;;;;;:::i;10433:158::-;;;;;;;;;;;;;:::i;6072:119::-;;;;;;;;;;-1:-1:-1;6072:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6165:18:0;6138:7;6165:18;;;:9;:18;;;;;;;6072:119;2854:148;;;;;;;;;;;;;:::i;11934:294::-;;;;;;;;;;-1:-1:-1;11934:294:0;;;;;:::i;:::-;;:::i;4704:36::-;;;;;;;;;;;;;;;;12273:266;;;;;;;;;;-1:-1:-1;12273:266:0;;;;;:::i;:::-;;:::i;2640:79::-;;;;;;;;;;-1:-1:-1;2678:7:0;2705:6;2640:79;;-1:-1:-1;;;;;2705:6:0;;;4232:51:1;;4220:2;4205:18;2640:79:0;4086:203:1;4747:38:0;;;;;;;;;;;;;;;;5783:87;;;;;;;;;;-1:-1:-1;5855:7:0;;;;;;;;;;;;-1:-1:-1;;;5855:7:0;;;;5783:87;;6199:167;;;;;;;;;;-1:-1:-1;6199:167:0;;;;;:::i;:::-;;:::i;4792:53::-;;;;;;;;;;;;;;;;10993:161;;;;;;;;;;-1:-1:-1;10993:161:0;;;;;:::i;:::-;;:::i;6374:143::-;;;;;;;;;;-1:-1:-1;6374:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6482:18:0;;;6455:7;6482:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6374:143;11253:669;;;;;;;;;;;;;:::i;10599:115::-;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;;;;;;;;;10668:1:::1;10653:12;:16:::0;;;10685:21:::1;::::0;1500:25:1;;;10685:21:0::1;::::0;1488:2:1;1473:18;10685:21:0::1;;;;;;;;10599:115::o:0;6525:161::-;6600:4;6617:39;475:10;6640:7;6649:6;6617:8;:39::i;:::-;-1:-1:-1;6674:4:0;6525:161;;;;;:::o;5969:95::-;6022:7;4574:13;4519:1;4574:2;:13;:::i;:::-;4562:25;;:9;:25;:::i;:::-;6042:14;;5969:95;:::o;10822:163::-;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;10895:6:::1;10890:88;10911:5;:12;10907:1;:16;10890:88;;;10962:4;10945;:14;10950:5;10956:1;10950:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10945:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10945:14:0;:21;;-1:-1:-1;;10945:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;10925:3:0::1;10890:88;;;;10822:163:::0;:::o;6694:313::-;6792:4;6809:36;6819:6;6827:9;6838:6;6809:9;:36::i;:::-;6856:121;6865:6;475:10;6887:89;6925:6;6887:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6887:19:0;;;;;;:11;:19;;;;;;;;475:10;6887:33;;;;;;;;;;:37;:89::i;:::-;6856:8;:121::i;:::-;-1:-1:-1;6995:4:0;6694:313;;;;;:::o;12547:363::-;12611:10;;-1:-1:-1;;;;;12611:10:0;475;-1:-1:-1;;;;;12597:24:0;;12589:33;;;;;;12672:4;12633:20;6165:18;;;:9;:18;;;;;;12692:14;;;;;:29;;-1:-1:-1;12710:11:0;;-1:-1:-1;;;12710:11:0;;;;12692:29;12689:88;;;12735:30;12752:12;12735:16;:30::i;:::-;12806:21;12841:12;;12838:65;;12867:24;12880:10;12867:12;:24::i;10433:158::-;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;4574:13:::1;4519:1;4574:2;:13;:::i;:::-;4562:25;::::0;:9:::1;:25;:::i;:::-;10485:12;:22:::0;4574:13:::1;4519:1;4574:2;:13;:::i;:::-;4562:25;::::0;:9:::1;:25;:::i;:::-;10518:14;:22:::0;10556:27:::1;4574:13;4519:1;4574:2;:13;:::i;:::-;4562:25;::::0;:9:::1;:25;:::i;:::-;10556:27;::::0;1500:25:1;;;1488:2;1473:18;10556:27:0::1;1354:177:1::0;2854:148:0;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;2961:1:::1;2945:6:::0;;2924:40:::1;::::0;-1:-1:-1;;;;;2945:6:0;;::::1;::::0;2924:40:::1;::::0;2961:1;;2924:40:::1;2992:1;2975:19:::0;;-1:-1:-1;;;;;;2975:19:0::1;::::0;;2854:148::o;11934:294::-;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;12073:12:::1;:25:::0;;;;12107:13:::1;:27:::0;;;;12143:15:::1;:33:::0;12185:16:::1;:35:::0;11934:294::o;12273:266::-;12371:10;;-1:-1:-1;;;;;12371:10:0;475;-1:-1:-1;;;;;12357:24:0;;12349:33;;;;;;12411:41;;-1:-1:-1;;;12411:41:0;;12446:4;12411:41;;;4232:51:1;12393:15:0;;12411:63;;12470:3;;12411:54;;12457:7;;-1:-1:-1;;;;;12411:26:0;;;;;4205:18:1;;12411:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54::i;:::-;:58;;:63::i;:::-;12511:10;;12485:46;;-1:-1:-1;;;12485:46:0;;-1:-1:-1;;;;;12511:10:0;;;12485:46;;;7423:51:1;7490:18;;;7483:34;;;12393:81:0;;-1:-1:-1;12485:25:0;;;;;7396:18:1;;12485:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12338:201;12273:266;;:::o;6199:167::-;6277:4;6294:42;475:10;6318:9;6329:6;6294:9;:42::i;10993:161::-;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;11065:6:::1;11060:87;11081:6;:13;11077:1;:17;11060:87;;;11132:5;11114:4;:15;11119:6;11126:1;11119:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11114:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11114:15:0;:23;;-1:-1:-1;;11114:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;11096:3:0::1;11060:87;;11253:669:::0;2767:6;;-1:-1:-1;;;;;2767:6:0;475:10;2767:22;2759:67;;;;-1:-1:-1;;;2759:67:0;;;;;;;:::i;:::-;11315:11:::1;::::0;-1:-1:-1;;;11315:11:0;::::1;;;11314:12;11306:47;;;::::0;-1:-1:-1;;;11306:47:0;;8012:2:1;11306:47:0::1;::::0;::::1;7994:21:1::0;8051:2;8031:18;;;8024:30;8090:25;8070:18;;;8063:53;8133:18;;11306:47:0::1;7810:347:1::0;11306:47:0::1;11364:15;:80:::0;;-1:-1:-1;;;;;;11364:80:0::1;11401:42;11364:80:::0;;::::1;::::0;;;11455:58:::1;::::0;11472:4:::1;::::0;4574:13:::1;4519:1;4574:2;:13;:::i;:::-;4562:25;::::0;:9:::1;:25;:::i;11455:58::-;11558:15;;;;;;;;;-1:-1:-1::0;;;;;11558:15:0::1;-1:-1:-1::0;;;;;11558:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11540:55:0::1;;11604:4;11611:15;;;;;;;;;-1:-1:-1::0;;;;;11611:15:0::1;-1:-1:-1::0;;;;;11611:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11540:94;::::0;-1:-1:-1;;;;;;11540:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8648:15:1;;;11540:94:0::1;::::0;::::1;8630:34:1::0;8700:15;;8680:18;;;8673:43;8565:18;;11540:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11524:13;:110:::0;;-1:-1:-1;;;;;11524:110:0;;::::1;-1:-1:-1::0;;;;;;11524:110:0;;::::1;;::::0;;11645:15:::1;::::0;::::1;:31;11684:21;11715:4;11721:24;11715:4:::0;-1:-1:-1;;;;;6165:18:0;6138:7;6165:18;;;:9;:18;;;;;;;6072:119;11721:24:::1;11746:1;11748::::0;11750:7:::1;2678::::0;2705:6;-1:-1:-1;;;;;2705:6:0;;2640:79;11750:7:::1;11645:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;11645:129:0;;;-1:-1:-1;;;;;9086:15:1;;;11645:129:0::1;::::0;::::1;9068:34:1::0;9118:18;;;9111:34;;;;9161:18;;;9154:34;;;;9204:18;;;9197:34;9268:15;;;9247:19;;;9240:44;11758:15:0::1;9300:19:1::0;;;9293:35;9002:19;;11645:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;11792:13:0::1;::::0;11823:15:::1;::::0;11785:71:::1;::::0;-1:-1:-1;;;11785:71:0;;-1:-1:-1;;;;;11823:15:0;;::::1;11785:71;::::0;::::1;7423:51:1::0;-1:-1:-1;;7490:18:1;;;7483:34;11792:13:0;::::1;::::0;-1:-1:-1;11785:29:0::1;::::0;7396:18:1;;11785:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;11867:11:0::1;:18:::0;;-1:-1:-1;;;;11896:18:0;-1:-1:-1;;;11896:18:0;;;11253:669::o;7015:335::-;-1:-1:-1;;;;;7108:19:0;;7100:68;;;;-1:-1:-1;;;7100:68:0;;10131:2:1;7100:68:0;;;10113:21:1;10170:2;10150:18;;;10143:30;10209:34;10189:18;;;10182:62;-1:-1:-1;;;10260:18:1;;;10253:34;10304:19;;7100:68:0;9929:400:1;7100:68:0;-1:-1:-1;;;;;7187:21:0;;7179:68;;;;-1:-1:-1;;;7179:68:0;;10536:2:1;7179:68:0;;;10518:21:1;10575:2;10555:18;;;10548:30;10614:34;10594:18;;;10587:62;-1:-1:-1;;;10665:18:1;;;10658:32;10707:19;;7179:68:0;10334:398:1;7179:68:0;-1:-1:-1;;;;;7258:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7310:32;;1500:25:1;;;7310:32:0;;1473:18:1;7310:32:0;;;;;;;7015:335;;;:::o;7358:2468::-;-1:-1:-1;;;;;7446:18:0;;7438:68;;;;-1:-1:-1;;;7438:68:0;;10939:2:1;7438:68:0;;;10921:21:1;10978:2;10958:18;;;10951:30;11017:34;10997:18;;;10990:62;-1:-1:-1;;;11068:18:1;;;11061:35;11113:19;;7438:68:0;10737:401:1;7438:68:0;-1:-1:-1;;;;;7525:16:0;;7517:64;;;;-1:-1:-1;;;7517:64:0;;11345:2:1;7517:64:0;;;11327:21:1;11384:2;11364:18;;;11357:30;11423:34;11403:18;;;11396:62;-1:-1:-1;;;11474:18:1;;;11467:33;11517:19;;7517:64:0;11143:399:1;7517:64:0;7609:1;7600:6;:10;7592:64;;;;-1:-1:-1;;;7592:64:0;;11749:2:1;7592:64:0;;;11731:21:1;11788:2;11768:18;;;11761:30;11827:34;11807:18;;;11800:62;-1:-1:-1;;;11878:18:1;;;11871:39;11927:19;;7592:64:0;11547:405:1;7592:64:0;7667:17;2705:6;;-1:-1:-1;;;;;7701:15:0;;;2705:6;;7701:15;;;;:32;;-1:-1:-1;2678:7:0;2705:6;-1:-1:-1;;;;;7720:13:0;;;2705:6;;7720:13;;7701:32;:52;;;;-1:-1:-1;7743:10:0;;-1:-1:-1;;;;;7737:16:0;;;7743:10;;7737:16;;7701:52;7697:1773;;;-1:-1:-1;;;;;7779:10:0;;;;;;:4;:10;;;;;;;;7778:11;:24;;;;-1:-1:-1;;;;;;7794:8:0;;;;;;:4;:8;;;;;;;;7793:9;7778:24;7770:33;;;;;;7823:9;;7834:1;7823:12;7820:139;;7867:76;7939:3;7867:67;7889:15;;7879:9;;:25;7878:55;;7919:14;;7878:55;;;7906:12;;7878:55;7867:6;;:10;:67::i;:76::-;7855:88;;7820:139;7976:9;;:11;7973:95;;8019:33;8048:3;8019:24;8030:12;;8019:6;:10;;:24;;;;:::i;:33::-;8007:45;;7973:95;8096:13;;-1:-1:-1;;;;;8088:21:0;;;8096:13;;8088:21;:55;;;;-1:-1:-1;8127:15:0;;-1:-1:-1;;;;;8113:30:0;;;8127:15;;8113:30;;8088:55;:83;;;;-1:-1:-1;;;;;;8149:22:0;;;;;;:18;:22;;;;;;;;8147:24;8088:83;8084:420;;;8211:12;;8201:6;:22;;8193:60;;;;-1:-1:-1;;;8193:60:0;;12159:2:1;8193:60:0;;;12141:21:1;12198:2;12178:18;;;12171:30;12237:27;12217:18;;;12210:55;12282:18;;8193:60:0;11957:349:1;8193:60:0;8306:14;;8296:6;8280:13;8290:2;-1:-1:-1;;;;;6165:18:0;6138:7;6165:18;;;:9;:18;;;;;;;6072:119;8280:13;:22;;;;:::i;:::-;:40;;8272:79;;;;-1:-1:-1;;;8272:79:0;;12643:2:1;8272:79:0;;;12625:21:1;12682:2;12662:18;;;12655:30;12721:28;12701:18;;;12694:56;12767:18;;8272:79:0;12441:350:1;8272:79:0;8382:76;8454:3;8382:67;8404:15;;8394:9;;:25;8393:55;;8434:14;;8393:55;;8382:76;8477:9;:11;;8370:88;;-1:-1:-1;8477:9:0;:11;;;:::i;:::-;;;;;;8084:420;8529:13;;-1:-1:-1;;;;;8523:19:0;;;8529:13;;8523:19;:43;;;;-1:-1:-1;;;;;;8546:20:0;;8561:4;8546:20;;8523:43;8520:174;;;8599:79;8674:3;8599:70;8621:16;;8611:9;;:26;8610:58;;8653:15;;8610:58;;;8639:13;;8599:6;;:10;:70::i;:79::-;8587:91;;8520:174;8759:4;8710:28;6165:18;;;:9;:18;;;;;;8785:6;;-1:-1:-1;;;8785:6:0;;;;8784:7;:30;;;;-1:-1:-1;8801:13:0;;-1:-1:-1;;;;;8795:19:0;;;8801:13;;8795:19;8784:30;:45;;;;-1:-1:-1;8818:11:0;;-1:-1:-1;;;8818:11:0;;;;8784:45;:89;;;;;8856:17;;8833:20;:40;8784:89;:123;;;;;8889:18;;8877:9;;:30;8784:123;8780:679;;;8947:13;;8932:12;:28;8928:90;;;8997:1;8985:9;:13;8928:90;9056:1;9044:9;;:13;9036:49;;;;-1:-1:-1;;;9036:49:0;;13138:2:1;9036:49:0;;;13120:21:1;13177:2;13157:18;;;13150:30;13216:25;13196:18;;;13189:53;13259:18;;9036:49:0;12936:347:1;9036:49:0;9104:69;9121:51;9125:6;9133:38;9137:20;9159:11;;9133:3;:38::i;:::-;9121:3;:51::i;:::-;9104:16;:69::i;:::-;9221:21;9265:22;;9261:106;;9312:35;9325:21;9312:12;:35::i;:::-;9385:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;9431:12:0;9415:13;:28;-1:-1:-1;8780:679:0;7755:1715;7697:1773;9485:11;;9482:161;;9553:4;9535:24;;;;:9;:24;;;;;;:39;;9564:9;9535:28;:39::i;:::-;9528:4;9510:24;;;;:9;:24;;;;;;;:64;;;;9592:39;;-1:-1:-1;;;;;9592:39:0;;;;;;;9621:9;1500:25:1;;1488:2;1473:18;;1354:177;9592:39:0;;;;;;;;9482:161;-1:-1:-1;;;;;9669:15:0;;;;;;:9;:15;;;;;;:27;;9689:6;9669:19;:27::i;:::-;-1:-1:-1;;;;;9653:15:0;;;;;;:9;:15;;;;;:43;9721:40;9739:21;:6;9750:9;9739:10;:21::i;:::-;-1:-1:-1;;;;;9721:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9707:13:0;;;;;;;:9;:13;;;;;:54;;;;9777:41;;;9796:21;:6;9807:9;9796:10;:21::i;:::-;9777:41;;1500:25:1;;;1488:2;1473:18;9777:41:0;;;;;;;7427:2399;7358:2468;;;:::o;1532:190::-;1618:7;1654:12;1646:6;;;;1638:29;;;;-1:-1:-1;;;1638:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1678:9:0;1690:5;1694:1;1690;:5;:::i;:::-;1678:17;1532:190;-1:-1:-1;;;;;1532:190:0:o;9942:483::-;5301:6;:13;;-1:-1:-1;;;;5301:13:0;-1:-1:-1;;;5301:13:0;;;10044:16:::1;::::0;;10058:1:::1;10044:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10044:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10044:16:0::1;10020:40;;10089:4;10071;10076:1;10071:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10071:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10115:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10115:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10071:7;;10115:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10105:4;10110:1;10105:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10105:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10180:15:::1;::::0;10148:62:::1;::::0;10165:4:::1;::::0;10180:15:::1;10198:11:::0;10148:8:::1;:62::i;:::-;10221:15;::::0;:196:::1;::::0;-1:-1:-1;;;10221:196:0;;-1:-1:-1;;;;;10221:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10302:11;;10221:15:::1;::::0;10344:4;;10371::::1;::::0;10391:15:::1;::::0;10221:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5337:6:0;:14;;-1:-1:-1;;;;5337:14:0;;;-1:-1:-1;;;;9942:483:0:o;10722:92::-;10779:10;;:27;;-1:-1:-1;;;;;10779:10:0;;;;:27;;;;;10799:6;;10779:10;:27;:10;:27;10799:6;10779:10;:27;;;;;;;;;;;;;;;;;;;1730:246;1788:7;1812:1;1817;1812:6;1808:47;;-1:-1:-1;1842:1:0;1835:8;;1808:47;1865:9;1877:5;1881:1;1877;:5;:::i;:::-;1865:17;-1:-1:-1;1910:1:0;1901:5;1905:1;1865:17;1901:5;:::i;:::-;:10;1893:56;;;;-1:-1:-1;;;1893:56:0;;14830:2:1;1893:56:0;;;14812:21:1;14869:2;14849:18;;;14842:30;14908:34;14888:18;;;14881:62;-1:-1:-1;;;14959:18:1;;;14952:31;15000:19;;1893:56:0;14628:397:1;1893:56:0;1967:1;1730:246;-1:-1:-1;;;1730:246:0:o;1984:132::-;2042:7;2069:39;2073:1;2076;2069:39;;;;;;;;;;;;;;;;;:3;:39::i;9836:98::-;9893:7;9920:1;9918;:3;9917:9;;9925:1;9917:9;;;-1:-1:-1;9923:1:0;9836:98;-1:-1:-1;9836:98:0:o;1201:179::-;1259:7;;1291:5;1295:1;1291;:5;:::i;:::-;1279:17;;1320:1;1315;:6;;1307:46;;;;-1:-1:-1;;;1307:46:0;;15232:2:1;1307:46:0;;;15214:21:1;15271:2;15251:18;;;15244:30;15310:29;15290:18;;;15283:57;15357:18;;1307:46:0;15030:351:1;1388:136:0;1446:7;1473:43;1477:1;1480;1473:43;;;;;;;;;;;;;;;;;:3;:43::i;2124:189::-;2210:7;2245:12;2238:5;2230:28;;;;-1:-1:-1;;;2230:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2269:9:0;2281:5;2285:1;2281;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;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;622:70;567:131;:::o;703:134::-;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1536:127::-;1597:10;1592:3;1588:20;1585:1;1578:31;1628:4;1625:1;1618:15;1652:4;1649:1;1642:15;1668:1121;1752:6;1783:2;1826;1814:9;1805:7;1801:23;1797:32;1794:52;;;1842:1;1839;1832:12;1794:52;1882:9;1869:23;1911:18;1952:2;1944:6;1941:14;1938:34;;;1968:1;1965;1958:12;1938:34;2006:6;1995:9;1991:22;1981:32;;2051:7;2044:4;2040:2;2036:13;2032:27;2022:55;;2073:1;2070;2063:12;2022:55;2109:2;2096:16;2131:2;2127;2124:10;2121:36;;;2137:18;;:::i;:::-;2183:2;2180:1;2176:10;2215:2;2209:9;2278:2;2274:7;2269:2;2265;2261:11;2257:25;2249:6;2245:38;2333:6;2321:10;2318:22;2313:2;2301:10;2298:18;2295:46;2292:72;;;2344:18;;:::i;:::-;2380:2;2373:22;2430:18;;;2464:15;;;;-1:-1:-1;2506:11:1;;;2502:20;;;2534:19;;;2531:39;;;2566:1;2563;2556:12;2531:39;2590:11;;;;2610:148;2626:6;2621:3;2618:15;2610:148;;;2692:23;2711:3;2692:23;:::i;:::-;2680:36;;2643:12;;;;2736;;;;2610:148;;;2777:6;1668:1121;-1:-1:-1;;;;;;;;1668:1121:1:o;2794:456::-;2871:6;2879;2887;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;2995:9;2982:23;3014:31;3039:5;3014:31;:::i;:::-;3064:5;-1:-1:-1;3121:2:1;3106:18;;3093:32;3134:33;3093:32;3134:33;:::i;:::-;2794:456;;3186:7;;-1:-1:-1;;;3240:2:1;3225:18;;;;3212:32;;2794:456::o;3444:247::-;3503:6;3556:2;3544:9;3535:7;3531:23;3527:32;3524:52;;;3572:1;3569;3562:12;3524:52;3611:9;3598:23;3630:31;3655:5;3630:31;:::i;3696:385::-;3782:6;3790;3798;3806;3859:3;3847:9;3838:7;3834:23;3830:33;3827:53;;;3876:1;3873;3866:12;3827:53;-1:-1:-1;;3899:23:1;;;3969:2;3954:18;;3941:32;;-1:-1:-1;4020:2:1;4005:18;;3992:32;;4071:2;4056:18;4043:32;;-1:-1:-1;3696:385:1;-1:-1:-1;3696:385:1:o;4294:388::-;4362:6;4370;4423:2;4411:9;4402:7;4398:23;4394:32;4391:52;;;4439:1;4436;4429:12;4391:52;4478:9;4465:23;4497:31;4522:5;4497:31;:::i;:::-;4547:5;-1:-1:-1;4604:2:1;4589:18;;4576:32;4617:33;4576:32;4617:33;:::i;:::-;4669:7;4659:17;;;4294:388;;;;;:::o;4687:356::-;4889:2;4871:21;;;4908:18;;;4901:30;4967:34;4962:2;4947:18;;4940:62;5034:2;5019:18;;4687:356::o;5238:127::-;5299:10;5294:3;5290:20;5287:1;5280:31;5330:4;5327:1;5320:15;5354:4;5351:1;5344:15;5370:416;5459:1;5496:5;5459:1;5510:270;5531:7;5521:8;5518:21;5510:270;;;5590:4;5586:1;5582:6;5578:17;5572:4;5569:27;5566:53;;;5599:18;;:::i;:::-;5649:7;5639:8;5635:22;5632:55;;;5669:16;;;;5632:55;5748:22;;;;5708:15;;;;5510:270;;;5514:3;5370:416;;;;;:::o;5791:806::-;5840:5;5870:8;5860:80;;-1:-1:-1;5911:1:1;5925:5;;5860:80;5959:4;5949:76;;-1:-1:-1;5996:1:1;6010:5;;5949:76;6041:4;6059:1;6054:59;;;;6127:1;6122:130;;;;6034:218;;6054:59;6084:1;6075:10;;6098:5;;;6122:130;6159:3;6149:8;6146:17;6143:43;;;6166:18;;:::i;:::-;-1:-1:-1;;6222:1:1;6208:16;;6237:5;;6034:218;;6336:2;6326:8;6323:16;6317:3;6311:4;6308:13;6304:36;6298:2;6288:8;6285:16;6280:2;6274:4;6271:12;6267:35;6264:77;6261:159;;;-1:-1:-1;6373:19:1;;;6405:5;;6261:159;6452:34;6477:8;6471:4;6452:34;:::i;:::-;6522:6;6518:1;6514:6;6510:19;6501:7;6498:32;6495:58;;;6533:18;;:::i;:::-;6571:20;;5791:806;-1:-1:-1;;;5791:806:1:o;6602:140::-;6660:5;6689:47;6730:4;6720:8;6716:19;6710:4;6689:47;:::i;6747:168::-;6820:9;;;6851;;6868:15;;;6862:22;;6848:37;6838:71;;6889:18;;:::i;6920:127::-;6981:10;6976:3;6972:20;6969:1;6962:31;7012:4;7009:1;7002:15;7036:4;7033:1;7026:15;7052:184;7122:6;7175:2;7163:9;7154:7;7150:23;7146:32;7143:52;;;7191:1;7188;7181:12;7143:52;-1:-1:-1;7214:16:1;;7052:184;-1:-1:-1;7052:184:1:o;7528:277::-;7595:6;7648:2;7636:9;7627:7;7623:23;7619:32;7616:52;;;7664:1;7661;7654:12;7616:52;7696:9;7690:16;7749:5;7742:13;7735:21;7728:5;7725:32;7715:60;;7771:1;7768;7761:12;8162:251;8232:6;8285:2;8273:9;8264:7;8260:23;8256:32;8253:52;;;8301:1;8298;8291:12;8253:52;8333:9;8327:16;8352:31;8377:5;8352:31;:::i;9339:306::-;9427:6;9435;9443;9496:2;9484:9;9475:7;9471:23;9467:32;9464:52;;;9512:1;9509;9502:12;9464:52;9541:9;9535:16;9525:26;;9591:2;9580:9;9576:18;9570:25;9560:35;;9635:2;9624:9;9620:18;9614:25;9604:35;;9339:306;;;;;:::o;12311:125::-;12376:9;;;12397:10;;;12394:36;;;12410:18;;:::i;12796:135::-;12835:3;12856:17;;;12853:43;;12876:18;;:::i;:::-;-1:-1:-1;12923:1:1;12912:13;;12796:135::o;13288:128::-;13355:9;;;13376:11;;;13373:37;;;13390:18;;:::i;13421:980::-;13683:4;13731:3;13720:9;13716:19;13762:6;13751:9;13744:25;13788:2;13826:6;13821:2;13810:9;13806:18;13799:34;13869:3;13864:2;13853:9;13849:18;13842:31;13893:6;13928;13922:13;13959:6;13951;13944:22;13997:3;13986:9;13982:19;13975:26;;14036:2;14028:6;14024:15;14010:29;;14057:1;14067:195;14081:6;14078:1;14075:13;14067:195;;;14146:13;;-1:-1:-1;;;;;14142:39:1;14130:52;;14237:15;;;;14202:12;;;;14178:1;14096:9;14067:195;;;-1:-1:-1;;;;;;;14318:32:1;;;;14313:2;14298:18;;14291:60;-1:-1:-1;;;14382:3:1;14367:19;14360:35;14279:3;13421:980;-1:-1:-1;;;13421:980:1:o;14406:217::-;14446:1;14472;14462:132;;14516:10;14511:3;14507:20;14504:1;14497:31;14551:4;14548:1;14541:15;14579:4;14576:1;14569:15;14462:132;-1:-1:-1;14608:9:1;;14406:217::o

Swarm Source

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