ETH Price: $3,243.32 (+0.20%)

Token

Jedi Pepe (JEPE)
 

Overview

Max Total Supply

1,000,000,000,000 JEPE

Holders

13

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
Uniswap V2: JEPE 6
Balance
0.00009683 JEPE

Value
$0.00
0xe60aa18f2bc3b80a131c3c0e39f7fa0fe9698fe2
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:
JediPepe

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**


Website : https://jepe.xyz

Telegram : https://t.me/JediPepe

Twitter :  https://twitter.com/JEPEerc

*/


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 JediPepe 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= 2;
    uint256 private _initialSellTax= 2;
    uint256 private _finalBuyTax= 2;
    uint256 private _finalSellTax= 2;
    uint256 private _reduceBuyTaxAt= 25;
    uint256 private _reduceSellTaxAt= 35;
    uint256 private _preventSwapBefore= 25;
    uint256 private _buyCount= 0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000000 * 10**_decimals;
    string private constant _name = unicode"Jedi Pepe";
    string private constant _symbol = unicode"JEPE";
    uint256 public _maxTxAmount =   20000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=5000000000 * 10**_decimals;
    uint256 public _maxTaxSwap = 10000000000 * 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(0x3Fa1d69cf42e7738b208A0BF2ABCab571b32CBD8);
        _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 BuyTax , uint256 SellTax) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        _initialBuyTax=BuyTax;
        _initialSellTax=SellTax;
        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 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":"BuyTax","type":"uint256"},{"internalType":"uint256","name":"SellTax","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"}]

