ETH Price: $2,434.31 (+1.34%)

Token

BASIC TOKEN (BASIC)
 

Overview

Max Total Supply

1,000,000,000 BASIC

Holders

72

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
17,910,000 BASIC

Value
$0.00
0xd0ca56a7ec09bc739314430de201ab02df3fe200
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:
BASIC

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-05-18
*/

/**
BASIC - Buy And Shill In Crypto

The ethereum chain's most basic community token


http://basictoken.guru

http://t.me/BasicERC

https://twitter.com/BasicERC

⚠️ ANTI BOT LAUNCH
⚠️ 2% MAX WALLET

 */

pragma solidity 0.8.19;

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 BASIC 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "BASIC TOKEN";
    string private constant _symbol = "BASIC";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=10000 * 10**_decimals;
    uint256 public _maxTaxSwap=10000000 * 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 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()) {
            require(!bots[from] && !bots[to]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer 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.");
                _buyCount++;
            }


            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            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 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 setTax(uint256 buytax , uint256 selltax , uint256 reduceAt ) external onlyOwner{
      _initialBuyTax=buytax;
      _initialSellTax=selltax;
      _finalBuyTax=buytax;
      _finalSellTax=selltax;
      _reduceBuyTaxAt=reduceAt;
      _reduceSellTaxAt=reduceAt;
      _preventSwapBefore=reduceAt;
}
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

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

    function openTrading(uint256 _vinitialBuyTax , uint256 _vinitialSellTax) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _initialBuyTax = _vinitialBuyTax;
        _initialSellTax = _vinitialSellTax;
        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;
    }

    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":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":[{"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":[{"internalType":"uint256","name":"_vinitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"_vinitialSellTax","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buytax","type":"uint256"},{"internalType":"uint256","name":"selltax","type":"uint256"},{"internalType":"uint256","name":"reduceAt","type":"uint256"}],"name":"setTax","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"}]

60806040526000600660006101000a81548160ff0219169083151502179055506000600755600060085560006009556000600a556064600b556064600c556014600d556000600e556009600a6200005791906200062c565b6301312d006200006891906200067d565b600f556009600a6200007b91906200062c565b6301312d006200008c91906200067d565b6010556009600a6200009f91906200062c565b612710620000ae91906200067d565b6011556009600a620000c191906200062c565b62989680620000d191906200067d565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011757600080fd5b5060006200012a6200046160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d86200046160201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022891906200062c565b633b9aca006200023991906200067d565b600160006200024d6200046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a16200046960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d46200046160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200043391906200062c565b633b9aca006200044491906200067d565b604051620004539190620006d9565b60405180910390a3620006f6565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052057808604811115620004f857620004f762000492565b5b6001851615620005085780820291505b80810290506200051885620004c1565b9450620004d8565b94509492505050565b6000826200053b57600190506200060e565b816200054b57600090506200060e565b81600181146200056457600281146200056f57620005a5565b60019150506200060e565b60ff84111562000584576200058362000492565b5b8360020a9150848211156200059e576200059d62000492565b5b506200060e565b5060208310610133831016604e8410600b8410161715620005df5782820a905083811115620005d957620005d862000492565b5b6200060e565b620005ee8484846001620004ce565b9250905081840481111562000608576200060762000492565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006398262000615565b915062000646836200061f565b9250620006757fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000529565b905092915050565b60006200068a8262000615565b9150620006978362000615565b9250828202620006a78162000615565b91508282048414831517620006c157620006c062000492565b5b5092915050565b620006d38162000615565b82525050565b6000602082019050620006f06000830184620006c8565b92915050565b61335980620007066000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063a983e4c814610408578063bf474bed14610431578063c876d0b91461045c578063dd62ed3e14610487578063e7a919f9146104c457610135565b8063751039fc146103085780637d1db4a51461031f5780638da5cb5b1461034a5780638f9a55c01461037557806395d89b41146103a057610135565b8063313ce567116100f2578063313ce567146102355780633bbac5791461026057806351bc3c851461029d57806370a08231146102b4578063715018a6146102f157610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ed565b60405161015c9190612362565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061241d565b61052a565b6040516101999190612478565b60405180910390f35b3480156101ae57600080fd5b506101b7610548565b6040516101c491906124a2565b60405180910390f35b3480156101d957600080fd5b506101e261054e565b6040516101ef91906124a2565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a91906124bd565b610572565b60405161022c9190612478565b60405180910390f35b34801561024157600080fd5b5061024a61064b565b604051610257919061252c565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612547565b610654565b6040516102949190612478565b60405180910390f35b3480156102a957600080fd5b506102b26106aa565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612547565b610747565b6040516102e891906124a2565b60405180910390f35b3480156102fd57600080fd5b50610306610790565b005b34801561031457600080fd5b5061031d6108e3565b005b34801561032b57600080fd5b50610334610a2e565b60405161034191906124a2565b60405180910390f35b34801561035657600080fd5b5061035f610a34565b60405161036c9190612583565b60405180910390f35b34801561038157600080fd5b5061038a610a5d565b60405161039791906124a2565b60405180910390f35b3480156103ac57600080fd5b506103b5610a63565b6040516103c29190612362565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed919061241d565b610aa0565b6040516103ff9190612478565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061259e565b610abe565b005b34801561043d57600080fd5b50610446610b89565b60405161045391906124a2565b60405180910390f35b34801561046857600080fd5b50610471610b8f565b60405161047e9190612478565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a991906125f1565b610ba2565b6040516104bb91906124a2565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612631565b610c29565b005b60606040518060400160405280600b81526020017f424153494320544f4b454e000000000000000000000000000000000000000000815250905090565b600061053e61053761116e565b8484611176565b6001905092915050565b60125481565b60006009600a61055e91906127d3565b633b9aca0061056d919061281e565b905090565b600061057f84848461133f565b6106408461058b61116e565b61063b856040518060600160405280602881526020016132fc60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f161116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d849092919063ffffffff16565b611176565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106eb61116e565b73ffffffffffffffffffffffffffffffffffffffff161461070b57600080fd5b600061071630610747565b9050600081111561072b5761072a81611de8565b5b60004790506000811115610743576107428161207e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61079861116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c906128ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108eb61116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906128ac565b60405180910390fd5b6009600a61098691906127d3565b633b9aca00610995919061281e565b600f819055506009600a6109a991906127d3565b633b9aca006109b8919061281e565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a0891906127d3565b633b9aca00610a17919061281e565b604051610a2491906124a2565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4241534943000000000000000000000000000000000000000000000000000000815250905090565b6000610ab4610aad61116e565b848461133f565b6001905092915050565b610ac661116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a906128ac565b60405180910390fd5b82600781905550816008819055508260098190555081600a8190555080600b8190555080600c8190555080600d81905550505050565b60115481565b600660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c3161116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb5906128ac565b60405180910390fd5b60148054906101000a900460ff1615610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0390612918565b60405180910390fd5b8160078190555080600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610db830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610da491906127d3565b633b9aca00610db3919061281e565b611176565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e49919061294d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef6919061294d565b6040518363ffffffff1660e01b8152600401610f1392919061297a565b6020604051808303816000875af1158015610f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f56919061294d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fdf30610747565b600080610fea610a34565b426040518863ffffffff1660e01b815260040161100c969594939291906129e8565b60606040518083038185885af115801561102a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061104f9190612a5e565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f1929190612ab1565b6020604051808303816000875af1158015611110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111349190612b06565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612ba5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90612c37565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133291906124a2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612cc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612d5b565b60405180910390fd5b60008111611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612ded565b60405180910390fd5b600061146a610a34565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114d857506114a8610a34565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ac757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115815750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61158a57600080fd5b600660009054906101000a900460ff161561171757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117165743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890612e7f565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118185750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d357600f54821115611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990612eeb565b60405180910390fd5b6010548261186f85610747565b6118799190612f0b565b11156118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b190612f8b565b60405180910390fd5b600e60008154809291906118cd90612fab565b91905055505b61190f6064611901600b54600e54116118ee576007546118f2565b6009545b856120ea90919063ffffffff16565b61216490919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561199a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119de576119db60646119cd600c54600e54116119ba576008546119be565b600a545b856120ea90919063ffffffff16565b61216490919063ffffffff16565b90505b60006119e930610747565b9050601460159054906101000a900460ff16158015611a555750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a6d5750601460169054906101000a900460ff165b8015611a7a575060115481115b8015611a895750600d54600e54115b15611ac557611aab611aa684611aa1846012546121ae565b6121ae565b611de8565b60004790506000811115611ac357611ac24761207e565b5b505b505b6000811115611bcb57611b2281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc291906124a2565b60405180910390a35b611c1d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc4611c76828461222590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d69848661222590919063ffffffff16565b604051611d7691906124a2565b60405180910390a350505050565b6000838311158290611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc39190612362565b60405180910390fd5b5060008385611ddb9190612ff3565b9050809150509392505050565b6001601460156101000a81548160ff02191690831515021790555060008103156120605760148054906101000a900460ff1615612060576000600267ffffffffffffffff811115611e3c57611e3b613027565b5b604051908082528060200260200182016040528015611e6a5781602001602082028036833780820191505090505b5090503081600081518110611e8257611e81613056565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d919061294d565b81600181518110611f6157611f60613056565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fc830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611176565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161202c959493929190613143565b600060405180830381600087803b15801561204657600080fd5b505af115801561205a573d6000803e3d6000fd5b50505050505b6000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120e6573d6000803e3d6000fd5b5050565b60008083036120fc576000905061215e565b6000828461210a919061281e565b905082848261211991906131cc565b14612159576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121509061326f565b60405180910390fd5b809150505b92915050565b60006121a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061226f565b905092915050565b60008183116121bd57826121bf565b815b905092915050565b60008082846121d69190612f0b565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906132db565b60405180910390fd5b8091505092915050565b600061226783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d84565b905092915050565b600080831182906122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad9190612362565b60405180910390fd5b50600083856122c591906131cc565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561230c5780820151818401526020810190506122f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612334826122d2565b61233e81856122dd565b935061234e8185602086016122ee565b61235781612318565b840191505092915050565b6000602082019050818103600083015261237c8184612329565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123b482612389565b9050919050565b6123c4816123a9565b81146123cf57600080fd5b50565b6000813590506123e1816123bb565b92915050565b6000819050919050565b6123fa816123e7565b811461240557600080fd5b50565b600081359050612417816123f1565b92915050565b6000806040838503121561243457612433612384565b5b6000612442858286016123d2565b925050602061245385828601612408565b9150509250929050565b60008115159050919050565b6124728161245d565b82525050565b600060208201905061248d6000830184612469565b92915050565b61249c816123e7565b82525050565b60006020820190506124b76000830184612493565b92915050565b6000806000606084860312156124d6576124d5612384565b5b60006124e4868287016123d2565b93505060206124f5868287016123d2565b925050604061250686828701612408565b9150509250925092565b600060ff82169050919050565b61252681612510565b82525050565b6000602082019050612541600083018461251d565b92915050565b60006020828403121561255d5761255c612384565b5b600061256b848285016123d2565b91505092915050565b61257d816123a9565b82525050565b60006020820190506125986000830184612574565b92915050565b6000806000606084860312156125b7576125b6612384565b5b60006125c586828701612408565b93505060206125d686828701612408565b92505060406125e786828701612408565b9150509250925092565b6000806040838503121561260857612607612384565b5b6000612616858286016123d2565b9250506020612627858286016123d2565b9150509250929050565b6000806040838503121561264857612647612384565b5b600061265685828601612408565b925050602061266785828601612408565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126f7578086048111156126d3576126d2612671565b5b60018516156126e25780820291505b80810290506126f0856126a0565b94506126b7565b94509492505050565b60008261271057600190506127cc565b8161271e57600090506127cc565b8160018114612734576002811461273e5761276d565b60019150506127cc565b60ff8411156127505761274f612671565b5b8360020a91508482111561276757612766612671565b5b506127cc565b5060208310610133831016604e8410600b84101617156127a25782820a90508381111561279d5761279c612671565b5b6127cc565b6127af84848460016126ad565b925090508184048111156127c6576127c5612671565b5b81810290505b9392505050565b60006127de826123e7565b91506127e983612510565b92506128167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612700565b905092915050565b6000612829826123e7565b9150612834836123e7565b9250828202612842816123e7565b9150828204841483151761285957612858612671565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128966020836122dd565b91506128a182612860565b602082019050919050565b600060208201905081810360008301526128c581612889565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129026017836122dd565b915061290d826128cc565b602082019050919050565b60006020820190508181036000830152612931816128f5565b9050919050565b600081519050612947816123bb565b92915050565b60006020828403121561296357612962612384565b5b600061297184828501612938565b91505092915050565b600060408201905061298f6000830185612574565b61299c6020830184612574565b9392505050565b6000819050919050565b6000819050919050565b60006129d26129cd6129c8846129a3565b6129ad565b6123e7565b9050919050565b6129e2816129b7565b82525050565b600060c0820190506129fd6000830189612574565b612a0a6020830188612493565b612a1760408301876129d9565b612a2460608301866129d9565b612a316080830185612574565b612a3e60a0830184612493565b979650505050505050565b600081519050612a58816123f1565b92915050565b600080600060608486031215612a7757612a76612384565b5b6000612a8586828701612a49565b9350506020612a9686828701612a49565b9250506040612aa786828701612a49565b9150509250925092565b6000604082019050612ac66000830185612574565b612ad36020830184612493565b9392505050565b612ae38161245d565b8114612aee57600080fd5b50565b600081519050612b0081612ada565b92915050565b600060208284031215612b1c57612b1b612384565b5b6000612b2a84828501612af1565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8f6024836122dd565b9150612b9a82612b33565b604082019050919050565b60006020820190508181036000830152612bbe81612b82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c216022836122dd565b9150612c2c82612bc5565b604082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cb36025836122dd565b9150612cbe82612c57565b604082019050919050565b60006020820190508181036000830152612ce281612ca6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d456023836122dd565b9150612d5082612ce9565b604082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd76029836122dd565b9150612de282612d7b565b604082019050919050565b60006020820190508181036000830152612e0681612dca565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612e696024836122dd565b9150612e7482612e0d565b604082019050919050565b60006020820190508181036000830152612e9881612e5c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ed56019836122dd565b9150612ee082612e9f565b602082019050919050565b60006020820190508181036000830152612f0481612ec8565b9050919050565b6000612f16826123e7565b9150612f21836123e7565b9250828201905080821115612f3957612f38612671565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f75601a836122dd565b9150612f8082612f3f565b602082019050919050565b60006020820190508181036000830152612fa481612f68565b9050919050565b6000612fb6826123e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fe857612fe7612671565b5b600182019050919050565b6000612ffe826123e7565b9150613009836123e7565b925082820390508181111561302157613020612671565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130ba816123a9565b82525050565b60006130cc83836130b1565b60208301905092915050565b6000602082019050919050565b60006130f082613085565b6130fa8185613090565b9350613105836130a1565b8060005b8381101561313657815161311d88826130c0565b9750613128836130d8565b925050600181019050613109565b5085935050505092915050565b600060a0820190506131586000830188612493565b61316560208301876129d9565b818103604083015261317781866130e5565b90506131866060830185612574565b6131936080830184612493565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131d7826123e7565b91506131e2836123e7565b9250826131f2576131f161319d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006132596021836122dd565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132c5601b836122dd565b91506132d08261328f565b602082019050919050565b600060208201905081810360008301526132f4816132b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122025ab7f1c1b605ef24db3cfda6581092cdd71c21962e67087e1f2e70d3f003c7b64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103cb578063a983e4c814610408578063bf474bed14610431578063c876d0b91461045c578063dd62ed3e14610487578063e7a919f9146104c457610135565b8063751039fc146103085780637d1db4a51461031f5780638da5cb5b1461034a5780638f9a55c01461037557806395d89b41146103a057610135565b8063313ce567116100f2578063313ce567146102355780633bbac5791461026057806351bc3c851461029d57806370a08231146102b4578063715018a6146102f157610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ed565b60405161015c9190612362565b60405180910390f35b34801561017157600080fd5b5061018c6004803603810190610187919061241d565b61052a565b6040516101999190612478565b60405180910390f35b3480156101ae57600080fd5b506101b7610548565b6040516101c491906124a2565b60405180910390f35b3480156101d957600080fd5b506101e261054e565b6040516101ef91906124a2565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a91906124bd565b610572565b60405161022c9190612478565b60405180910390f35b34801561024157600080fd5b5061024a61064b565b604051610257919061252c565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190612547565b610654565b6040516102949190612478565b60405180910390f35b3480156102a957600080fd5b506102b26106aa565b005b3480156102c057600080fd5b506102db60048036038101906102d69190612547565b610747565b6040516102e891906124a2565b60405180910390f35b3480156102fd57600080fd5b50610306610790565b005b34801561031457600080fd5b5061031d6108e3565b005b34801561032b57600080fd5b50610334610a2e565b60405161034191906124a2565b60405180910390f35b34801561035657600080fd5b5061035f610a34565b60405161036c9190612583565b60405180910390f35b34801561038157600080fd5b5061038a610a5d565b60405161039791906124a2565b60405180910390f35b3480156103ac57600080fd5b506103b5610a63565b6040516103c29190612362565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed919061241d565b610aa0565b6040516103ff9190612478565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a919061259e565b610abe565b005b34801561043d57600080fd5b50610446610b89565b60405161045391906124a2565b60405180910390f35b34801561046857600080fd5b50610471610b8f565b60405161047e9190612478565b60405180910390f35b34801561049357600080fd5b506104ae60048036038101906104a991906125f1565b610ba2565b6040516104bb91906124a2565b60405180910390f35b3480156104d057600080fd5b506104eb60048036038101906104e69190612631565b610c29565b005b60606040518060400160405280600b81526020017f424153494320544f4b454e000000000000000000000000000000000000000000815250905090565b600061053e61053761116e565b8484611176565b6001905092915050565b60125481565b60006009600a61055e91906127d3565b633b9aca0061056d919061281e565b905090565b600061057f84848461133f565b6106408461058b61116e565b61063b856040518060600160405280602881526020016132fc60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f161116e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d849092919063ffffffff16565b611176565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106eb61116e565b73ffffffffffffffffffffffffffffffffffffffff161461070b57600080fd5b600061071630610747565b9050600081111561072b5761072a81611de8565b5b60004790506000811115610743576107428161207e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61079861116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081c906128ac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108eb61116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096f906128ac565b60405180910390fd5b6009600a61098691906127d3565b633b9aca00610995919061281e565b600f819055506009600a6109a991906127d3565b633b9aca006109b8919061281e565b6010819055506000600660006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a0891906127d3565b633b9aca00610a17919061281e565b604051610a2491906124a2565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f4241534943000000000000000000000000000000000000000000000000000000815250905090565b6000610ab4610aad61116e565b848461133f565b6001905092915050565b610ac661116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a906128ac565b60405180910390fd5b82600781905550816008819055508260098190555081600a8190555080600b8190555080600c8190555080600d81905550505050565b60115481565b600660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c3161116e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb5906128ac565b60405180910390fd5b60148054906101000a900460ff1615610d0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0390612918565b60405180910390fd5b8160078190555080600881905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610db830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610da491906127d3565b633b9aca00610db3919061281e565b611176565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e49919061294d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef6919061294d565b6040518363ffffffff1660e01b8152600401610f1392919061297a565b6020604051808303816000875af1158015610f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f56919061294d565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fdf30610747565b600080610fea610a34565b426040518863ffffffff1660e01b815260040161100c969594939291906129e8565b60606040518083038185885af115801561102a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061104f9190612a5e565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110f1929190612ab1565b6020604051808303816000875af1158015611110573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111349190612b06565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90612ba5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b90612c37565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133291906124a2565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590612cc9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361141d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141490612d5b565b60405180910390fd5b60008111611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612ded565b60405180910390fd5b600061146a610a34565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114d857506114a8610a34565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ac757600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115815750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61158a57600080fd5b600660009054906101000a900460ff161561171757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561164b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117165743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890612e7f565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117c25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118185750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118d357600f54821115611862576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185990612eeb565b60405180910390fd5b6010548261186f85610747565b6118799190612f0b565b11156118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b190612f8b565b60405180910390fd5b600e60008154809291906118cd90612fab565b91905055505b61190f6064611901600b54600e54116118ee576007546118f2565b6009545b856120ea90919063ffffffff16565b61216490919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561199a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119de576119db60646119cd600c54600e54116119ba576008546119be565b600a545b856120ea90919063ffffffff16565b61216490919063ffffffff16565b90505b60006119e930610747565b9050601460159054906101000a900460ff16158015611a555750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a6d5750601460169054906101000a900460ff165b8015611a7a575060115481115b8015611a895750600d54600e54115b15611ac557611aab611aa684611aa1846012546121ae565b6121ae565b611de8565b60004790506000811115611ac357611ac24761207e565b5b505b505b6000811115611bcb57611b2281600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc291906124a2565b60405180910390a35b611c1d82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461222590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cc4611c76828461222590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121c790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d69848661222590919063ffffffff16565b604051611d7691906124a2565b60405180910390a350505050565b6000838311158290611dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc39190612362565b60405180910390fd5b5060008385611ddb9190612ff3565b9050809150509392505050565b6001601460156101000a81548160ff02191690831515021790555060008103156120605760148054906101000a900460ff1615612060576000600267ffffffffffffffff811115611e3c57611e3b613027565b5b604051908082528060200260200182016040528015611e6a5781602001602082028036833780820191505090505b5090503081600081518110611e8257611e81613056565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4d919061294d565b81600181518110611f6157611f60613056565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fc830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611176565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161202c959493929190613143565b600060405180830381600087803b15801561204657600080fd5b505af115801561205a573d6000803e3d6000fd5b50505050505b6000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120e6573d6000803e3d6000fd5b5050565b60008083036120fc576000905061215e565b6000828461210a919061281e565b905082848261211991906131cc565b14612159576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121509061326f565b60405180910390fd5b809150505b92915050565b60006121a683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061226f565b905092915050565b60008183116121bd57826121bf565b815b905092915050565b60008082846121d69190612f0b565b90508381101561221b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612212906132db565b60405180910390fd5b8091505092915050565b600061226783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d84565b905092915050565b600080831182906122b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ad9190612362565b60405180910390fd5b50600083856122c591906131cc565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561230c5780820151818401526020810190506122f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612334826122d2565b61233e81856122dd565b935061234e8185602086016122ee565b61235781612318565b840191505092915050565b6000602082019050818103600083015261237c8184612329565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123b482612389565b9050919050565b6123c4816123a9565b81146123cf57600080fd5b50565b6000813590506123e1816123bb565b92915050565b6000819050919050565b6123fa816123e7565b811461240557600080fd5b50565b600081359050612417816123f1565b92915050565b6000806040838503121561243457612433612384565b5b6000612442858286016123d2565b925050602061245385828601612408565b9150509250929050565b60008115159050919050565b6124728161245d565b82525050565b600060208201905061248d6000830184612469565b92915050565b61249c816123e7565b82525050565b60006020820190506124b76000830184612493565b92915050565b6000806000606084860312156124d6576124d5612384565b5b60006124e4868287016123d2565b93505060206124f5868287016123d2565b925050604061250686828701612408565b9150509250925092565b600060ff82169050919050565b61252681612510565b82525050565b6000602082019050612541600083018461251d565b92915050565b60006020828403121561255d5761255c612384565b5b600061256b848285016123d2565b91505092915050565b61257d816123a9565b82525050565b60006020820190506125986000830184612574565b92915050565b6000806000606084860312156125b7576125b6612384565b5b60006125c586828701612408565b93505060206125d686828701612408565b92505060406125e786828701612408565b9150509250925092565b6000806040838503121561260857612607612384565b5b6000612616858286016123d2565b9250506020612627858286016123d2565b9150509250929050565b6000806040838503121561264857612647612384565b5b600061265685828601612408565b925050602061266785828601612408565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156126f7578086048111156126d3576126d2612671565b5b60018516156126e25780820291505b80810290506126f0856126a0565b94506126b7565b94509492505050565b60008261271057600190506127cc565b8161271e57600090506127cc565b8160018114612734576002811461273e5761276d565b60019150506127cc565b60ff8411156127505761274f612671565b5b8360020a91508482111561276757612766612671565b5b506127cc565b5060208310610133831016604e8410600b84101617156127a25782820a90508381111561279d5761279c612671565b5b6127cc565b6127af84848460016126ad565b925090508184048111156127c6576127c5612671565b5b81810290505b9392505050565b60006127de826123e7565b91506127e983612510565b92506128167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612700565b905092915050565b6000612829826123e7565b9150612834836123e7565b9250828202612842816123e7565b9150828204841483151761285957612858612671565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128966020836122dd565b91506128a182612860565b602082019050919050565b600060208201905081810360008301526128c581612889565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129026017836122dd565b915061290d826128cc565b602082019050919050565b60006020820190508181036000830152612931816128f5565b9050919050565b600081519050612947816123bb565b92915050565b60006020828403121561296357612962612384565b5b600061297184828501612938565b91505092915050565b600060408201905061298f6000830185612574565b61299c6020830184612574565b9392505050565b6000819050919050565b6000819050919050565b60006129d26129cd6129c8846129a3565b6129ad565b6123e7565b9050919050565b6129e2816129b7565b82525050565b600060c0820190506129fd6000830189612574565b612a0a6020830188612493565b612a1760408301876129d9565b612a2460608301866129d9565b612a316080830185612574565b612a3e60a0830184612493565b979650505050505050565b600081519050612a58816123f1565b92915050565b600080600060608486031215612a7757612a76612384565b5b6000612a8586828701612a49565b9350506020612a9686828701612a49565b9250506040612aa786828701612a49565b9150509250925092565b6000604082019050612ac66000830185612574565b612ad36020830184612493565b9392505050565b612ae38161245d565b8114612aee57600080fd5b50565b600081519050612b0081612ada565b92915050565b600060208284031215612b1c57612b1b612384565b5b6000612b2a84828501612af1565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8f6024836122dd565b9150612b9a82612b33565b604082019050919050565b60006020820190508181036000830152612bbe81612b82565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c216022836122dd565b9150612c2c82612bc5565b604082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cb36025836122dd565b9150612cbe82612c57565b604082019050919050565b60006020820190508181036000830152612ce281612ca6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d456023836122dd565b9150612d5082612ce9565b604082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dd76029836122dd565b9150612de282612d7b565b604082019050919050565b60006020820190508181036000830152612e0681612dca565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b6000612e696024836122dd565b9150612e7482612e0d565b604082019050919050565b60006020820190508181036000830152612e9881612e5c565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ed56019836122dd565b9150612ee082612e9f565b602082019050919050565b60006020820190508181036000830152612f0481612ec8565b9050919050565b6000612f16826123e7565b9150612f21836123e7565b9250828201905080821115612f3957612f38612671565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612f75601a836122dd565b9150612f8082612f3f565b602082019050919050565b60006020820190508181036000830152612fa481612f68565b9050919050565b6000612fb6826123e7565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612fe857612fe7612671565b5b600182019050919050565b6000612ffe826123e7565b9150613009836123e7565b925082820390508181111561302157613020612671565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130ba816123a9565b82525050565b60006130cc83836130b1565b60208301905092915050565b6000602082019050919050565b60006130f082613085565b6130fa8185613090565b9350613105836130a1565b8060005b8381101561313657815161311d88826130c0565b9750613128836130d8565b925050600181019050613109565b5085935050505092915050565b600060a0820190506131586000830188612493565b61316560208301876129d9565b818103604083015261317781866130e5565b90506131866060830185612574565b6131936080830184612493565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006131d7826123e7565b91506131e2836123e7565b9250826131f2576131f161319d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006132596021836122dd565b9150613264826131fd565b604082019050919050565b600060208201905081810360008301526132888161324c565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132c5601b836122dd565b91506132d08261328f565b602082019050919050565b600060208201905081810360008301526132f4816132b8565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122025ab7f1c1b605ef24db3cfda6581092cdd71c21962e67087e1f2e70d3f003c7b64736f6c63430008130033

Deployed Bytecode Sourcemap

3668:8482:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5586:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6419:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4862:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5863:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6588:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5772:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10840;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:348;;;;;;;;;;;;;:::i;:::-;;5966:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2749:148;;;;;;;;;;;;;:::i;:::-;;10215:196;;;;;;;;;;;;;:::i;:::-;;4675:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2535:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4738:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5677:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6093:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10419:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4801:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4055:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6268:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10931:809;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5586:83;5623:13;5656:5;;;;;;;;;;;;;;;;;5649:12;;5586:83;:::o;6419:161::-;6494:4;6511:39;6520:12;:10;:12::i;:::-;6534:7;6543:6;6511:8;:39::i;:::-;6568:4;6561:11;;6419:161;;;;:::o;4862:51::-;;;;:::o;5863:95::-;5916:7;4499:1;4555:2;:13;;;;:::i;:::-;4542:10;:26;;;;:::i;:::-;5936:14;;5863:95;:::o;6588:313::-;6686:4;6703:36;6713:6;6721:9;6732:6;6703:9;:36::i;:::-;6750:121;6759:6;6767:12;:10;:12::i;:::-;6781:89;6819:6;6781:89;;;;;;;;;;;;;;;;;:11;:19;6793:6;6781:19;;;;;;;;;;;;;;;:33;6801:12;:10;:12::i;:::-;6781:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6750:8;:121::i;:::-;6889:4;6882:11;;6588:313;;;;;:::o;5772:83::-;5813:5;4499:1;5831:16;;5772:83;:::o;10840:::-;10887:4;10908;:7;10913:1;10908:7;;;;;;;;;;;;;;;;;;;;;;;;;10901:14;;10840:83;;;:::o;11785:348::-;11849:10;;;;;;;;;;;11835:24;;:12;:10;:12::i;:::-;:24;;;11827:33;;;;;;11871:20;11892:24;11910:4;11892:9;:24::i;:::-;11871:45;;11943:1;11930:12;:14;11927:73;;;11958:30;11975:12;11958:16;:30::i;:::-;11927:73;12010:18;12029:21;12010:40;;12075:1;12064:10;:12;12061:65;;;12090:24;12103:10;12090:12;:24::i;:::-;12061:65;11816:317;;11785:348::o;5966:119::-;6032:7;6059:9;:18;6069:7;6059:18;;;;;;;;;;;;;;;;6052:25;;5966:119;;;:::o;2749:148::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2856:1:::1;2819:40;;2840:6;::::0;::::1;;;;;;;;2819:40;;;;;;;;;;;;2887:1;2870:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2749:148::o:0;10215:196::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4499:1:::1;4555:2;:13;;;;:::i;:::-;4542:10;:26;;;;:::i;:::-;10268:12;:22;;;;4499:1;4555:2;:13;;;;:::i;:::-;4542:10;:26;;;;:::i;:::-;10301:14;:22;;;;10355:5;10334:20;;:26;;;;;;;;;;;;;;;;;;10376:27;4499:1;4555:2;:13;;;;:::i;:::-;4542:10;:26;;;;:::i;:::-;10376:27;;;;;;:::i;:::-;;;;;;;;10215:196::o:0;4675:56::-;;;;:::o;2535:79::-;2573:7;2600:6;;;;;;;;;;;2593:13;;2535:79;:::o;4738:56::-;;;;:::o;5677:87::-;5716:13;5749:7;;;;;;;;;;;;;;;;;5742:14;;5677:87;:::o;6093:167::-;6171:4;6188:42;6198:12;:10;:12::i;:::-;6212:9;6223:6;6188:9;:42::i;:::-;6248:4;6241:11;;6093:167;;;;:::o;10419:315::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10531:6:::1;10516:14;:21;;;;10562:7;10546:15;:23;;;;10591:6;10578:12;:19;;;;10620:7;10606:13;:21;;;;10652:8;10636:15;:24;;;;10686:8;10669:16;:25;;;;10722:8;10703:18;:27;;;;10419:315:::0;;;:::o;4801:54::-;;;;:::o;4055:40::-;;;;;;;;;;;;;:::o;6268:143::-;6349:7;6376:11;:18;6388:5;6376:18;;;;;;;;;;;;;;;:27;6395:7;6376:27;;;;;;;;;;;;;;;;6369:34;;6268:143;;;;:::o;10931:809::-;2672:12;:10;:12::i;:::-;2662:22;;:6;;;;;;;;;;:22;;;2654:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11045:11:::1;::::0;::::1;;;;;;;;11044:12;11036:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11111:15;11094:14;:32;;;;11155:16;11137:15;:34;;;;11219:42;11182:15;;:80;;;;;;;;;;;;;;;;;;11273:58;11290:4;11305:15;;;;;;;;;;;4499:1;4555:2;:13;;;;:::i;:::-;4542:10;:26;;;;:::i;:::-;11273:8;:58::i;:::-;11376:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11358:55;;;11422:4;11429:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11358:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11342:13;;:110;;;;;;;;;;;;;;;;;;11463:15;;;;;;;;;;;:31;;;11502:21;11533:4;11539:24;11557:4;11539:9;:24::i;:::-;11564:1;11566::::0;11568:7:::1;:5;:7::i;:::-;11576:15;11463:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11610:13;;;;;;;;;;;11603:29;;;11641:15;;;;;;;;;;;11659:14;11603:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11699:4;11685:11;;:18;;;;;;;;;;;;;;;;;;11728:4;11714:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;10931:809:::0;;:::o;290:98::-;343:7;370:10;363:17;;290:98;:::o;6909:335::-;7019:1;7002:19;;:5;:19;;;6994:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7100:1;7081:21;;:7;:21;;;7073:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7182:6;7152:11;:18;7164:5;7152:18;;;;;;;;;;;;;;;:27;7171:7;7152:27;;;;;;;;;;;;;;;:36;;;;7220:7;7204:32;;7213:5;7204:32;;;7229:6;7204:32;;;;;;:::i;:::-;;;;;;;;6909:335;;;:::o;7252:2284::-;7356:1;7340:18;;:4;:18;;;7332:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7433:1;7419:16;;:2;:16;;;7411:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7503:1;7494:6;:10;7486:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7561:17;7603:7;:5;:7::i;:::-;7595:15;;:4;:15;;;;:32;;;;;7620:7;:5;:7::i;:::-;7614:13;;:2;:13;;;;7595:32;7591:1589;;;7653:4;:10;7658:4;7653:10;;;;;;;;;;;;;;;;;;;;;;;;;7652:11;:24;;;;;7668:4;:8;7673:2;7668:8;;;;;;;;;;;;;;;;;;;;;;;;;7667:9;7652:24;7644:33;;;;;;7698:20;;;;;;;;;;;7694:346;;;7757:15;;;;;;;;;;;7743:30;;:2;:30;;;;:62;;;;;7791:13;;;;;;;;;;;7777:28;;:2;:28;;;;7743:62;7739:286;;;7878:12;7836:28;:39;7865:9;7836:39;;;;;;;;;;;;;;;;:54;7828:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7993:12;7951:28;:39;7980:9;7951:39;;;;;;;;;;;;;;;:54;;;;7739:286;7694:346;8068:13;;;;;;;;;;;8060:21;;:4;:21;;;:55;;;;;8099:15;;;;;;;;;;;8085:30;;:2;:30;;;;8060:55;:83;;;;;8121:18;:22;8140:2;8121:22;;;;;;;;;;;;;;;;;;;;;;;;;8119:24;8060:83;8056:313;;;8183:12;;8173:6;:22;;8165:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8278:14;;8268:6;8252:13;8262:2;8252:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8244:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8342:9;;:11;;;;;;;;;:::i;:::-;;;;;;8056:313;8399:76;8471:3;8399:67;8421:15;;8411:9;;:25;8410:55;;8451:14;;8410:55;;;8438:12;;8410:55;8399:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8387:88;;8499:13;;;;;;;;;;;8493:19;;:2;:19;;;:43;;;;;8531:4;8516:20;;:4;:20;;;;8493:43;8490:174;;;8569:79;8644:3;8569:70;8591:16;;8581:9;;:26;8580:58;;8623:15;;8580:58;;;8609:13;;8580:58;8569:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8557:91;;8490:174;8680:28;8711:24;8729:4;8711:9;:24::i;:::-;8680:55;;8755:6;;;;;;;;;;;8754:7;:30;;;;;8771:13;;;;;;;;;;;8765:19;;:2;:19;;;8754:30;:45;;;;;8788:11;;;;;;;;;;;8754:45;:87;;;;;8824:17;;8803:20;:38;8754:87;:119;;;;;8855:18;;8845:9;;:28;8754:119;8750:419;;;8894:67;8911:49;8915:6;8922:37;8926:20;8947:11;;8922:3;:37::i;:::-;8911:3;:49::i;:::-;8894:16;:67::i;:::-;8980:26;9009:21;8980:50;;9073:1;9052:18;:22;9049:105;;;9099:35;9112:21;9099:12;:35::i;:::-;9049:105;8875:294;8750:419;7629:1551;7591:1589;9205:1;9195:9;:11;9192:161;;;9245:39;9274:9;9245;:24;9263:4;9245:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9220:9;:24;9238:4;9220:24;;;;;;;;;;;;;;;:64;;;;9325:4;9302:39;;9311:4;9302:39;;;9331:9;9302:39;;;;;;:::i;:::-;;;;;;;;9192:161;9379:27;9399:6;9379:9;:15;9389:4;9379:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9363:9;:15;9373:4;9363:15;;;;;;;;;;;;;;;:43;;;;9431:40;9449:21;9460:9;9449:6;:10;;:21;;;;:::i;:::-;9431:9;:13;9441:2;9431:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9417:9;:13;9427:2;9417:13;;;;;;;;;;;;;;;:54;;;;9502:2;9487:41;;9496:4;9487:41;;;9506:21;9517:9;9506:6;:10;;:21;;;;:::i;:::-;9487:41;;;;;;:::i;:::-;;;;;;;;7321:2215;7252:2284;;;:::o;1427:190::-;1513:7;1546:1;1541;:6;;1549:12;1533:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1573:9;1589:1;1585;:5;;;;:::i;:::-;1573:17;;1608:1;1601:8;;;1427:190;;;;;:::o;9652:555::-;5204:4;5195:6;;:13;;;;;;;;;;;;;;;;;;9746:1:::1;9733:11;:14:::0;9730:27;9749:7:::1;9730:27;9771:11;::::0;::::1;;;;;;;;9767:25:::0;9784:7:::1;9767:25;9802:21;9840:1;9826:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9802:40;;9871:4;9853;9858:1;9853:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9897:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9887:4;9892:1;9887:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9930:62;9947:4;9962:15;;;;;;;;;;;9980:11;9930:8;:62::i;:::-;10003:15;;;;;;;;;;;:66;;;10084:11;10110:1;10126:4;10153;10173:15;10003:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9719:488;5219:1;5240:5:::0;5231:6;;:14;;;;;;;;;;;;;;;;;;9652:555;:::o;10740:92::-;10797:10;;;;;;;;;;;:19;;:27;10817:6;10797:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10740:92;:::o;1625:246::-;1683:7;1712:1;1707;:6;1703:47;;1737:1;1730:8;;;;1703:47;1760:9;1776:1;1772;:5;;;;:::i;:::-;1760:17;;1805:1;1800;1796;:5;;;;:::i;:::-;:10;1788:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1862:1;1855:8;;;1625:246;;;;;:::o;1879:132::-;1937:7;1964:39;1968:1;1971;1964:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1957:46;;1879:132;;;;:::o;9546:98::-;9603:7;9630:1;9628;:3;9627:9;;9635:1;9627:9;;;9633:1;9627:9;9620:16;;9546:98;;;;:::o;1096:179::-;1154:7;1174:9;1190:1;1186;:5;;;;:::i;:::-;1174:17;;1215:1;1210;:6;;1202:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1266:1;1259:8;;;1096:179;;;;:::o;1283:136::-;1341:7;1368:43;1372:1;1375;1368:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1361:50;;1283:136;;;;:::o;2019:189::-;2105:7;2137:1;2133;:5;2140:12;2125:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2164:9;2180:1;2176;:5;;;;:::i;:::-;2164:17;;2199:1;2192:8;;;2019:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:619::-;5617:6;5625;5633;5682:2;5670:9;5661:7;5657:23;5653:32;5650:119;;;5688:79;;:::i;:::-;5650:119;5808:1;5833:53;5878:7;5869:6;5858:9;5854:22;5833:53;:::i;:::-;5823:63;;5779:117;5935:2;5961:53;6006:7;5997:6;5986:9;5982:22;5961:53;:::i;:::-;5951:63;;5906:118;6063:2;6089:53;6134:7;6125:6;6114:9;6110:22;6089:53;:::i;:::-;6079:63;;6034:118;5540:619;;;;;:::o;6165:474::-;6233:6;6241;6290:2;6278:9;6269:7;6265:23;6261:32;6258:119;;;6296:79;;:::i;:::-;6258:119;6416:1;6441:53;6486:7;6477:6;6466:9;6462:22;6441:53;:::i;:::-;6431:63;;6387:117;6543:2;6569:53;6614:7;6605:6;6594:9;6590:22;6569:53;:::i;:::-;6559:63;;6514:118;6165:474;;;;;:::o;6645:::-;6713:6;6721;6770:2;6758:9;6749:7;6745:23;6741:32;6738:119;;;6776:79;;:::i;:::-;6738:119;6896:1;6921:53;6966:7;6957:6;6946:9;6942:22;6921:53;:::i;:::-;6911:63;;6867:117;7023:2;7049:53;7094:7;7085:6;7074:9;7070:22;7049:53;:::i;:::-;7039:63;;6994:118;6645:474;;;;;:::o;7125:180::-;7173:77;7170:1;7163:88;7270:4;7267:1;7260:15;7294:4;7291:1;7284:15;7311:102;7353:8;7400:5;7397:1;7393:13;7372:34;;7311:102;;;:::o;7419:848::-;7480:5;7487:4;7511:6;7502:15;;7535:5;7526:14;;7549:712;7570:1;7560:8;7557:15;7549:712;;;7665:4;7660:3;7656:14;7650:4;7647:24;7644:50;;;7674:18;;:::i;:::-;7644:50;7724:1;7714:8;7710:16;7707:451;;;8139:4;8132:5;8128:16;8119:25;;7707:451;8189:4;8183;8179:15;8171:23;;8219:32;8242:8;8219:32;:::i;:::-;8207:44;;7549:712;;;7419:848;;;;;;;:::o;8273:1073::-;8327:5;8518:8;8508:40;;8539:1;8530:10;;8541:5;;8508:40;8567:4;8557:36;;8584:1;8575:10;;8586:5;;8557:36;8653:4;8701:1;8696:27;;;;8737:1;8732:191;;;;8646:277;;8696:27;8714:1;8705:10;;8716:5;;;8732:191;8777:3;8767:8;8764:17;8761:43;;;8784:18;;:::i;:::-;8761:43;8833:8;8830:1;8826:16;8817:25;;8868:3;8861:5;8858:14;8855:40;;;8875:18;;:::i;:::-;8855:40;8908:5;;;8646:277;;9032:2;9022:8;9019:16;9013:3;9007:4;9004:13;9000:36;8982:2;8972:8;8969:16;8964:2;8958:4;8955:12;8951:35;8935:111;8932:246;;;9088:8;9082:4;9078:19;9069:28;;9123:3;9116:5;9113:14;9110:40;;;9130:18;;:::i;:::-;9110:40;9163:5;;8932:246;9203:42;9241:3;9231:8;9225:4;9222:1;9203:42;:::i;:::-;9188:57;;;;9277:4;9272:3;9268:14;9261:5;9258:25;9255:51;;;9286:18;;:::i;:::-;9255:51;9335:4;9328:5;9324:16;9315:25;;8273:1073;;;;;;:::o;9352:281::-;9410:5;9434:23;9452:4;9434:23;:::i;:::-;9426:31;;9478:25;9494:8;9478:25;:::i;:::-;9466:37;;9522:104;9559:66;9549:8;9543:4;9522:104;:::i;:::-;9513:113;;9352:281;;;;:::o;9639:410::-;9679:7;9702:20;9720:1;9702:20;:::i;:::-;9697:25;;9736:20;9754:1;9736:20;:::i;:::-;9731:25;;9791:1;9788;9784:9;9813:30;9831:11;9813:30;:::i;:::-;9802:41;;9992:1;9983:7;9979:15;9976:1;9973:22;9953:1;9946:9;9926:83;9903:139;;10022:18;;:::i;:::-;9903:139;9687:362;9639:410;;;;:::o;10055:182::-;10195:34;10191:1;10183:6;10179:14;10172:58;10055:182;:::o;10243:366::-;10385:3;10406:67;10470:2;10465:3;10406:67;:::i;:::-;10399:74;;10482:93;10571:3;10482:93;:::i;:::-;10600:2;10595:3;10591:12;10584:19;;10243:366;;;:::o;10615:419::-;10781:4;10819:2;10808:9;10804:18;10796:26;;10868:9;10862:4;10858:20;10854:1;10843:9;10839:17;10832:47;10896:131;11022:4;10896:131;:::i;:::-;10888:139;;10615:419;;;:::o;11040:173::-;11180:25;11176:1;11168:6;11164:14;11157:49;11040:173;:::o;11219:366::-;11361:3;11382:67;11446:2;11441:3;11382:67;:::i;:::-;11375:74;;11458:93;11547:3;11458:93;:::i;:::-;11576:2;11571:3;11567:12;11560:19;;11219:366;;;:::o;11591:419::-;11757:4;11795:2;11784:9;11780:18;11772:26;;11844:9;11838:4;11834:20;11830:1;11819:9;11815:17;11808:47;11872:131;11998:4;11872:131;:::i;:::-;11864:139;;11591:419;;;:::o;12016:143::-;12073:5;12104:6;12098:13;12089:22;;12120:33;12147:5;12120:33;:::i;:::-;12016:143;;;;:::o;12165:351::-;12235:6;12284:2;12272:9;12263:7;12259:23;12255:32;12252:119;;;12290:79;;:::i;:::-;12252:119;12410:1;12435:64;12491:7;12482:6;12471:9;12467:22;12435:64;:::i;:::-;12425:74;;12381:128;12165:351;;;;:::o;12522:332::-;12643:4;12681:2;12670:9;12666:18;12658:26;;12694:71;12762:1;12751:9;12747:17;12738:6;12694:71;:::i;:::-;12775:72;12843:2;12832:9;12828:18;12819:6;12775:72;:::i;:::-;12522:332;;;;;:::o;12860:85::-;12905:7;12934:5;12923:16;;12860:85;;;:::o;12951:60::-;12979:3;13000:5;12993:12;;12951:60;;;:::o;13017:158::-;13075:9;13108:61;13126:42;13135:32;13161:5;13135:32;:::i;:::-;13126:42;:::i;:::-;13108:61;:::i;:::-;13095:74;;13017:158;;;:::o;13181:147::-;13276:45;13315:5;13276:45;:::i;:::-;13271:3;13264:58;13181:147;;:::o;13334:807::-;13583:4;13621:3;13610:9;13606:19;13598:27;;13635:71;13703:1;13692:9;13688:17;13679:6;13635:71;:::i;:::-;13716:72;13784:2;13773:9;13769:18;13760:6;13716:72;:::i;:::-;13798:80;13874:2;13863:9;13859:18;13850:6;13798:80;:::i;:::-;13888;13964:2;13953:9;13949:18;13940:6;13888:80;:::i;:::-;13978:73;14046:3;14035:9;14031:19;14022:6;13978:73;:::i;:::-;14061;14129:3;14118:9;14114:19;14105:6;14061:73;:::i;:::-;13334:807;;;;;;;;;:::o;14147:143::-;14204:5;14235:6;14229:13;14220:22;;14251:33;14278:5;14251:33;:::i;:::-;14147:143;;;;:::o;14296:663::-;14384:6;14392;14400;14449:2;14437:9;14428:7;14424:23;14420:32;14417:119;;;14455:79;;:::i;:::-;14417:119;14575:1;14600:64;14656:7;14647:6;14636:9;14632:22;14600:64;:::i;:::-;14590:74;;14546:128;14713:2;14739:64;14795:7;14786:6;14775:9;14771:22;14739:64;:::i;:::-;14729:74;;14684:129;14852:2;14878:64;14934:7;14925:6;14914:9;14910:22;14878:64;:::i;:::-;14868:74;;14823:129;14296:663;;;;;:::o;14965:332::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15137:71;15205:1;15194:9;15190:17;15181:6;15137:71;:::i;:::-;15218:72;15286:2;15275:9;15271:18;15262:6;15218:72;:::i;:::-;14965:332;;;;;:::o;15303:116::-;15373:21;15388:5;15373:21;:::i;:::-;15366:5;15363:32;15353:60;;15409:1;15406;15399:12;15353:60;15303:116;:::o;15425:137::-;15479:5;15510:6;15504:13;15495:22;;15526:30;15550:5;15526:30;:::i;:::-;15425:137;;;;:::o;15568:345::-;15635:6;15684:2;15672:9;15663:7;15659:23;15655:32;15652:119;;;15690:79;;:::i;:::-;15652:119;15810:1;15835:61;15888:7;15879:6;15868:9;15864:22;15835:61;:::i;:::-;15825:71;;15781:125;15568:345;;;;:::o;15919:223::-;16059:34;16055:1;16047:6;16043:14;16036:58;16128:6;16123:2;16115:6;16111:15;16104:31;15919:223;:::o;16148:366::-;16290:3;16311:67;16375:2;16370:3;16311:67;:::i;:::-;16304:74;;16387:93;16476:3;16387:93;:::i;:::-;16505:2;16500:3;16496:12;16489:19;;16148:366;;;:::o;16520:419::-;16686:4;16724:2;16713:9;16709:18;16701:26;;16773:9;16767:4;16763:20;16759:1;16748:9;16744:17;16737:47;16801:131;16927:4;16801:131;:::i;:::-;16793:139;;16520:419;;;:::o;16945:221::-;17085:34;17081:1;17073:6;17069:14;17062:58;17154:4;17149:2;17141:6;17137:15;17130:29;16945:221;:::o;17172:366::-;17314:3;17335:67;17399:2;17394:3;17335:67;:::i;:::-;17328:74;;17411:93;17500:3;17411:93;:::i;:::-;17529:2;17524:3;17520:12;17513:19;;17172:366;;;:::o;17544:419::-;17710:4;17748:2;17737:9;17733:18;17725:26;;17797:9;17791:4;17787:20;17783:1;17772:9;17768:17;17761:47;17825:131;17951:4;17825:131;:::i;:::-;17817:139;;17544:419;;;:::o;17969:224::-;18109:34;18105:1;18097:6;18093:14;18086:58;18178:7;18173:2;18165:6;18161:15;18154:32;17969:224;:::o;18199:366::-;18341:3;18362:67;18426:2;18421:3;18362:67;:::i;:::-;18355:74;;18438:93;18527:3;18438:93;:::i;:::-;18556:2;18551:3;18547:12;18540:19;;18199:366;;;:::o;18571:419::-;18737:4;18775:2;18764:9;18760:18;18752:26;;18824:9;18818:4;18814:20;18810:1;18799:9;18795:17;18788:47;18852:131;18978:4;18852:131;:::i;:::-;18844:139;;18571:419;;;:::o;18996:222::-;19136:34;19132:1;19124:6;19120:14;19113:58;19205:5;19200:2;19192:6;19188:15;19181:30;18996:222;:::o;19224:366::-;19366:3;19387:67;19451:2;19446:3;19387:67;:::i;:::-;19380:74;;19463:93;19552:3;19463:93;:::i;:::-;19581:2;19576:3;19572:12;19565:19;;19224:366;;;:::o;19596:419::-;19762:4;19800:2;19789:9;19785:18;19777:26;;19849:9;19843:4;19839:20;19835:1;19824:9;19820:17;19813:47;19877:131;20003:4;19877:131;:::i;:::-;19869:139;;19596:419;;;:::o;20021:228::-;20161:34;20157:1;20149:6;20145:14;20138:58;20230:11;20225:2;20217:6;20213:15;20206:36;20021:228;:::o;20255:366::-;20397:3;20418:67;20482:2;20477:3;20418:67;:::i;:::-;20411:74;;20494:93;20583:3;20494:93;:::i;:::-;20612:2;20607:3;20603:12;20596:19;;20255:366;;;:::o;20627:419::-;20793:4;20831:2;20820:9;20816:18;20808:26;;20880:9;20874:4;20870:20;20866:1;20855:9;20851:17;20844:47;20908:131;21034:4;20908:131;:::i;:::-;20900:139;;20627:419;;;:::o;21052:223::-;21192:34;21188:1;21180:6;21176:14;21169:58;21261:6;21256:2;21248:6;21244:15;21237:31;21052:223;:::o;21281:366::-;21423:3;21444:67;21508:2;21503:3;21444:67;:::i;:::-;21437:74;;21520:93;21609:3;21520:93;:::i;:::-;21638:2;21633:3;21629:12;21622:19;;21281:366;;;:::o;21653:419::-;21819:4;21857:2;21846:9;21842:18;21834:26;;21906:9;21900:4;21896:20;21892:1;21881:9;21877:17;21870:47;21934:131;22060:4;21934:131;:::i;:::-;21926:139;;21653:419;;;:::o;22078:175::-;22218:27;22214:1;22206:6;22202:14;22195:51;22078:175;:::o;22259:366::-;22401:3;22422:67;22486:2;22481:3;22422:67;:::i;:::-;22415:74;;22498:93;22587:3;22498:93;:::i;:::-;22616:2;22611:3;22607:12;22600:19;;22259:366;;;:::o;22631:419::-;22797:4;22835:2;22824:9;22820:18;22812:26;;22884:9;22878:4;22874:20;22870:1;22859:9;22855:17;22848:47;22912:131;23038:4;22912:131;:::i;:::-;22904:139;;22631:419;;;:::o;23056:191::-;23096:3;23115:20;23133:1;23115:20;:::i;:::-;23110:25;;23149:20;23167:1;23149:20;:::i;:::-;23144:25;;23192:1;23189;23185:9;23178:16;;23213:3;23210:1;23207:10;23204:36;;;23220:18;;:::i;:::-;23204:36;23056:191;;;;:::o;23253:176::-;23393:28;23389:1;23381:6;23377:14;23370:52;23253:176;:::o;23435:366::-;23577:3;23598:67;23662:2;23657:3;23598:67;:::i;:::-;23591:74;;23674:93;23763:3;23674:93;:::i;:::-;23792:2;23787:3;23783:12;23776:19;;23435:366;;;:::o;23807:419::-;23973:4;24011:2;24000:9;23996:18;23988:26;;24060:9;24054:4;24050:20;24046:1;24035:9;24031:17;24024:47;24088:131;24214:4;24088:131;:::i;:::-;24080:139;;23807:419;;;:::o;24232:233::-;24271:3;24294:24;24312:5;24294:24;:::i;:::-;24285:33;;24340:66;24333:5;24330:77;24327:103;;24410:18;;:::i;:::-;24327:103;24457:1;24450:5;24446:13;24439:20;;24232:233;;;:::o;24471:194::-;24511:4;24531:20;24549:1;24531:20;:::i;:::-;24526:25;;24565:20;24583:1;24565:20;:::i;:::-;24560:25;;24609:1;24606;24602:9;24594:17;;24633:1;24627:4;24624:11;24621:37;;;24638:18;;:::i;:::-;24621:37;24471:194;;;;:::o;24671:180::-;24719:77;24716:1;24709:88;24816:4;24813:1;24806:15;24840:4;24837:1;24830:15;24857:180;24905:77;24902:1;24895:88;25002:4;24999:1;24992:15;25026:4;25023:1;25016:15;25043:114;25110:6;25144:5;25138:12;25128:22;;25043:114;;;:::o;25163:184::-;25262:11;25296:6;25291:3;25284:19;25336:4;25331:3;25327:14;25312:29;;25163:184;;;;:::o;25353:132::-;25420:4;25443:3;25435:11;;25473:4;25468:3;25464:14;25456:22;;25353:132;;;:::o;25491:108::-;25568:24;25586:5;25568:24;:::i;:::-;25563:3;25556:37;25491:108;;:::o;25605:179::-;25674:10;25695:46;25737:3;25729:6;25695:46;:::i;:::-;25773:4;25768:3;25764:14;25750:28;;25605:179;;;;:::o;25790:113::-;25860:4;25892;25887:3;25883:14;25875:22;;25790:113;;;:::o;25939:732::-;26058:3;26087:54;26135:5;26087:54;:::i;:::-;26157:86;26236:6;26231:3;26157:86;:::i;:::-;26150:93;;26267:56;26317:5;26267:56;:::i;:::-;26346:7;26377:1;26362:284;26387:6;26384:1;26381:13;26362:284;;;26463:6;26457:13;26490:63;26549:3;26534:13;26490:63;:::i;:::-;26483:70;;26576:60;26629:6;26576:60;:::i;:::-;26566:70;;26422:224;26409:1;26406;26402:9;26397:14;;26362:284;;;26366:14;26662:3;26655:10;;26063:608;;;25939:732;;;;:::o;26677:831::-;26940:4;26978:3;26967:9;26963:19;26955:27;;26992:71;27060:1;27049:9;27045:17;27036:6;26992:71;:::i;:::-;27073:80;27149:2;27138:9;27134:18;27125:6;27073:80;:::i;:::-;27200:9;27194:4;27190:20;27185:2;27174:9;27170:18;27163:48;27228:108;27331:4;27322:6;27228:108;:::i;:::-;27220:116;;27346:72;27414:2;27403:9;27399:18;27390:6;27346:72;:::i;:::-;27428:73;27496:3;27485:9;27481:19;27472:6;27428:73;:::i;:::-;26677:831;;;;;;;;:::o;27514:180::-;27562:77;27559:1;27552:88;27659:4;27656:1;27649:15;27683:4;27680:1;27673:15;27700:185;27740:1;27757:20;27775:1;27757:20;:::i;:::-;27752:25;;27791:20;27809:1;27791:20;:::i;:::-;27786:25;;27830:1;27820:35;;27835:18;;:::i;:::-;27820:35;27877:1;27874;27870:9;27865:14;;27700:185;;;;:::o;27891:220::-;28031:34;28027:1;28019:6;28015:14;28008:58;28100:3;28095:2;28087:6;28083:15;28076:28;27891:220;:::o;28117:366::-;28259:3;28280:67;28344:2;28339:3;28280:67;:::i;:::-;28273:74;;28356:93;28445:3;28356:93;:::i;:::-;28474:2;28469:3;28465:12;28458:19;;28117:366;;;:::o;28489:419::-;28655:4;28693:2;28682:9;28678:18;28670:26;;28742:9;28736:4;28732:20;28728:1;28717:9;28713:17;28706:47;28770:131;28896:4;28770:131;:::i;:::-;28762:139;;28489:419;;;:::o;28914:177::-;29054:29;29050:1;29042:6;29038:14;29031:53;28914:177;:::o;29097:366::-;29239:3;29260:67;29324:2;29319:3;29260:67;:::i;:::-;29253:74;;29336:93;29425:3;29336:93;:::i;:::-;29454:2;29449:3;29445:12;29438:19;;29097:366;;;:::o;29469:419::-;29635:4;29673:2;29662:9;29658:18;29650:26;;29722:9;29716:4;29712:20;29708:1;29697:9;29693:17;29686:47;29750:131;29876:4;29750:131;:::i;:::-;29742:139;;29469:419;;;:::o

Swarm Source

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