ETH Price: $2,463.29 (+1.60%)

Token

Mew Mew (MEW)
 

Overview

Max Total Supply

1,000,000,000 MEW

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
18,900,000 MEW

Value
$0.00
0x5793c281e50266d1cc25ffe051440c4ccd01a8a9
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:
MewMew

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

Website : https://mewmew.lol/

Telegram : https://twitter.com/MewMewToken

Twitter : https://t.me/MewMewToken

*/


pragma solidity 0.8.18;

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 MewMew is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Mew Mew";
    string private constant _symbol = unicode"MEW";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=5000000 * 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(0xd042B087C05C9D333Cdf050F9B7D5a45e829F5E6);
        _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 getBuyCount() public view returns (uint256) {
    return _buyCount;
    }

    function getTaxes() public view returns (uint256, uint256) {
    uint256 currentBuyTax = (_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax;
    uint256 currentSellTax = (_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax;
    return (currentBuyTax, currentSellTax);
    }

    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() && from != address(this)) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                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 {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading(uint256 setinitialBuyTax , uint256 setinitialSellTax) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _initialBuyTax=setinitialBuyTax;
        _initialSellTax=setinitialSellTax;
        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":[],"name":"getBuyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTaxes","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"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":"setinitialBuyTax","type":"uint256"},{"internalType":"uint256","name":"setinitialSellTax","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":[],"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"}]