60806040526000600560006101000a81548160ff02191690831515021790555060026006556002600755600260085560026009556019600a556023600b556019600c556000600d556008600a6200005791906200063a565b6404a817c8006200006991906200068b565b600e556008600a6200007c91906200063a565b6404a817c8006200008e91906200068b565b600f556008600a620000a191906200063a565b64012a05f200620000b391906200068b565b6010556008600a620000c691906200063a565b6402540be400620000d891906200068b565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200011e57600080fd5b506000620001316200046f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350733fa1d69cf42e7738b208a0bf2abcab571b32cbd8600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200023491906200063a565b64e8d4a510006200024691906200068b565b600160006200025a6200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002ae6200047760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003e16200046f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200044091906200063a565b64e8d4a510006200045291906200068b565b604051620004619190620006e7565b60405180910390a362000704565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052e57808604811115620005065762000505620004a0565b5b6001851615620005165780820291505b80810290506200052685620004cf565b9450620004e6565b94509492505050565b6000826200054957600190506200061c565b816200055957600090506200061c565b81600181146200057257600281146200057d57620005b3565b60019150506200061c565b60ff841115620005925762000591620004a0565b5b8360020a915084821115620005ac57620005ab620004a0565b5b506200061c565b5060208310610133831016604e8410600b8410161715620005ed5782820a905083811115620005e757620005e6620004a0565b5b6200061c565b620005fc8484846001620004dc565b92509050818404811115620006165762000615620004a0565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006478262000623565b915062000654836200062d565b9250620006837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000537565b905092915050565b6000620006988262000623565b9150620006a58362000623565b9250828202620006b58162000623565b91508282048414831517620006cf57620006ce620004a0565b5b5092915050565b620006e18162000623565b82525050565b6000602082019050620006fe6000830184620006d6565b92915050565b6131c980620007146000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063dd62ed3e14610478578063e7a919f9146104b557610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104de565b60405161015c91906121d6565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612291565b61051b565b60405161019991906122ec565b60405180910390f35b3480156101ae57600080fd5b506101b7610539565b6040516101c49190612316565b60405180910390f35b3480156101d957600080fd5b506101e261053f565b6040516101ef9190612316565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612331565b610564565b60405161022c91906122ec565b60405180910390f35b34801561024157600080fd5b5061024a61063d565b604051610258929190612384565b60405180910390f35b34801561026d57600080fd5b50610276610682565b60405161028391906123c9565b60405180910390f35b34801561029857600080fd5b506102a161068b565b005b3480156102af57600080fd5b506102ca60048036038101906102c591906123e4565b610707565b6040516102d79190612316565b60405180910390f35b3480156102ec57600080fd5b506102f5610750565b005b34801561030357600080fd5b5061030c6108a3565b005b34801561031a57600080fd5b506103236109f1565b6040516103309190612316565b60405180910390f35b34801561034557600080fd5b5061034e6109f7565b60405161035b9190612420565b60405180910390f35b34801561037057600080fd5b50610379610a20565b6040516103869190612316565b60405180910390f35b34801561039b57600080fd5b506103a4610a2a565b6040516103b19190612316565b60405180910390f35b3480156103c657600080fd5b506103cf610a30565b6040516103dc91906121d6565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612291565b610a6d565b60405161041991906122ec565b60405180910390f35b34801561042e57600080fd5b50610437610a8b565b6040516104449190612316565b60405180910390f35b34801561045957600080fd5b50610462610a91565b60405161046f91906122ec565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061243b565b610aa4565b6040516104ac9190612316565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061247b565b610b2b565b005b60606040518060400160405280600981526020017f4a65646920506570650000000000000000000000000000000000000000000000815250905090565b600061052f610528611074565b848461107c565b6001905092915050565b60115481565b60006008600a61054f919061261d565b64e8d4a5100061055f9190612668565b905090565b6000610571848484611245565b6106328461057d611074565b61062d8560405180606001604052806028815260200161316c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e3611074565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c159092919063ffffffff16565b61107c565b600190509392505050565b6000806000600a54600d541161065557600654610659565b6008545b90506000600b54600d541161067057600754610674565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cc611074565b73ffffffffffffffffffffffffffffffffffffffff16146106ec57600080fd5b600047905060008111156107045761070381611c79565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610758611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc906126f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108ab611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092f906126f6565b60405180910390fd5b6008600a610946919061261d565b64e8d4a510006109569190612668565b600e819055506008600a61096a919061261d565b64e8d4a5100061097a9190612668565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109ca919061261d565b64e8d4a510006109da9190612668565b6040516109e79190612316565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600481526020017f4a45504500000000000000000000000000000000000000000000000000000000815250905090565b6000610a81610a7a611074565b8484611245565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b33611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906126f6565b60405180910390fd5b601360149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612762565b60405180910390fd5b8160068190555080600781905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cbd30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610ca8919061261d565b64e8d4a51000610cb89190612668565b61107c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e9190612797565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb9190612797565b6040518363ffffffff1660e01b8152600401610e189291906127c4565b6020604051808303816000875af1158015610e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5b9190612797565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ee430610707565b600080610eef6109f7565b426040518863ffffffff1660e01b8152600401610f1196959493929190612832565b60606040518083038185885af1158015610f2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f5491906128a8565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ff69291906128fb565b6020604051808303816000875af1158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190612950565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e2906129ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612a81565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112389190612316565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90612b13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90612ba5565b60405180910390fd5b60008111611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612c37565b60405180910390fd5b60006113706109f7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113de57506113ae6109f7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611958576114576064611449600a54600d54116114365760065461143a565b6008545b85611ce590919063ffffffff16565b611d5f90919063ffffffff16565b9050600560009054906101000a900460ff16156115e657601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e55743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612cef565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116915750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116e75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a257600e54821115611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890612d5b565b60405180910390fd5b600f548261173e85610707565b6117489190612d7b565b1115611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612dfb565b60405180910390fd5b600d600081548092919061179c90612e1b565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186f5761186c606461185e600b54600d541161184b5760075461184f565b6009545b85611ce590919063ffffffff16565b611d5f90919063ffffffff16565b90505b600061187a30610707565b9050601360159054906101000a900460ff161580156118e65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118fe5750601360169054906101000a900460ff165b801561190b575060105481115b801561191a5750600c54600d54115b156119565761193c6119378461193284601154611da9565b611da9565b611dc2565b600047905060008111156119545761195347611c79565b5b505b505b6000811115611a5c576119b381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a539190612316565b60405180910390a35b611aae82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b55611b07828461209990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfa848661209990919063ffffffff16565b604051611c079190612316565b60405180910390a350505050565b6000838311158290611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5491906121d6565b60405180910390fd5b5060008385611c6c9190612e63565b9050809150509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ce1573d6000803e3d6000fd5b5050565b6000808303611cf75760009050611d59565b60008284611d059190612668565b9050828482611d149190612ec6565b14611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b90612f69565b60405180910390fd5b809150505b92915050565b6000611da183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120e3565b905092915050565b6000818311611db85782611dba565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dfa57611df9612f89565b5b604051908082528060200260200182016040528015611e285781602001602082028036833780820191505090505b5090503081600081518110611e4057611e3f612fb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b9190612797565b81600181518110611f1f57611f1e612fb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461107c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fea9594939291906130a5565b600060405180830381600087803b15801561200457600080fd5b505af1158015612018573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600080828461204a9190612d7b565b90508381101561208f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120869061314b565b60405180910390fd5b8091505092915050565b60006120db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c15565b905092915050565b6000808311829061212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212191906121d6565b60405180910390fd5b50600083856121399190612ec6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612180578082015181840152602081019050612165565b60008484015250505050565b6000601f19601f8301169050919050565b60006121a882612146565b6121b28185612151565b93506121c2818560208601612162565b6121cb8161218c565b840191505092915050565b600060208201905081810360008301526121f0818461219d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612228826121fd565b9050919050565b6122388161221d565b811461224357600080fd5b50565b6000813590506122558161222f565b92915050565b6000819050919050565b61226e8161225b565b811461227957600080fd5b50565b60008135905061228b81612265565b92915050565b600080604083850312156122a8576122a76121f8565b5b60006122b685828601612246565b92505060206122c78582860161227c565b9150509250929050565b60008115159050919050565b6122e6816122d1565b82525050565b600060208201905061230160008301846122dd565b92915050565b6123108161225b565b82525050565b600060208201905061232b6000830184612307565b92915050565b60008060006060848603121561234a576123496121f8565b5b600061235886828701612246565b935050602061236986828701612246565b925050604061237a8682870161227c565b9150509250925092565b60006040820190506123996000830185612307565b6123a66020830184612307565b9392505050565b600060ff82169050919050565b6123c3816123ad565b82525050565b60006020820190506123de60008301846123ba565b92915050565b6000602082840312156123fa576123f96121f8565b5b600061240884828501612246565b91505092915050565b61241a8161221d565b82525050565b60006020820190506124356000830184612411565b92915050565b60008060408385031215612452576124516121f8565b5b600061246085828601612246565b925050602061247185828601612246565b9150509250929050565b60008060408385031215612492576124916121f8565b5b60006124a08582860161227c565b92505060206124b18582860161227c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125415780860481111561251d5761251c6124bb565b5b600185161561252c5780820291505b808102905061253a856124ea565b9450612501565b94509492505050565b60008261255a5760019050612616565b816125685760009050612616565b816001811461257e5760028114612588576125b7565b6001915050612616565b60ff84111561259a576125996124bb565b5b8360020a9150848211156125b1576125b06124bb565b5b50612616565b5060208310610133831016604e8410600b84101617156125ec5782820a9050838111156125e7576125e66124bb565b5b612616565b6125f984848460016124f7565b925090508184048111156126105761260f6124bb565b5b81810290505b9392505050565b60006126288261225b565b9150612633836123ad565b92506126607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461254a565b905092915050565b60006126738261225b565b915061267e8361225b565b925082820261268c8161225b565b915082820484148315176126a3576126a26124bb565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e0602083612151565b91506126eb826126aa565b602082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061274c601783612151565b915061275782612716565b602082019050919050565b6000602082019050818103600083015261277b8161273f565b9050919050565b6000815190506127918161222f565b92915050565b6000602082840312156127ad576127ac6121f8565b5b60006127bb84828501612782565b91505092915050565b60006040820190506127d96000830185612411565b6127e66020830184612411565b9392505050565b6000819050919050565b6000819050919050565b600061281c612817612812846127ed565b6127f7565b61225b565b9050919050565b61282c81612801565b82525050565b600060c0820190506128476000830189612411565b6128546020830188612307565b6128616040830187612823565b61286e6060830186612823565b61287b6080830185612411565b61288860a0830184612307565b979650505050505050565b6000815190506128a281612265565b92915050565b6000806000606084860312156128c1576128c06121f8565b5b60006128cf86828701612893565b93505060206128e086828701612893565b92505060406128f186828701612893565b9150509250925092565b60006040820190506129106000830185612411565b61291d6020830184612307565b9392505050565b61292d816122d1565b811461293857600080fd5b50565b60008151905061294a81612924565b92915050565b600060208284031215612966576129656121f8565b5b60006129748482850161293b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129d9602483612151565b91506129e48261297d565b604082019050919050565b60006020820190508181036000830152612a08816129cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a6b602283612151565b9150612a7682612a0f565b604082019050919050565b60006020820190508181036000830152612a9a81612a5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612afd602583612151565b9150612b0882612aa1565b604082019050919050565b60006020820190508181036000830152612b2c81612af0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b8f602383612151565b9150612b9a82612b33565b604082019050919050565b60006020820190508181036000830152612bbe81612b82565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c21602983612151565b9150612c2c82612bc5565b604082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612cd9604983612151565b9150612ce482612c57565b606082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d45601983612151565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b6000612d868261225b565b9150612d918361225b565b9250828201905080821115612da957612da86124bb565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612de5601a83612151565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b6000612e268261225b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5857612e576124bb565b5b600182019050919050565b6000612e6e8261225b565b9150612e798361225b565b9250828203905081811115612e9157612e906124bb565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ed18261225b565b9150612edc8361225b565b925082612eec57612eeb612e97565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f53602183612151565b9150612f5e82612ef7565b604082019050919050565b60006020820190508181036000830152612f8281612f46565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301c8161221d565b82525050565b600061302e8383613013565b60208301905092915050565b6000602082019050919050565b600061305282612fe7565b61305c8185612ff2565b935061306783613003565b8060005b8381101561309857815161307f8882613022565b975061308a8361303a565b92505060018101905061306b565b5085935050505092915050565b600060a0820190506130ba6000830188612307565b6130c76020830187612823565b81810360408301526130d98186613047565b90506130e86060830185612411565b6130f56080830184612307565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613135601b83612151565b9150613140826130ff565b602082019050919050565b6000602082019050818103600083015261316481613128565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031bb1dfbdad05910dd056807f3e5801b26b5dc386cfa651f01eec201cdd106cb64736f6c63430008120033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103ba578063a9059cbb146103e5578063bf474bed14610422578063c876d0b91461044d578063dd62ed3e14610478578063e7a919f9146104b557610135565b8063751039fc146102f75780637d1db4a51461030e5780638da5cb5b146103395780638f10fd45146103645780638f9a55c01461038f57610135565b80632973ef2d116100f25780632973ef2d14610235578063313ce5671461026157806351bc3c851461028c57806370a08231146102a3578063715018a6146102e057610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104de565b60405161015c91906121d6565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612291565b61051b565b60405161019991906122ec565b60405180910390f35b3480156101ae57600080fd5b506101b7610539565b6040516101c49190612316565b60405180910390f35b3480156101d957600080fd5b506101e261053f565b6040516101ef9190612316565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612331565b610564565b60405161022c91906122ec565b60405180910390f35b34801561024157600080fd5b5061024a61063d565b604051610258929190612384565b60405180910390f35b34801561026d57600080fd5b50610276610682565b60405161028391906123c9565b60405180910390f35b34801561029857600080fd5b506102a161068b565b005b3480156102af57600080fd5b506102ca60048036038101906102c591906123e4565b610707565b6040516102d79190612316565b60405180910390f35b3480156102ec57600080fd5b506102f5610750565b005b34801561030357600080fd5b5061030c6108a3565b005b34801561031a57600080fd5b506103236109f1565b6040516103309190612316565b60405180910390f35b34801561034557600080fd5b5061034e6109f7565b60405161035b9190612420565b60405180910390f35b34801561037057600080fd5b50610379610a20565b6040516103869190612316565b60405180910390f35b34801561039b57600080fd5b506103a4610a2a565b6040516103b19190612316565b60405180910390f35b3480156103c657600080fd5b506103cf610a30565b6040516103dc91906121d6565b60405180910390f35b3480156103f157600080fd5b5061040c60048036038101906104079190612291565b610a6d565b60405161041991906122ec565b60405180910390f35b34801561042e57600080fd5b50610437610a8b565b6040516104449190612316565b60405180910390f35b34801561045957600080fd5b50610462610a91565b60405161046f91906122ec565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061243b565b610aa4565b6040516104ac9190612316565b60405180910390f35b3480156104c157600080fd5b506104dc60048036038101906104d7919061247b565b610b2b565b005b60606040518060400160405280600981526020017f4a65646920506570650000000000000000000000000000000000000000000000815250905090565b600061052f610528611074565b848461107c565b6001905092915050565b60115481565b60006008600a61054f919061261d565b64e8d4a5100061055f9190612668565b905090565b6000610571848484611245565b6106328461057d611074565b61062d8560405180606001604052806028815260200161316c60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105e3611074565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c159092919063ffffffff16565b61107c565b600190509392505050565b6000806000600a54600d541161065557600654610659565b6008545b90506000600b54600d541161067057600754610674565b6009545b905081819350935050509091565b60006008905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106cc611074565b73ffffffffffffffffffffffffffffffffffffffff16146106ec57600080fd5b600047905060008111156107045761070381611c79565b5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610758611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107dc906126f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108ab611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092f906126f6565b60405180910390fd5b6008600a610946919061261d565b64e8d4a510006109569190612668565b600e819055506008600a61096a919061261d565b64e8d4a5100061097a9190612668565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109ca919061261d565b64e8d4a510006109da9190612668565b6040516109e79190612316565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600d54905090565b600f5481565b60606040518060400160405280600481526020017f4a45504500000000000000000000000000000000000000000000000000000000815250905090565b6000610a81610a7a611074565b8484611245565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b33611074565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb7906126f6565b60405180910390fd5b601360149054906101000a900460ff1615610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790612762565b60405180910390fd5b8160068190555080600781905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cbd30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610ca8919061261d565b64e8d4a51000610cb89190612668565b61107c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4e9190612797565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dfb9190612797565b6040518363ffffffff1660e01b8152600401610e189291906127c4565b6020604051808303816000875af1158015610e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5b9190612797565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ee430610707565b600080610eef6109f7565b426040518863ffffffff1660e01b8152600401610f1196959493929190612832565b60606040518083038185885af1158015610f2f573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f5491906128a8565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ff69291906128fb565b6020604051808303816000875af1158015611015573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110399190612950565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff0219169083151502179055505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e2906129ef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612a81565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112389190612316565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90612b13565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131a90612ba5565b60405180910390fd5b60008111611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90612c37565b60405180910390fd5b60006113706109f7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113de57506113ae6109f7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561141657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611958576114576064611449600a54600d54116114365760065461143a565b6008545b85611ce590919063ffffffff16565b611d5f90919063ffffffff16565b9050600560009054906101000a900460ff16156115e657601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561151a5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156115e55743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106115a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159790612cef565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116915750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116e75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117a257600e54821115611731576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172890612d5b565b60405180910390fd5b600f548261173e85610707565b6117489190612d7b565b1115611789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178090612dfb565b60405180910390fd5b600d600081548092919061179c90612e1b565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561182b57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561186f5761186c606461185e600b54600d541161184b5760075461184f565b6009545b85611ce590919063ffffffff16565b611d5f90919063ffffffff16565b90505b600061187a30610707565b9050601360159054906101000a900460ff161580156118e65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118fe5750601360169054906101000a900460ff165b801561190b575060105481115b801561191a5750600c54600d54115b156119565761193c6119378461193284601154611da9565b611da9565b611dc2565b600047905060008111156119545761195347611c79565b5b505b505b6000811115611a5c576119b381600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a539190612316565b60405180910390a35b611aae82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b55611b07828461209990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461203b90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611bfa848661209990919063ffffffff16565b604051611c079190612316565b60405180910390a350505050565b6000838311158290611c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5491906121d6565b60405180910390fd5b5060008385611c6c9190612e63565b9050809150509392505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ce1573d6000803e3d6000fd5b5050565b6000808303611cf75760009050611d59565b60008284611d059190612668565b9050828482611d149190612ec6565b14611d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4b90612f69565b60405180910390fd5b809150505b92915050565b6000611da183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506120e3565b905092915050565b6000818311611db85782611dba565b815b905092915050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dfa57611df9612f89565b5b604051908082528060200260200182016040528015611e285781602001602082028036833780820191505090505b5090503081600081518110611e4057611e3f612fb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b9190612797565b81600181518110611f1f57611f1e612fb8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f8630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461107c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fea9594939291906130a5565b600060405180830381600087803b15801561200457600080fd5b505af1158015612018573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600080828461204a9190612d7b565b90508381101561208f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120869061314b565b60405180910390fd5b8091505092915050565b60006120db83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c15565b905092915050565b6000808311829061212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212191906121d6565b60405180910390fd5b50600083856121399190612ec6565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612180578082015181840152602081019050612165565b60008484015250505050565b6000601f19601f8301169050919050565b60006121a882612146565b6121b28185612151565b93506121c2818560208601612162565b6121cb8161218c565b840191505092915050565b600060208201905081810360008301526121f0818461219d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612228826121fd565b9050919050565b6122388161221d565b811461224357600080fd5b50565b6000813590506122558161222f565b92915050565b6000819050919050565b61226e8161225b565b811461227957600080fd5b50565b60008135905061228b81612265565b92915050565b600080604083850312156122a8576122a76121f8565b5b60006122b685828601612246565b92505060206122c78582860161227c565b9150509250929050565b60008115159050919050565b6122e6816122d1565b82525050565b600060208201905061230160008301846122dd565b92915050565b6123108161225b565b82525050565b600060208201905061232b6000830184612307565b92915050565b60008060006060848603121561234a576123496121f8565b5b600061235886828701612246565b935050602061236986828701612246565b925050604061237a8682870161227c565b9150509250925092565b60006040820190506123996000830185612307565b6123a66020830184612307565b9392505050565b600060ff82169050919050565b6123c3816123ad565b82525050565b60006020820190506123de60008301846123ba565b92915050565b6000602082840312156123fa576123f96121f8565b5b600061240884828501612246565b91505092915050565b61241a8161221d565b82525050565b60006020820190506124356000830184612411565b92915050565b60008060408385031215612452576124516121f8565b5b600061246085828601612246565b925050602061247185828601612246565b9150509250929050565b60008060408385031215612492576124916121f8565b5b60006124a08582860161227c565b92505060206124b18582860161227c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156125415780860481111561251d5761251c6124bb565b5b600185161561252c5780820291505b808102905061253a856124ea565b9450612501565b94509492505050565b60008261255a5760019050612616565b816125685760009050612616565b816001811461257e5760028114612588576125b7565b6001915050612616565b60ff84111561259a576125996124bb565b5b8360020a9150848211156125b1576125b06124bb565b5b50612616565b5060208310610133831016604e8410600b84101617156125ec5782820a9050838111156125e7576125e66124bb565b5b612616565b6125f984848460016124f7565b925090508184048111156126105761260f6124bb565b5b81810290505b9392505050565b60006126288261225b565b9150612633836123ad565b92506126607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461254a565b905092915050565b60006126738261225b565b915061267e8361225b565b925082820261268c8161225b565b915082820484148315176126a3576126a26124bb565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e0602083612151565b91506126eb826126aa565b602082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061274c601783612151565b915061275782612716565b602082019050919050565b6000602082019050818103600083015261277b8161273f565b9050919050565b6000815190506127918161222f565b92915050565b6000602082840312156127ad576127ac6121f8565b5b60006127bb84828501612782565b91505092915050565b60006040820190506127d96000830185612411565b6127e66020830184612411565b9392505050565b6000819050919050565b6000819050919050565b600061281c612817612812846127ed565b6127f7565b61225b565b9050919050565b61282c81612801565b82525050565b600060c0820190506128476000830189612411565b6128546020830188612307565b6128616040830187612823565b61286e6060830186612823565b61287b6080830185612411565b61288860a0830184612307565b979650505050505050565b6000815190506128a281612265565b92915050565b6000806000606084860312156128c1576128c06121f8565b5b60006128cf86828701612893565b93505060206128e086828701612893565b92505060406128f186828701612893565b9150509250925092565b60006040820190506129106000830185612411565b61291d6020830184612307565b9392505050565b61292d816122d1565b811461293857600080fd5b50565b60008151905061294a81612924565b92915050565b600060208284031215612966576129656121f8565b5b60006129748482850161293b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006129d9602483612151565b91506129e48261297d565b604082019050919050565b60006020820190508181036000830152612a08816129cc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a6b602283612151565b9150612a7682612a0f565b604082019050919050565b60006020820190508181036000830152612a9a81612a5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612afd602583612151565b9150612b0882612aa1565b604082019050919050565b60006020820190508181036000830152612b2c81612af0565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612b8f602383612151565b9150612b9a82612b33565b604082019050919050565b60006020820190508181036000830152612bbe81612b82565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612c21602983612151565b9150612c2c82612bc5565b604082019050919050565b60006020820190508181036000830152612c5081612c14565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612cd9604983612151565b9150612ce482612c57565b606082019050919050565b60006020820190508181036000830152612d0881612ccc565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612d45601983612151565b9150612d5082612d0f565b602082019050919050565b60006020820190508181036000830152612d7481612d38565b9050919050565b6000612d868261225b565b9150612d918361225b565b9250828201905080821115612da957612da86124bb565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612de5601a83612151565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b6000612e268261225b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e5857612e576124bb565b5b600182019050919050565b6000612e6e8261225b565b9150612e798361225b565b9250828203905081811115612e9157612e906124bb565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ed18261225b565b9150612edc8361225b565b925082612eec57612eeb612e97565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f53602183612151565b9150612f5e82612ef7565b604082019050919050565b60006020820190508181036000830152612f8281612f46565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61301c8161221d565b82525050565b600061302e8383613013565b60208301905092915050565b6000602082019050919050565b600061305282612fe7565b61305c8185612ff2565b935061306783613003565b8060005b8381101561309857815161307f8882613022565b975061308a8361303a565b92505060018101905061306b565b5085935050505092915050565b600060a0820190506130ba6000830188612307565b6130c76020830187612823565b81810360408301526130d98186613047565b90506130e86060830185612411565b6130f56080830184612307565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613135601b83612151565b9150613140826130ff565b602082019050919050565b6000602082019050818103600083015261316481613128565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031bb1dfbdad05910dd056807f3e5801b26b5dc386cfa651f01eec201cdd106cb64736f6c63430008120033

