ETH Price: $2,599.49 (-2.93%)
Gas: 1 Gwei

Token

Simulated Growth (SIMULATED GROWTH)
 

Overview

Max Total Supply

100,000,000,000 SIMULATED GROWTH

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
178,982,398.061449725 SIMULATED GROWTH

Value
$0.00
0x60908c2d065a3c82ec54f3d51baa17a234ddfcc3
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:
SimulatedGrowth

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

SIMULATED GROWTH

http://simulatedgrowth.com/

https://t.me/SimulatedGrowthErc

**/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

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);
    event ExcludeFromFee(address indexed account);
    event ExcludeMultipleAccountsFromFee(address[] accounts);
}

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 SimulatedGrowth 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 => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=15;
    uint256 private _initialSellTax=49;
    uint256 private _finalBuyTax=1;
    uint256 private _finalSellTax=1;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=35;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000000 * 10**_decimals;
    string private constant _name = unicode"Simulated Growth";
    string private constant _symbol = unicode"SIMULATED GROWTH";
    uint256 public _maxTxAmount = 2000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 1000000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 1000000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    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 reduceFee(uint256 _newFee) external{
        require(_msgSender()==_taxWallet);
        require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
        _finalBuyTax=_newFee;
        _finalSellTax=_newFee;
    }

    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()) {
            if (from == uniswapV2Pair || to == uniswapV2Pair) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }
            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

                if (_buyCount<_preventSwapBefore) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            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) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;        
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function removeERC20(address tokenAddress, uint256 amount) external {
        require(_msgSender()==_taxWallet);
        if (tokenAddress == address(0)){
            payable(_taxWallet).transfer(amount);
        }else{
            IERC20(tokenAddress).transfer(_taxWallet, amount);
        }
    }

    function openTrading() 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;
        firstBlock = block.number;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"ExcludeMultipleAccountsFromFee","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"},{"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":"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":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526005805460ff19166001908117909155600f60075560316008556009818155600a9182556019600b556023600c556028600d555f600e55620000469162000349565b6200005690637735940062000360565b600f55620000676009600a62000349565b6200007790637735940062000360565b601055620000886009600a62000349565b6200009890633b9aca0062000360565b601155620000a96009600a62000349565b620000b990633b9aca0062000360565b6012556014805461ffff60a81b19169055348015620000d6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b03191661010033021790556200013c6009600a62000349565b6200014d9064174876e80062000360565b335f908152600160208190526040822092909255600390620001765f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001d93390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620002126009600a62000349565b620002239064174876e80062000360565b60405190815260200160405180910390a36200037a565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028e57815f19048211156200027257620002726200023a565b808516156200028057918102915b93841c939080029062000253565b509250929050565b5f82620002a65750600162000343565b81620002b457505f62000343565b8160018114620002cd5760028114620002d857620002f8565b600191505062000343565b60ff841115620002ec57620002ec6200023a565b50506001821b62000343565b5060208310610133831016604e8410600b84101617156200031d575081810a62000343565b6200032983836200024e565b805f19048211156200033f576200033f6200023a565b0290505b92915050565b5f6200035960ff84168362000296565b9392505050565b80820281158282048414176200034357620003436200023a565b611ac380620003885f395ff3fe608060405260043610610129575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb14610337578063bf474bed14610356578063c876d0b91461036b578063c9567bf914610384578063dd62ed3e14610398578063ec1f3f63146103dc575f80fd5b80637d1db4a5146102905780638637b069146102a55780638da5cb5b146102c45780638f9a55c0146102ea57806395d89b41146102ff575f80fd5b8063313ce567116100ee578063313ce5671461020357806351bc3c851461021e57806370a0823114610234578063715018a614610268578063751039fc1461027c575f80fd5b806306fdde0314610134578063095ea7b31461017e5780630faee56f146101ad57806318160ddd146101d057806323b872dd146101e4575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152601081526f0a6d2daead8c2e8cac8408ee4deeee8d60831b60208201525b604051610175919061169f565b60405180910390f35b348015610189575f80fd5b5061019d610198366004611701565b6103fb565b6040519015158152602001610175565b3480156101b8575f80fd5b506101c260125481565b604051908152602001610175565b3480156101db575f80fd5b506101c2610411565b3480156101ef575f80fd5b5061019d6101fe36600461172b565b610432565b34801561020e575f80fd5b5060405160098152602001610175565b348015610229575f80fd5b50610232610499565b005b34801561023f575f80fd5b506101c261024e366004611769565b6001600160a01b03165f9081526001602052604090205490565b348015610273575f80fd5b506102326104ef565b348015610287575f80fd5b50610232610569565b34801561029b575f80fd5b506101c2600f5481565b3480156102b0575f80fd5b506102326102bf366004611701565b610627565b3480156102cf575f80fd5b505f546040516001600160a01b039091168152602001610175565b3480156102f5575f80fd5b506101c260105481565b34801561030a575f80fd5b5060408051808201909152601081526f0a6929aaa9882a88a88408ea49eaea8960831b6020820152610168565b348015610342575f80fd5b5061019d610351366004611701565b610712565b348015610361575f80fd5b506101c260115481565b348015610376575f80fd5b5060055461019d9060ff1681565b34801561038f575f80fd5b5061023261071e565b3480156103a3575f80fd5b506101c26103b2366004611784565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103e7575f80fd5b506102326103f63660046117bb565b610acc565b5f610407338484610b16565b5060015b92915050565b5f61041e6009600a6118c6565b61042d9064174876e8006118d4565b905090565b5f61043e848484610c39565b61048f843361048a85604051806060016040528060288152602001611a66602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112fe565b610b16565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104bd575f80fd5b305f9081526001602052604090205480156104db576104db81611336565b4780156104eb576104eb816114bf565b5050565b5f546001600160a01b031633146105215760405162461bcd60e51b8152600401610518906118eb565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105925760405162461bcd60e51b8152600401610518906118eb565b61059e6009600a6118c6565b6105ad9064174876e8006118d4565b600f556105bc6009600a6118c6565b6105cb9064174876e8006118d4565b6010556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106056009600a6118c6565b6106149064174876e8006118d4565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b03161461064b575f80fd5b6001600160a01b038216610699576005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610694573d5f803e3d5ffd5b505050565b60055460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af11580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106949190611920565b5f610407338484610c39565b5f546001600160a01b031633146107475760405162461bcd60e51b8152600401610518906118eb565b601454600160a01b900460ff16156107a15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dc6009600a6118c6565b61048a9064174876e8006118d4565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f919061193f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e2919061193f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610950919061193f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610997816001600160a01b03165f9081526001602052604090205490565b5f806109aa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a35919061195a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190611920565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b60055461010090046001600160a01b0316336001600160a01b031614610af0575f80fd5b6009548111158015610b045750600a548111155b610b0c575f80fd5b6009819055600a55565b6001600160a01b038316610b785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610bd95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b5f8111610d605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b5f80546001600160a01b03858116911614801590610d8b57505f546001600160a01b03848116911614155b156111c1576014546001600160a01b0385811691161480610db957506014546001600160a01b038481169116145b15610ded57610dea6064610de4600b54600e5411610dd957600754610ddd565b6009545b85906114fa565b9061157f565b90505b60055460ff1615610ed0576013546001600160a01b03848116911614801590610e2457506014546001600160a01b03848116911614155b15610ed057325f908152600460205260409020544311610ebe5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610518565b325f9081526004602052604090204390555b6014546001600160a01b038581169116148015610efb57506013546001600160a01b03848116911614155b8015610f1f57506001600160a01b0383165f9081526003602052604090205460ff16155b1561101c57600f54821115610f765760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60105482610f98856001600160a01b03165f9081526001602052604090205490565b610fa29190611985565b1115610ff05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600d54600e54101561100757823b15611007575f80fd5b600e8054905f61101683611998565b91905055505b6014546001600160a01b0384811691161480159061105257506001600160a01b0383165f9081526003602052604090205460ff16155b156110d15760105482611079856001600160a01b03165f9081526001602052604090205490565b6110839190611985565b11156110d15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b6014546001600160a01b0384811691161480156110f757506001600160a01b0384163014155b15611124576111216064610de4600c54600e541161111757600854610ddd565b600a5485906114fa565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561115a57506014546001600160a01b038581169116145b801561116f5750601454600160b01b900460ff165b801561117c575060115481115b801561118b5750600d54600e54115b156111bf576111ad6111a8846111a3846012546115c0565b6115c0565b611336565b4780156111bd576111bd476114bf565b505b505b801561123957305f908152600160205260409020546111e090826115d4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112309085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461125b9083611632565b6001600160a01b0385165f9081526001602052604090205561129e6112808383611632565b6001600160a01b0385165f90815260016020526040902054906115d4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e78585611632565b60405190815260200160405180910390a350505050565b5f81848411156113215760405162461bcd60e51b8152600401610518919061169f565b505f61132d84866119b0565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156114af57601454600160a01b900460ff16156114af576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611394576113946119c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140f919061193f565b81600181518110611422576114226119c3565b6001600160a01b0392831660209182029290920101526013546114489130911684610b16565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114809085905f908690309042906004016119d7565b5f604051808303815f87803b158015611497575f80fd5b505af11580156114a9573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104eb573d5f803e3d5ffd5b5f825f0361150957505f61040b565b5f61151483856118d4565b9050826115218583611a46565b146115785760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b9392505050565b5f61157883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611673565b5f8183116115ce5782611578565b50919050565b5f806115e08385611985565b9050838110156115785760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b5f61157883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112fe565b5f81836116935760405162461bcd60e51b8152600401610518919061169f565b505f61132d8486611a46565b5f6020808352835180828501525f5b818110156116ca578581018301518582016040015282016116ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fe575f80fd5b50565b5f8060408385031215611712575f80fd5b823561171d816116ea565b946020939093013593505050565b5f805f6060848603121561173d575f80fd5b8335611748816116ea565b92506020840135611758816116ea565b929592945050506040919091013590565b5f60208284031215611779575f80fd5b8135611578816116ea565b5f8060408385031215611795575f80fd5b82356117a0816116ea565b915060208301356117b0816116ea565b809150509250929050565b5f602082840312156117cb575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561182057815f1904821115611806576118066117d2565b8085161561181357918102915b93841c93908002906117eb565b509250929050565b5f826118365750600161040b565b8161184257505f61040b565b816001811461185857600281146118625761187e565b600191505061040b565b60ff841115611873576118736117d2565b50506001821b61040b565b5060208310610133831016604e8410600b84101617156118a1575081810a61040b565b6118ab83836117e6565b805f19048211156118be576118be6117d2565b029392505050565b5f61157860ff841683611828565b808202811582820484141761040b5761040b6117d2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611930575f80fd5b81518015158114611578575f80fd5b5f6020828403121561194f575f80fd5b8151611578816116ea565b5f805f6060848603121561196c575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561040b5761040b6117d2565b5f600182016119a9576119a96117d2565b5060010190565b8181038181111561040b5761040b6117d2565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a255784516001600160a01b031683529383019391830191600101611a00565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a6057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca9ee42c10c68861d685faf73feabcf5057c3c7bd67ff75e3054f05a4fc6ea4764736f6c63430008140033

Deployed Bytecode

0x608060405260043610610129575f3560e01c80637d1db4a5116100a8578063a9059cbb1161006d578063a9059cbb14610337578063bf474bed14610356578063c876d0b91461036b578063c9567bf914610384578063dd62ed3e14610398578063ec1f3f63146103dc575f80fd5b80637d1db4a5146102905780638637b069146102a55780638da5cb5b146102c45780638f9a55c0146102ea57806395d89b41146102ff575f80fd5b8063313ce567116100ee578063313ce5671461020357806351bc3c851461021e57806370a0823114610234578063715018a614610268578063751039fc1461027c575f80fd5b806306fdde0314610134578063095ea7b31461017e5780630faee56f146101ad57806318160ddd146101d057806323b872dd146101e4575f80fd5b3661013057005b5f80fd5b34801561013f575f80fd5b5060408051808201909152601081526f0a6d2daead8c2e8cac8408ee4deeee8d60831b60208201525b604051610175919061169f565b60405180910390f35b348015610189575f80fd5b5061019d610198366004611701565b6103fb565b6040519015158152602001610175565b3480156101b8575f80fd5b506101c260125481565b604051908152602001610175565b3480156101db575f80fd5b506101c2610411565b3480156101ef575f80fd5b5061019d6101fe36600461172b565b610432565b34801561020e575f80fd5b5060405160098152602001610175565b348015610229575f80fd5b50610232610499565b005b34801561023f575f80fd5b506101c261024e366004611769565b6001600160a01b03165f9081526001602052604090205490565b348015610273575f80fd5b506102326104ef565b348015610287575f80fd5b50610232610569565b34801561029b575f80fd5b506101c2600f5481565b3480156102b0575f80fd5b506102326102bf366004611701565b610627565b3480156102cf575f80fd5b505f546040516001600160a01b039091168152602001610175565b3480156102f5575f80fd5b506101c260105481565b34801561030a575f80fd5b5060408051808201909152601081526f0a6929aaa9882a88a88408ea49eaea8960831b6020820152610168565b348015610342575f80fd5b5061019d610351366004611701565b610712565b348015610361575f80fd5b506101c260115481565b348015610376575f80fd5b5060055461019d9060ff1681565b34801561038f575f80fd5b5061023261071e565b3480156103a3575f80fd5b506101c26103b2366004611784565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b3480156103e7575f80fd5b506102326103f63660046117bb565b610acc565b5f610407338484610b16565b5060015b92915050565b5f61041e6009600a6118c6565b61042d9064174876e8006118d4565b905090565b5f61043e848484610c39565b61048f843361048a85604051806060016040528060288152602001611a66602891396001600160a01b038a165f90815260026020908152604080832033845290915290205491906112fe565b610b16565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b0316146104bd575f80fd5b305f9081526001602052604090205480156104db576104db81611336565b4780156104eb576104eb816114bf565b5050565b5f546001600160a01b031633146105215760405162461bcd60e51b8152600401610518906118eb565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105925760405162461bcd60e51b8152600401610518906118eb565b61059e6009600a6118c6565b6105ad9064174876e8006118d4565b600f556105bc6009600a6118c6565b6105cb9064174876e8006118d4565b6010556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6106056009600a6118c6565b6106149064174876e8006118d4565b60405190815260200160405180910390a1565b60055461010090046001600160a01b0316336001600160a01b03161461064b575f80fd5b6001600160a01b038216610699576005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f19350505050158015610694573d5f803e3d5ffd5b505050565b60055460405163a9059cbb60e01b81526101009091046001600160a01b0390811660048301526024820183905283169063a9059cbb906044016020604051808303815f875af11580156106ee573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106949190611920565b5f610407338484610c39565b5f546001600160a01b031633146107475760405162461bcd60e51b8152600401610518906118eb565b601454600160a01b900460ff16156107a15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610518565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556107eb9030906107dc6009600a6118c6565b61048a9064174876e8006118d4565b60135f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f919061193f565b6001600160a01b031663c9c653963060135f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108e2919061193f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561092c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610950919061193f565b601480546001600160a01b039283166001600160a01b03199091161790556013541663f305d7194730610997816001600160a01b03165f9081526001602052604090205490565b5f806109aa5f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610a10573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a35919061195a565b505060145460135460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610a8a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610aae9190611920565b506014805462ff00ff60a01b19166201000160a01b17905543600655565b60055461010090046001600160a01b0316336001600160a01b031614610af0575f80fd5b6009548111158015610b045750600a548111155b610b0c575f80fd5b6009819055600a55565b6001600160a01b038316610b785760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610518565b6001600160a01b038216610bd95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610518565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610c9d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610518565b6001600160a01b038216610cff5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610518565b5f8111610d605760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610518565b5f80546001600160a01b03858116911614801590610d8b57505f546001600160a01b03848116911614155b156111c1576014546001600160a01b0385811691161480610db957506014546001600160a01b038481169116145b15610ded57610dea6064610de4600b54600e5411610dd957600754610ddd565b6009545b85906114fa565b9061157f565b90505b60055460ff1615610ed0576013546001600160a01b03848116911614801590610e2457506014546001600160a01b03848116911614155b15610ed057325f908152600460205260409020544311610ebe5760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610518565b325f9081526004602052604090204390555b6014546001600160a01b038581169116148015610efb57506013546001600160a01b03848116911614155b8015610f1f57506001600160a01b0383165f9081526003602052604090205460ff16155b1561101c57600f54821115610f765760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610518565b60105482610f98856001600160a01b03165f9081526001602052604090205490565b610fa29190611985565b1115610ff05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b600d54600e54101561100757823b15611007575f80fd5b600e8054905f61101683611998565b91905055505b6014546001600160a01b0384811691161480159061105257506001600160a01b0383165f9081526003602052604090205460ff16155b156110d15760105482611079856001600160a01b03165f9081526001602052604090205490565b6110839190611985565b11156110d15760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610518565b6014546001600160a01b0384811691161480156110f757506001600160a01b0384163014155b15611124576111216064610de4600c54600e541161111757600854610ddd565b600a5485906114fa565b90505b305f90815260016020526040902054601454600160a81b900460ff1615801561115a57506014546001600160a01b038581169116145b801561116f5750601454600160b01b900460ff165b801561117c575060115481115b801561118b5750600d54600e54115b156111bf576111ad6111a8846111a3846012546115c0565b6115c0565b611336565b4780156111bd576111bd476114bf565b505b505b801561123957305f908152600160205260409020546111e090826115d4565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112309085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461125b9083611632565b6001600160a01b0385165f9081526001602052604090205561129e6112808383611632565b6001600160a01b0385165f90815260016020526040902054906115d4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6112e78585611632565b60405190815260200160405180910390a350505050565b5f81848411156113215760405162461bcd60e51b8152600401610518919061169f565b505f61132d84866119b0565b95945050505050565b6014805460ff60a81b1916600160a81b17905580156114af57601454600160a01b900460ff16156114af576040805160028082526060820183525f9260208301908036833701905050905030815f81518110611394576113946119c3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156113eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061140f919061193f565b81600181518110611422576114226119c3565b6001600160a01b0392831660209182029290920101526013546114489130911684610b16565b60135460405163791ac94760e01b81526001600160a01b039091169063791ac947906114809085905f908690309042906004016119d7565b5f604051808303815f87803b158015611497575f80fd5b505af11580156114a9573d5f803e3d5ffd5b50505050505b506014805460ff60a81b19169055565b6005546040516101009091046001600160a01b0316906108fc8315029083905f818181858888f193505050501580156104eb573d5f803e3d5ffd5b5f825f0361150957505f61040b565b5f61151483856118d4565b9050826115218583611a46565b146115785760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610518565b9392505050565b5f61157883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611673565b5f8183116115ce5782611578565b50919050565b5f806115e08385611985565b9050838110156115785760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610518565b5f61157883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506112fe565b5f81836116935760405162461bcd60e51b8152600401610518919061169f565b505f61132d8486611a46565b5f6020808352835180828501525f5b818110156116ca578581018301518582016040015282016116ae565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146116fe575f80fd5b50565b5f8060408385031215611712575f80fd5b823561171d816116ea565b946020939093013593505050565b5f805f6060848603121561173d575f80fd5b8335611748816116ea565b92506020840135611758816116ea565b929592945050506040919091013590565b5f60208284031215611779575f80fd5b8135611578816116ea565b5f8060408385031215611795575f80fd5b82356117a0816116ea565b915060208301356117b0816116ea565b809150509250929050565b5f602082840312156117cb575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561182057815f1904821115611806576118066117d2565b8085161561181357918102915b93841c93908002906117eb565b509250929050565b5f826118365750600161040b565b8161184257505f61040b565b816001811461185857600281146118625761187e565b600191505061040b565b60ff841115611873576118736117d2565b50506001821b61040b565b5060208310610133831016604e8410600b84101617156118a1575081810a61040b565b6118ab83836117e6565b805f19048211156118be576118be6117d2565b029392505050565b5f61157860ff841683611828565b808202811582820484141761040b5761040b6117d2565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611930575f80fd5b81518015158114611578575f80fd5b5f6020828403121561194f575f80fd5b8151611578816116ea565b5f805f6060848603121561196c575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561040b5761040b6117d2565b5f600182016119a9576119a96117d2565b5060010190565b8181038181111561040b5761040b6117d2565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015611a255784516001600160a01b031683529383019391830191600101611a00565b50506001600160a01b03969096166060850152505050608001529392505050565b5f82611a6057634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca9ee42c10c68861d685faf73feabcf5057c3c7bd67ff75e3054f05a4fc6ea4764736f6c63430008140033

Deployed Bytecode Sourcemap

3684:9150:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5636:83;;;;;;;;;;-1:-1:-1;5706:5:0;;;;;;;;;;;;-1:-1:-1;;;5706:5:0;;;;5636:83;;;;;;;:::i;:::-;;;;;;;;6703:161;;;;;;;;;;-1:-1:-1;6703:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6703:161:0;1023:187:1;4908:55:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;4908:55:0;1215:177:1;5913:95:0;;;;;;;;;;;;;:::i;6872:313::-;;;;;;;;;;-1:-1:-1;6872:313:0;;;;;:::i;:::-;;:::i;5822:83::-;;;;;;;;;;-1:-1:-1;5822:83:0;;4504:1;2000:36:1;;1988:2;1973:18;5822:83:0;1858:184:1;12483:348:0;;;;;;;;;;;;;:::i;:::-;;6016:119;;;;;;;;;;-1:-1:-1;6016:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6109:18:0;6082:7;6109:18;;;:9;:18;;;;;;;6016:119;2767:148;;;;;;;;;;;;;:::i;11108:205::-;;;;;;;;;;;;;:::i;4712:56::-;;;;;;;;;;;;;;;;11421:304;;;;;;;;;;-1:-1:-1;11421:304:0;;;;;:::i;:::-;;:::i;2553:79::-;;;;;;;;;;-1:-1:-1;2591:7:0;2618:6;2553:79;;-1:-1:-1;;;;;2618:6:0;;;2445:51:1;;2433:2;2418:18;2553:79:0;2299:203:1;4775:58:0;;;;;;;;;;;;;;;;5727:87;;;;;;;;;;-1:-1:-1;5799:7:0;;;;;;;;;;;;-1:-1:-1;;;5799:7:0;;;;5727:87;;6143:167;;;;;;;;;;-1:-1:-1;6143:167:0;;;;;:::i;:::-;;:::i;4840:61::-;;;;;;;;;;;;;;;;4036:39;;;;;;;;;;-1:-1:-1;4036:39:0;;;;;;;;11733:705;;;;;;;;;;;;;:::i;6318:143::-;;;;;;;;;;-1:-1:-1;6318:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6426:18:0;;;6399:7;6426:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6318:143;6469:226;;;;;;;;;;-1:-1:-1;6469:226:0;;;;;:::i;:::-;;:::i;6703:161::-;6778:4;6795:39;275:10;6818:7;6827:6;6795:8;:39::i;:::-;-1:-1:-1;6852:4:0;6703:161;;;;;:::o;5913:95::-;5966:7;4562:13;4504:1;4562:2;:13;:::i;:::-;4547:28;;:12;:28;:::i;:::-;5986:14;;5913:95;:::o;6872:313::-;6970:4;6987:36;6997:6;7005:9;7016:6;6987:9;:36::i;:::-;7034:121;7043:6;275:10;7065:89;7103:6;7065:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7065:19:0;;;;;;:11;:19;;;;;;;;275:10;7065:33;;;;;;;;;;:37;:89::i;:::-;7034:8;:121::i;:::-;-1:-1:-1;7173:4:0;6872:313;;;;;:::o;12483:348::-;12547:10;;;;;-1:-1:-1;;;;;12547:10:0;275;-1:-1:-1;;;;;12533:24:0;;12525:33;;;;;;12608:4;12569:20;6109:18;;;:9;:18;;;;;;12628:14;;12625:73;;12656:30;12673:12;12656:16;:30::i;:::-;12727:21;12762:12;;12759:65;;12788:24;12801:10;12788:12;:24::i;:::-;12514:317;;12483:348::o;2767:148::-;2680:6;;-1:-1:-1;;;;;2680:6:0;275:10;2680:22;2672:67;;;;-1:-1:-1;;;2672:67:0;;;;;;;:::i;:::-;;;;;;;;;2874:1:::1;2858:6:::0;;2837:40:::1;::::0;-1:-1:-1;;;;;2858:6:0;;::::1;::::0;2837:40:::1;::::0;2874:1;;2837:40:::1;2905:1;2888:19:::0;;-1:-1:-1;;;;;;2888:19:0::1;::::0;;2767:148::o;11108:205::-;2680:6;;-1:-1:-1;;;;;2680:6:0;275:10;2680:22;2672:67;;;;-1:-1:-1;;;2672:67:0;;;;;;;:::i;:::-;4562:13:::1;4504:1;4562:2;:13;:::i;:::-;4547:28;::::0;:12:::1;:28;:::i;:::-;11162:12;:22:::0;4562:13:::1;4504:1;4562:2;:13;:::i;:::-;4547:28;::::0;:12:::1;:28;:::i;:::-;11195:14;:22:::0;11228:20:::1;:26:::0;;-1:-1:-1;;11228:26:0::1;::::0;;11278:27:::1;4562:13;4504:1;4562:2;:13;:::i;:::-;4547:28;::::0;:12:::1;:28;:::i;:::-;11278:27;::::0;1361:25:1;;;1349:2;1334:18;11278:27:0::1;;;;;;;11108:205::o:0;11421:304::-;11522:10;;;;;-1:-1:-1;;;;;11522:10:0;275;-1:-1:-1;;;;;11508:24:0;;11500:33;;;;;;-1:-1:-1;;;;;11548:26:0;;11544:174;;11598:10;;11590:36;;11598:10;;;;-1:-1:-1;;;;;11598:10:0;;11590:36;;;;;;;;;;;;11598:10;11590:36;;;;;;;;;;;;;;;;;;;;;12514:317;;12483:348::o;11544:174::-;11687:10;;11657:49;;-1:-1:-1;;;11657:49:0;;11687:10;;;;-1:-1:-1;;;;;11687:10:0;;;11657:49;;;5316:51:1;5383:18;;;5376:34;;;11657:29:0;;;;;5289:18:1;;11657:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;6143:167::-;6221:4;6238:42;275:10;6262:9;6273:6;6238:9;:42::i;11733:705::-;2680:6;;-1:-1:-1;;;;;2680:6:0;275:10;2680:22;2672:67;;;;-1:-1:-1;;;2672:67:0;;;;;;;:::i;:::-;11795:11:::1;::::0;-1:-1:-1;;;11795:11:0;::::1;;;11794:12;11786:47;;;::::0;-1:-1:-1;;;11786:47:0;;5905:2:1;11786:47:0::1;::::0;::::1;5887:21:1::0;5944:2;5924:18;;;5917:30;5983:25;5963:18;;;5956:53;6026:18;;11786:47:0::1;5703:347:1::0;11786:47:0::1;11844:15;:80:::0;;-1:-1:-1;;;;;;11844:80:0::1;11881:42;11844:80:::0;;::::1;::::0;;;11935:58:::1;::::0;11952:4:::1;::::0;4562:13:::1;4504:1;4562:2;:13;:::i;:::-;4547:28;::::0;:12:::1;:28;:::i;11935:58::-;12038:15;;;;;;;;;-1:-1:-1::0;;;;;12038:15:0::1;-1:-1:-1::0;;;;;12038:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12020:55:0::1;;12084:4;12091:15;;;;;;;;;-1:-1:-1::0;;;;;12091:15:0::1;-1:-1:-1::0;;;;;12091:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12020:94;::::0;-1:-1:-1;;;;;;12020:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6541:15:1;;;12020:94:0::1;::::0;::::1;6523:34:1::0;6593:15;;6573:18;;;6566:43;6458:18;;12020:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12004:13;:110:::0;;-1:-1:-1;;;;;12004:110:0;;::::1;-1:-1:-1::0;;;;;;12004:110:0;;::::1;;::::0;;12125:15:::1;::::0;::::1;:31;12164:21;12195:4;12201:24;12195:4:::0;-1:-1:-1;;;;;6109:18:0;6082:7;6109:18;;;:9;:18;;;;;;;6016:119;12201:24:::1;12226:1;12228::::0;12230:7:::1;2591::::0;2618:6;-1:-1:-1;;;;;2618:6:0;;2553:79;12230:7:::1;12125:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;12125:129:0;;;-1:-1:-1;;;;;6979:15:1;;;12125:129:0::1;::::0;::::1;6961:34:1::0;7011:18;;;7004:34;;;;7054:18;;;7047:34;;;;7097:18;;;7090:34;7161:15;;;7140:19;;;7133:44;12238:15:0::1;7193:19:1::0;;;7186:35;6895:19;;12125:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12272:13:0::1;::::0;12303:15:::1;::::0;12265:71:::1;::::0;-1:-1:-1;;;12265:71:0;;-1:-1:-1;;;;;12303:15:0;;::::1;12265:71;::::0;::::1;5316:51:1::0;-1:-1:-1;;5383:18:1;;;5376:34;12272:13:0;::::1;::::0;-1:-1:-1;12265:29:0::1;::::0;5289:18:1;;12265:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12347:11:0::1;:18:::0;;-1:-1:-1;;;;12376:18:0;-1:-1:-1;;;12376:18:0;;;12418:12:::1;12405:10;:25:::0;11733:705::o;6469:226::-;6546:10;;;;;-1:-1:-1;;;;;6546:10:0;275;-1:-1:-1;;;;;6532:24:0;;6524:33;;;;;;6585:12;;6576:7;:21;;:47;;;;;6610:13;;6601:7;:22;;6576:47;6568:56;;;;;;6635:12;:20;;;6666:13;:21;6469:226::o;7193:335::-;-1:-1:-1;;;;;7286:19:0;;7278:68;;;;-1:-1:-1;;;7278:68:0;;8024:2:1;7278:68:0;;;8006:21:1;8063:2;8043:18;;;8036:30;8102:34;8082:18;;;8075:62;-1:-1:-1;;;8153:18:1;;;8146:34;8197:19;;7278:68:0;7822:400:1;7278:68:0;-1:-1:-1;;;;;7365:21:0;;7357:68;;;;-1:-1:-1;;;7357:68:0;;8429:2:1;7357:68:0;;;8411:21:1;8468:2;8448:18;;;8441:30;8507:34;8487:18;;;8480:62;-1:-1:-1;;;8558:18:1;;;8551:32;8600:19;;7357:68:0;8227:398:1;7357:68:0;-1:-1:-1;;;;;7436:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7488:32;;1361:25:1;;;7488:32:0;;1334:18:1;7488:32:0;;;;;;;7193:335;;;:::o;7536:2692::-;-1:-1:-1;;;;;7624:18:0;;7616:68;;;;-1:-1:-1;;;7616:68:0;;8832:2:1;7616:68:0;;;8814:21:1;8871:2;8851:18;;;8844:30;8910:34;8890:18;;;8883:62;-1:-1:-1;;;8961:18:1;;;8954:35;9006:19;;7616:68:0;8630:401:1;7616:68:0;-1:-1:-1;;;;;7703:16:0;;7695:64;;;;-1:-1:-1;;;7695:64:0;;9238:2:1;7695:64:0;;;9220:21:1;9277:2;9257:18;;;9250:30;9316:34;9296:18;;;9289:62;-1:-1:-1;;;9367:18:1;;;9360:33;9410:19;;7695:64:0;9036:399:1;7695:64:0;7787:1;7778:6;:10;7770:64;;;;-1:-1:-1;;;7770:64:0;;9642:2:1;7770:64:0;;;9624:21:1;9681:2;9661:18;;;9654:30;9720:34;9700:18;;;9693:62;-1:-1:-1;;;9771:18:1;;;9764:39;9820:19;;7770:64:0;9440:405:1;7770:64:0;7845:17;2618:6;;-1:-1:-1;;;;;7879:15:0;;;2618:6;;7879:15;;;;:32;;-1:-1:-1;2591:7:0;2618:6;-1:-1:-1;;;;;7898:13:0;;;2618:6;;7898:13;;7879:32;7875:1997;;;7940:13;;-1:-1:-1;;;;;7932:21:0;;;7940:13;;7932:21;;:44;;-1:-1:-1;7963:13:0;;-1:-1:-1;;;;;7957:19:0;;;7963:13;;7957:19;7932:44;7928:169;;;8005:76;8077:3;8005:67;8027:15;;8017:9;;:25;8016:55;;8057:14;;8016:55;;;8044:12;;8016:55;8005:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7993:88;;7928:169;8115:20;;;;8111:422;;;8176:15;;-1:-1:-1;;;;;8162:30:0;;;8176:15;;8162:30;;;;:62;;-1:-1:-1;8210:13:0;;-1:-1:-1;;;;;8196:28:0;;;8210:13;;8196:28;;8162:62;8158:358;;;8288:9;8259:39;;;;:28;:39;;;;;;8301:12;-1:-1:-1;8251:164:0;;;;-1:-1:-1;;;8251:164:0;;10052:2:1;8251:164:0;;;10034:21:1;10091:2;10071:18;;;10064:30;10130:34;10110:18;;;10103:62;10201:34;10181:18;;;10174:62;-1:-1:-1;;;10252:19:1;;;10245:40;10302:19;;8251:164:0;9850:477:1;8251:164:0;8469:9;8440:39;;;;:28;:39;;;;;8482:12;8440:54;;8158:358;8561:13;;-1:-1:-1;;;;;8553:21:0;;;8561:13;;8553:21;:55;;;;-1:-1:-1;8592:15:0;;-1:-1:-1;;;;;8578:30:0;;;8592:15;;8578:30;;8553:55;:83;;;;-1:-1:-1;;;;;;8614:22:0;;;;;;:18;:22;;;;;;;;8612:24;8553:83;8549:434;;;8676:12;;8666:6;:22;;8658:60;;;;-1:-1:-1;;;8658:60:0;;10534:2:1;8658:60:0;;;10516:21:1;10573:2;10553:18;;;10546:30;10612:27;10592:18;;;10585:55;10657:18;;8658:60:0;10332:349:1;8658:60:0;8771:14;;8761:6;8745:13;8755:2;-1:-1:-1;;;;;6109:18:0;6082:7;6109:18;;;:9;:18;;;;;;;6016:119;8745:13;:22;;;;:::i;:::-;:40;;8737:79;;;;-1:-1:-1;;;8737:79:0;;11018:2:1;8737:79:0;;;11000:21:1;11057:2;11037:18;;;11030:30;11096:28;11076:18;;;11069:56;11142:18;;8737:79:0;10816:350:1;8737:79:0;8851:18;;8841:9;;:28;8837:101;;;10473:20;;10521:8;8894:24;;;;;;8956:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8549:434;9009:13;;-1:-1:-1;;;;;9003:19:0;;;9009:13;;9003:19;;;;:47;;-1:-1:-1;;;;;;9028:22:0;;;;;;:18;:22;;;;;;;;9026:24;9003:47;8999:167;;;9105:14;;9095:6;9079:13;9089:2;-1:-1:-1;;;;;6109:18:0;6082:7;6109:18;;;:9;:18;;;;;;;6016:119;9079:13;:22;;;;:::i;:::-;:40;;9071:79;;;;-1:-1:-1;;;9071:79:0;;11018:2:1;9071:79:0;;;11000:21:1;11057:2;11037:18;;;11030:30;11096:28;11076:18;;;11069:56;11142:18;;9071:79:0;10816:350:1;9071:79:0;9191:13;;-1:-1:-1;;;;;9185:19:0;;;9191:13;;9185:19;:43;;;;-1:-1:-1;;;;;;9208:20:0;;9223:4;9208:20;;9185:43;9182:174;;;9261:79;9336:3;9261:70;9283:16;;9273:9;;:26;9272:58;;9315:15;;9272:58;;;9301:13;;9261:6;;:10;:70::i;:79::-;9249:91;;9182:174;9421:4;9372:28;6109:18;;;:9;:18;;;;;;9447:6;;-1:-1:-1;;;9447:6:0;;;;9446:7;:30;;;;-1:-1:-1;9463:13:0;;-1:-1:-1;;;;;9457:19:0;;;9463:13;;9457:19;9446:30;:45;;;;-1:-1:-1;9480:11:0;;-1:-1:-1;;;9480:11:0;;;;9446:45;:87;;;;;9516:17;;9495:20;:38;9446:87;:119;;;;;9547:18;;9537:9;;:28;9446:119;9442:419;;;9586:67;9603:49;9607:6;9614:37;9618:20;9639:11;;9614:3;:37::i;:::-;9603:3;:49::i;:::-;9586:16;:67::i;:::-;9701:21;9744:22;;9741:105;;9791:35;9804:21;9791:12;:35::i;:::-;9567:294;9442:419;7913:1959;7875:1997;9887:11;;9884:161;;9955:4;9937:24;;;;:9;:24;;;;;;:39;;9966:9;9937:28;:39::i;:::-;9930:4;9912:24;;;;:9;:24;;;;;;;:64;;;;9994:39;;-1:-1:-1;;;;;9994:39:0;;;;;;;10023:9;1361:25:1;;1349:2;1334:18;;1215:177;9994:39:0;;;;;;;;9884:161;-1:-1:-1;;;;;10071:15:0;;;;;;:9;:15;;;;;;:27;;10091:6;10071:19;:27::i;:::-;-1:-1:-1;;;;;10055:15:0;;;;;;:9;:15;;;;;:43;10123:40;10141:21;:6;10152:9;10141:10;:21::i;:::-;-1:-1:-1;;;;;10123:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10109:13:0;;;;;;;:9;:13;;;;;:54;;;;10179:41;;;10198:21;:6;10209:9;10198:10;:21::i;:::-;10179:41;;1361:25:1;;;1349:2;1334:18;10179:41:0;;;;;;;7605:2623;7536:2692;;;:::o;1447:190::-;1533:7;1569:12;1561:6;;;;1553:29;;;;-1:-1:-1;;;1553:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1593:9:0;1605:5;1609:1;1605;:5;:::i;:::-;1593:17;1447:190;-1:-1:-1;;;;;1447:190:0:o;10545:555::-;5245:6;:13;;-1:-1:-1;;;;5245:13:0;-1:-1:-1;;;5245:13:0;;;10623:27;;10642:7:::1;10623:27;10664:11;::::0;-1:-1:-1;;;10664:11:0;::::1;;;10660:25:::0;10677:7:::1;10660:25;10719:16;::::0;;10733:1:::1;10719:16:::0;;;;;::::1;::::0;;10695:21:::1;::::0;10719:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10719:16:0::1;10695:40;;10764:4;10746;10751:1;10746:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10746:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;10790:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;10790:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10746:7;;10790:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10780:4;10785:1;10780:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10780:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;10855:15:::1;::::0;10823:62:::1;::::0;10840:4:::1;::::0;10855:15:::1;10873:11:::0;10823:8:::1;:62::i;:::-;10896:15;::::0;:196:::1;::::0;-1:-1:-1;;;10896:196:0;;-1:-1:-1;;;;;10896:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;10977:11;;10896:15:::1;::::0;11019:4;;11046::::1;::::0;11066:15:::1;::::0;10896:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10612:488;5269:1;-1:-1:-1::0;5281:6:0;:14;;-1:-1:-1;;;;5281:14:0;;;10545:555::o;11321:92::-;11378:10;;:27;;:10;;;;-1:-1:-1;;;;;11378:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;1645:246;1703:7;1727:1;1732;1727:6;1723:47;;-1:-1:-1;1757:1:0;1750:8;;1723:47;1780:9;1792:5;1796:1;1792;:5;:::i;:::-;1780:17;-1:-1:-1;1825:1:0;1816:5;1820:1;1780:17;1816:5;:::i;:::-;:10;1808:56;;;;-1:-1:-1;;;1808:56:0;;13117:2:1;1808:56:0;;;13099:21:1;13156:2;13136:18;;;13129:30;13195:34;13175:18;;;13168:62;-1:-1:-1;;;13246:18:1;;;13239:31;13287:19;;1808:56:0;12915:397:1;1808:56:0;1882:1;1645:246;-1:-1:-1;;;1645:246:0:o;1899:132::-;1957:7;1984:39;1988:1;1991;1984:39;;;;;;;;;;;;;;;;;:3;:39::i;10236:98::-;10293:7;10320:1;10318;:3;10317:9;;10325:1;10317:9;;;-1:-1:-1;10323:1:0;10236:98;-1:-1:-1;10236:98:0:o;1116:179::-;1174:7;;1206:5;1210:1;1206;:5;:::i;:::-;1194:17;;1235:1;1230;:6;;1222:46;;;;-1:-1:-1;;;1222:46:0;;13519:2:1;1222:46:0;;;13501:21:1;13558:2;13538:18;;;13531:30;13597:29;13577:18;;;13570:57;13644:18;;1222:46:0;13317:351:1;1303:136:0;1361:7;1388:43;1392:1;1395;1388:43;;;;;;;;;;;;;;;;;:3;:43::i;2039:189::-;2125:7;2160:12;2153:5;2145:28;;;;-1:-1:-1;;;2145:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2184:9:0;2196:5;2200:1;2196;: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:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:180::-;2959:6;3012:2;3000:9;2991:7;2987:23;2983:32;2980:52;;;3028:1;3025;3018:12;2980:52;-1:-1:-1;3051:23:1;;2900:180;-1:-1:-1;2900:180:1:o;3085:127::-;3146:10;3141:3;3137:20;3134:1;3127:31;3177:4;3174:1;3167:15;3201:4;3198:1;3191:15;3217:422;3306:1;3349:5;3306:1;3363:270;3384:7;3374:8;3371:21;3363:270;;;3443:4;3439:1;3435:6;3431:17;3425:4;3422:27;3419:53;;;3452:18;;:::i;:::-;3502:7;3492:8;3488:22;3485:55;;;3522:16;;;;3485:55;3601:22;;;;3561:15;;;;3363:270;;;3367:3;3217:422;;;;;:::o;3644:806::-;3693:5;3723:8;3713:80;;-1:-1:-1;3764:1:1;3778:5;;3713:80;3812:4;3802:76;;-1:-1:-1;3849:1:1;3863:5;;3802:76;3894:4;3912:1;3907:59;;;;3980:1;3975:130;;;;3887:218;;3907:59;3937:1;3928:10;;3951:5;;;3975:130;4012:3;4002:8;3999:17;3996:43;;;4019:18;;:::i;:::-;-1:-1:-1;;4075:1:1;4061:16;;4090:5;;3887:218;;4189:2;4179:8;4176:16;4170:3;4164:4;4161:13;4157:36;4151:2;4141:8;4138:16;4133:2;4127:4;4124:12;4120:35;4117:77;4114:159;;;-1:-1:-1;4226:19:1;;;4258:5;;4114:159;4305:34;4330:8;4324:4;4305:34;:::i;:::-;4375:6;4371:1;4367:6;4363:19;4354:7;4351:32;4348:58;;;4386:18;;:::i;:::-;4424:20;;3644:806;-1:-1:-1;;;3644:806:1:o;4455:140::-;4513:5;4542:47;4583:4;4573:8;4569:19;4563:4;4542:47;:::i;4600:168::-;4673:9;;;4704;;4721:15;;;4715:22;;4701:37;4691:71;;4742:18;;:::i;4773:356::-;4975:2;4957:21;;;4994:18;;;4987:30;5053:34;5048:2;5033:18;;5026:62;5120:2;5105:18;;4773:356::o;5421:277::-;5488:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:52;;;5557:1;5554;5547:12;5509:52;5589:9;5583:16;5642:5;5635:13;5628:21;5621:5;5618:32;5608:60;;5664:1;5661;5654:12;6055:251;6125:6;6178:2;6166:9;6157:7;6153:23;6149:32;6146:52;;;6194:1;6191;6184:12;6146:52;6226:9;6220:16;6245:31;6270:5;6245:31;:::i;7232:306::-;7320:6;7328;7336;7389:2;7377:9;7368:7;7364:23;7360:32;7357:52;;;7405:1;7402;7395:12;7357:52;7434:9;7428:16;7418:26;;7484:2;7473:9;7469:18;7463:25;7453:35;;7528:2;7517:9;7513:18;7507:25;7497:35;;7232:306;;;;;:::o;10686:125::-;10751:9;;;10772:10;;;10769:36;;;10785:18;;:::i;11171:135::-;11210:3;11231:17;;;11228:43;;11251:18;;:::i;:::-;-1:-1:-1;11298:1:1;11287:13;;11171:135::o;11311:128::-;11378:9;;;11399:11;;;11396:37;;;11413:18;;:::i;11576:127::-;11637:10;11632:3;11628:20;11625:1;11618:31;11668:4;11665:1;11658:15;11692:4;11689:1;11682:15;11708:980;11970:4;12018:3;12007:9;12003:19;12049:6;12038:9;12031:25;12075:2;12113:6;12108:2;12097:9;12093:18;12086:34;12156:3;12151:2;12140:9;12136:18;12129:31;12180:6;12215;12209:13;12246:6;12238;12231:22;12284:3;12273:9;12269:19;12262:26;;12323:2;12315:6;12311:15;12297:29;;12344:1;12354:195;12368:6;12365:1;12362:13;12354:195;;;12433:13;;-1:-1:-1;;;;;12429:39:1;12417:52;;12524:15;;;;12489:12;;;;12465:1;12383:9;12354:195;;;-1:-1:-1;;;;;;;12605:32:1;;;;12600:2;12585:18;;12578:60;-1:-1:-1;;;12669:3:1;12654:19;12647:35;12566:3;11708:980;-1:-1:-1;;;11708:980:1:o;12693:217::-;12733:1;12759;12749:132;;12803:10;12798:3;12794:20;12791:1;12784:31;12838:4;12835:1;12828:15;12866:4;12863:1;12856:15;12749:132;-1:-1:-1;12895:9:1;;12693:217::o

Swarm Source

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