60806040526000600560006101000a81548160ff02191690831515021790555060006006556000600755600060085560006009556014600a556014600b556014600c556000600d556008600a62000057919062000632565b6301312d0062000068919062000683565b600e556008600a6200007b919062000632565b6301312d006200008c919062000683565b600f556008600a6200009f919062000632565b624c4b40620000af919062000683565b6010556008600a620000c2919062000632565b62989680620000d2919062000683565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011857600080fd5b5060006200012b6200046760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073d042b087c05c9d333cdf050f9b7d5a45e829f5e6600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022e919062000632565b633b9aca006200023f919062000683565b60016000620002536200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a76200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003da6200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000439919062000632565b633b9aca006200044a919062000683565b604051620004599190620006df565b60405180910390a3620006fc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052657808604811115620004fe57620004fd62000498565b5b60018516156200050e5780820291505b80810290506200051e85620004c7565b9450620004de565b94509492505050565b60008262000541576001905062000614565b8162000551576000905062000614565b81600181146200056a57600281146200057557620005ab565b600191505062000614565b60ff8411156200058a576200058962000498565b5b8360020a915084821115620005a457620005a362000498565b5b5062000614565b5060208310610133831016604e8410600b8410161715620005e55782820a905083811115620005df57620005de62000498565b5b62000614565b620005f48484846001620004d4565b925090508184048111156200060e576200060d62000498565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200063f826200061b565b91506200064c8362000625565b92506200067b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200052f565b905092915050565b600062000690826200061b565b91506200069d836200061b565b9250828202620006ad816200061b565b91508282048414831517620006c757620006c662000498565b5b5092915050565b620006d9816200061b565b82525050565b6000602082019050620006f66000830184620006ce565b92915050565b6131e5806200070c6000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063dd62ed3e14610478578063e7a919f9146104b557610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104de565b60405161015c91906121f2565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906122ad565b61051b565b6040516101999190612308565b60405180910390f35b3480156101ae57600080fd5b506101b7610539565b6040516101c49190612332565b60405180910390f35b3480156101d957600080fd5b506101e261053f565b6040516101ef9190612332565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a919061234d565b610563565b60405161022c9190612308565b60405180910390f35b34801561024157600080fd5b5061024a61063c565b6040516102589291906123a0565b60405180910390f35b34801561026d57600080fd5b50610276610681565b60405161028391906123e5565b60405180910390f35b34801561029857600080fd5b506102a161068a565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190612400565b610727565b6040516102d79190612332565b60405180910390f35b3480156102ec57600080fd5b506102f5610770565b005b34801561030357600080fd5b5061030c6108c3565b005b34801561031a57600080fd5b50610323610a0e565b6040516103309190612332565b60405180910390f35b34801561034557600080fd5b5061034e610a14565b60405161035b919061243c565b60405180910390f35b34801561037057600080fd5b50610379610a3d565b6040516103869190612332565b60405180910390f35b34801561039b57600080fd5b506103a4610a47565b6040516103b19190612332565b60405180910390f35b3480156103c657600080fd5b506103cf610a4d565b6040516103dc91906121f2565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906122ad565b610a8a565b6040516104199190612308565b60405180910390f35b34801561042e57600080fd5b50610437610aa8565b6040516104449190612332565b60405180910390f35b34801561045957600080fd5b50610462610aae565b60405161046f9190612308565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190612457565b610ac1565b6040516104ac9190612332565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190612497565b610b48565b005b60606040518060400160405280600781526020017f4d6577204d657700000000000000000000000000000000000000000000000000815250905090565b600061052f610528611090565b8484611098565b6001905092915050565b60115481565b60006008600a61054f9190612639565b633b9aca0061055e9190612684565b905090565b6000610570848484611261565b6106318461057c611090565b61062c8560405180606001604052806028815260200161318860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e2611090565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c319092919063ffffffff16565b611098565b600190509392505050565b6000806000600a54600d541161065457600654610658565b6008545b90506000600b54600d541161066f57600754610673565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cb611090565b73ffffffffffffffffffffffffffffffffffffffff16146106eb57600080fd5b60006106f630610727565b9050600081111561070b5761070a81611c95565b5b600047905060008111156107235761072281611f0e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610778611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fc90612712565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108cb611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612712565b60405180910390fd5b6008600a6109669190612639565b633b9aca006109759190612684565b600e819055506008600a6109899190612639565b633b9aca006109989190612684565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109e89190612639565b633b9aca006109f79190612684565b604051610a049190612332565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600381526020017f4d45570000000000000000000000000000000000000000000000000000000000815250905090565b6000610a9e610a97611090565b8484611261565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b50611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612712565b60405180910390fd5b601360149054906101000a900460ff1615610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249061277e565b60405180910390fd5b8160068190555080600781905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cd930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610cc59190612639565b633b9aca00610cd49190612684565b611098565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a91906127b3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906127b3565b6040518363ffffffff1660e01b8152600401610e349291906127e0565b6020604051808303816000875af1158015610e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7791906127b3565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0030610727565b600080610f0b610a14565b426040518863ffffffff1660e01b8152600401610f2d9695949392919061284e565b60606040518083038185885af1158015610f4b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7091906128c4565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611012929190612917565b6020604051808303816000875af1158015611031573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611055919061296c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90612a0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90612a9d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112549190612332565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612bc1565b60405180910390fd5b60008111611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612c53565b60405180910390fd5b600061138c610a14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113fa57506113ca610a14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561143257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611974576114736064611465600a54600d541161145257600654611456565b6008545b85611f7a90919063ffffffff16565b611ff490919063ffffffff16565b9050600560009054906101000a900460ff161561160257601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116015743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612d0b565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ad5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117be57600e5482111561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612d77565b60405180910390fd5b600f548261175a85610727565b6117649190612d97565b11156117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90612e17565b60405180910390fd5b600d60008154809291906117b890612e37565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561184757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561188b57611888606461187a600b54600d54116118675760075461186b565b6009545b85611f7a90919063ffffffff16565b611ff490919063ffffffff16565b90505b600061189630610727565b9050601360159054906101000a900460ff161580156119025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561191a5750601360169054906101000a900460ff165b8015611927575060105481115b80156119365750600c54600d54115b15611972576119586119538461194e8460115461203e565b61203e565b611c95565b600047905060008111156119705761196f47611f0e565b5b505b505b6000811115611a78576119cf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a6f9190612332565b60405180910390a35b611aca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b71611b2382846120b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1684866120b590919063ffffffff16565b604051611c239190612332565b60405180910390a350505050565b6000838311158290611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7091906121f2565b60405180910390fd5b5060008385611c889190612e7f565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ccd57611ccc612eb3565b5b604051908082528060200260200182016040528015611cfb5781602001602082028036833780820191505090505b5090503081600081518110611d1357611d12612ee2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dde91906127b3565b81600181518110611df257611df1612ee2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e5930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611098565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ebd959493929190612fcf565b600060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f76573d6000803e3d6000fd5b5050565b6000808303611f8c5760009050611fee565b60008284611f9a9190612684565b9050828482611fa99190613058565b14611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe0906130fb565b60405180910390fd5b809150505b92915050565b600061203683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ff565b905092915050565b600081831161204d578261204f565b815b905092915050565b60008082846120669190612d97565b9050838110156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a290613167565b60405180910390fd5b8091505092915050565b60006120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c31565b905092915050565b60008083118290612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d91906121f2565b60405180910390fd5b50600083856121559190613058565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561219c578082015181840152602081019050612181565b60008484015250505050565b6000601f19601f8301169050919050565b60006121c482612162565b6121ce818561216d565b93506121de81856020860161217e565b6121e7816121a8565b840191505092915050565b6000602082019050818103600083015261220c81846121b9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061224482612219565b9050919050565b61225481612239565b811461225f57600080fd5b50565b6000813590506122718161224b565b92915050565b6000819050919050565b61228a81612277565b811461229557600080fd5b50565b6000813590506122a781612281565b92915050565b600080604083850312156122c4576122c3612214565b5b60006122d285828601612262565b92505060206122e385828601612298565b9150509250929050565b60008115159050919050565b612302816122ed565b82525050565b600060208201905061231d60008301846122f9565b92915050565b61232c81612277565b82525050565b60006020820190506123476000830184612323565b92915050565b60008060006060848603121561236657612365612214565b5b600061237486828701612262565b935050602061238586828701612262565b925050604061239686828701612298565b9150509250925092565b60006040820190506123b56000830185612323565b6123c26020830184612323565b9392505050565b600060ff82169050919050565b6123df816123c9565b82525050565b60006020820190506123fa60008301846123d6565b92915050565b60006020828403121561241657612415612214565b5b600061242484828501612262565b91505092915050565b61243681612239565b82525050565b6000602082019050612451600083018461242d565b92915050565b6000806040838503121561246e5761246d612214565b5b600061247c85828601612262565b925050602061248d85828601612262565b9150509250929050565b600080604083850312156124ae576124ad612214565b5b60006124bc85828601612298565b92505060206124cd85828601612298565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561255d57808604811115612539576125386124d7565b5b60018516156125485780820291505b808102905061255685612506565b945061251d565b94509492505050565b6000826125765760019050612632565b816125845760009050612632565b816001811461259a57600281146125a4576125d3565b6001915050612632565b60ff8411156125b6576125b56124d7565b5b8360020a9150848211156125cd576125cc6124d7565b5b50612632565b5060208310610133831016604e8410600b84101617156126085782820a905083811115612603576126026124d7565b5b612632565b6126158484846001612513565b9250905081840481111561262c5761262b6124d7565b5b81810290505b9392505050565b600061264482612277565b915061264f836123c9565b925061267c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612566565b905092915050565b600061268f82612277565b915061269a83612277565b92508282026126a881612277565b915082820484148315176126bf576126be6124d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126fc60208361216d565b9150612707826126c6565b602082019050919050565b6000602082019050818103600083015261272b816126ef565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061276860178361216d565b915061277382612732565b602082019050919050565b600060208201905081810360008301526127978161275b565b9050919050565b6000815190506127ad8161224b565b92915050565b6000602082840312156127c9576127c8612214565b5b60006127d78482850161279e565b91505092915050565b60006040820190506127f5600083018561242d565b612802602083018461242d565b9392505050565b6000819050919050565b6000819050919050565b600061283861283361282e84612809565b612813565b612277565b9050919050565b6128488161281d565b82525050565b600060c082019050612863600083018961242d565b6128706020830188612323565b61287d604083018761283f565b61288a606083018661283f565b612897608083018561242d565b6128a460a0830184612323565b979650505050505050565b6000815190506128be81612281565b92915050565b6000806000606084860312156128dd576128dc612214565b5b60006128eb868287016128af565b93505060206128fc868287016128af565b925050604061290d868287016128af565b9150509250925092565b600060408201905061292c600083018561242d565b6129396020830184612323565b9392505050565b612949816122ed565b811461295457600080fd5b50565b60008151905061296681612940565b92915050565b60006020828403121561298257612981612214565b5b600061299084828501612957565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129f560248361216d565b9150612a0082612999565b604082019050919050565b60006020820190508181036000830152612a24816129e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8760228361216d565b9150612a9282612a2b565b604082019050919050565b60006020820190508181036000830152612ab681612a7a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b1960258361216d565b9150612b2482612abd565b604082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bab60238361216d565b9150612bb682612b4f565b604082019050919050565b60006020820190508181036000830152612bda81612b9e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c3d60298361216d565b9150612c4882612be1565b604082019050919050565b60006020820190508181036000830152612c6c81612c30565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612cf560498361216d565b9150612d0082612c73565b606082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d6160198361216d565b9150612d6c82612d2b565b602082019050919050565b60006020820190508181036000830152612d9081612d54565b9050919050565b6000612da282612277565b9150612dad83612277565b9250828201905080821115612dc557612dc46124d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e01601a8361216d565b9150612e0c82612dcb565b602082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b6000612e4282612277565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e7457612e736124d7565b5b600182019050919050565b6000612e8a82612277565b9150612e9583612277565b9250828203905081811115612ead57612eac6124d7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4681612239565b82525050565b6000612f588383612f3d565b60208301905092915050565b6000602082019050919050565b6000612f7c82612f11565b612f868185612f1c565b9350612f9183612f2d565b8060005b83811015612fc2578151612fa98882612f4c565b9750612fb483612f64565b925050600181019050612f95565b5085935050505092915050565b600060a082019050612fe46000830188612323565b612ff1602083018761283f565b81810360408301526130038186612f71565b9050613012606083018561242d565b61301f6080830184612323565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061306382612277565b915061306e83612277565b92508261307e5761307d613029565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130e560218361216d565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613151601b8361216d565b915061315c8261311b565b602082019050919050565b6000602082019050818103600083015261318081613144565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206972a6188ddb3e67a7c9b1735c8056ab995196ef1d77174357a6cfa919164d9c64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063dd62ed3e14610478578063e7a919f9146104b557610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104de565b60405161015c91906121f2565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906122ad565b61051b565b6040516101999190612308565b60405180910390f35b3480156101ae57600080fd5b506101b7610539565b6040516101c49190612332565b60405180910390f35b3480156101d957600080fd5b506101e261053f565b6040516101ef9190612332565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a919061234d565b610563565b60405161022c9190612308565b60405180910390f35b34801561024157600080fd5b5061024a61063c565b6040516102589291906123a0565b60405180910390f35b34801561026d57600080fd5b50610276610681565b60405161028391906123e5565b60405180910390f35b34801561029857600080fd5b506102a161068a565b005b3480156102af57600080fd5b506102ca60048036038101906102c59190612400565b610727565b6040516102d79190612332565b60405180910390f35b3480156102ec57600080fd5b506102f5610770565b005b34801561030357600080fd5b5061030c6108c3565b005b34801561031a57600080fd5b50610323610a0e565b6040516103309190612332565b60405180910390f35b34801561034557600080fd5b5061034e610a14565b60405161035b919061243c565b60405180910390f35b34801561037057600080fd5b50610379610a3d565b6040516103869190612332565b60405180910390f35b34801561039b57600080fd5b506103a4610a47565b6040516103b19190612332565b60405180910390f35b3480156103c657600080fd5b506103cf610a4d565b6040516103dc91906121f2565b60405180910390f35b3480156103f157600080fd5b5061040c600480360381019061040791906122ad565b610a8a565b6040516104199190612308565b60405180910390f35b34801561042e57600080fd5b50610437610aa8565b6040516104449190612332565b60405180910390f35b34801561045957600080fd5b50610462610aae565b60405161046f9190612308565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190612457565b610ac1565b6040516104ac9190612332565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d79190612497565b610b48565b005b60606040518060400160405280600781526020017f4d6577204d657700000000000000000000000000000000000000000000000000815250905090565b600061052f610528611090565b8484611098565b6001905092915050565b60115481565b60006008600a61054f9190612639565b633b9aca0061055e9190612684565b905090565b6000610570848484611261565b6106318461057c611090565b61062c8560405180606001604052806028815260200161318860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e2611090565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c319092919063ffffffff16565b611098565b600190509392505050565b6000806000600a54600d541161065457600654610658565b6008545b90506000600b54600d541161066f57600754610673565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cb611090565b73ffffffffffffffffffffffffffffffffffffffff16146106eb57600080fd5b60006106f630610727565b9050600081111561070b5761070a81611c95565b5b600047905060008111156107235761072281611f0e565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610778611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fc90612712565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108cb611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90612712565b60405180910390fd5b6008600a6109669190612639565b633b9aca006109759190612684565b600e819055506008600a6109899190612639565b633b9aca006109989190612684565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109e89190612639565b633b9aca006109f79190612684565b604051610a049190612332565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600381526020017f4d45570000000000000000000000000000000000000000000000000000000000815250905090565b6000610a9e610a97611090565b8484611261565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b50611090565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bdd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd490612712565b60405180910390fd5b601360149054906101000a900460ff1615610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249061277e565b60405180910390fd5b8160068190555080600781905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cd930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610cc59190612639565b633b9aca00610cd49190612684565b611098565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6a91906127b3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1791906127b3565b6040518363ffffffff1660e01b8152600401610e349291906127e0565b6020604051808303816000875af1158015610e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7791906127b3565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0030610727565b600080610f0b610a14565b426040518863ffffffff1660e01b8152600401610f2d9695949392919061284e565b60606040518083038185885af1158015610f4b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7091906128c4565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611012929190612917565b6020604051808303816000875af1158015611031573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611055919061296c565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fe90612a0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611176576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116d90612a9d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112549190612332565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c790612b2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133690612bc1565b60405180910390fd5b60008111611382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137990612c53565b60405180910390fd5b600061138c610a14565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113fa57506113ca610a14565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561143257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611974576114736064611465600a54600d541161145257600654611456565b6008545b85611f7a90919063ffffffff16565b611ff490919063ffffffff16565b9050600560009054906101000a900460ff161561160257601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116015743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b390612d0b565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ad5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117035750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117be57600e5482111561174d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174490612d77565b60405180910390fd5b600f548261175a85610727565b6117649190612d97565b11156117a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179c90612e17565b60405180910390fd5b600d60008154809291906117b890612e37565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561184757503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561188b57611888606461187a600b54600d54116118675760075461186b565b6009545b85611f7a90919063ffffffff16565b611ff490919063ffffffff16565b90505b600061189630610727565b9050601360159054906101000a900460ff161580156119025750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561191a5750601360169054906101000a900460ff165b8015611927575060105481115b80156119365750600c54600d54115b15611972576119586119538461194e8460115461203e565b61203e565b611c95565b600047905060008111156119705761196f47611f0e565b5b505b505b6000811115611a78576119cf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a6f9190612332565b60405180910390a35b611aca82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b71611b2382846120b590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461205790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c1684866120b590919063ffffffff16565b604051611c239190612332565b60405180910390a350505050565b6000838311158290611c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7091906121f2565b60405180910390fd5b5060008385611c889190612e7f565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ccd57611ccc612eb3565b5b604051908082528060200260200182016040528015611cfb5781602001602082028036833780820191505090505b5090503081600081518110611d1357611d12612ee2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dde91906127b3565b81600181518110611df257611df1612ee2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e5930601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611098565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ebd959493929190612fcf565b600060405180830381600087803b158015611ed757600080fd5b505af1158015611eeb573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f76573d6000803e3d6000fd5b5050565b6000808303611f8c5760009050611fee565b60008284611f9a9190612684565b9050828482611fa99190613058565b14611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe0906130fb565b60405180910390fd5b809150505b92915050565b600061203683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120ff565b905092915050565b600081831161204d578261204f565b815b905092915050565b60008082846120669190612d97565b9050838110156120ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a290613167565b60405180910390fd5b8091505092915050565b60006120f783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c31565b905092915050565b60008083118290612146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213d91906121f2565b60405180910390fd5b50600083856121559190613058565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561219c578082015181840152602081019050612181565b60008484015250505050565b6000601f19601f8301169050919050565b60006121c482612162565b6121ce818561216d565b93506121de81856020860161217e565b6121e7816121a8565b840191505092915050565b6000602082019050818103600083015261220c81846121b9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061224482612219565b9050919050565b61225481612239565b811461225f57600080fd5b50565b6000813590506122718161224b565b92915050565b6000819050919050565b61228a81612277565b811461229557600080fd5b50565b6000813590506122a781612281565b92915050565b600080604083850312156122c4576122c3612214565b5b60006122d285828601612262565b92505060206122e385828601612298565b9150509250929050565b60008115159050919050565b612302816122ed565b82525050565b600060208201905061231d60008301846122f9565b92915050565b61232c81612277565b82525050565b60006020820190506123476000830184612323565b92915050565b60008060006060848603121561236657612365612214565b5b600061237486828701612262565b935050602061238586828701612262565b925050604061239686828701612298565b9150509250925092565b60006040820190506123b56000830185612323565b6123c26020830184612323565b9392505050565b600060ff82169050919050565b6123df816123c9565b82525050565b60006020820190506123fa60008301846123d6565b92915050565b60006020828403121561241657612415612214565b5b600061242484828501612262565b91505092915050565b61243681612239565b82525050565b6000602082019050612451600083018461242d565b92915050565b6000806040838503121561246e5761246d612214565b5b600061247c85828601612262565b925050602061248d85828601612262565b9150509250929050565b600080604083850312156124ae576124ad612214565b5b60006124bc85828601612298565b92505060206124cd85828601612298565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561255d57808604811115612539576125386124d7565b5b60018516156125485780820291505b808102905061255685612506565b945061251d565b94509492505050565b6000826125765760019050612632565b816125845760009050612632565b816001811461259a57600281146125a4576125d3565b6001915050612632565b60ff8411156125b6576125b56124d7565b5b8360020a9150848211156125cd576125cc6124d7565b5b50612632565b5060208310610133831016604e8410600b84101617156126085782820a905083811115612603576126026124d7565b5b612632565b6126158484846001612513565b9250905081840481111561262c5761262b6124d7565b5b81810290505b9392505050565b600061264482612277565b915061264f836123c9565b925061267c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612566565b905092915050565b600061268f82612277565b915061269a83612277565b92508282026126a881612277565b915082820484148315176126bf576126be6124d7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126fc60208361216d565b9150612707826126c6565b602082019050919050565b6000602082019050818103600083015261272b816126ef565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061276860178361216d565b915061277382612732565b602082019050919050565b600060208201905081810360008301526127978161275b565b9050919050565b6000815190506127ad8161224b565b92915050565b6000602082840312156127c9576127c8612214565b5b60006127d78482850161279e565b91505092915050565b60006040820190506127f5600083018561242d565b612802602083018461242d565b9392505050565b6000819050919050565b6000819050919050565b600061283861283361282e84612809565b612813565b612277565b9050919050565b6128488161281d565b82525050565b600060c082019050612863600083018961242d565b6128706020830188612323565b61287d604083018761283f565b61288a606083018661283f565b612897608083018561242d565b6128a460a0830184612323565b979650505050505050565b6000815190506128be81612281565b92915050565b6000806000606084860312156128dd576128dc612214565b5b60006128eb868287016128af565b93505060206128fc868287016128af565b925050604061290d868287016128af565b9150509250925092565b600060408201905061292c600083018561242d565b6129396020830184612323565b9392505050565b612949816122ed565b811461295457600080fd5b50565b60008151905061296681612940565b92915050565b60006020828403121561298257612981612214565b5b600061299084828501612957565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129f560248361216d565b9150612a0082612999565b604082019050919050565b60006020820190508181036000830152612a24816129e8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a8760228361216d565b9150612a9282612a2b565b604082019050919050565b60006020820190508181036000830152612ab681612a7a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612b1960258361216d565b9150612b2482612abd565b604082019050919050565b60006020820190508181036000830152612b4881612b0c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612bab60238361216d565b9150612bb682612b4f565b604082019050919050565b60006020820190508181036000830152612bda81612b9e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c3d60298361216d565b9150612c4882612be1565b604082019050919050565b60006020820190508181036000830152612c6c81612c30565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612cf560498361216d565b9150612d0082612c73565b606082019050919050565b60006020820190508181036000830152612d2481612ce8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d6160198361216d565b9150612d6c82612d2b565b602082019050919050565b60006020820190508181036000830152612d9081612d54565b9050919050565b6000612da282612277565b9150612dad83612277565b9250828201905080821115612dc557612dc46124d7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612e01601a8361216d565b9150612e0c82612dcb565b602082019050919050565b60006020820190508181036000830152612e3081612df4565b9050919050565b6000612e4282612277565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e7457612e736124d7565b5b600182019050919050565b6000612e8a82612277565b9150612e9583612277565b9250828203905081811115612ead57612eac6124d7565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f4681612239565b82525050565b6000612f588383612f3d565b60208301905092915050565b6000602082019050919050565b6000612f7c82612f11565b612f868185612f1c565b9350612f9183612f2d565b8060005b83811015612fc2578151612fa98882612f4c565b9750612fb483612f64565b925050600181019050612f95565b5085935050505092915050565b600060a082019050612fe46000830188612323565b612ff1602083018761283f565b81810360408301526130038186612f71565b9050613012606083018561242d565b61301f6080830184612323565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061306382612277565b915061306e83612277565b92508261307e5761307d613029565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006130e560218361216d565b91506130f082613089565b604082019050919050565b60006020820190508181036000830152613114816130d8565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613151601b8361216d565b915061315c8261311b565b602082019050919050565b6000602082019050818103600083015261318081613144565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206972a6188ddb3e67a7c9b1735c8056ab995196ef1d77174357a6cfa919164d9c64736f6c63430008120033