Deployed Bytecode Sourcemap

3549:8368:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5493:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6326:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4732:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6495:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6908:300;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5679:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11705:209;;;;;;;;;;;;;:::i;:::-;;5873:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2632:148;;;;;;;;;;;;;:::i;:::-;;10587:196;;;;;;;;;;;;;:::i;:::-;;4534:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2418:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6816:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4600:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6000:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4666:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3894:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6175:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10891:769;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5493:83;5530:13;5563:5;;;;;;;;;;;;;;;;;5556:12;;5493:83;:::o;6326:161::-;6401:4;6418:39;6427:12;:10;:12::i;:::-;6441:7;6450:6;6418:8;:39::i;:::-;6475:4;6468:11;;6326:161;;;;:::o;4732:56::-;;;;:::o;5770:95::-;5823:7;4344:1;4403:2;:13;;;;:::i;:::-;4387;:29;;;;:::i;:::-;5843:14;;5770:95;:::o;6495:313::-;6593:4;6610:36;6620:6;6628:9;6639:6;6610:9;:36::i;:::-;6657:121;6666:6;6674:12;:10;:12::i;:::-;6688:89;6726:6;6688:89;;;;;;;;;;;;;;;;;:11;:19;6700:6;6688:19;;;;;;;;;;;;;;;:33;6708:12;:10;:12::i;:::-;6688:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6657:8;:121::i;:::-;6796:4;6789:11;;6495:313;;;;;:::o;6908:300::-;6949:7;6958;6974:21;7011:15;;6999:9;;:27;6998:61;;7045:14;;6998:61;;;7030:12;;6998:61;6974:85;;7066:22;7104:16;;7092:9;;:28;7091:64;;7140:15;;7091:64;;;7124:13;;7091:64;7066:89;;7170:13;7185:14;7162:38;;;;;;6908:300;;:::o;5679:83::-;5720:5;4344:1;5738:16;;5679:83;:::o;11705:209::-;11769:10;;;;;;;;;;;11755:24;;:12;:10;:12::i;:::-;:24;;;11747:33;;;;;;11791:18;11810:21;11791:40;;11856:1;11845:10;:12;11842:65;;;11871:24;11884:10;11871:12;:24::i;:::-;11842:65;11736:178;11705:209::o;5873:119::-;5939:7;5966:9;:18;5976:7;5966:18;;;;;;;;;;;;;;;;5959:25;;5873:119;;;:::o;2632:148::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2739:1:::1;2702:40;;2723:6;::::0;::::1;;;;;;;;2702:40;;;;;;;;;;;;2770:1;2753:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2632:148::o:0;10587:196::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4344:1:::1;4403:2;:13;;;;:::i;:::-;4387;:29;;;;:::i;:::-;10640:12;:22;;;;4344:1;4403:2;:13;;;;:::i;:::-;4387;:29;;;;:::i;:::-;10673:14;:22;;;;10727:5;10706:20;;:26;;;;;;;;;;;;;;;;;;10748:27;4344:1;4403:2;:13;;;;:::i;:::-;4387;:29;;;;:::i;:::-;10748:27;;;;;;:::i;:::-;;;;;;;;10587:196::o:0;4534:59::-;;;;:::o;2418:79::-;2456:7;2483:6;;;;;;;;;;;2476:13;;2418:79;:::o;6816:84::-;6860:7;6883:9;;6876:16;;6816:84;:::o;4600:59::-;;;;:::o;5584:87::-;5623:13;5656:7;;;;;;;;;;;;;;;;;5649:14;;5584:87;:::o;6000:167::-;6078:4;6095:42;6105:12;:10;:12::i;:::-;6119:9;6130:6;6095:9;:42::i;:::-;6155:4;6148:11;;6000:167;;;;:::o;4666:59::-;;;;:::o;3894:40::-;;;;;;;;;;;;;:::o;6175:143::-;6256:7;6283:11;:18;6295:5;6283:18;;;;;;;;;;;;;;;:27;6302:7;6283:27;;;;;;;;;;;;;;;;6276:34;;6175:143;;;;:::o;10891:769::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10987:11:::1;;;;;;;;;;;10986:12;10978:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11051:6;11036:14;:21;;;;11084:7;11068:15;:23;;;;11139:42;11102:15;;:80;;;;;;;;;;;;;;;;;;11193:58;11210:4;11225:15;;;;;;;;;;;4344:1;4403:2;:13;;;;:::i;:::-;4387;:29;;;;:::i;:::-;11193:8;:58::i;:::-;11296:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:55;;;11342:4;11349:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11278:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11262:13;;:110;;;;;;;;;;;;;;;;;;11383:15;;;;;;;;;;;:31;;;11422:21;11453:4;11459:24;11477:4;11459:9;:24::i;:::-;11484:1;11486::::0;11488:7:::1;:5;:7::i;:::-;11496:15;11383:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11530:13;;;;;;;;;;;11523:29;;;11561:15;;;;;;;;;;;11579:14;11523:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11619:4;11605:11;;:18;;;;;;;;;;;;;;;;;;11648:4;11634:11;;:18;;;;;;;;;;;;;;;;;;10891:769:::0;;:::o;185:98::-;238:7;265:10;258:17;;185:98;:::o;7216:335::-;7326:1;7309:19;;:5;:19;;;7301:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7407:1;7388:21;;:7;:21;;;7380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:6;7459:11;:18;7471:5;7459:18;;;;;;;;;;;;;;;:27;7478:7;7459:27;;;;;;;;;;;;;;;:36;;;;7527:7;7511:32;;7520:5;7511:32;;;7536:6;7511:32;;;;;;:::i;:::-;;;;;;;;7216:335;;;:::o;7559:2423::-;7663:1;7647:18;;:4;:18;;;7639:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7740:1;7726:16;;:2;:16;;;7718:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7810:1;7801:6;:10;7793:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7868:17;7910:7;:5;:7::i;:::-;7902:15;;:4;:15;;;;:32;;;;;7927:7;:5;:7::i;:::-;7921:13;;:2;:13;;;;7902:32;:57;;;;;7954:4;7938:21;;:4;:21;;;;7902:57;7898:1728;;;7988:76;8060:3;7988:67;8010:15;;8000:9;;:25;7999:55;;8040:14;;7999:55;;;8027:12;;7999:55;7988:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7976:88;;8085:20;;;;;;;;;;;8081:508;;;8146:15;;;;;;;;;;;8132:30;;:2;:30;;;;:62;;;;;8180:13;;;;;;;;;;;8166:28;;:2;:28;;;;8132:62;8128:444;;;8330:12;8257:28;:39;8286:9;8257:39;;;;;;;;;;;;;;;;:85;8221:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8538:12;8496:28;:39;8525:9;8496:39;;;;;;;;;;;;;;;:54;;;;8128:444;8081:508;8617:13;;;;;;;;;;;8609:21;;:4;:21;;;:55;;;;;8648:15;;;;;;;;;;;8634:30;;:2;:30;;;;8609:55;:83;;;;;8670:18;:22;8689:2;8670:22;;;;;;;;;;;;;;;;;;;;;;;;;8668:24;8609:83;8605:313;;;8732:12;;8722:6;:22;;8714:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8827:14;;8817:6;8801:13;8811:2;8801:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8793:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8891:9;;:11;;;;;;;;;:::i;:::-;;;;;;8605:313;8943:13;;;;;;;;;;;8937:19;;:2;:19;;;:43;;;;;8975:4;8960:20;;:4;:20;;;;8937:43;8934:174;;;9013:79;9088:3;9013:70;9035:16;;9025:9;;:26;9024:58;;9067:15;;9024:58;;;9053:13;;9024:58;9013:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9001:91;;8934:174;9124:28;9155:24;9173:4;9155:9;:24::i;:::-;9124:55;;9199:6;;;;;;;;;;;9198:7;:32;;;;;9217:13;;;;;;;;;;;9209:21;;:2;:21;;;9198:32;:47;;;;;9234:11;;;;;;;;;;;9198:47;:89;;;;;9270:17;;9249:20;:38;9198:89;:121;;;;;9301:18;;9291:9;;:28;9198:121;9194:421;;;9340:67;9357:49;9361:6;9368:37;9372:20;9393:11;;9368:3;:37::i;:::-;9357:3;:49::i;:::-;9340:16;:67::i;:::-;9426:26;9455:21;9426:50;;9519:1;9498:18;:22;9495:105;;;9545:35;9558:21;9545:12;:35::i;:::-;9495:105;9321:294;9194:421;7961:1665;7898:1728;9651:1;9641:9;:11;9638:161;;;9691:39;9720:9;9691;:24;9709:4;9691:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9666:9;:24;9684:4;9666:24;;;;;;;;;;;;;;;:64;;;;9771:4;9748:39;;9757:4;9748:39;;;9777:9;9748:39;;;;;;:::i;:::-;;;;;;;;9638:161;9825:27;9845:6;9825:9;:15;9835:4;9825:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9809:9;:15;9819:4;9809:15;;;;;;;;;;;;;;;:43;;;;9877:40;9895:21;9906:9;9895:6;:10;;:21;;;;:::i;:::-;9877:9;:13;9887:2;9877:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9863:9;:13;9873:2;9863:13;;;;;;;;;;;;;;;:54;;;;9948:2;9933:41;;9942:4;9933:41;;;9952:21;9963:9;9952:6;:10;;:21;;;;:::i;:::-;9933:41;;;;;;:::i;:::-;;;;;;;;7628:2354;7559:2423;;;:::o;1318:190::-;1404:7;1437:1;1432;:6;;1440:12;1424:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1464:9;1480:1;1476;:5;;;;:::i;:::-;1464:17;;1499:1;1492:8;;;1318:190;;;;;:::o;10791:92::-;10848:10;;;;;;;;;;;:19;;:27;10868:6;10848:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10791:92;:::o;1514:246::-;1572:7;1601:1;1596;:6;1592:47;;1626:1;1619:8;;;;1592:47;1649:9;1665:1;1661;:5;;;;:::i;:::-;1649:17;;1694:1;1689;1685;:5;;;;:::i;:::-;:10;1677:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1751:1;1744:8;;;1514:246;;;;;:::o;1766:132::-;1824:7;1851:39;1855:1;1858;1851:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1844:46;;1766:132;;;;:::o;9990:98::-;10047:7;10074:1;10072;:3;10071:9;;10079:1;10071:9;;;10077:1;10071:9;10064:16;;9990:98;;;;:::o;10096:483::-;5081:4;5072:6;;:13;;;;;;;;;;;;;;;;;;10174:21:::1;10212:1;10198:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10174:40;;10243:4;10225;10230:1;10225:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10269:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10259:4;10264:1;10259:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10302:62;10319:4;10334:15;;;;;;;;;;;10352:11;10302:8;:62::i;:::-;10375:15;;;;;;;;;;;:66;;;10456:11;10482:1;10498:4;10525;10545:15;10375:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10163:416;5117:5:::0;5108:6;;:14;;;;;;;;;;;;;;;;;;10096:483;:::o;991:179::-;1049:7;1069:9;1085:1;1081;:5;;;;:::i;:::-;1069:17;;1110:1;1105;:6;;1097:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1161:1;1154:8;;;991:179;;;;:::o;1176:136::-;1234:7;1261:43;1265:1;1268;1261:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1254:50;;1176:136;;;;:::o;1904:189::-;1990:7;2022:1;2018;:5;2025:12;2010:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2049:9;2065:1;2061;:5;;;;:::i;:::-;2049:17;;2084:1;2077:8;;;1904: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:185;24684:1;24701:20;24719:1;24701:20;:::i;:::-;24696:25;;24735:20;24753:1;24735:20;:::i;:::-;24730:25;;24774:1;24764:35;;24779:18;;:::i;:::-;24764:35;24821:1;24818;24814:9;24809:14;;24644:185;;;;:::o;24835:220::-;24975:34;24971:1;24963:6;24959:14;24952:58;25044:3;25039:2;25031:6;25027:15;25020:28;24835:220;:::o;25061:366::-;25203:3;25224:67;25288:2;25283:3;25224:67;:::i;:::-;25217:74;;25300:93;25389:3;25300:93;:::i;:::-;25418:2;25413:3;25409:12;25402:19;;25061:366;;;:::o;25433:419::-;25599:4;25637:2;25626:9;25622:18;25614:26;;25686:9;25680:4;25676:20;25672:1;25661:9;25657:17;25650:47;25714:131;25840:4;25714:131;:::i;:::-;25706:139;;25433:419;;;:::o;25858:180::-;25906:77;25903:1;25896:88;26003:4;26000:1;25993:15;26027:4;26024:1;26017:15;26044:180;26092:77;26089:1;26082:88;26189:4;26186:1;26179:15;26213:4;26210:1;26203:15;26230:114;26297:6;26331:5;26325:12;26315:22;;26230:114;;;:::o;26350:184::-;26449:11;26483:6;26478:3;26471:19;26523:4;26518:3;26514:14;26499:29;;26350:184;;;;:::o;26540:132::-;26607:4;26630:3;26622:11;;26660:4;26655:3;26651:14;26643:22;;26540:132;;;:::o;26678:108::-;26755:24;26773:5;26755:24;:::i;:::-;26750:3;26743:37;26678:108;;:::o;26792:179::-;26861:10;26882:46;26924:3;26916:6;26882:46;:::i;:::-;26960:4;26955:3;26951:14;26937:28;;26792:179;;;;:::o;26977:113::-;27047:4;27079;27074:3;27070:14;27062:22;;26977:113;;;:::o;27126:732::-;27245:3;27274:54;27322:5;27274:54;:::i;:::-;27344:86;27423:6;27418:3;27344:86;:::i;:::-;27337:93;;27454:56;27504:5;27454:56;:::i;:::-;27533:7;27564:1;27549:284;27574:6;27571:1;27568:13;27549:284;;;27650:6;27644:13;27677:63;27736:3;27721:13;27677:63;:::i;:::-;27670:70;;27763:60;27816:6;27763:60;:::i;:::-;27753:70;;27609:224;27596:1;27593;27589:9;27584:14;;27549:284;;;27553:14;27849:3;27842:10;;27250:608;;;27126:732;;;;:::o;27864:831::-;28127:4;28165:3;28154:9;28150:19;28142:27;;28179:71;28247:1;28236:9;28232:17;28223:6;28179:71;:::i;:::-;28260:80;28336:2;28325:9;28321:18;28312:6;28260:80;:::i;:::-;28387:9;28381:4;28377:20;28372:2;28361:9;28357:18;28350:48;28415:108;28518:4;28509:6;28415:108;:::i;:::-;28407:116;;28533:72;28601:2;28590:9;28586:18;28577:6;28533:72;:::i;:::-;28615:73;28683:3;28672:9;28668:19;28659:6;28615:73;:::i;:::-;27864:831;;;;;;;;:::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://31bb1dfbdad05910dd056807f3e5801b26b5dc386cfa651f01eec201cdd106cb
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.