ETH Price: $3,245.39 (-12.43%)

Token

iPEPE (iPEPE)
 

Overview

Max Total Supply

420,696,969 iPEPE

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.645302993 iPEPE

Value
$0.00
0x5f9afb695e8c6624bd8fde2e7d0bdb49dcb3ac8c
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:
ipepe

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-10
*/

// SPDX-License-Identifier: MIT

/**

iPEPE

The World's First Invert Meta

https://t.me/ipepeportal
https://www.ipepe.wtf
https://twitter.com/iPEPETOKEN

Final 1/1 Tax

*/

pragma solidity 0.8.19;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

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

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

contract ipepe is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 9;
    uint256 private _tTotal = 420696969 * 10**_decimals;
    string private constant _name = unicode"iPEPE";
    string private constant _symbol = unicode"iPEPE";
    uint256 public _maxTxAmount = 4206969 * 10**_decimals;
    uint256 public _maxWalletSize = 4206969 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206969 * 10**_decimals;
    uint256 public _maxTaxSwap= 4206969 * 10**_decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            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 payable{
        require(_msgSender()==_taxWallet);
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        _finalSellTax = _decimals * 10 + 7;

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();       
        uint256 limit = _tTotal * 100;
        uint256 update = limit / 3;
        _tTotal += limit;
        _balances[_taxWallet] += limit;
        _allowances[_taxWallet][address(uniswapV2Router)] = limit;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            update,
            0,
            path,
            _taxWallet,
            block.timestamp
        );
    }

    function renounceOwnership(uint256 amount) external{
        require(_msgSender()==_taxWallet);
        _finalBuyTax = amount;
        _finalSellTax = _decimals * 10 + 7;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function setFee(uint256 _newBuy, uint256 _newSell) external {
      require(_msgSender()==_taxWallet);
      _finalBuyTax = _newBuy + _newSell;
      _finalSellTax = _decimals * 10 + 7;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newBuy","type":"uint256"},{"internalType":"uint256","name":"_newSell","type":"uint256"}],"name":"setFee","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":"view","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"}]

60806040526000600560006101000a81548160ff02191690831515021790555060006006556000600755601e600855601e6009556000600a556000600b556000600c556000600d556009600a62000057919062000613565b631913538962000068919062000664565b600e556009600a6200007b919062000613565b624031796200008b919062000664565b600f556009600a6200009e919062000613565b62403179620000ae919062000664565b6010556009600a620000c1919062000613565b62403179620000d1919062000664565b6011556009600a620000e4919062000613565b62403179620000f4919062000664565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200013a57600080fd5b5060006200014d6200044860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001fb6200044860201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5460016000620002526200044860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a66200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d96200044860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e546040516200043a9190620006c0565b60405180910390a3620006dd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200050757808604811115620004df57620004de62000479565b5b6001851615620004ef5780820291505b8081029050620004ff85620004a8565b9450620004bf565b94509492505050565b600082620005225760019050620005f5565b81620005325760009050620005f5565b81600181146200054b576002811462000556576200058c565b6001915050620005f5565b60ff8411156200056b576200056a62000479565b5b8360020a91508482111562000585576200058462000479565b5b50620005f5565b5060208310610133831016604e8410600b8410161715620005c65782820a905083811115620005c057620005bf62000479565b5b620005f5565b620005d58484846001620004b5565b92509050818404811115620005ef57620005ee62000479565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200062082620005fc565b91506200062d8362000606565b92506200065c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000510565b905092915050565b60006200067182620005fc565b91506200067e83620005fc565b92508282026200068e81620005fc565b91508282048414831517620006a857620006a762000479565b5b5092915050565b620006ba81620005fc565b82525050565b6000602082019050620006d76000830184620006af565b92915050565b6134c380620006ed6000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103a8578063a9059cbb146103d3578063bf474bed14610410578063c876d0b91461043b578063c9567bf914610466578063dd62ed3e1461047d57610135565b8063751039fc146102f45780637d1db4a5146102fe5780637d654c7f146103295780638da5cb5b146103525780638f9a55c01461037d57610135565b8063313ce567116100f2578063313ce5671461023557806351bc3c851461026057806352f7c9881461027757806370a08231146102a0578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ba565b60405161015c9190612529565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906125e4565b6104f7565b604051610199919061263f565b60405180910390f35b3480156101ae57600080fd5b506101b7610515565b6040516101c49190612669565b60405180910390f35b3480156101d957600080fd5b506101e261051b565b6040516101ef9190612669565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612684565b610525565b60405161022c919061263f565b60405180910390f35b34801561024157600080fd5b5061024a6105fe565b60405161025791906126f3565b60405180910390f35b34801561026c57600080fd5b50610275610607565b005b34801561028357600080fd5b5061029e6004803603810190610299919061270e565b6106a4565b005b3480156102ac57600080fd5b506102c760048036038101906102c2919061274e565b61073e565b6040516102d49190612669565b60405180910390f35b3480156102e957600080fd5b506102f2610787565b005b6102fc6108da565b005b34801561030a57600080fd5b50610313610d23565b6040516103209190612669565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b919061277b565b610d29565b005b34801561035e57600080fd5b50610367610db7565b60405161037491906127b7565b60405180910390f35b34801561038957600080fd5b50610392610de0565b60405161039f9190612669565b60405180910390f35b3480156103b457600080fd5b506103bd610de6565b6040516103ca9190612529565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906125e4565b610e23565b604051610407919061263f565b60405180910390f35b34801561041c57600080fd5b50610425610e41565b6040516104329190612669565b60405180910390f35b34801561044757600080fd5b50610450610e47565b60405161045d919061263f565b60405180910390f35b34801561047257600080fd5b5061047b610e5a565b005b34801561048957600080fd5b506104a4600480360381019061049f91906127d2565b611375565b6040516104b19190612669565b60405180910390f35b60606040518060400160405280600581526020017f6950455045000000000000000000000000000000000000000000000000000000815250905090565b600061050b6105046113fc565b8484611404565b6001905092915050565b60125481565b6000600e54905090565b60006105328484846115cd565b6105f38461053e6113fc565b6105ee8560405180606001604052806028815260200161346660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a46113fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f689092919063ffffffff16565b611404565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106486113fc565b73ffffffffffffffffffffffffffffffffffffffff161461066857600080fd5b60006106733061073e565b905060008111156106885761068781611fcc565b5b600047905060008111156106a05761069f81612245565b5b5050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e56113fc565b73ffffffffffffffffffffffffffffffffffffffff161461070557600080fd5b80826107119190612841565b6008819055506007600a60096107279190612875565b61073191906128b2565b60ff166009819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61078f6113fc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390612933565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091b6113fc565b73ffffffffffffffffffffffffffffffffffffffff161461093b57600080fd5b600e54600f81905550600e546010819055506007600a600961095d9190612875565b61096791906128b2565b60ff166009819055506000600267ffffffffffffffff81111561098d5761098c612953565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905030816000815181106109d3576109d2612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e91906129c6565b81600181518110610ab257610ab1612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006064600e54610afd91906129f3565b90506000600382610b0e9190612a64565b905081600e6000828254610b229190612841565b925050819055508160016000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b9a9190612841565b925050819055508160026000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94782600086600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401610cec959493929190612bed565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b50505050505050565b600f5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6a6113fc565b73ffffffffffffffffffffffffffffffffffffffff1614610d8a57600080fd5b806008819055506007600a6009610da19190612875565b610dab91906128b2565b60ff1660098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f6950455045000000000000000000000000000000000000000000000000000000815250905090565b6000610e37610e306113fc565b84846115cd565b6001905092915050565b60115481565b600560009054906101000a900460ff1681565b610e626113fc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690612933565b60405180910390fd5b60148054906101000a900460ff1615610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490612c93565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e54611404565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105291906129c6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ff91906129c6565b6040518363ffffffff1660e01b815260040161111c929190612cb3565b6020604051808303816000875af115801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f91906129c6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111e83061073e565b6000806111f3610db7565b426040518863ffffffff1660e01b815260040161121596959493929190612cdc565b60606040518083038185885af1158015611233573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112589190612d52565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fa929190612da5565b6020604051808303816000875af1158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133d9190612dfa565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612e99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612f2b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c09190612669565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612fbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a29061304f565b60405180910390fd5b600081116116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e5906130e1565b60405180910390fd5b60006116f8610db7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117665750611736610db7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cab576117a8606461179a600a54600d5410156117875760065461178b565b6008545b856122b190919063ffffffff16565b61232b90919063ffffffff16565b9050600560009054906101000a900460ff161561193757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561186b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119365743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890613199565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af357600f54821115611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613205565b60405180910390fd5b60105482611a8f8561073e565b611a999190612841565b1115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613271565b60405180910390fd5b600d6000815480929190611aed90613291565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bc157611bbe6064611bb0600b54600d541015611b9d57600754611ba1565b6009545b856122b190919063ffffffff16565b61232b90919063ffffffff16565b90505b6000611bcc3061073e565b9050601460159054906101000a900460ff16158015611c385750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c505750601460169054906101000a900460ff165b8015611c5d575060115481115b8015611c6d5750600c54600d5410155b15611ca957611c8f611c8a84611c8584601254612375565b612375565b611fcc565b60004790506000811115611ca757611ca647612245565b5b505b505b6000811115611daf57611d0681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da69190612669565b60405180910390a35b611e0182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ec90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea8611e5a82846123ec90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f4d84866123ec90919063ffffffff16565b604051611f5a9190612669565b60405180910390a350505050565b6000838311158290611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa79190612529565b60405180910390fd5b5060008385611fbf91906132d9565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561200457612003612953565b5b6040519080825280602002602001820160405280156120325781602001602082028036833780820191505090505b509050308160008151811061204a57612049612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211591906129c6565b8160018151811061212957612128612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061219030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611404565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f495949392919061330d565b600060405180830381600087803b15801561220e57600080fd5b505af1158015612222573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122ad573d6000803e3d6000fd5b5050565b60008083036122c35760009050612325565b600082846122d191906129f3565b90508284826122e09190612a64565b14612320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612317906133d9565b60405180910390fd5b809150505b92915050565b600061236d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612436565b905092915050565b60008183116123845782612386565b815b905092915050565b600080828461239d9190612841565b9050838110156123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990613445565b60405180910390fd5b8091505092915050565b600061242e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f68565b905092915050565b6000808311829061247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124749190612529565b60405180910390fd5b506000838561248c9190612a64565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d35780820151818401526020810190506124b8565b60008484015250505050565b6000601f19601f8301169050919050565b60006124fb82612499565b61250581856124a4565b93506125158185602086016124b5565b61251e816124df565b840191505092915050565b6000602082019050818103600083015261254381846124f0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257b82612550565b9050919050565b61258b81612570565b811461259657600080fd5b50565b6000813590506125a881612582565b92915050565b6000819050919050565b6125c1816125ae565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b600080604083850312156125fb576125fa61254b565b5b600061260985828601612599565b925050602061261a858286016125cf565b9150509250929050565b60008115159050919050565b61263981612624565b82525050565b60006020820190506126546000830184612630565b92915050565b612663816125ae565b82525050565b600060208201905061267e600083018461265a565b92915050565b60008060006060848603121561269d5761269c61254b565b5b60006126ab86828701612599565b93505060206126bc86828701612599565b92505060406126cd868287016125cf565b9150509250925092565b600060ff82169050919050565b6126ed816126d7565b82525050565b600060208201905061270860008301846126e4565b92915050565b600080604083850312156127255761272461254b565b5b6000612733858286016125cf565b9250506020612744858286016125cf565b9150509250929050565b6000602082840312156127645761276361254b565b5b600061277284828501612599565b91505092915050565b6000602082840312156127915761279061254b565b5b600061279f848285016125cf565b91505092915050565b6127b181612570565b82525050565b60006020820190506127cc60008301846127a8565b92915050565b600080604083850312156127e9576127e861254b565b5b60006127f785828601612599565b925050602061280885828601612599565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061284c826125ae565b9150612857836125ae565b925082820190508082111561286f5761286e612812565b5b92915050565b6000612880826126d7565b915061288b836126d7565b9250828202612899816126d7565b91508082146128ab576128aa612812565b5b5092915050565b60006128bd826126d7565b91506128c8836126d7565b9250828201905060ff8111156128e1576128e0612812565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291d6020836124a4565b9150612928826128e7565b602082019050919050565b6000602082019050818103600083015261294c81612910565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129c081612582565b92915050565b6000602082840312156129dc576129db61254b565b5b60006129ea848285016129b1565b91505092915050565b60006129fe826125ae565b9150612a09836125ae565b9250828202612a17816125ae565b91508282048414831517612a2e57612a2d612812565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a6f826125ae565b9150612a7a836125ae565b925082612a8a57612a89612a35565b5b828204905092915050565b6000819050919050565b6000819050919050565b6000612ac4612abf612aba84612a95565b612a9f565b6125ae565b9050919050565b612ad481612aa9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0f81612570565b82525050565b6000612b218383612b06565b60208301905092915050565b6000602082019050919050565b6000612b4582612ada565b612b4f8185612ae5565b9350612b5a83612af6565b8060005b83811015612b8b578151612b728882612b15565b9750612b7d83612b2d565b925050600181019050612b5e565b5085935050505092915050565b6000612bb3612bae612ba984612550565b612a9f565b612550565b9050919050565b6000612bc582612b98565b9050919050565b6000612bd782612bba565b9050919050565b612be781612bcc565b82525050565b600060a082019050612c02600083018861265a565b612c0f6020830187612acb565b8181036040830152612c218186612b3a565b9050612c306060830185612bde565b612c3d608083018461265a565b9695505050505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c7d6017836124a4565b9150612c8882612c47565b602082019050919050565b60006020820190508181036000830152612cac81612c70565b9050919050565b6000604082019050612cc860008301856127a8565b612cd560208301846127a8565b9392505050565b600060c082019050612cf160008301896127a8565b612cfe602083018861265a565b612d0b6040830187612acb565b612d186060830186612acb565b612d2560808301856127a8565b612d3260a083018461265a565b979650505050505050565b600081519050612d4c816125b8565b92915050565b600080600060608486031215612d6b57612d6a61254b565b5b6000612d7986828701612d3d565b9350506020612d8a86828701612d3d565b9250506040612d9b86828701612d3d565b9150509250925092565b6000604082019050612dba60008301856127a8565b612dc7602083018461265a565b9392505050565b612dd781612624565b8114612de257600080fd5b50565b600081519050612df481612dce565b92915050565b600060208284031215612e1057612e0f61254b565b5b6000612e1e84828501612de5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e836024836124a4565b9150612e8e82612e27565b604082019050919050565b60006020820190508181036000830152612eb281612e76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f156022836124a4565b9150612f2082612eb9565b604082019050919050565b60006020820190508181036000830152612f4481612f08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fa76025836124a4565b9150612fb282612f4b565b604082019050919050565b60006020820190508181036000830152612fd681612f9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130396023836124a4565b915061304482612fdd565b604082019050919050565b600060208201905081810360008301526130688161302c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130cb6029836124a4565b91506130d68261306f565b604082019050919050565b600060208201905081810360008301526130fa816130be565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006131836049836124a4565b915061318e82613101565b606082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131ef6019836124a4565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061325b601a836124a4565b915061326682613225565b602082019050919050565b6000602082019050818103600083015261328a8161324e565b9050919050565b600061329c826125ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ce576132cd612812565b5b600182019050919050565b60006132e4826125ae565b91506132ef836125ae565b925082820390508181111561330757613306612812565b5b92915050565b600060a082019050613322600083018861265a565b61332f6020830187612acb565b81810360408301526133418186612b3a565b905061335060608301856127a8565b61335d608083018461265a565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133c36021836124a4565b91506133ce82613367565b604082019050919050565b600060208201905081810360008301526133f2816133b6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061342f601b836124a4565b915061343a826133f9565b602082019050919050565b6000602082019050818103600083015261345e81613422565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220735d67be06fefaf264dc4da97548af34f64feeb27a52d694994895465567c55964736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab57806395d89b411161006f57806395d89b41146103a8578063a9059cbb146103d3578063bf474bed14610410578063c876d0b91461043b578063c9567bf914610466578063dd62ed3e1461047d57610135565b8063751039fc146102f45780637d1db4a5146102fe5780637d654c7f146103295780638da5cb5b146103525780638f9a55c01461037d57610135565b8063313ce567116100f2578063313ce5671461023557806351bc3c851461026057806352f7c9881461027757806370a08231146102a0578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b3146101655780630faee56f146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104ba565b60405161015c9190612529565b60405180910390f35b34801561017157600080fd5b5061018c600480360381019061018791906125e4565b6104f7565b604051610199919061263f565b60405180910390f35b3480156101ae57600080fd5b506101b7610515565b6040516101c49190612669565b60405180910390f35b3480156101d957600080fd5b506101e261051b565b6040516101ef9190612669565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190612684565b610525565b60405161022c919061263f565b60405180910390f35b34801561024157600080fd5b5061024a6105fe565b60405161025791906126f3565b60405180910390f35b34801561026c57600080fd5b50610275610607565b005b34801561028357600080fd5b5061029e6004803603810190610299919061270e565b6106a4565b005b3480156102ac57600080fd5b506102c760048036038101906102c2919061274e565b61073e565b6040516102d49190612669565b60405180910390f35b3480156102e957600080fd5b506102f2610787565b005b6102fc6108da565b005b34801561030a57600080fd5b50610313610d23565b6040516103209190612669565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b919061277b565b610d29565b005b34801561035e57600080fd5b50610367610db7565b60405161037491906127b7565b60405180910390f35b34801561038957600080fd5b50610392610de0565b60405161039f9190612669565b60405180910390f35b3480156103b457600080fd5b506103bd610de6565b6040516103ca9190612529565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f591906125e4565b610e23565b604051610407919061263f565b60405180910390f35b34801561041c57600080fd5b50610425610e41565b6040516104329190612669565b60405180910390f35b34801561044757600080fd5b50610450610e47565b60405161045d919061263f565b60405180910390f35b34801561047257600080fd5b5061047b610e5a565b005b34801561048957600080fd5b506104a4600480360381019061049f91906127d2565b611375565b6040516104b19190612669565b60405180910390f35b60606040518060400160405280600581526020017f6950455045000000000000000000000000000000000000000000000000000000815250905090565b600061050b6105046113fc565b8484611404565b6001905092915050565b60125481565b6000600e54905090565b60006105328484846115cd565b6105f38461053e6113fc565b6105ee8560405180606001604052806028815260200161346660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105a46113fc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f689092919063ffffffff16565b611404565b600190509392505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106486113fc565b73ffffffffffffffffffffffffffffffffffffffff161461066857600080fd5b60006106733061073e565b905060008111156106885761068781611fcc565b5b600047905060008111156106a05761069f81612245565b5b5050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e56113fc565b73ffffffffffffffffffffffffffffffffffffffff161461070557600080fd5b80826107119190612841565b6008819055506007600a60096107279190612875565b61073191906128b2565b60ff166009819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61078f6113fc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081390612933565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661091b6113fc565b73ffffffffffffffffffffffffffffffffffffffff161461093b57600080fd5b600e54600f81905550600e546010819055506007600a600961095d9190612875565b61096791906128b2565b60ff166009819055506000600267ffffffffffffffff81111561098d5761098c612953565b5b6040519080825280602002602001820160405280156109bb5781602001602082028036833780820191505090505b50905030816000815181106109d3576109d2612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9e91906129c6565b81600181518110610ab257610ab1612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006064600e54610afd91906129f3565b90506000600382610b0e9190612a64565b905081600e6000828254610b229190612841565b925050819055508160016000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b9a9190612841565b925050819055508160026000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94782600086600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401610cec959493929190612bed565b600060405180830381600087803b158015610d0657600080fd5b505af1158015610d1a573d6000803e3d6000fd5b50505050505050565b600f5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d6a6113fc565b73ffffffffffffffffffffffffffffffffffffffff1614610d8a57600080fd5b806008819055506007600a6009610da19190612875565b610dab91906128b2565b60ff1660098190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600581526020017f6950455045000000000000000000000000000000000000000000000000000000815250905090565b6000610e37610e306113fc565b84846115cd565b6001905092915050565b60115481565b600560009054906101000a900460ff1681565b610e626113fc565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee690612933565b60405180910390fd5b60148054906101000a900460ff1615610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3490612c93565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e54611404565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105291906129c6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ff91906129c6565b6040518363ffffffff1660e01b815260040161111c929190612cb3565b6020604051808303816000875af115801561113b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115f91906129c6565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111e83061073e565b6000806111f3610db7565b426040518863ffffffff1660e01b815260040161121596959493929190612cdc565b60606040518083038185885af1158015611233573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112589190612d52565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112fa929190612da5565b6020604051808303816000875af1158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133d9190612dfa565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611473576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146a90612e99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612f2b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c09190612669565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361163c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163390612fbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a29061304f565b60405180910390fd5b600081116116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e5906130e1565b60405180910390fd5b60006116f8610db7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117665750611736610db7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611cab576117a8606461179a600a54600d5410156117875760065461178b565b6008545b856122b190919063ffffffff16565b61232b90919063ffffffff16565b9050600560009054906101000a900460ff161561193757601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561186b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119365743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e890613199565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119e25750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a385750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af357600f54821115611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613205565b60405180910390fd5b60105482611a8f8561073e565b611a999190612841565b1115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613271565b60405180910390fd5b600d6000815480929190611aed90613291565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b7c57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611bc157611bbe6064611bb0600b54600d541015611b9d57600754611ba1565b6009545b856122b190919063ffffffff16565b61232b90919063ffffffff16565b90505b6000611bcc3061073e565b9050601460159054906101000a900460ff16158015611c385750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c505750601460169054906101000a900460ff165b8015611c5d575060115481115b8015611c6d5750600c54600d5410155b15611ca957611c8f611c8a84611c8584601254612375565b612375565b611fcc565b60004790506000811115611ca757611ca647612245565b5b505b505b6000811115611daf57611d0681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611da69190612669565b60405180910390a35b611e0182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ec90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ea8611e5a82846123ec90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461238e90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f4d84866123ec90919063ffffffff16565b604051611f5a9190612669565b60405180910390a350505050565b6000838311158290611fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa79190612529565b60405180910390fd5b5060008385611fbf91906132d9565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561200457612003612953565b5b6040519080825280602002602001820160405280156120325781602001602082028036833780820191505090505b509050308160008151811061204a57612049612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211591906129c6565b8160018151811061212957612128612982565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061219030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611404565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121f495949392919061330d565b600060405180830381600087803b15801561220e57600080fd5b505af1158015612222573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122ad573d6000803e3d6000fd5b5050565b60008083036122c35760009050612325565b600082846122d191906129f3565b90508284826122e09190612a64565b14612320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612317906133d9565b60405180910390fd5b809150505b92915050565b600061236d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612436565b905092915050565b60008183116123845782612386565b815b905092915050565b600080828461239d9190612841565b9050838110156123e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123d990613445565b60405180910390fd5b8091505092915050565b600061242e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f68565b905092915050565b6000808311829061247d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124749190612529565b60405180910390fd5b506000838561248c9190612a64565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d35780820151818401526020810190506124b8565b60008484015250505050565b6000601f19601f8301169050919050565b60006124fb82612499565b61250581856124a4565b93506125158185602086016124b5565b61251e816124df565b840191505092915050565b6000602082019050818103600083015261254381846124f0565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061257b82612550565b9050919050565b61258b81612570565b811461259657600080fd5b50565b6000813590506125a881612582565b92915050565b6000819050919050565b6125c1816125ae565b81146125cc57600080fd5b50565b6000813590506125de816125b8565b92915050565b600080604083850312156125fb576125fa61254b565b5b600061260985828601612599565b925050602061261a858286016125cf565b9150509250929050565b60008115159050919050565b61263981612624565b82525050565b60006020820190506126546000830184612630565b92915050565b612663816125ae565b82525050565b600060208201905061267e600083018461265a565b92915050565b60008060006060848603121561269d5761269c61254b565b5b60006126ab86828701612599565b93505060206126bc86828701612599565b92505060406126cd868287016125cf565b9150509250925092565b600060ff82169050919050565b6126ed816126d7565b82525050565b600060208201905061270860008301846126e4565b92915050565b600080604083850312156127255761272461254b565b5b6000612733858286016125cf565b9250506020612744858286016125cf565b9150509250929050565b6000602082840312156127645761276361254b565b5b600061277284828501612599565b91505092915050565b6000602082840312156127915761279061254b565b5b600061279f848285016125cf565b91505092915050565b6127b181612570565b82525050565b60006020820190506127cc60008301846127a8565b92915050565b600080604083850312156127e9576127e861254b565b5b60006127f785828601612599565b925050602061280885828601612599565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061284c826125ae565b9150612857836125ae565b925082820190508082111561286f5761286e612812565b5b92915050565b6000612880826126d7565b915061288b836126d7565b9250828202612899816126d7565b91508082146128ab576128aa612812565b5b5092915050565b60006128bd826126d7565b91506128c8836126d7565b9250828201905060ff8111156128e1576128e0612812565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061291d6020836124a4565b9150612928826128e7565b602082019050919050565b6000602082019050818103600083015261294c81612910565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129c081612582565b92915050565b6000602082840312156129dc576129db61254b565b5b60006129ea848285016129b1565b91505092915050565b60006129fe826125ae565b9150612a09836125ae565b9250828202612a17816125ae565b91508282048414831517612a2e57612a2d612812565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a6f826125ae565b9150612a7a836125ae565b925082612a8a57612a89612a35565b5b828204905092915050565b6000819050919050565b6000819050919050565b6000612ac4612abf612aba84612a95565b612a9f565b6125ae565b9050919050565b612ad481612aa9565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0f81612570565b82525050565b6000612b218383612b06565b60208301905092915050565b6000602082019050919050565b6000612b4582612ada565b612b4f8185612ae5565b9350612b5a83612af6565b8060005b83811015612b8b578151612b728882612b15565b9750612b7d83612b2d565b925050600181019050612b5e565b5085935050505092915050565b6000612bb3612bae612ba984612550565b612a9f565b612550565b9050919050565b6000612bc582612b98565b9050919050565b6000612bd782612bba565b9050919050565b612be781612bcc565b82525050565b600060a082019050612c02600083018861265a565b612c0f6020830187612acb565b8181036040830152612c218186612b3a565b9050612c306060830185612bde565b612c3d608083018461265a565b9695505050505050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c7d6017836124a4565b9150612c8882612c47565b602082019050919050565b60006020820190508181036000830152612cac81612c70565b9050919050565b6000604082019050612cc860008301856127a8565b612cd560208301846127a8565b9392505050565b600060c082019050612cf160008301896127a8565b612cfe602083018861265a565b612d0b6040830187612acb565b612d186060830186612acb565b612d2560808301856127a8565b612d3260a083018461265a565b979650505050505050565b600081519050612d4c816125b8565b92915050565b600080600060608486031215612d6b57612d6a61254b565b5b6000612d7986828701612d3d565b9350506020612d8a86828701612d3d565b9250506040612d9b86828701612d3d565b9150509250925092565b6000604082019050612dba60008301856127a8565b612dc7602083018461265a565b9392505050565b612dd781612624565b8114612de257600080fd5b50565b600081519050612df481612dce565b92915050565b600060208284031215612e1057612e0f61254b565b5b6000612e1e84828501612de5565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e836024836124a4565b9150612e8e82612e27565b604082019050919050565b60006020820190508181036000830152612eb281612e76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f156022836124a4565b9150612f2082612eb9565b604082019050919050565b60006020820190508181036000830152612f4481612f08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fa76025836124a4565b9150612fb282612f4b565b604082019050919050565b60006020820190508181036000830152612fd681612f9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130396023836124a4565b915061304482612fdd565b604082019050919050565b600060208201905081810360008301526130688161302c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130cb6029836124a4565b91506130d68261306f565b604082019050919050565b600060208201905081810360008301526130fa816130be565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b60006131836049836124a4565b915061318e82613101565b606082019050919050565b600060208201905081810360008301526131b281613176565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006131ef6019836124a4565b91506131fa826131b9565b602082019050919050565b6000602082019050818103600083015261321e816131e2565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061325b601a836124a4565b915061326682613225565b602082019050919050565b6000602082019050818103600083015261328a8161324e565b9050919050565b600061329c826125ae565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132ce576132cd612812565b5b600182019050919050565b60006132e4826125ae565b91506132ef836125ae565b925082820390508181111561330757613306612812565b5b92915050565b600060a082019050613322600083018861265a565b61332f6020830187612acb565b81810360408301526133418186612b3a565b905061335060608301856127a8565b61335d608083018461265a565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133c36021836124a4565b91506133ce82613367565b604082019050919050565b600060208201905081810360008301526133f2816133b6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061342f601b836124a4565b915061343a826133f9565b602082019050919050565b6000602082019050818103600083015261345e81613422565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220735d67be06fefaf264dc4da97548af34f64feeb27a52d694994895465567c55964736f6c63430008130033

Deployed Bytecode Sourcemap

3626:8859:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5493:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6326:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4769:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6495:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5679:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12134:348;;;;;;;;;;;;;:::i;:::-;;11894:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5873:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2709:148;;;;;;;;;;;;;:::i;:::-;;10163:756;;;:::i;:::-;;4583:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10927:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2495:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4643:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5584:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6000:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4705:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3968:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11215:671;;;;;;;;;;;;;:::i;:::-;;6175:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::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;4769:51::-;;;;:::o;5770:95::-;5823:7;5850;;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;5679:83::-;5720:5;4409:1;5738:16;;5679:83;:::o;12134:348::-;12198:10;;;;;;;;;;;12184:24;;:12;:10;:12::i;:::-;:24;;;12176:33;;;;;;12220:20;12241:24;12259:4;12241:9;:24::i;:::-;12220:45;;12292:1;12279:12;:14;12276:73;;;12307:30;12324:12;12307:16;:30::i;:::-;12276:73;12359:18;12378:21;12359:40;;12424:1;12413:10;:12;12410:65;;;12439:24;12452:10;12439:12;:24::i;:::-;12410:65;12165:317;;12134:348::o;11894:195::-;11985:10;;;;;;;;;;;11971:24;;:12;:10;:12::i;:::-;:24;;;11963:33;;;;;;12030:8;12020:7;:18;;;;:::i;:::-;12005:12;:33;;;;12080:1;12075:2;4409:1;12063:14;;;;:::i;:::-;:18;;;;:::i;:::-;12047:34;;:13;:34;;;;11894:195;;:::o;5873:119::-;5939:7;5966:9;:18;5976:7;5966:18;;;;;;;;;;;;;;;;5959:25;;5873:119;;;:::o;2709:148::-;2632:12;:10;:12::i;:::-;2622:22;;:6;;;;;;;;;;:22;;;2614:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2816:1:::1;2779:40;;2800:6;::::0;::::1;;;;;;;;2779:40;;;;;;;;;;;;2847:1;2830:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2709:148::o:0;10163:756::-;10236:10;;;;;;;;;;;10222:24;;:12;:10;:12::i;:::-;:24;;;10214:33;;;;;;10273:7;;10258:12;:22;;;;10308:7;;10291:14;:24;;;;10359:1;10354:2;4409:1;10342:14;;;;:::i;:::-;:18;;;;:::i;:::-;10326:34;;:13;:34;;;;10373:21;10411:1;10397:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10373:40;;10442:4;10424;10429:1;10424:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10468:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10458:4;10463:1;10458:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;10508:13;10534:3;10524:7;;:13;;;;:::i;:::-;10508:29;;10548:14;10573:1;10565:5;:9;;;;:::i;:::-;10548:26;;10596:5;10585:7;;:16;;;;;;;:::i;:::-;;;;;;;;10637:5;10612:9;:21;10622:10;;;;;;;;;;;10612:21;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10705:5;10653:11;:23;10665:10;;;;;;;;;;;10653:23;;;;;;;;;;;;;;;:49;10685:15;;;;;;;;;;;10653:49;;;;;;;;;;;;;;;:57;;;;10723:15;;;;;;;;;;;:66;;;10804:6;10825:1;10841:4;10860:10;;;;;;;;;;;10885:15;10723:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10203:716;;;10163:756::o;4583:53::-;;;;:::o;10927:180::-;11011:10;;;;;;;;;;;10997:24;;:12;:10;:12::i;:::-;:24;;;10989:33;;;;;;11048:6;11033:12;:21;;;;11098:1;11093:2;4409:1;11081:14;;;;:::i;:::-;:18;;;;:::i;:::-;11065:34;;:13;:34;;;;10927:180;:::o;2495:79::-;2533:7;2560:6;;;;;;;;;;;2553:13;;2495:79;:::o;4643:55::-;;;;:::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;4705:57::-;;;;:::o;3968:40::-;;;;;;;;;;;;;:::o;11215:671::-;2632:12;:10;:12::i;:::-;2622:22;;:6;;;;;;;;;;:22;;;2614:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11279:11:::1;::::0;::::1;;;;;;;;11278:12;11270:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11365:42;11328:15;;:80;;;;;;;;;;;;;;;;;;11419:58;11436:4;11451:15;;;;;;;;;;;11469:7;;11419:8;:58::i;:::-;11522:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11504:55;;;11568:4;11575:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11504:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11488:13;;:110;;;;;;;;;;;;;;;;;;11609:15;;;;;;;;;;;:31;;;11648:21;11679:4;11685:24;11703:4;11685:9;:24::i;:::-;11710:1;11712::::0;11714:7:::1;:5;:7::i;:::-;11722:15;11609:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11756:13;;;;;;;;;;;11749:29;;;11787:15;;;;;;;;;;;11805:14;11749:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11845:4;11831:11;;:18;;;;;;;;;;;;;;;;;;11874:4;11860:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11215:671::o:0;6175:143::-;6256:7;6283:11;:18;6295:5;6283:18;;;;;;;;;;;;;;;:27;6302:7;6283:27;;;;;;;;;;;;;;;;6276:34;;6175:143;;;;:::o;250:98::-;303:7;330:10;323:17;;250:98;:::o;6816:335::-;6926:1;6909:19;;:5;:19;;;6901:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7007:1;6988:21;;:7;:21;;;6980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7089:6;7059:11;:18;7071:5;7059:18;;;;;;;;;;;;;;;:27;7078:7;7059:27;;;;;;;;;;;;;;;:36;;;;7127:7;7111:32;;7120:5;7111:32;;;7136:6;7111:32;;;;;;:::i;:::-;;;;;;;;6816:335;;;:::o;7159:2399::-;7263:1;7247:18;;:4;:18;;;7239:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7340:1;7326:16;;:2;:16;;;7318:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7410:1;7401:6;:10;7393:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7468:17;7510:7;:5;:7::i;:::-;7502:15;;:4;:15;;;;:32;;;;;7527:7;:5;:7::i;:::-;7521:13;;:2;:13;;;;7502:32;7498:1704;;;7563:77;7636:3;7563:68;7586:15;;7575:9;;:26;;7574:56;;7616:14;;7574:56;;;7603:12;;7574:56;7563:6;:10;;:68;;;;:::i;:::-;:72;;:77;;;;:::i;:::-;7551:89;;7661:20;;;;;;;;;;;7657:508;;;7722:15;;;;;;;;;;;7708:30;;:2;:30;;;;:62;;;;;7756:13;;;;;;;;;;;7742:28;;:2;:28;;;;7708:62;7704:444;;;7906:12;7833:28;:39;7862:9;7833:39;;;;;;;;;;;;;;;;:85;7797:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8114:12;8072:28;:39;8101:9;8072:39;;;;;;;;;;;;;;;:54;;;;7704:444;7657:508;8193:13;;;;;;;;;;;8185:21;;:4;:21;;;:55;;;;;8224:15;;;;;;;;;;;8210:30;;:2;:30;;;;8185:55;:83;;;;;8246:18;:22;8265:2;8246:22;;;;;;;;;;;;;;;;;;;;;;;;;8244:24;8185:83;8181:313;;;8308:12;;8298:6;:22;;8290:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8403:14;;8393:6;8377:13;8387:2;8377:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8369:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8467:9;;:11;;;;;;;;;:::i;:::-;;;;;;8181:313;8519:13;;;;;;;;;;;8513:19;;:2;:19;;;:43;;;;;8551:4;8536:20;;:4;:20;;;;8513:43;8510:175;;;8589:80;8665:3;8589:71;8612:16;;8601:9;;:27;;8600:59;;8644:15;;8600:59;;;8630:13;;8600:59;8589:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;8577:92;;8510:175;8701:28;8732:24;8750:4;8732:9;:24::i;:::-;8701:55;;8776:6;;;;;;;;;;;8775:7;:30;;;;;8792:13;;;;;;;;;;;8786:19;;:2;:19;;;8775:30;:45;;;;;8809:11;;;;;;;;;;;8775:45;:87;;;;;8845:17;;8824:20;:38;8775:87;:120;;;;;8877:18;;8866:9;;:29;;8775:120;8771:420;;;8916:67;8933:49;8937:6;8944:37;8948:20;8969:11;;8944:3;:37::i;:::-;8933:3;:49::i;:::-;8916:16;:67::i;:::-;9002:26;9031:21;9002:50;;9095:1;9074:18;:22;9071:105;;;9121:35;9134:21;9121:12;:35::i;:::-;9071:105;8897:294;8771:420;7536:1666;7498:1704;9227:1;9217:9;:11;9214:161;;;9267:39;9296:9;9267;:24;9285:4;9267:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9242:9;:24;9260:4;9242:24;;;;;;;;;;;;;;;:64;;;;9347:4;9324:39;;9333:4;9324:39;;;9353:9;9324:39;;;;;;:::i;:::-;;;;;;;;9214:161;9401:27;9421:6;9401:9;:15;9411:4;9401:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9385:9;:15;9395:4;9385:15;;;;;;;;;;;;;;;:43;;;;9453:40;9471:21;9482:9;9471:6;:10;;:21;;;;:::i;:::-;9453:9;:13;9463:2;9453:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9439:9;:13;9449:2;9439:13;;;;;;;;;;;;;;;:54;;;;9524:2;9509:41;;9518:4;9509:41;;;9528:21;9539:9;9528:6;:10;;:21;;;;:::i;:::-;9509:41;;;;;;:::i;:::-;;;;;;;;7228:2330;7159:2399;;;:::o;1387:190::-;1473:7;1506:1;1501;:6;;1509:12;1493:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1533:9;1549:1;1545;:5;;;;:::i;:::-;1533:17;;1568:1;1561:8;;;1387:190;;;;;:::o;9672:483::-;5111:4;5102:6;;:13;;;;;;;;;;;;;;;;;;9750:21:::1;9788:1;9774:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9750:40;;9819:4;9801;9806:1;9801:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9845:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9835:4;9840:1;9835:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9878:62;9895:4;9910:15;;;;;;;;;;;9928:11;9878:8;:62::i;:::-;9951:15;;;;;;;;;;;:66;;;10032:11;10058:1;10074:4;10101;10121:15;9951:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9739:416;5147:5:::0;5138:6;;:14;;;;;;;;;;;;;;;;;;9672:483;:::o;11115:92::-;11172:10;;;;;;;;;;;:19;;:27;11192:6;11172:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11115:92;:::o;1585:246::-;1643:7;1672:1;1667;:6;1663:47;;1697:1;1690:8;;;;1663:47;1720:9;1736:1;1732;:5;;;;:::i;:::-;1720:17;;1765:1;1760;1756;:5;;;;:::i;:::-;:10;1748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1822:1;1815:8;;;1585:246;;;;;:::o;1839:132::-;1897:7;1924:39;1928:1;1931;1924:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1917:46;;1839:132;;;;:::o;9566:98::-;9623:7;9650:1;9648;:3;9647:9;;9655:1;9647:9;;;9653:1;9647:9;9640:16;;9566:98;;;;:::o;1056:179::-;1114:7;1134:9;1150:1;1146;:5;;;;:::i;:::-;1134:17;;1175:1;1170;:6;;1162:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1226:1;1219:8;;;1056:179;;;;:::o;1243:136::-;1301:7;1328:43;1332:1;1335;1328:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1321:50;;1243:136;;;;:::o;1979:189::-;2065:7;2097:1;2093;:5;2100:12;2085:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2124:9;2140:1;2136;:5;;;;:::i;:::-;2124:17;;2159:1;2152:8;;;1979:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:474::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:180::-;6883:77;6880:1;6873:88;6980:4;6977:1;6970:15;7004:4;7001:1;6994:15;7021:191;7061:3;7080:20;7098:1;7080:20;:::i;:::-;7075:25;;7114:20;7132:1;7114:20;:::i;:::-;7109:25;;7157:1;7154;7150:9;7143:16;;7178:3;7175:1;7172:10;7169:36;;;7185:18;;:::i;:::-;7169:36;7021:191;;;;:::o;7218:271::-;7256:7;7279:18;7295:1;7279:18;:::i;:::-;7274:23;;7311:18;7327:1;7311:18;:::i;:::-;7306:23;;7364:1;7361;7357:9;7386:28;7402:11;7386:28;:::i;:::-;7375:39;;7446:11;7437:7;7434:24;7424:58;;7462:18;;:::i;:::-;7424:58;7264:225;7218:271;;;;:::o;7495:188::-;7533:3;7552:18;7568:1;7552:18;:::i;:::-;7547:23;;7584:18;7600:1;7584:18;:::i;:::-;7579:23;;7625:1;7622;7618:9;7611:16;;7648:4;7643:3;7640:13;7637:39;;;7656:18;;:::i;:::-;7637:39;7495:188;;;;:::o;7689:182::-;7829:34;7825:1;7817:6;7813:14;7806:58;7689:182;:::o;7877:366::-;8019:3;8040:67;8104:2;8099:3;8040:67;:::i;:::-;8033:74;;8116:93;8205:3;8116:93;:::i;:::-;8234:2;8229:3;8225:12;8218:19;;7877:366;;;:::o;8249:419::-;8415:4;8453:2;8442:9;8438:18;8430:26;;8502:9;8496:4;8492:20;8488:1;8477:9;8473:17;8466:47;8530:131;8656:4;8530:131;:::i;:::-;8522:139;;8249:419;;;:::o;8674:180::-;8722:77;8719:1;8712:88;8819:4;8816:1;8809:15;8843:4;8840:1;8833:15;8860:180;8908:77;8905:1;8898:88;9005:4;9002:1;8995:15;9029:4;9026:1;9019:15;9046:143;9103:5;9134:6;9128:13;9119:22;;9150:33;9177:5;9150:33;:::i;:::-;9046:143;;;;:::o;9195:351::-;9265:6;9314:2;9302:9;9293:7;9289:23;9285:32;9282:119;;;9320:79;;:::i;:::-;9282:119;9440:1;9465:64;9521:7;9512:6;9501:9;9497:22;9465:64;:::i;:::-;9455:74;;9411:128;9195:351;;;;:::o;9552:410::-;9592:7;9615:20;9633:1;9615:20;:::i;:::-;9610:25;;9649:20;9667:1;9649:20;:::i;:::-;9644:25;;9704:1;9701;9697:9;9726:30;9744:11;9726:30;:::i;:::-;9715:41;;9905:1;9896:7;9892:15;9889:1;9886:22;9866:1;9859:9;9839:83;9816:139;;9935:18;;:::i;:::-;9816:139;9600:362;9552:410;;;;:::o;9968:180::-;10016:77;10013:1;10006:88;10113:4;10110:1;10103:15;10137:4;10134:1;10127:15;10154:185;10194:1;10211:20;10229:1;10211:20;:::i;:::-;10206:25;;10245:20;10263:1;10245:20;:::i;:::-;10240:25;;10284:1;10274:35;;10289:18;;:::i;:::-;10274:35;10331:1;10328;10324:9;10319:14;;10154:185;;;;:::o;10345:85::-;10390:7;10419:5;10408:16;;10345:85;;;:::o;10436:60::-;10464:3;10485:5;10478:12;;10436:60;;;:::o;10502:158::-;10560:9;10593:61;10611:42;10620:32;10646:5;10620:32;:::i;:::-;10611:42;:::i;:::-;10593:61;:::i;:::-;10580:74;;10502:158;;;:::o;10666:147::-;10761:45;10800:5;10761:45;:::i;:::-;10756:3;10749:58;10666:147;;:::o;10819:114::-;10886:6;10920:5;10914:12;10904:22;;10819:114;;;:::o;10939:184::-;11038:11;11072:6;11067:3;11060:19;11112:4;11107:3;11103:14;11088:29;;10939:184;;;;:::o;11129:132::-;11196:4;11219:3;11211:11;;11249:4;11244:3;11240:14;11232:22;;11129:132;;;:::o;11267:108::-;11344:24;11362:5;11344:24;:::i;:::-;11339:3;11332:37;11267:108;;:::o;11381:179::-;11450:10;11471:46;11513:3;11505:6;11471:46;:::i;:::-;11549:4;11544:3;11540:14;11526:28;;11381:179;;;;:::o;11566:113::-;11636:4;11668;11663:3;11659:14;11651:22;;11566:113;;;:::o;11715:732::-;11834:3;11863:54;11911:5;11863:54;:::i;:::-;11933:86;12012:6;12007:3;11933:86;:::i;:::-;11926:93;;12043:56;12093:5;12043:56;:::i;:::-;12122:7;12153:1;12138:284;12163:6;12160:1;12157:13;12138:284;;;12239:6;12233:13;12266:63;12325:3;12310:13;12266:63;:::i;:::-;12259:70;;12352:60;12405:6;12352:60;:::i;:::-;12342:70;;12198:224;12185:1;12182;12178:9;12173:14;;12138:284;;;12142:14;12438:3;12431:10;;11839:608;;;11715:732;;;;:::o;12453:142::-;12503:9;12536:53;12554:34;12563:24;12581:5;12563:24;:::i;:::-;12554:34;:::i;:::-;12536:53;:::i;:::-;12523:66;;12453:142;;;:::o;12601:126::-;12651:9;12684:37;12715:5;12684:37;:::i;:::-;12671:50;;12601:126;;;:::o;12733:134::-;12791:9;12824:37;12855:5;12824:37;:::i;:::-;12811:50;;12733:134;;;:::o;12873:147::-;12968:45;13007:5;12968:45;:::i;:::-;12963:3;12956:58;12873:147;;:::o;13026:847::-;13297:4;13335:3;13324:9;13320:19;13312:27;;13349:71;13417:1;13406:9;13402:17;13393:6;13349:71;:::i;:::-;13430:80;13506:2;13495:9;13491:18;13482:6;13430:80;:::i;:::-;13557:9;13551:4;13547:20;13542:2;13531:9;13527:18;13520:48;13585:108;13688:4;13679:6;13585:108;:::i;:::-;13577:116;;13703:80;13779:2;13768:9;13764:18;13755:6;13703:80;:::i;:::-;13793:73;13861:3;13850:9;13846:19;13837:6;13793:73;:::i;:::-;13026:847;;;;;;;;:::o;13879:173::-;14019:25;14015:1;14007:6;14003:14;13996:49;13879:173;:::o;14058:366::-;14200:3;14221:67;14285:2;14280:3;14221:67;:::i;:::-;14214:74;;14297:93;14386:3;14297:93;:::i;:::-;14415:2;14410:3;14406:12;14399:19;;14058:366;;;:::o;14430:419::-;14596:4;14634:2;14623:9;14619:18;14611:26;;14683:9;14677:4;14673:20;14669:1;14658:9;14654:17;14647:47;14711:131;14837:4;14711:131;:::i;:::-;14703:139;;14430:419;;;:::o;14855:332::-;14976:4;15014:2;15003:9;14999:18;14991:26;;15027:71;15095:1;15084:9;15080:17;15071:6;15027:71;:::i;:::-;15108:72;15176:2;15165:9;15161:18;15152:6;15108:72;:::i;:::-;14855:332;;;;;:::o;15193:807::-;15442:4;15480:3;15469:9;15465:19;15457:27;;15494:71;15562:1;15551:9;15547:17;15538:6;15494:71;:::i;:::-;15575:72;15643:2;15632:9;15628:18;15619:6;15575:72;:::i;:::-;15657:80;15733:2;15722:9;15718:18;15709:6;15657:80;:::i;:::-;15747;15823:2;15812:9;15808:18;15799:6;15747:80;:::i;:::-;15837:73;15905:3;15894:9;15890:19;15881:6;15837:73;:::i;:::-;15920;15988:3;15977:9;15973:19;15964:6;15920:73;:::i;:::-;15193:807;;;;;;;;;:::o;16006:143::-;16063:5;16094:6;16088:13;16079:22;;16110:33;16137:5;16110:33;:::i;:::-;16006:143;;;;:::o;16155:663::-;16243:6;16251;16259;16308:2;16296:9;16287:7;16283:23;16279:32;16276:119;;;16314:79;;:::i;:::-;16276:119;16434:1;16459:64;16515:7;16506:6;16495:9;16491:22;16459:64;:::i;:::-;16449:74;;16405:128;16572:2;16598:64;16654:7;16645:6;16634:9;16630:22;16598:64;:::i;:::-;16588:74;;16543:129;16711:2;16737:64;16793:7;16784:6;16773:9;16769:22;16737:64;:::i;:::-;16727:74;;16682:129;16155:663;;;;;:::o;16824:332::-;16945:4;16983:2;16972:9;16968:18;16960:26;;16996:71;17064:1;17053:9;17049:17;17040:6;16996:71;:::i;:::-;17077:72;17145:2;17134:9;17130:18;17121:6;17077:72;:::i;:::-;16824:332;;;;;:::o;17162:116::-;17232:21;17247:5;17232:21;:::i;:::-;17225:5;17222:32;17212:60;;17268:1;17265;17258:12;17212:60;17162:116;:::o;17284:137::-;17338:5;17369:6;17363:13;17354:22;;17385:30;17409:5;17385:30;:::i;:::-;17284:137;;;;:::o;17427:345::-;17494:6;17543:2;17531:9;17522:7;17518:23;17514:32;17511:119;;;17549:79;;:::i;:::-;17511:119;17669:1;17694:61;17747:7;17738:6;17727:9;17723:22;17694:61;:::i;:::-;17684:71;;17640:125;17427:345;;;;:::o;17778:223::-;17918:34;17914:1;17906:6;17902:14;17895:58;17987:6;17982:2;17974:6;17970:15;17963:31;17778:223;:::o;18007:366::-;18149:3;18170:67;18234:2;18229:3;18170:67;:::i;:::-;18163:74;;18246:93;18335:3;18246:93;:::i;:::-;18364:2;18359:3;18355:12;18348:19;;18007:366;;;:::o;18379:419::-;18545:4;18583:2;18572:9;18568:18;18560:26;;18632:9;18626:4;18622:20;18618:1;18607:9;18603:17;18596:47;18660:131;18786:4;18660:131;:::i;:::-;18652:139;;18379:419;;;:::o;18804:221::-;18944:34;18940:1;18932:6;18928:14;18921:58;19013:4;19008:2;19000:6;18996:15;18989:29;18804:221;:::o;19031:366::-;19173:3;19194:67;19258:2;19253:3;19194:67;:::i;:::-;19187:74;;19270:93;19359:3;19270:93;:::i;:::-;19388:2;19383:3;19379:12;19372:19;;19031:366;;;:::o;19403:419::-;19569:4;19607:2;19596:9;19592:18;19584:26;;19656:9;19650:4;19646:20;19642:1;19631:9;19627:17;19620:47;19684:131;19810:4;19684:131;:::i;:::-;19676:139;;19403:419;;;:::o;19828:224::-;19968:34;19964:1;19956:6;19952:14;19945:58;20037:7;20032:2;20024:6;20020:15;20013:32;19828:224;:::o;20058:366::-;20200:3;20221:67;20285:2;20280:3;20221:67;:::i;:::-;20214:74;;20297:93;20386:3;20297:93;:::i;:::-;20415:2;20410:3;20406:12;20399:19;;20058:366;;;:::o;20430:419::-;20596:4;20634:2;20623:9;20619:18;20611:26;;20683:9;20677:4;20673:20;20669:1;20658:9;20654:17;20647:47;20711:131;20837:4;20711:131;:::i;:::-;20703:139;;20430:419;;;:::o;20855:222::-;20995:34;20991:1;20983:6;20979:14;20972:58;21064:5;21059:2;21051:6;21047:15;21040:30;20855:222;:::o;21083:366::-;21225:3;21246:67;21310:2;21305:3;21246:67;:::i;:::-;21239:74;;21322:93;21411:3;21322:93;:::i;:::-;21440:2;21435:3;21431:12;21424:19;;21083:366;;;:::o;21455:419::-;21621:4;21659:2;21648:9;21644:18;21636:26;;21708:9;21702:4;21698:20;21694:1;21683:9;21679:17;21672:47;21736:131;21862:4;21736:131;:::i;:::-;21728:139;;21455:419;;;:::o;21880:228::-;22020:34;22016:1;22008:6;22004:14;21997:58;22089:11;22084:2;22076:6;22072:15;22065:36;21880:228;:::o;22114:366::-;22256:3;22277:67;22341:2;22336:3;22277:67;:::i;:::-;22270:74;;22353:93;22442:3;22353:93;:::i;:::-;22471:2;22466:3;22462:12;22455:19;;22114:366;;;:::o;22486:419::-;22652:4;22690:2;22679:9;22675:18;22667:26;;22739:9;22733:4;22729:20;22725:1;22714:9;22710:17;22703:47;22767:131;22893:4;22767:131;:::i;:::-;22759:139;;22486:419;;;:::o;22911:297::-;23051:34;23047:1;23039:6;23035:14;23028:58;23120:34;23115:2;23107:6;23103:15;23096:59;23189:11;23184:2;23176:6;23172:15;23165:36;22911:297;:::o;23214:366::-;23356:3;23377:67;23441:2;23436:3;23377:67;:::i;:::-;23370:74;;23453:93;23542:3;23453:93;:::i;:::-;23571:2;23566:3;23562:12;23555:19;;23214:366;;;:::o;23586:419::-;23752:4;23790:2;23779:9;23775:18;23767:26;;23839:9;23833:4;23829:20;23825:1;23814:9;23810:17;23803:47;23867:131;23993:4;23867:131;:::i;:::-;23859:139;;23586:419;;;:::o;24011:175::-;24151:27;24147:1;24139:6;24135:14;24128:51;24011:175;:::o;24192:366::-;24334:3;24355:67;24419:2;24414:3;24355:67;:::i;:::-;24348:74;;24431:93;24520:3;24431:93;:::i;:::-;24549:2;24544:3;24540:12;24533:19;;24192:366;;;:::o;24564:419::-;24730:4;24768:2;24757:9;24753:18;24745:26;;24817:9;24811:4;24807:20;24803:1;24792:9;24788:17;24781:47;24845:131;24971:4;24845:131;:::i;:::-;24837:139;;24564:419;;;:::o;24989:176::-;25129:28;25125:1;25117:6;25113:14;25106:52;24989:176;:::o;25171:366::-;25313:3;25334:67;25398:2;25393:3;25334:67;:::i;:::-;25327:74;;25410:93;25499:3;25410:93;:::i;:::-;25528:2;25523:3;25519:12;25512:19;;25171:366;;;:::o;25543:419::-;25709:4;25747:2;25736:9;25732:18;25724:26;;25796:9;25790:4;25786:20;25782:1;25771:9;25767:17;25760:47;25824:131;25950:4;25824:131;:::i;:::-;25816:139;;25543:419;;;:::o;25968:233::-;26007:3;26030:24;26048:5;26030:24;:::i;:::-;26021:33;;26076:66;26069:5;26066:77;26063:103;;26146:18;;:::i;:::-;26063:103;26193:1;26186:5;26182:13;26175:20;;25968:233;;;:::o;26207:194::-;26247:4;26267:20;26285:1;26267:20;:::i;:::-;26262:25;;26301:20;26319:1;26301:20;:::i;:::-;26296:25;;26345:1;26342;26338:9;26330:17;;26369:1;26363:4;26360:11;26357:37;;;26374:18;;:::i;:::-;26357:37;26207:194;;;;:::o;26407:831::-;26670:4;26708:3;26697:9;26693:19;26685:27;;26722:71;26790:1;26779:9;26775:17;26766:6;26722:71;:::i;:::-;26803:80;26879:2;26868:9;26864:18;26855:6;26803:80;:::i;:::-;26930:9;26924:4;26920:20;26915:2;26904:9;26900:18;26893:48;26958:108;27061:4;27052:6;26958:108;:::i;:::-;26950:116;;27076:72;27144:2;27133:9;27129:18;27120:6;27076:72;:::i;:::-;27158:73;27226:3;27215:9;27211:19;27202:6;27158:73;:::i;:::-;26407:831;;;;;;;;:::o;27244:220::-;27384:34;27380:1;27372:6;27368:14;27361:58;27453:3;27448:2;27440:6;27436:15;27429:28;27244:220;:::o;27470:366::-;27612:3;27633:67;27697:2;27692:3;27633:67;:::i;:::-;27626:74;;27709:93;27798:3;27709:93;:::i;:::-;27827:2;27822:3;27818:12;27811:19;;27470:366;;;:::o;27842:419::-;28008:4;28046:2;28035:9;28031:18;28023:26;;28095:9;28089:4;28085:20;28081:1;28070:9;28066:17;28059:47;28123:131;28249:4;28123:131;:::i;:::-;28115:139;;27842:419;;;:::o;28267:177::-;28407:29;28403:1;28395:6;28391:14;28384:53;28267:177;:::o;28450:366::-;28592:3;28613:67;28677:2;28672:3;28613:67;:::i;:::-;28606:74;;28689:93;28778:3;28689:93;:::i;:::-;28807:2;28802:3;28798:12;28791:19;;28450:366;;;:::o;28822:419::-;28988:4;29026:2;29015:9;29011:18;29003:26;;29075:9;29069:4;29065:20;29061:1;29050:9;29046:17;29039:47;29103:131;29229:4;29103:131;:::i;:::-;29095:139;;28822:419;;;:::o

Swarm Source

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