Deployed Bytecode Sourcemap

3556:8527:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5480:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6313:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4722:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5757:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6482:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6895:300;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5666:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11732:348;;;;;;;;;;;;;:::i;:::-;;5860:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2639:148;;;;;;;;;;;;;:::i;:::-;;10574:196;;;;;;;;;;;;;:::i;:::-;;4533:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2425:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6803:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4596:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5571:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5987:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4659:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3899:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6162:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10878:809;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5480:83;5517:13;5550:5;;;;;;;;;;;;;;;;;5543:12;;5480:83;:::o;6313:161::-;6388:4;6405:39;6414:12;:10;:12::i;:::-;6428:7;6437:6;6405:8;:39::i;:::-;6462:4;6455:11;;6313:161;;;;:::o;4722:53::-;;;;:::o;5757:95::-;5810:7;4349:1;4405:2;:13;;;;:::i;:::-;4392:10;:26;;;;:::i;:::-;5830:14;;5757:95;:::o;6482:313::-;6580:4;6597:36;6607:6;6615:9;6626:6;6597:9;:36::i;:::-;6644:121;6653:6;6661:12;:10;:12::i;:::-;6675:89;6713:6;6675:89;;;;;;;;;;;;;;;;;:11;:19;6687:6;6675:19;;;;;;;;;;;;;;;:33;6695:12;:10;:12::i;:::-;6675:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6644:8;:121::i;:::-;6783:4;6776:11;;6482:313;;;;;:::o;6895:300::-;6936:7;6945;6961:21;6998:15;;6986:9;;:27;6985:61;;7032:14;;6985:61;;;7017:12;;6985:61;6961:85;;7053:22;7091:16;;7079:9;;:28;7078:64;;7127:15;;7078:64;;;7111:13;;7078:64;7053:89;;7157:13;7172:14;7149:38;;;;;;6895:300;;:::o;5666:83::-;5707:5;4349:1;5725:16;;5666:83;:::o;11732:348::-;11796:10;;;;;;;;;;;11782:24;;:12;:10;:12::i;:::-;:24;;;11774:33;;;;;;11818:20;11839:24;11857:4;11839:9;:24::i;:::-;11818:45;;11890:1;11877:12;:14;11874:73;;;11905:30;11922:12;11905:16;:30::i;:::-;11874:73;11957:18;11976:21;11957:40;;12022:1;12011:10;:12;12008:65;;;12037:24;12050:10;12037:12;:24::i;:::-;12008:65;11763:317;;11732:348::o;5860:119::-;5926:7;5953:9;:18;5963:7;5953:18;;;;;;;;;;;;;;;;5946:25;;5860:119;;;:::o;2639:148::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:1:::1;2709:40;;2730:6;::::0;::::1;;;;;;;;2709:40;;;;;;;;;;;;2777:1;2760:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2639:148::o:0;10574:196::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4349:1:::1;4405:2;:13;;;;:::i;:::-;4392:10;:26;;;;:::i;:::-;10627:12;:22;;;;4349:1;4405:2;:13;;;;:::i;:::-;4392:10;:26;;;;:::i;:::-;10660:14;:22;;;;10714:5;10693:20;;:26;;;;;;;;;;;;;;;;;;10735:27;4349:1;4405:2;:13;;;;:::i;:::-;4392:10;:26;;;;:::i;:::-;10735:27;;;;;;:::i;:::-;;;;;;;;10574:196::o:0;4533:56::-;;;;:::o;2425:79::-;2463:7;2490:6;;;;;;;;;;;2483:13;;2425:79;:::o;6803:84::-;6847:7;6870:9;;6863:16;;6803:84;:::o;4596:56::-;;;;:::o;5571:87::-;5610:13;5643:7;;;;;;;;;;;;;;;;;5636:14;;5571:87;:::o;5987:167::-;6065:4;6082:42;6092:12;:10;:12::i;:::-;6106:9;6117:6;6082:9;:42::i;:::-;6142:4;6135:11;;5987:167;;;;:::o;4659:56::-;;;;:::o;3899:40::-;;;;;;;;;;;;;:::o;6162:143::-;6243:7;6270:11;:18;6282:5;6270:18;;;;;;;;;;;;;;;:27;6289:7;6270:27;;;;;;;;;;;;;;;;6263:34;;6162:143;;;;:::o;10878:809::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10994:11:::1;;;;;;;;;;;10993:12;10985:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11058:16;11043:14;:31;;;;11101:17;11085:15;:33;;;;11166:42;11129:15;;:80;;;;;;;;;;;;;;;;;;11220:58;11237:4;11252:15;;;;;;;;;;;4349:1;4405:2;:13;;;;:::i;:::-;4392:10;:26;;;;:::i;:::-;11220:8;:58::i;:::-;11323:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11305:55;;;11369:4;11376:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11305:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11289:13;;:110;;;;;;;;;;;;;;;;;;11410:15;;;;;;;;;;;:31;;;11449:21;11480:4;11486:24;11504:4;11486:9;:24::i;:::-;11511:1;11513::::0;11515:7:::1;:5;:7::i;:::-;11523:15;11410:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11557:13;;;;;;;;;;;11550:29;;;11588:15;;;;;;;;;;;11606:14;11550:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11646:4;11632:11;;:18;;;;;;;;;;;;;;;;;;11675:4;11661:11;;:18;;;;;;;;;;;;;;;;;;10878:809:::0;;:::o;192:98::-;245:7;272:10;265:17;;192:98;:::o;7203:335::-;7313:1;7296:19;;:5;:19;;;7288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7394:1;7375:21;;:7;:21;;;7367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7476:6;7446:11;:18;7458:5;7446:18;;;;;;;;;;;;;;;:27;7465:7;7446:27;;;;;;;;;;;;;;;:36;;;;7514:7;7498:32;;7507:5;7498:32;;;7523:6;7498:32;;;;;;:::i;:::-;;;;;;;;7203:335;;;:::o;7546:2423::-;7650:1;7634:18;;:4;:18;;;7626:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7727:1;7713:16;;:2;:16;;;7705:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7797:1;7788:6;:10;7780:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7855:17;7897:7;:5;:7::i;:::-;7889:15;;:4;:15;;;;:32;;;;;7914:7;:5;:7::i;:::-;7908:13;;:2;:13;;;;7889:32;:57;;;;;7941:4;7925:21;;:4;:21;;;;7889:57;7885:1728;;;7975:76;8047:3;7975:67;7997:15;;7987:9;;:25;7986:55;;8027:14;;7986:55;;;8014:12;;7986:55;7975:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7963:88;;8072:20;;;;;;;;;;;8068:508;;;8133:15;;;;;;;;;;;8119:30;;:2;:30;;;;:62;;;;;8167:13;;;;;;;;;;;8153:28;;:2;:28;;;;8119:62;8115:444;;;8317:12;8244:28;:39;8273:9;8244:39;;;;;;;;;;;;;;;;:85;8208:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8525:12;8483:28;:39;8512:9;8483:39;;;;;;;;;;;;;;;:54;;;;8115:444;8068:508;8604:13;;;;;;;;;;;8596:21;;:4;:21;;;:55;;;;;8635:15;;;;;;;;;;;8621:30;;:2;:30;;;;8596:55;:83;;;;;8657:18;:22;8676:2;8657:22;;;;;;;;;;;;;;;;;;;;;;;;;8655:24;8596:83;8592:313;;;8719:12;;8709:6;:22;;8701:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8814:14;;8804:6;8788:13;8798:2;8788:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8780:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8878:9;;:11;;;;;;;;;:::i;:::-;;;;;;8592:313;8930:13;;;;;;;;;;;8924:19;;:2;:19;;;:43;;;;;8962:4;8947:20;;:4;:20;;;;8924:43;8921:174;;;9000:79;9075:3;9000:70;9022:16;;9012:9;;:26;9011:58;;9054:15;;9011:58;;;9040:13;;9011:58;9000:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8988:91;;8921:174;9111:28;9142:24;9160:4;9142:9;:24::i;:::-;9111:55;;9186:6;;;;;;;;;;;9185:7;:32;;;;;9204:13;;;;;;;;;;;9196:21;;:2;:21;;;9185:32;:47;;;;;9221:11;;;;;;;;;;;9185:47;:89;;;;;9257:17;;9236:20;:38;9185:89;:121;;;;;9288:18;;9278:9;;:28;9185:121;9181:421;;;9327:67;9344:49;9348:6;9355:37;9359:20;9380:11;;9355:3;:37::i;:::-;9344:3;:49::i;:::-;9327:16;:67::i;:::-;9413:26;9442:21;9413:50;;9506:1;9485:18;:22;9482:105;;;9532:35;9545:21;9532:12;:35::i;:::-;9482:105;9308:294;9181:421;7948:1665;7885:1728;9638:1;9628:9;:11;9625:161;;;9678:39;9707:9;9678;:24;9696:4;9678:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9653:9;:24;9671:4;9653:24;;;;;;;;;;;;;;;:64;;;;9758:4;9735:39;;9744:4;9735:39;;;9764:9;9735:39;;;;;;:::i;:::-;;;;;;;;9625:161;9812:27;9832:6;9812:9;:15;9822:4;9812:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9796:9;:15;9806:4;9796:15;;;;;;;;;;;;;;;:43;;;;9864:40;9882:21;9893:9;9882:6;:10;;:21;;;;:::i;:::-;9864:9;:13;9874:2;9864:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9850:9;:13;9860:2;9850:13;;;;;;;;;;;;;;;:54;;;;9935:2;9920:41;;9929:4;9920:41;;;9939:21;9950:9;9939:6;:10;;:21;;;;:::i;:::-;9920:41;;;;;;:::i;:::-;;;;;;;;7615:2354;7546:2423;;;:::o;1325:190::-;1411:7;1444:1;1439;:6;;1447:12;1431:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1471:9;1487:1;1483;:5;;;;:::i;:::-;1471:17;;1506:1;1499:8;;;1325:190;;;;;:::o;10083:483::-;5068:4;5059:6;;:13;;;;;;;;;;;;;;;;;;10161:21:::1;10199:1;10185:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10161:40;;10230:4;10212;10217:1;10212:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10256:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10246:4;10251:1;10246:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10289:62;10306:4;10321:15;;;;;;;;;;;10339:11;10289:8;:62::i;:::-;10362:15;;;;;;;;;;;:66;;;10443:11;10469:1;10485:4;10512;10532:15;10362:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10150:416;5104:5:::0;5095:6;;:14;;;;;;;;;;;;;;;;;;10083:483;:::o;10778:92::-;10835:10;;;;;;;;;;;:19;;:27;10855:6;10835:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10778:92;:::o;1521:246::-;1579:7;1608:1;1603;:6;1599:47;;1633:1;1626:8;;;;1599:47;1656:9;1672:1;1668;:5;;;;:::i;:::-;1656:17;;1701:1;1696;1692;:5;;;;:::i;:::-;:10;1684:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1758:1;1751:8;;;1521:246;;;;;:::o;1773:132::-;1831:7;1858:39;1862:1;1865;1858:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1851:46;;1773:132;;;;:::o;9977:98::-;10034:7;10061:1;10059;:3;10058:9;;10066:1;10058:9;;;10064:1;10058:9;10051:16;;9977:98;;;;:::o;998:179::-;1056:7;1076:9;1092:1;1088;:5;;;;:::i;:::-;1076:17;;1117:1;1112;:6;;1104:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1168:1;1161:8;;;998:179;;;;:::o;1183:136::-;1241:7;1268:43;1272:1;1275;1268:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1261:50;;1183:136;;;;:::o;1911:189::-;1997:7;2029:1;2025;:5;2032:12;2017:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2056:9;2072:1;2068;:5;;;;:::i;:::-;2056:17;;2091:1;2084:8;;;1911: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:332::-;4544:4;4582:2;4571:9;4567:18;4559:26;;4595:71;4663:1;4652:9;4648:17;4639:6;4595:71;:::i;:::-;4676:72;4744:2;4733:9;4729:18;4720:6;4676:72;:::i;:::-;4423:332;;;;;:::o;4761:86::-;4796:7;4836:4;4829:5;4825:16;4814:27;;4761:86;;;:::o;4853:112::-;4936:22;4952:5;4936:22;:::i;:::-;4931:3;4924:35;4853:112;;:::o;4971:214::-;5060:4;5098:2;5087:9;5083:18;5075:26;;5111:67;5175:1;5164:9;5160:17;5151:6;5111:67;:::i;:::-;4971:214;;;;:::o;5191:329::-;5250:6;5299:2;5287:9;5278:7;5274:23;5270:32;5267:119;;;5305:79;;:::i;:::-;5267:119;5425:1;5450:53;5495:7;5486:6;5475:9;5471:22;5450:53;:::i;:::-;5440:63;;5396:117;5191:329;;;;:::o;5526:118::-;5613:24;5631:5;5613:24;:::i;:::-;5608:3;5601:37;5526:118;;:::o;5650:222::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:71;5862:1;5851:9;5847:17;5838:6;5794:71;:::i;:::-;5650:222;;;;:::o;5878:474::-;5946:6;5954;6003:2;5991:9;5982:7;5978:23;5974:32;5971:119;;;6009:79;;:::i;:::-;5971:119;6129:1;6154:53;6199:7;6190:6;6179:9;6175:22;6154:53;:::i;:::-;6144:63;;6100:117;6256:2;6282:53;6327:7;6318:6;6307:9;6303:22;6282:53;:::i;:::-;6272:63;;6227:118;5878:474;;;;;:::o;6358:::-;6426:6;6434;6483:2;6471:9;6462:7;6458:23;6454:32;6451:119;;;6489:79;;:::i;:::-;6451:119;6609:1;6634:53;6679:7;6670:6;6659:9;6655:22;6634:53;:::i;:::-;6624:63;;6580:117;6736:2;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6707:118;6358:474;;;;;:::o;6838:180::-;6886:77;6883:1;6876:88;6983:4;6980:1;6973:15;7007:4;7004:1;6997:15;7024:102;7066:8;7113:5;7110:1;7106:13;7085:34;;7024:102;;;:::o;7132:848::-;7193:5;7200:4;7224:6;7215:15;;7248:5;7239:14;;7262:712;7283:1;7273:8;7270:15;7262:712;;;7378:4;7373:3;7369:14;7363:4;7360:24;7357:50;;;7387:18;;:::i;:::-;7357:50;7437:1;7427:8;7423:16;7420:451;;;7852:4;7845:5;7841:16;7832:25;;7420:451;7902:4;7896;7892:15;7884:23;;7932:32;7955:8;7932:32;:::i;:::-;7920:44;;7262:712;;;7132:848;;;;;;;:::o;7986:1073::-;8040:5;8231:8;8221:40;;8252:1;8243:10;;8254:5;;8221:40;8280:4;8270:36;;8297:1;8288:10;;8299:5;;8270:36;8366:4;8414:1;8409:27;;;;8450:1;8445:191;;;;8359:277;;8409:27;8427:1;8418:10;;8429:5;;;8445:191;8490:3;8480:8;8477:17;8474:43;;;8497:18;;:::i;:::-;8474:43;8546:8;8543:1;8539:16;8530:25;;8581:3;8574:5;8571:14;8568:40;;;8588:18;;:::i;:::-;8568:40;8621:5;;;8359:277;;8745:2;8735:8;8732:16;8726:3;8720:4;8717:13;8713:36;8695:2;8685:8;8682:16;8677:2;8671:4;8668:12;8664:35;8648:111;8645:246;;;8801:8;8795:4;8791:19;8782:28;;8836:3;8829:5;8826:14;8823:40;;;8843:18;;:::i;:::-;8823:40;8876:5;;8645:246;8916:42;8954:3;8944:8;8938:4;8935:1;8916:42;:::i;:::-;8901:57;;;;8990:4;8985:3;8981:14;8974:5;8971:25;8968:51;;;8999:18;;:::i;:::-;8968:51;9048:4;9041:5;9037:16;9028:25;;7986:1073;;;;;;:::o;9065:281::-;9123:5;9147:23;9165:4;9147:23;:::i;:::-;9139:31;;9191:25;9207:8;9191:25;:::i;:::-;9179:37;;9235:104;9272:66;9262:8;9256:4;9235:104;:::i;:::-;9226:113;;9065:281;;;;:::o;9352:410::-;9392:7;9415:20;9433:1;9415:20;:::i;:::-;9410:25;;9449:20;9467:1;9449:20;:::i;:::-;9444:25;;9504:1;9501;9497:9;9526:30;9544:11;9526:30;:::i;:::-;9515:41;;9705:1;9696:7;9692:15;9689:1;9686:22;9666:1;9659:9;9639:83;9616:139;;9735:18;;:::i;:::-;9616:139;9400:362;9352:410;;;;:::o;9768:182::-;9908:34;9904:1;9896:6;9892:14;9885:58;9768:182;:::o;9956:366::-;10098:3;10119:67;10183:2;10178:3;10119:67;:::i;:::-;10112:74;;10195:93;10284:3;10195:93;:::i;:::-;10313:2;10308:3;10304:12;10297:19;;9956:366;;;:::o;10328:419::-;10494:4;10532:2;10521:9;10517:18;10509:26;;10581:9;10575:4;10571:20;10567:1;10556:9;10552:17;10545:47;10609:131;10735:4;10609:131;:::i;:::-;10601:139;;10328:419;;;:::o;10753:173::-;10893:25;10889:1;10881:6;10877:14;10870:49;10753:173;:::o;10932:366::-;11074:3;11095:67;11159:2;11154:3;11095:67;:::i;:::-;11088:74;;11171:93;11260:3;11171:93;:::i;:::-;11289:2;11284:3;11280:12;11273:19;;10932:366;;;:::o;11304:419::-;11470:4;11508:2;11497:9;11493:18;11485:26;;11557:9;11551:4;11547:20;11543:1;11532:9;11528:17;11521:47;11585:131;11711:4;11585:131;:::i;:::-;11577:139;;11304:419;;;:::o;11729:143::-;11786:5;11817:6;11811:13;11802:22;;11833:33;11860:5;11833:33;:::i;:::-;11729:143;;;;:::o;11878:351::-;11948:6;11997:2;11985:9;11976:7;11972:23;11968:32;11965:119;;;12003:79;;:::i;:::-;11965:119;12123:1;12148:64;12204:7;12195:6;12184:9;12180:22;12148:64;:::i;:::-;12138:74;;12094:128;11878:351;;;;:::o;12235:332::-;12356:4;12394:2;12383:9;12379:18;12371:26;;12407:71;12475:1;12464:9;12460:17;12451:6;12407:71;:::i;:::-;12488:72;12556:2;12545:9;12541:18;12532:6;12488:72;:::i;:::-;12235:332;;;;;:::o;12573:85::-;12618:7;12647:5;12636:16;;12573:85;;;:::o;12664:60::-;12692:3;12713:5;12706:12;;12664:60;;;:::o;12730:158::-;12788:9;12821:61;12839:42;12848:32;12874:5;12848:32;:::i;:::-;12839:42;:::i;:::-;12821:61;:::i;:::-;12808:74;;12730:158;;;:::o;12894:147::-;12989:45;13028:5;12989:45;:::i;:::-;12984:3;12977:58;12894:147;;:::o;13047:807::-;13296:4;13334:3;13323:9;13319:19;13311:27;;13348:71;13416:1;13405:9;13401:17;13392:6;13348:71;:::i;:::-;13429:72;13497:2;13486:9;13482:18;13473:6;13429:72;:::i;:::-;13511:80;13587:2;13576:9;13572:18;13563:6;13511:80;:::i;:::-;13601;13677:2;13666:9;13662:18;13653:6;13601:80;:::i;:::-;13691:73;13759:3;13748:9;13744:19;13735:6;13691:73;:::i;:::-;13774;13842:3;13831:9;13827:19;13818:6;13774:73;:::i;:::-;13047:807;;;;;;;;;:::o;13860:143::-;13917:5;13948:6;13942:13;13933:22;;13964:33;13991:5;13964:33;:::i;:::-;13860:143;;;;:::o;14009:663::-;14097:6;14105;14113;14162:2;14150:9;14141:7;14137:23;14133:32;14130:119;;;14168:79;;:::i;:::-;14130:119;14288:1;14313:64;14369:7;14360:6;14349:9;14345:22;14313:64;:::i;:::-;14303:74;;14259:128;14426:2;14452:64;14508:7;14499:6;14488:9;14484:22;14452:64;:::i;:::-;14442:74;;14397:129;14565:2;14591:64;14647:7;14638:6;14627:9;14623:22;14591:64;:::i;:::-;14581:74;;14536:129;14009:663;;;;;:::o;14678:332::-;14799:4;14837:2;14826:9;14822:18;14814:26;;14850:71;14918:1;14907:9;14903:17;14894:6;14850:71;:::i;:::-;14931:72;14999:2;14988:9;14984:18;14975:6;14931:72;:::i;:::-;14678:332;;;;;:::o;15016:116::-;15086:21;15101:5;15086:21;:::i;:::-;15079:5;15076:32;15066:60;;15122:1;15119;15112:12;15066:60;15016:116;:::o;15138:137::-;15192:5;15223:6;15217:13;15208:22;;15239:30;15263:5;15239:30;:::i;:::-;15138:137;;;;:::o;15281:345::-;15348:6;15397:2;15385:9;15376:7;15372:23;15368:32;15365:119;;;15403:79;;:::i;:::-;15365:119;15523:1;15548:61;15601:7;15592:6;15581:9;15577:22;15548:61;:::i;:::-;15538:71;;15494:125;15281:345;;;;:::o;15632:223::-;15772:34;15768:1;15760:6;15756:14;15749:58;15841:6;15836:2;15828:6;15824:15;15817:31;15632:223;:::o;15861:366::-;16003:3;16024:67;16088:2;16083:3;16024:67;:::i;:::-;16017:74;;16100:93;16189:3;16100:93;:::i;:::-;16218:2;16213:3;16209:12;16202:19;;15861:366;;;:::o;16233:419::-;16399:4;16437:2;16426:9;16422:18;16414:26;;16486:9;16480:4;16476:20;16472:1;16461:9;16457:17;16450:47;16514:131;16640:4;16514:131;:::i;:::-;16506:139;;16233:419;;;:::o;16658:221::-;16798:34;16794:1;16786:6;16782:14;16775:58;16867:4;16862:2;16854:6;16850:15;16843:29;16658:221;:::o;16885:366::-;17027:3;17048:67;17112:2;17107:3;17048:67;:::i;:::-;17041:74;;17124:93;17213:3;17124:93;:::i;:::-;17242:2;17237:3;17233:12;17226:19;;16885:366;;;:::o;17257:419::-;17423:4;17461:2;17450:9;17446:18;17438:26;;17510:9;17504:4;17500:20;17496:1;17485:9;17481:17;17474:47;17538:131;17664:4;17538:131;:::i;:::-;17530:139;;17257:419;;;:::o;17682:224::-;17822:34;17818:1;17810:6;17806:14;17799:58;17891:7;17886:2;17878:6;17874:15;17867:32;17682:224;:::o;17912:366::-;18054:3;18075:67;18139:2;18134:3;18075:67;:::i;:::-;18068:74;;18151:93;18240:3;18151:93;:::i;:::-;18269:2;18264:3;18260:12;18253:19;;17912:366;;;:::o;18284:419::-;18450:4;18488:2;18477:9;18473:18;18465:26;;18537:9;18531:4;18527:20;18523:1;18512:9;18508:17;18501:47;18565:131;18691:4;18565:131;:::i;:::-;18557:139;;18284:419;;;:::o;18709:222::-;18849:34;18845:1;18837:6;18833:14;18826:58;18918:5;18913:2;18905:6;18901:15;18894:30;18709:222;:::o;18937:366::-;19079:3;19100:67;19164:2;19159:3;19100:67;:::i;:::-;19093:74;;19176:93;19265:3;19176:93;:::i;:::-;19294:2;19289:3;19285:12;19278:19;;18937:366;;;:::o;19309:419::-;19475:4;19513:2;19502:9;19498:18;19490:26;;19562:9;19556:4;19552:20;19548:1;19537:9;19533:17;19526:47;19590:131;19716:4;19590:131;:::i;:::-;19582:139;;19309:419;;;:::o;19734:228::-;19874:34;19870:1;19862:6;19858:14;19851:58;19943:11;19938:2;19930:6;19926:15;19919:36;19734:228;:::o;19968:366::-;20110:3;20131:67;20195:2;20190:3;20131:67;:::i;:::-;20124:74;;20207:93;20296:3;20207:93;:::i;:::-;20325:2;20320:3;20316:12;20309:19;;19968:366;;;:::o;20340:419::-;20506:4;20544:2;20533:9;20529:18;20521:26;;20593:9;20587:4;20583:20;20579:1;20568:9;20564:17;20557:47;20621:131;20747:4;20621:131;:::i;:::-;20613:139;;20340:419;;;:::o;20765:297::-;20905:34;20901:1;20893:6;20889:14;20882:58;20974:34;20969:2;20961:6;20957:15;20950:59;21043:11;21038:2;21030:6;21026:15;21019:36;20765:297;:::o;21068:366::-;21210:3;21231:67;21295:2;21290:3;21231:67;:::i;:::-;21224:74;;21307:93;21396:3;21307:93;:::i;:::-;21425:2;21420:3;21416:12;21409:19;;21068:366;;;:::o;21440:419::-;21606:4;21644:2;21633:9;21629:18;21621:26;;21693:9;21687:4;21683:20;21679:1;21668:9;21664:17;21657:47;21721:131;21847:4;21721:131;:::i;:::-;21713:139;;21440:419;;;:::o;21865:175::-;22005:27;22001:1;21993:6;21989:14;21982:51;21865:175;:::o;22046:366::-;22188:3;22209:67;22273:2;22268:3;22209:67;:::i;:::-;22202:74;;22285:93;22374:3;22285:93;:::i;:::-;22403:2;22398:3;22394:12;22387:19;;22046:366;;;:::o;22418:419::-;22584:4;22622:2;22611:9;22607:18;22599:26;;22671:9;22665:4;22661:20;22657:1;22646:9;22642:17;22635:47;22699:131;22825:4;22699:131;:::i;:::-;22691:139;;22418:419;;;:::o;22843:191::-;22883:3;22902:20;22920:1;22902:20;:::i;:::-;22897:25;;22936:20;22954:1;22936:20;:::i;:::-;22931:25;;22979:1;22976;22972:9;22965:16;;23000:3;22997:1;22994:10;22991:36;;;23007:18;;:::i;:::-;22991:36;22843:191;;;;:::o;23040:176::-;23180:28;23176:1;23168:6;23164:14;23157:52;23040:176;:::o;23222:366::-;23364:3;23385:67;23449:2;23444:3;23385:67;:::i;:::-;23378:74;;23461:93;23550:3;23461:93;:::i;:::-;23579:2;23574:3;23570:12;23563:19;;23222:366;;;:::o;23594:419::-;23760:4;23798:2;23787:9;23783:18;23775:26;;23847:9;23841:4;23837:20;23833:1;23822:9;23818:17;23811:47;23875:131;24001:4;23875:131;:::i;:::-;23867:139;;23594:419;;;:::o;24019:233::-;24058:3;24081:24;24099:5;24081:24;:::i;:::-;24072:33;;24127:66;24120:5;24117:77;24114:103;;24197:18;;:::i;:::-;24114:103;24244:1;24237:5;24233:13;24226:20;;24019:233;;;:::o;24258:194::-;24298:4;24318:20;24336:1;24318:20;:::i;:::-;24313:25;;24352:20;24370:1;24352:20;:::i;:::-;24347:25;;24396:1;24393;24389:9;24381:17;;24420:1;24414:4;24411:11;24408:37;;;24425:18;;:::i;:::-;24408:37;24258:194;;;;:::o;24458:180::-;24506:77;24503:1;24496:88;24603:4;24600:1;24593:15;24627:4;24624:1;24617:15;24644:180;24692:77;24689:1;24682:88;24789:4;24786:1;24779:15;24813:4;24810:1;24803:15;24830:114;24897:6;24931:5;24925:12;24915:22;;24830:114;;;:::o;24950:184::-;25049:11;25083:6;25078:3;25071:19;25123:4;25118:3;25114:14;25099:29;;24950:184;;;;:::o;25140:132::-;25207:4;25230:3;25222:11;;25260:4;25255:3;25251:14;25243:22;;25140:132;;;:::o;25278:108::-;25355:24;25373:5;25355:24;:::i;:::-;25350:3;25343:37;25278:108;;:::o;25392:179::-;25461:10;25482:46;25524:3;25516:6;25482:46;:::i;:::-;25560:4;25555:3;25551:14;25537:28;;25392:179;;;;:::o;25577:113::-;25647:4;25679;25674:3;25670:14;25662:22;;25577:113;;;:::o;25726:732::-;25845:3;25874:54;25922:5;25874:54;:::i;:::-;25944:86;26023:6;26018:3;25944:86;:::i;:::-;25937:93;;26054:56;26104:5;26054:56;:::i;:::-;26133:7;26164:1;26149:284;26174:6;26171:1;26168:13;26149:284;;;26250:6;26244:13;26277:63;26336:3;26321:13;26277:63;:::i;:::-;26270:70;;26363:60;26416:6;26363:60;:::i;:::-;26353:70;;26209:224;26196:1;26193;26189:9;26184:14;;26149:284;;;26153:14;26449:3;26442:10;;25850:608;;;25726:732;;;;:::o;26464:831::-;26727:4;26765:3;26754:9;26750:19;26742:27;;26779:71;26847:1;26836:9;26832:17;26823:6;26779:71;:::i;:::-;26860:80;26936:2;26925:9;26921:18;26912:6;26860:80;:::i;:::-;26987:9;26981:4;26977:20;26972:2;26961:9;26957:18;26950:48;27015:108;27118:4;27109:6;27015:108;:::i;:::-;27007:116;;27133:72;27201:2;27190:9;27186:18;27177:6;27133:72;:::i;:::-;27215:73;27283:3;27272:9;27268:19;27259:6;27215:73;:::i;:::-;26464:831;;;;;;;;:::o;27301:180::-;27349:77;27346:1;27339:88;27446:4;27443:1;27436:15;27470:4;27467:1;27460:15;27487:185;27527:1;27544:20;27562:1;27544:20;:::i;:::-;27539:25;;27578:20;27596:1;27578:20;:::i;:::-;27573:25;;27617:1;27607:35;;27622:18;;:::i;:::-;27607:35;27664:1;27661;27657:9;27652:14;;27487:185;;;;:::o;27678:220::-;27818:34;27814:1;27806:6;27802:14;27795:58;27887:3;27882:2;27874:6;27870:15;27863:28;27678:220;:::o;27904:366::-;28046:3;28067:67;28131:2;28126:3;28067:67;:::i;:::-;28060:74;;28143:93;28232:3;28143:93;:::i;:::-;28261:2;28256:3;28252:12;28245:19;;27904:366;;;:::o;28276:419::-;28442:4;28480:2;28469:9;28465:18;28457:26;;28529:9;28523:4;28519:20;28515:1;28504:9;28500:17;28493:47;28557:131;28683:4;28557:131;:::i;:::-;28549:139;;28276:419;;;:::o;28701:177::-;28841:29;28837:1;28829:6;28825:14;28818:53;28701:177;:::o;28884:366::-;29026:3;29047:67;29111:2;29106:3;29047:67;:::i;:::-;29040:74;;29123:93;29212:3;29123:93;:::i;:::-;29241:2;29236:3;29232:12;29225:19;;28884:366;;;:::o;29256:419::-;29422:4;29460:2;29449:9;29445:18;29437:26;;29509:9;29503:4;29499:20;29495:1;29484:9;29480:17;29473:47;29537:131;29663:4;29537:131;:::i;:::-;29529:139;;29256:419;;;:::o

Swarm Source

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